10d71f708SJon Doron /* 20d71f708SJon Doron * QEMU Hyper-V VMBus root bridge 30d71f708SJon Doron * 40d71f708SJon Doron * Copyright (c) 2017-2018 Virtuozzo International GmbH. 50d71f708SJon Doron * 60d71f708SJon Doron * This work is licensed under the terms of the GNU GPL, version 2 or later. 70d71f708SJon Doron * See the COPYING file in the top-level directory. 80d71f708SJon Doron */ 90d71f708SJon Doron 100d71f708SJon Doron #ifndef HW_HYPERV_VMBUS_BRIDGE_H 110d71f708SJon Doron #define HW_HYPERV_VMBUS_BRIDGE_H 120d71f708SJon Doron 130d71f708SJon Doron #include "hw/sysbus.h" 140d71f708SJon Doron 150d71f708SJon Doron #define TYPE_VMBUS_BRIDGE "vmbus-bridge" 160d71f708SJon Doron 170d71f708SJon Doron typedef struct VMBus VMBus; 180d71f708SJon Doron 190d71f708SJon Doron typedef struct VMBusBridge { 200d71f708SJon Doron SysBusDevice parent_obj; 210d71f708SJon Doron 22*6775d15dSJon Doron uint8_t irq0; 23*6775d15dSJon Doron uint8_t irq1; 24*6775d15dSJon Doron 250d71f708SJon Doron VMBus *bus; 260d71f708SJon Doron } VMBusBridge; 270d71f708SJon Doron 280d71f708SJon Doron #define VMBUS_BRIDGE(obj) OBJECT_CHECK(VMBusBridge, (obj), TYPE_VMBUS_BRIDGE) 290d71f708SJon Doron 300d71f708SJon Doron static inline VMBusBridge *vmbus_bridge_find(void) 310d71f708SJon Doron { 320d71f708SJon Doron return VMBUS_BRIDGE(object_resolve_path_type("", TYPE_VMBUS_BRIDGE, NULL)); 330d71f708SJon Doron } 340d71f708SJon Doron 350d71f708SJon Doron #endif 36