> So I've been looking for a way to obtain things like a PCIDevice from a > more generic structure (say from hw/qdev.h),
If you're having to figure out what kind of a device you have then I think you're already doing something else wrong. I'd expect the bits of code that needs to identify devices to be inherently bus specific. If you've got some sort of on-cpu IOMMU which is asking "did this come from an ISA device, or a PCI device?", then I suspect you've got your abstraction layers wrong. This should already have been handled by the pci/isa to cpu bridge. Paul