]> git.proxmox.com Git - mirror_qemu.git/blame - include/qemu/typedefs.h
accel/tcg/plugin-gen: fix the call signature for inline callbacks
[mirror_qemu.git] / include / qemu / typedefs.h
CommitLineData
394e1bb7
EH
1#ifndef QEMU_TYPEDEFS_H
2#define QEMU_TYPEDEFS_H
3
2a28720d
MA
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 */
394e1bb7 19
2a28720d
MA
20/*
21 * Incomplete struct types
22 * Please keep this list in case-insensitive alphabetical order.
23 */
64baadc2 24typedef struct AdapterInfo AdapterInfo;
b421d9c6 25typedef struct AddressSpace AddressSpace;
64baadc2 26typedef struct AioContext AioContext;
0f8d656b 27typedef struct Aml Aml;
50510ea2 28typedef struct AnnounceTimer AnnounceTimer;
9a3f5cf1 29typedef struct BdrvDirtyBitmap BdrvDirtyBitmap;
dc162c8e 30typedef struct BdrvDirtyBitmapIter BdrvDirtyBitmapIter;
26f54e9a 31typedef struct BlockBackend BlockBackend;
281d22d8 32typedef struct BlockBackendRootState BlockBackendRootState;
394e1bb7 33typedef struct BlockDriverState BlockDriverState;
64baadc2
DDAG
34typedef struct BusClass BusClass;
35typedef struct BusState BusState;
0ec7b3e7 36typedef struct Chardev Chardev;
ad140dad 37typedef struct Clock Clock;
64baadc2 38typedef struct CompatProperty CompatProperty;
e70372fc 39typedef struct CoMutex CoMutex;
f91f9f25 40typedef struct ConfidentialGuestSupport ConfidentialGuestSupport;
32857f4d 41typedef struct CPUAddressSpace CPUAddressSpace;
b23197f9 42typedef struct CPUState CPUState;
707ff800 43typedef struct DeviceListener DeviceListener;
2988cbea 44typedef struct DeviceState DeviceState;
8deaf12c 45typedef struct DirtyBitmapSnapshot DirtyBitmapSnapshot;
394e1bb7 46typedef struct DisplayChangeListener DisplayChangeListener;
64baadc2 47typedef struct DriveInfo DriveInfo;
da34e65c 48typedef struct Error Error;
64baadc2 49typedef struct EventNotifier EventNotifier;
02d9651d 50typedef struct FlatView FlatView;
39736e18 51typedef struct FWCfgEntry FWCfgEntry;
5712db6a
LE
52typedef struct FWCfgIoState FWCfgIoState;
53typedef struct FWCfgMemState FWCfgMemState;
64baadc2 54typedef struct FWCfgState FWCfgState;
7969dd91 55typedef struct HostMemoryBackend HostMemoryBackend;
a5c82852 56typedef struct I2CBus I2CBus;
64baadc2 57typedef struct I2SCodec I2SCodec;
a98c370c 58typedef struct IOMMUMemoryRegion IOMMUMemoryRegion;
394e1bb7
EH
59typedef struct ISABus ISABus;
60typedef struct ISADevice ISADevice;
5484f30b 61typedef struct IsaDma IsaDma;
3ddba9a9 62typedef struct JSONWriter JSONWriter;
64baadc2
DDAG
63typedef struct MACAddr MACAddr;
64typedef struct MachineClass MachineClass;
65typedef struct MachineState MachineState;
66typedef struct MemoryListener MemoryListener;
67typedef struct MemoryMappingList MemoryMappingList;
68typedef struct MemoryRegion MemoryRegion;
1f4e496e 69typedef struct MemoryRegionCache MemoryRegionCache;
64baadc2 70typedef struct MemoryRegionSection MemoryRegionSection;
bca7856a 71typedef struct MigrationIncomingState MigrationIncomingState;
aefeb18b 72typedef struct MigrationState MigrationState;
64baadc2 73typedef struct Monitor Monitor;
2988cbea 74typedef struct MonitorDef MonitorDef;
64baadc2
DDAG
75typedef struct MSIMessage MSIMessage;
76typedef struct NetClientState NetClientState;
fdccce45 77typedef struct NetFilterState NetFilterState;
64baadc2 78typedef struct NICInfo NICInfo;
aec90730 79typedef struct NodeInfo NodeInfo;
31959e82 80typedef struct NumaNodeMem NumaNodeMem;
ca27b5eb 81typedef struct Object Object;
7cfda775 82typedef struct ObjectClass ObjectClass;
64baadc2 83typedef struct PCIBridge PCIBridge;
394e1bb7
EH
84typedef struct PCIBus PCIBus;
85typedef struct PCIDevice PCIDevice;
394e1bb7 86typedef struct PCIEAERErr PCIEAERErr;
64baadc2
DDAG
87typedef struct PCIEAERLog PCIEAERLog;
88typedef struct PCIEAERMsg PCIEAERMsg;
394e1bb7
EH
89typedef struct PCIEPort PCIEPort;
90typedef struct PCIESlot PCIESlot;
64baadc2
DDAG
91typedef struct PCIExpressDevice PCIExpressDevice;
92typedef struct PCIExpressHost PCIExpressHost;
a7c4d9c7 93typedef struct PCIHostDeviceAddress PCIHostDeviceAddress;
64baadc2 94typedef struct PCIHostState PCIHostState;
e0b266f0 95typedef struct PostcopyDiscardState PostcopyDiscardState;
64baadc2 96typedef struct Property Property;
2988cbea 97typedef struct PropertyInfo PropertyInfo;
a98c370c
EB
98typedef struct QBool QBool;
99typedef struct QDict QDict;
64baadc2
DDAG
100typedef struct QEMUBH QEMUBH;
101typedef struct QemuConsole QemuConsole;
102typedef struct QEMUFile QEMUFile;
e70372fc
PB
103typedef struct QemuLockable QemuLockable;
104typedef struct QemuMutex QemuMutex;
ae1e9380
PD
105typedef struct QemuOpt QemuOpt;
106typedef struct QemuOpts QemuOpts;
107typedef struct QemuOptsList QemuOptsList;
394e1bb7 108typedef struct QEMUSGList QEMUSGList;
a98c370c 109typedef struct QemuSpin QemuSpin;
64baadc2 110typedef struct QEMUTimer QEMUTimer;
2988cbea 111typedef struct QEMUTimerListGroup QEMUTimerListGroup;
9f5c734d 112typedef struct QList QList;
4d2d5c41 113typedef struct QNull QNull;
9f5c734d
MA
114typedef struct QNum QNum;
115typedef struct QObject QObject;
116typedef struct QString QString;
422148d3 117typedef struct RAMBlock RAMBlock;
2988cbea 118typedef struct Range Range;
3ddba9a9 119typedef struct ReservedRegion ReservedRegion;
2f3a57ee 120typedef struct SavedIOTLB SavedIOTLB;
64baadc2 121typedef struct SHPCDevice SHPCDevice;
64baadc2 122typedef struct SSIBus SSIBus;
64baadc2
DDAG
123typedef struct VirtIODevice VirtIODevice;
124typedef struct Visitor Visitor;
2f780b6a 125typedef struct VMChangeStateEntry VMChangeStateEntry;
8a9358cc 126typedef struct VMStateDescription VMStateDescription;
2a28720d 127
64552b6b
MA
128/*
129 * Pointer types
130 * Such typedefs should be limited to cases where the typedef's users
131 * are oblivious of its "pointer-ness".
132 * Please keep this list in case-insensitive alphabetical order.
133 */
134typedef struct IRQState *qemu_irq;
135
2a28720d
MA
136/*
137 * Function types
138 */
68a4a2fd
JQ
139typedef void SaveStateHandler(QEMUFile *f, void *opaque);
140typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id);
64552b6b 141typedef void (*qemu_irq_handler)(void *opaque, int n, int level);
394e1bb7
EH
142
143#endif /* QEMU_TYPEDEFS_H */