> +typedef struct XHCIPciState { > + /*< private >*/ > + PCIDevice parent_obj; > + /*< public >*/ > + XHCIState *xhci;
Better embed the struct instead of storing a pointer. > struct XHCIState { > - /*< private >*/ > - PCIDevice parent_obj; > - /*< public >*/ > - > + DeviceState parent; Why do you need this? XHCIState will not be used standalone, it will be part of XHCIPciState or XHCISysbusState, which in turn has a DeviceState already. > + void (*intr_update)(void *opaque, int n, bool enable); > + void (*intr_raise)(void *opaque, int n, bool level); Use "struct XHCIState*" instead of "void*" please, then use container_of to get XHCIPciState or XHCISysbusState. cheers, Gerd