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