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