4b3cfe72d9
Some functions previously used only by vGICv2 are useful also for vGICv3 implementation. Untie them from GICState and make accessible from within other modules: - kvm_arm_gic_set_irq() - kvm_gic_supports_attr() - moved to common code and renamed to kvm_device_check_attr() - kvm_gic_access() - turned into GIC-independent kvm_device_access(). Data pointer changed to void * because some GICv3 registers are 64-bit wide Some of these changes are not used right now, but they will be helpful for implementing live migration. Actually kvm_dist_get() and kvm_dist_put() could also be made reusable, but they would require two extra parameters (s->dev_fd and s->num_cpu) as well as lots of typecasts of 's' to DeviceState * and back to GICState *. This makes the code very ugly so i decided to stop at this point. I tried also an approach with making a base class for all possible GICs, but it would contain only three variables (dev_fd, cpu_num and irq_num), and accessing them through the rest of the code would be again tedious (either ugly casts or qemu-style separate object pointer). So i disliked it too. Signed-off-by: Pavel Fedin <p.fedin@samsung.com> Tested-by: Ashok kumar <ashoks@broadcom.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 2ef56d1dd64ffb75ed02a10dcdaf605e5b8ff4f8.1441784344.git.p.fedin@samsung.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org> |
||
---|---|---|
.. | ||
accel.h | ||
arch_init.h | ||
balloon.h | ||
block-backend.h | ||
blockdev.h | ||
bt.h | ||
char.h | ||
cpus.h | ||
device_tree.h | ||
dma.h | ||
dump-arch.h | ||
dump.h | ||
hostmem.h | ||
iothread.h | ||
kvm_int.h | ||
kvm.h | ||
memory_mapping.h | ||
numa.h | ||
os-posix.h | ||
os-win32.h | ||
qtest.h | ||
rng-random.h | ||
rng.h | ||
seccomp.h | ||
sysemu.h | ||
tpm_backend_int.h | ||
tpm_backend.h | ||
tpm.h | ||
watchdog.h | ||
xen-mapcache.h |