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