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