On Tue, Jun 25, 2013 at 10:20:08AM +0800, Hu Tao wrote: [...] > > Is TYPE_SYS_BUS_DEVICE guaranteed to never override ->realize() itself? > > > > From DeviceClass documentation: > > > > * If a type derived directly from TYPE_DEVICE implements @realize, it does > > * not need to implement @init and therefore does not need to store and call > > * #DeviceClass' default @realize callback. > > * For other types consult the documentation and implementation of the > > * respective parent types. > > > > The problem is that there's no documentation about ->realize() on > > SysBusDeviceClass. Can we please explicitly document SysBusDeviceClass > > expectations about ->realize() first, before making those changes? > > IIUC, subclass's overriding ->realize should call parent's ->realize at > some point. Peter Crosthwaite has a patchset to access a object's parent > class at http://lists.nongnu.org/archive/html/qemu-devel/2013-06/msg02982.html > > Regarding SysBusDevice::init and SysBusDevice::realize, I think it's the > same as in the case of DeviceClass. If you agree I'll document it as in > DeviceClass.
I believe it is reasonable to document that SysBusDevice subclasses don't need to call the parent ->realize() method, like on DeviceClass. This is exactly what this patch set does, after all, and I haven't seen anybody complaining about it yet. -- Eduardo