Create qemu-types.h for struct typedefs
Instead of keeping all those struct typedefs in qemu-common.h, move it to a header that can be safely included by other headers, containing only the struct typedefs and not pulling in other dependencies. Also, move some of the qdev-core.h typedefs to the new file, too, so other headers don't need to include qdev-core.h only because of DeviceState and other typedefs. This will help us remove qemu-common.h dependencies from some headers later. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
		
							parent
							
								
									cad3215966
								
							
						
					
					
						commit
						394e1bb795
					
				@ -3,20 +3,11 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "qemu-queue.h"
 | 
					#include "qemu-queue.h"
 | 
				
			||||||
#include "qemu-option.h"
 | 
					#include "qemu-option.h"
 | 
				
			||||||
 | 
					#include "qemu-types.h"
 | 
				
			||||||
#include "qemu/object.h"
 | 
					#include "qemu/object.h"
 | 
				
			||||||
#include "hw/irq.h"
 | 
					#include "hw/irq.h"
 | 
				
			||||||
#include "error.h"
 | 
					#include "error.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct Property Property;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
typedef struct PropertyInfo PropertyInfo;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
typedef struct CompatProperty CompatProperty;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
typedef struct BusState BusState;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
typedef struct BusClass BusClass;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum DevState {
 | 
					enum DevState {
 | 
				
			||||||
    DEV_STATE_CREATED = 1,
 | 
					    DEV_STATE_CREATED = 1,
 | 
				
			||||||
    DEV_STATE_INITIALIZED,
 | 
					    DEV_STATE_INITIALIZED,
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "compiler.h"
 | 
					#include "compiler.h"
 | 
				
			||||||
#include "config-host.h"
 | 
					#include "config-host.h"
 | 
				
			||||||
 | 
					#include "qemu-types.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(__arm__) || defined(__sparc__) || defined(__mips__) || defined(__hppa__) || defined(__ia64__)
 | 
					#if defined(__arm__) || defined(__sparc__) || defined(__mips__) || defined(__hppa__) || defined(__ia64__)
 | 
				
			||||||
#define WORDS_ALIGNED
 | 
					#define WORDS_ALIGNED
 | 
				
			||||||
@ -21,15 +22,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR)
 | 
					#define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct QEMUTimer QEMUTimer;
 | 
					 | 
				
			||||||
typedef struct QEMUFile QEMUFile;
 | 
					 | 
				
			||||||
typedef struct QEMUBH QEMUBH;
 | 
					 | 
				
			||||||
typedef struct DeviceState DeviceState;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct Monitor;
 | 
					 | 
				
			||||||
typedef struct Monitor Monitor;
 | 
					 | 
				
			||||||
typedef struct MigrationParams MigrationParams;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* we put basic includes here to avoid repeating them in device drivers */
 | 
					/* we put basic includes here to avoid repeating them in device drivers */
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
@ -258,48 +250,6 @@ struct ParallelIOArg {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
typedef int (*DMA_transfer_handler) (void *opaque, int nchan, int pos, int size);
 | 
					typedef int (*DMA_transfer_handler) (void *opaque, int nchan, int pos, int size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* A load of opaque types so that device init declarations don't have to
 | 
					 | 
				
			||||||
   pull in all the real definitions.  */
 | 
					 | 
				
			||||||
typedef struct NICInfo NICInfo;
 | 
					 | 
				
			||||||
typedef struct HCIInfo HCIInfo;
 | 
					 | 
				
			||||||
typedef struct AudioState AudioState;
 | 
					 | 
				
			||||||
typedef struct BlockDriverState BlockDriverState;
 | 
					 | 
				
			||||||
typedef struct DriveInfo DriveInfo;
 | 
					 | 
				
			||||||
typedef struct DisplayState DisplayState;
 | 
					 | 
				
			||||||
typedef struct DisplayChangeListener DisplayChangeListener;
 | 
					 | 
				
			||||||
typedef struct DisplaySurface DisplaySurface;
 | 
					 | 
				
			||||||
typedef struct PixelFormat PixelFormat;
 | 
					 | 
				
			||||||
typedef struct QemuConsole QemuConsole;
 | 
					 | 
				
			||||||
typedef struct CharDriverState CharDriverState;
 | 
					 | 
				
			||||||
typedef struct MACAddr MACAddr;
 | 
					 | 
				
			||||||
typedef struct NetClientState NetClientState;
 | 
					 | 
				
			||||||
typedef struct i2c_bus i2c_bus;
 | 
					 | 
				
			||||||
typedef struct ISABus ISABus;
 | 
					 | 
				
			||||||
typedef struct ISADevice ISADevice;
 | 
					 | 
				
			||||||
typedef struct SMBusDevice SMBusDevice;
 | 
					 | 
				
			||||||
typedef struct PCIHostState PCIHostState;
 | 
					 | 
				
			||||||
typedef struct PCIExpressHost PCIExpressHost;
 | 
					 | 
				
			||||||
typedef struct PCIBus PCIBus;
 | 
					 | 
				
			||||||
typedef struct PCIDevice PCIDevice;
 | 
					 | 
				
			||||||
typedef struct PCIExpressDevice PCIExpressDevice;
 | 
					 | 
				
			||||||
typedef struct PCIBridge PCIBridge;
 | 
					 | 
				
			||||||
typedef struct PCIEAERMsg PCIEAERMsg;
 | 
					 | 
				
			||||||
typedef struct PCIEAERLog PCIEAERLog;
 | 
					 | 
				
			||||||
typedef struct PCIEAERErr PCIEAERErr;
 | 
					 | 
				
			||||||
typedef struct PCIEPort PCIEPort;
 | 
					 | 
				
			||||||
typedef struct PCIESlot PCIESlot;
 | 
					 | 
				
			||||||
typedef struct MSIMessage MSIMessage;
 | 
					 | 
				
			||||||
typedef struct SerialState SerialState;
 | 
					 | 
				
			||||||
typedef struct PCMCIACardState PCMCIACardState;
 | 
					 | 
				
			||||||
typedef struct MouseTransformInfo MouseTransformInfo;
 | 
					 | 
				
			||||||
typedef struct uWireSlave uWireSlave;
 | 
					 | 
				
			||||||
typedef struct I2SCodec I2SCodec;
 | 
					 | 
				
			||||||
typedef struct SSIBus SSIBus;
 | 
					 | 
				
			||||||
typedef struct EventNotifier EventNotifier;
 | 
					 | 
				
			||||||
typedef struct VirtIODevice VirtIODevice;
 | 
					 | 
				
			||||||
typedef struct QEMUSGList QEMUSGList;
 | 
					 | 
				
			||||||
typedef struct SHPCDevice SHPCDevice;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
typedef uint64_t pcibus_t;
 | 
					typedef uint64_t pcibus_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef enum LostTickPolicy {
 | 
					typedef enum LostTickPolicy {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										61
									
								
								qemu-types.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								qemu-types.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,61 @@
 | 
				
			|||||||
 | 
					#ifndef QEMU_TYPEDEFS_H
 | 
				
			||||||
 | 
					#define QEMU_TYPEDEFS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* A load of opaque types so that device init declarations don't have to
 | 
				
			||||||
 | 
					   pull in all the real definitions.  */
 | 
				
			||||||
 | 
					typedef struct QEMUTimer QEMUTimer;
 | 
				
			||||||
 | 
					typedef struct QEMUFile QEMUFile;
 | 
				
			||||||
 | 
					typedef struct QEMUBH QEMUBH;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct Monitor;
 | 
				
			||||||
 | 
					typedef struct Monitor Monitor;
 | 
				
			||||||
 | 
					typedef struct MigrationParams MigrationParams;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct Property Property;
 | 
				
			||||||
 | 
					typedef struct PropertyInfo PropertyInfo;
 | 
				
			||||||
 | 
					typedef struct CompatProperty CompatProperty;
 | 
				
			||||||
 | 
					typedef struct DeviceState DeviceState;
 | 
				
			||||||
 | 
					typedef struct BusState BusState;
 | 
				
			||||||
 | 
					typedef struct BusClass BusClass;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct NICInfo NICInfo;
 | 
				
			||||||
 | 
					typedef struct HCIInfo HCIInfo;
 | 
				
			||||||
 | 
					typedef struct AudioState AudioState;
 | 
				
			||||||
 | 
					typedef struct BlockDriverState BlockDriverState;
 | 
				
			||||||
 | 
					typedef struct DriveInfo DriveInfo;
 | 
				
			||||||
 | 
					typedef struct DisplayState DisplayState;
 | 
				
			||||||
 | 
					typedef struct DisplayChangeListener DisplayChangeListener;
 | 
				
			||||||
 | 
					typedef struct DisplaySurface DisplaySurface;
 | 
				
			||||||
 | 
					typedef struct PixelFormat PixelFormat;
 | 
				
			||||||
 | 
					typedef struct QemuConsole QemuConsole;
 | 
				
			||||||
 | 
					typedef struct CharDriverState CharDriverState;
 | 
				
			||||||
 | 
					typedef struct MACAddr MACAddr;
 | 
				
			||||||
 | 
					typedef struct NetClientState NetClientState;
 | 
				
			||||||
 | 
					typedef struct i2c_bus i2c_bus;
 | 
				
			||||||
 | 
					typedef struct ISABus ISABus;
 | 
				
			||||||
 | 
					typedef struct ISADevice ISADevice;
 | 
				
			||||||
 | 
					typedef struct SMBusDevice SMBusDevice;
 | 
				
			||||||
 | 
					typedef struct PCIHostState PCIHostState;
 | 
				
			||||||
 | 
					typedef struct PCIExpressHost PCIExpressHost;
 | 
				
			||||||
 | 
					typedef struct PCIBus PCIBus;
 | 
				
			||||||
 | 
					typedef struct PCIDevice PCIDevice;
 | 
				
			||||||
 | 
					typedef struct PCIExpressDevice PCIExpressDevice;
 | 
				
			||||||
 | 
					typedef struct PCIBridge PCIBridge;
 | 
				
			||||||
 | 
					typedef struct PCIEAERMsg PCIEAERMsg;
 | 
				
			||||||
 | 
					typedef struct PCIEAERLog PCIEAERLog;
 | 
				
			||||||
 | 
					typedef struct PCIEAERErr PCIEAERErr;
 | 
				
			||||||
 | 
					typedef struct PCIEPort PCIEPort;
 | 
				
			||||||
 | 
					typedef struct PCIESlot PCIESlot;
 | 
				
			||||||
 | 
					typedef struct MSIMessage MSIMessage;
 | 
				
			||||||
 | 
					typedef struct SerialState SerialState;
 | 
				
			||||||
 | 
					typedef struct PCMCIACardState PCMCIACardState;
 | 
				
			||||||
 | 
					typedef struct MouseTransformInfo MouseTransformInfo;
 | 
				
			||||||
 | 
					typedef struct uWireSlave uWireSlave;
 | 
				
			||||||
 | 
					typedef struct I2SCodec I2SCodec;
 | 
				
			||||||
 | 
					typedef struct SSIBus SSIBus;
 | 
				
			||||||
 | 
					typedef struct EventNotifier EventNotifier;
 | 
				
			||||||
 | 
					typedef struct VirtIODevice VirtIODevice;
 | 
				
			||||||
 | 
					typedef struct QEMUSGList QEMUSGList;
 | 
				
			||||||
 | 
					typedef struct SHPCDevice SHPCDevice;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* QEMU_TYPEDEFS_H */
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user