On Wed, Jun 10, 2009 at 9:32 AM, Gerd Hoffmann<address@hidden> wrote:
[snip]>
In general I think we should handle as much as possible at DeviceState /
DeviceInfo level. Stuff which devices commonly have should live there:
IRQs, mmio, ioports, ... in DeviceState. name, init and other generic
callbacks, ... in DeviceInfo.
The bus structs should only hold stuff which is actually specific to that
bus. That is probably almost nothing for sysbus. i2c has the xfer
callbacks in I2CSlaveInfo. Likewise pci can have the config space
read/write callbacks in PCIDeviceInfo.
This is definitely based on wrong assumptions. I've GPIO devices
modelled on top of qdev and they don't know anything about IRQs, MMIO
or stuff like that. All they know about is that there are few in/out
GPIO pins, which are connected to the GPIO controller in the emulated
microcontroller.