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 Aml Aml; 28typedef struct AnnounceTimer AnnounceTimer; 29typedef struct ArchCPU ArchCPU; 30typedef struct BdrvDirtyBitmap BdrvDirtyBitmap; 31typedef struct BdrvDirtyBitmapIter BdrvDirtyBitmapIter; 32typedef struct BlockBackend BlockBackend; 33typedef struct BlockBackendRootState BlockBackendRootState; 34typedef struct BlockDriverState BlockDriverState; 35typedef struct BusClass BusClass; 36typedef struct BusState BusState; 37typedef struct Chardev Chardev; 38typedef struct Clock Clock; 39typedef struct CompatProperty CompatProperty; 40typedef struct CoMutex CoMutex; 41typedef struct ConfidentialGuestSupport ConfidentialGuestSupport; 42typedef struct CPUAddressSpace CPUAddressSpace; 43typedef struct CPUArchState CPUArchState; 44typedef struct CPUState CPUState; 45typedef struct DeviceListener DeviceListener; 46typedef struct DeviceState DeviceState; 47typedef struct DirtyBitmapSnapshot DirtyBitmapSnapshot; 48typedef struct DisplayChangeListener DisplayChangeListener; 49typedef struct DriveInfo DriveInfo; 50typedef struct Error Error; 51typedef struct EventNotifier EventNotifier; 52typedef struct FlatView FlatView; 53typedef struct FWCfgEntry FWCfgEntry; 54typedef struct FWCfgIoState FWCfgIoState; 55typedef struct FWCfgMemState FWCfgMemState; 56typedef struct FWCfgState FWCfgState; 57typedef struct HostMemoryBackend HostMemoryBackend; 58typedef struct I2CBus I2CBus; 59typedef struct I2SCodec I2SCodec; 60typedef struct IOMMUMemoryRegion IOMMUMemoryRegion; 61typedef struct ISABus ISABus; 62typedef struct ISADevice ISADevice; 63typedef struct IsaDma IsaDma; 64typedef struct JSONWriter JSONWriter; 65typedef struct MACAddr MACAddr; 66typedef struct MachineClass MachineClass; 67typedef struct MachineState MachineState; 68typedef struct MemoryListener MemoryListener; 69typedef struct MemoryMappingList MemoryMappingList; 70typedef struct MemoryRegion MemoryRegion; 71typedef struct MemoryRegionCache MemoryRegionCache; 72typedef struct MemoryRegionSection MemoryRegionSection; 73typedef struct MigrationIncomingState MigrationIncomingState; 74typedef struct MigrationState MigrationState; 75typedef struct Monitor Monitor; 76typedef struct MonitorDef MonitorDef; 77typedef struct MSIMessage MSIMessage; 78typedef struct NetClientState NetClientState; 79typedef struct NetFilterState NetFilterState; 80typedef struct NICInfo NICInfo; 81typedef struct NodeInfo NodeInfo; 82typedef struct NumaNodeMem NumaNodeMem; 83typedef struct Object Object; 84typedef struct ObjectClass ObjectClass; 85typedef struct PCIBridge PCIBridge; 86typedef struct PCIBus PCIBus; 87typedef struct PCIDevice PCIDevice; 88typedef struct PCIEAERErr PCIEAERErr; 89typedef struct PCIEAERLog PCIEAERLog; 90typedef struct PCIEAERMsg PCIEAERMsg; 91typedef struct PCIESriovPF PCIESriovPF; 92typedef struct PCIESriovVF PCIESriovVF; 93typedef struct PCIEPort PCIEPort; 94typedef struct PCIESlot PCIESlot; 95typedef struct PCIExpressDevice PCIExpressDevice; 96typedef struct PCIExpressHost PCIExpressHost; 97typedef struct PCIHostDeviceAddress PCIHostDeviceAddress; 98typedef struct PCIHostState PCIHostState; 99typedef struct PostcopyDiscardState PostcopyDiscardState; 100typedef struct Property Property; 101typedef struct PropertyInfo PropertyInfo; 102typedef struct QBool QBool; 103typedef struct QDict QDict; 104typedef struct QEMUBH QEMUBH; 105typedef struct QemuConsole QemuConsole; 106typedef struct QEMUFile QEMUFile; 107typedef struct QemuLockable QemuLockable; 108typedef struct QemuMutex QemuMutex; 109typedef struct QemuOpt QemuOpt; 110typedef struct QemuOpts QemuOpts; 111typedef struct QemuOptsList QemuOptsList; 112typedef struct QEMUSGList QEMUSGList; 113typedef struct QemuSpin QemuSpin; 114typedef struct QEMUTimer QEMUTimer; 115typedef struct QEMUTimerListGroup QEMUTimerListGroup; 116typedef struct QList QList; 117typedef struct QNull QNull; 118typedef struct QNum QNum; 119typedef struct QObject QObject; 120typedef struct QString QString; 121typedef struct RAMBlock RAMBlock; 122typedef struct Range Range; 123typedef struct ReservedRegion ReservedRegion; 124typedef struct SavedIOTLB SavedIOTLB; 125typedef struct SHPCDevice SHPCDevice; 126typedef struct SSIBus SSIBus; 127typedef struct TranslationBlock TranslationBlock; 128typedef struct VirtIODevice VirtIODevice; 129typedef struct Visitor Visitor; 130typedef struct VMChangeStateEntry VMChangeStateEntry; 131typedef struct VMStateDescription VMStateDescription; 132 133/* 134 * Pointer types 135 * Such typedefs should be limited to cases where the typedef's users 136 * are oblivious of its "pointer-ness". 137 * Please keep this list in case-insensitive alphabetical order. 138 */ 139typedef struct IRQState *qemu_irq; 140 141/* 142 * Function types 143 */ 144typedef void SaveStateHandler(QEMUFile *f, void *opaque); 145typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id); 146typedef void (*qemu_irq_handler)(void *opaque, int n, int level); 147 148#endif /* QEMU_TYPEDEFS_H */ 149