This is a very rough-and-ready RFC that takes Pavel's patch series from last year: https://lists.gnu.org/archive/html/qemu-devel/2015-10/msg05284.html and applies the various changes I recommended in code review.
I haven't tested this beyond compile-testing, but I think that the general shape of it, and in particular the set of information in the state structs, is correct. (In particular I have removed several state struct fields that should definitely not be present.) There are a few fixme-type comments scattered in the code. Shlomo, I think this should be a sensible thing to base your GICv3 emulation patches on. thanks -- PMM Pavel Fedin (4): hw/intc/arm_gicv3_common: Add state information kernel: Add definitions for GICv3 attributes hw/intc/arm_gicv3_kvm: Implement get/put functions hw/intc/arm_gicv3_common: Add vmstate descriptors Peter Maydell (1): migration: Define VMSTATE_UINT64_2DARRAY hw/intc/arm_gicv3_common.c | 161 +++++++++++++- hw/intc/arm_gicv3_kvm.c | 437 ++++++++++++++++++++++++++++++++++++- hw/intc/gicv3_internal.h | 147 +++++++++++++ include/hw/intc/arm_gicv3_common.h | 106 ++++++++- include/migration/vmstate.h | 15 ++ linux-headers/asm-arm64/kvm.h | 17 +- 6 files changed, 869 insertions(+), 14 deletions(-) create mode 100644 hw/intc/gicv3_internal.h -- 1.9.1