1#ifndef QEMU_TYPEDEFS_H 2#define QEMU_TYPEDEFS_H 3 4/* 5 * This header is for selectively avoiding #include just to get a 6 * typedef name. 7 * 8 * Declaring a typedef name in its "obvious" place can result in 9 * inclusion cycles, in particular for complete struct and union 10 * types that need more types for their members. It can also result 11 * in headers pulling in many more headers, slowing down builds. 12 * 13 * You can break such cycles and unwanted dependencies by declaring 14 * the typedef name here. 15 * 16 * For struct types used in only a few headers, judicious use of the 17 * struct tag instead of the typedef name is commonly preferable. 18 */ 19 20/* 21 * Incomplete struct types 22 * Please keep this list in case-insensitive alphabetical order. 23 */ 24typedef struct AdapterInfo AdapterInfo; 25typedef struct AddressSpace AddressSpace; 26typedef struct AioContext AioContext; 27typedef struct AnnounceTimer AnnounceTimer; 28typedef struct BdrvDirtyBitmap BdrvDirtyBitmap; 29typedef struct BdrvDirtyBitmapIter BdrvDirtyBitmapIter; 30typedef struct BlockBackend BlockBackend; 31typedef struct BlockBackendRootState BlockBackendRootState; 32typedef struct BlockDriverState BlockDriverState; 33typedef struct BusClass BusClass; 34typedef struct BusState BusState; 35typedef struct Chardev Chardev; 36typedef struct CompatProperty CompatProperty; 37typedef struct CoMutex CoMutex; 38typedef struct CPUAddressSpace CPUAddressSpace; 39typedef struct CPUState CPUState; 40typedef struct DeviceListener DeviceListener; 41typedef struct DeviceState DeviceState; 42typedef struct DirtyBitmapSnapshot DirtyBitmapSnapshot; 43typedef struct DisplayChangeListener DisplayChangeListener; 44typedef struct DriveInfo DriveInfo; 45typedef struct Error Error; 46typedef struct EventNotifier EventNotifier; 47typedef struct FlatView FlatView; 48typedef struct FWCfgEntry FWCfgEntry; 49typedef struct FWCfgIoState FWCfgIoState; 50typedef struct FWCfgMemState FWCfgMemState; 51typedef struct FWCfgState FWCfgState; 52typedef struct HostMemoryBackend HostMemoryBackend; 53typedef struct HVFX86EmulatorState HVFX86EmulatorState; 54typedef struct I2CBus I2CBus; 55typedef struct I2SCodec I2SCodec; 56typedef struct IOMMUMemoryRegion IOMMUMemoryRegion; 57typedef struct ISABus ISABus; 58typedef struct ISADevice ISADevice; 59typedef struct IsaDma IsaDma; 60typedef struct MACAddr MACAddr; 61typedef struct MachineClass MachineClass; 62typedef struct MachineState MachineState; 63typedef struct MemoryListener MemoryListener; 64typedef struct MemoryMappingList MemoryMappingList; 65typedef struct MemoryRegion MemoryRegion; 66typedef struct MemoryRegionCache MemoryRegionCache; 67typedef struct MemoryRegionSection MemoryRegionSection; 68typedef struct MigrationIncomingState MigrationIncomingState; 69typedef struct MigrationState MigrationState; 70typedef struct Monitor Monitor; 71typedef struct MonitorDef MonitorDef; 72typedef struct MSIMessage MSIMessage; 73typedef struct NetClientState NetClientState; 74typedef struct NetFilterState NetFilterState; 75typedef struct NICInfo NICInfo; 76typedef struct NodeInfo NodeInfo; 77typedef struct NumaNodeMem NumaNodeMem; 78typedef struct ObjectClass ObjectClass; 79typedef struct PCIBridge PCIBridge; 80typedef struct PCIBus PCIBus; 81typedef struct PCIDevice PCIDevice; 82typedef struct PCIEAERErr PCIEAERErr; 83typedef struct PCIEAERLog PCIEAERLog; 84typedef struct PCIEAERMsg PCIEAERMsg; 85typedef struct PCIEPort PCIEPort; 86typedef struct PCIESlot PCIESlot; 87typedef struct PCIExpressDevice PCIExpressDevice; 88typedef struct PCIExpressHost PCIExpressHost; 89typedef struct PCIHostDeviceAddress PCIHostDeviceAddress; 90typedef struct PCIHostState PCIHostState; 91typedef struct PCMachineState PCMachineState; 92typedef struct PostcopyDiscardState PostcopyDiscardState; 93typedef struct Property Property; 94typedef struct PropertyInfo PropertyInfo; 95typedef struct QBool QBool; 96typedef struct QDict QDict; 97typedef struct QEMUBH QEMUBH; 98typedef struct QemuConsole QemuConsole; 99typedef struct QEMUFile QEMUFile; 100typedef struct QemuLockable QemuLockable; 101typedef struct QemuMutex QemuMutex; 102typedef struct QemuOpt QemuOpt; 103typedef struct QemuOpts QemuOpts; 104typedef struct QemuOptsList QemuOptsList; 105typedef struct QEMUSGList QEMUSGList; 106typedef struct QemuSpin QemuSpin; 107typedef struct QEMUTimer QEMUTimer; 108typedef struct QEMUTimerListGroup QEMUTimerListGroup; 109typedef struct QJSON QJSON; 110typedef struct QList QList; 111typedef struct QNull QNull; 112typedef struct QNum QNum; 113typedef struct QObject QObject; 114typedef struct QString QString; 115typedef struct RAMBlock RAMBlock; 116typedef struct Range Range; 117typedef struct SHPCDevice SHPCDevice; 118typedef struct SSIBus SSIBus; 119typedef struct VirtIODevice VirtIODevice; 120typedef struct Visitor Visitor; 121typedef struct VMChangeStateEntry VMChangeStateEntry; 122typedef struct VMStateDescription VMStateDescription; 123 124/* 125 * Pointer types 126 * Such typedefs should be limited to cases where the typedef's users 127 * are oblivious of its "pointer-ness". 128 * Please keep this list in case-insensitive alphabetical order. 129 */ 130typedef struct IRQState *qemu_irq; 131 132/* 133 * Function types 134 */ 135typedef void SaveStateHandler(QEMUFile *f, void *opaque); 136typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id); 137typedef void (*qemu_irq_handler)(void *opaque, int n, int level); 138 139#endif /* QEMU_TYPEDEFS_H */ 140