On 21 March 2013 11:49, Alexander Graf <ag...@suse.de> wrote: > > On 21.03.2013, at 12:44, Peter Maydell wrote: >> It is -- the device model is what calls kvm_arm_register_device(). >> It's just the mechanics of "how do we tell the kernel the right >> address for this region at the point when we know it" that are >> handled in kvm.c. > > I think I'm slowly grasping what you're aiming at :). Ok, that > works. You do actually do the listener in the device model, just > that you pass code responsibility over to kvm.c. > > That's perfectly valid and sounds like a good model that Scott > probably wants to follow as well :).
Yep. We were actually originally going to make the device ioctl a generic one, not an ARM one, because there really isn't anything ARM specific about it. We should probably move the code from target-arm/kvm.c into kvm-all.c with an arch hook to specify the ioctl to use (same as irq_set_ioctl) if you want to do the same approach with PPC. Re multiple regions: yes, the VGIC has several. We just divide the u32 ID into two halves, one for a device ID and one for a region ID for that device. -- PMM