xref: /qemu/include/hw/hyperv/vmbus-bridge.h (revision 0d71f7082d7aeec8d9767e32dbf7dd86b94b8260)
1*0d71f708SJon Doron /*
2*0d71f708SJon Doron  * QEMU Hyper-V VMBus root bridge
3*0d71f708SJon Doron  *
4*0d71f708SJon Doron  * Copyright (c) 2017-2018 Virtuozzo International GmbH.
5*0d71f708SJon Doron  *
6*0d71f708SJon Doron  * This work is licensed under the terms of the GNU GPL, version 2 or later.
7*0d71f708SJon Doron  * See the COPYING file in the top-level directory.
8*0d71f708SJon Doron  */
9*0d71f708SJon Doron 
10*0d71f708SJon Doron #ifndef HW_HYPERV_VMBUS_BRIDGE_H
11*0d71f708SJon Doron #define HW_HYPERV_VMBUS_BRIDGE_H
12*0d71f708SJon Doron 
13*0d71f708SJon Doron #include "hw/sysbus.h"
14*0d71f708SJon Doron 
15*0d71f708SJon Doron #define TYPE_VMBUS_BRIDGE "vmbus-bridge"
16*0d71f708SJon Doron 
17*0d71f708SJon Doron typedef struct VMBus VMBus;
18*0d71f708SJon Doron 
19*0d71f708SJon Doron typedef struct VMBusBridge {
20*0d71f708SJon Doron     SysBusDevice parent_obj;
21*0d71f708SJon Doron 
22*0d71f708SJon Doron     VMBus *bus;
23*0d71f708SJon Doron } VMBusBridge;
24*0d71f708SJon Doron 
25*0d71f708SJon Doron #define VMBUS_BRIDGE(obj) OBJECT_CHECK(VMBusBridge, (obj), TYPE_VMBUS_BRIDGE)
26*0d71f708SJon Doron 
27*0d71f708SJon Doron static inline VMBusBridge *vmbus_bridge_find(void)
28*0d71f708SJon Doron {
29*0d71f708SJon Doron     return VMBUS_BRIDGE(object_resolve_path_type("", TYPE_VMBUS_BRIDGE, NULL));
30*0d71f708SJon Doron }
31*0d71f708SJon Doron 
32*0d71f708SJon Doron #endif
33