vmbus: vmbus implementation
Add the VMBus infrastructure -- bus, devices, root bridge, vmbus state machine, vmbus channel interactions, etc. VMBus is a collection of technologies. At its lowest layer, it's a message passing and signaling mechanism, allowing efficient passing of messages to and from guest VMs. A layer higher, it's a mechanism for defining channels of communication, where each channel is tagged with a type (which implies a protocol) and a instance ID. A layer higher than that, it's a bus driver, serving as the basis of device enumeration within a VM, where a channel can optionally be exposed as a paravirtual device. When a server-side (paravirtual back-end) component wishes to offer a channel to a guest VM, it does so by specifying a channel type, a mode, and an instance ID. VMBus then exposes this in the guest. More information about VMBus can be found in the file vmbuskernelmodeclientlibapi.h in Microsoft's WDK. TODO: - split into smaller palatable pieces - more comments - check and handle corner cases Kudos to Evgeny Yakovlev (formerly eyakovlev@virtuozzo.com) and Andrey Smetatin (formerly asmetanin@virtuozzo.com) for research and prototyping. Signed-off-by: NRoman Kagan <rkagan@virtuozzo.com> Signed-off-by: NMaciej S. Szmigiero <maciej.szmigiero@oracle.com> Signed-off-by: NJon Doron <arilou@gmail.com> Message-Id: <20200424123444.3481728-4-arilou@gmail.com> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
Showing
hw/hyperv/trace-events
0 → 100644
hw/hyperv/vmbus.c
0 → 100644
此差异已折叠。
include/hw/hyperv/vmbus-bridge.h
0 → 100644
include/hw/hyperv/vmbus.h
0 → 100644
想要评论请 注册 或 登录