This series introduces the infrastructure to send and receive Hyper-V messages and events.
More specifically, - SynIC is turned into a full-fledged device managing the memory regions used for QEMU->guest communication - machinery is introduced to post messages and signal events to the guest - infrastructure is added to subscribe to messages and events from the guest, and to dispatch the received messages and events to the subscribers Based-on: 20180921082041.29380-1-rka...@virtuozzo.com Roman Kagan (10): hyperv:synic: split capability testing and setting hyperv: qom-ify SynIC hyperv: only add SynIC in compatible configurations hyperv: make overlay pages for SynIC hyperv: add synic message delivery hyperv: add synic event flag signaling hyperv: process SIGNAL_EVENT hypercall hyperv: add support for KVM_HYPERV_EVENTFD hyperv: process POST_MESSAGE hypercall hyperv_testdev: add SynIC message and event testmodes include/hw/hyperv/hyperv-proto.h | 1 + include/hw/hyperv/hyperv.h | 58 +++- include/hw/i386/pc.h | 8 + target/i386/cpu.h | 1 + target/i386/hyperv.h | 4 + hw/hyperv/hyperv.c | 542 ++++++++++++++++++++++++++++++- hw/misc/hyperv_testdev.c | 165 +++++++++- target/i386/cpu.c | 2 + target/i386/hyperv-stub.c | 13 + target/i386/hyperv.c | 54 ++- target/i386/kvm.c | 45 ++- target/i386/machine.c | 9 + 12 files changed, 872 insertions(+), 30 deletions(-) -- 2.17.1