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