mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
Move QOM typedefs and add missing includes
Some typedefs and macros are defined after the type check macros. This makes it difficult to automatically replace their definitions with OBJECT_DECLARE_TYPE. Patch generated using: $ ./scripts/codeconverter/converter.py -i \ --pattern=QOMStructTypedefSplit $(git grep -l '' -- '*.[ch]') which will split "typdef struct { ... } TypedefName" declarations. Followed by: $ ./scripts/codeconverter/converter.py -i --pattern=MoveSymbols \ $(git grep -l '' -- '*.[ch]') which will: - move the typedefs and #defines above the type check macros - add missing #include "qom/object.h" lines if necessary Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Message-Id: <20200831210740.126168-9-ehabkost@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Message-Id: <20200831210740.126168-10-ehabkost@redhat.com> Message-Id: <20200831210740.126168-11-ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
1c8eef0227
commit
db1015e92e
796 changed files with 3378 additions and 1823 deletions
|
@ -17,12 +17,14 @@
|
|||
#include "hw/virtio/virtio-scsi.h"
|
||||
#include "hw/virtio/vhost.h"
|
||||
#include "hw/fw-path-provider.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VHOST_SCSI_COMMON "vhost-scsi-common"
|
||||
typedef struct VHostSCSICommon VHostSCSICommon;
|
||||
#define VHOST_SCSI_COMMON(obj) \
|
||||
OBJECT_CHECK(VHostSCSICommon, (obj), TYPE_VHOST_SCSI_COMMON)
|
||||
|
||||
typedef struct VHostSCSICommon {
|
||||
struct VHostSCSICommon {
|
||||
VirtIOSCSICommon parent_obj;
|
||||
|
||||
Error *migration_blocker;
|
||||
|
@ -35,7 +37,7 @@ typedef struct VHostSCSICommon {
|
|||
int lun;
|
||||
uint64_t host_features;
|
||||
bool migratable;
|
||||
} VHostSCSICommon;
|
||||
};
|
||||
|
||||
int vhost_scsi_common_start(VHostSCSICommon *vsc);
|
||||
void vhost_scsi_common_stop(VHostSCSICommon *vsc);
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "hw/virtio/virtio-scsi.h"
|
||||
#include "hw/virtio/vhost.h"
|
||||
#include "hw/virtio/vhost-scsi-common.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
enum vhost_scsi_vq_list {
|
||||
VHOST_SCSI_VQ_CONTROL = 0,
|
||||
|
@ -25,11 +26,12 @@ enum vhost_scsi_vq_list {
|
|||
};
|
||||
|
||||
#define TYPE_VHOST_SCSI "vhost-scsi"
|
||||
typedef struct VHostSCSI VHostSCSI;
|
||||
#define VHOST_SCSI(obj) \
|
||||
OBJECT_CHECK(VHostSCSI, (obj), TYPE_VHOST_SCSI)
|
||||
|
||||
typedef struct VHostSCSI {
|
||||
struct VHostSCSI {
|
||||
VHostSCSICommon parent_obj;
|
||||
} VHostSCSI;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -20,14 +20,16 @@
|
|||
#include "chardev/char-fe.h"
|
||||
#include "hw/virtio/vhost.h"
|
||||
#include "hw/virtio/vhost-user.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VHOST_USER_BLK "vhost-user-blk"
|
||||
typedef struct VHostUserBlk VHostUserBlk;
|
||||
#define VHOST_USER_BLK(obj) \
|
||||
OBJECT_CHECK(VHostUserBlk, (obj), TYPE_VHOST_USER_BLK)
|
||||
|
||||
#define VHOST_USER_BLK_AUTO_NUM_QUEUES UINT16_MAX
|
||||
|
||||
typedef struct VHostUserBlk {
|
||||
struct VHostUserBlk {
|
||||
VirtIODevice parent_obj;
|
||||
CharBackend chardev;
|
||||
int32_t bootindex;
|
||||
|
@ -41,6 +43,6 @@ typedef struct VHostUserBlk {
|
|||
struct vhost_virtqueue *vhost_vqs;
|
||||
VirtQueue **virtqs;
|
||||
bool connected;
|
||||
} VHostUserBlk;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -18,8 +18,10 @@
|
|||
#include "hw/virtio/vhost.h"
|
||||
#include "hw/virtio/vhost-user.h"
|
||||
#include "chardev/char-fe.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VHOST_USER_FS "vhost-user-fs-device"
|
||||
typedef struct VHostUserFS VHostUserFS;
|
||||
#define VHOST_USER_FS(obj) \
|
||||
OBJECT_CHECK(VHostUserFS, (obj), TYPE_VHOST_USER_FS)
|
||||
|
||||
|
@ -30,7 +32,7 @@ typedef struct {
|
|||
uint16_t queue_size;
|
||||
} VHostUserFSConf;
|
||||
|
||||
typedef struct {
|
||||
struct VHostUserFS {
|
||||
/*< private >*/
|
||||
VirtIODevice parent;
|
||||
VHostUserFSConf conf;
|
||||
|
@ -41,6 +43,6 @@ typedef struct {
|
|||
VirtQueue *hiprio_vq;
|
||||
|
||||
/*< public >*/
|
||||
} VHostUserFS;
|
||||
};
|
||||
|
||||
#endif /* _QEMU_VHOST_USER_FS_H */
|
||||
|
|
|
@ -21,14 +21,16 @@
|
|||
#include "hw/virtio/vhost.h"
|
||||
#include "hw/virtio/vhost-user.h"
|
||||
#include "hw/virtio/vhost-scsi-common.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VHOST_USER_SCSI "vhost-user-scsi"
|
||||
typedef struct VHostUserSCSI VHostUserSCSI;
|
||||
#define VHOST_USER_SCSI(obj) \
|
||||
OBJECT_CHECK(VHostUserSCSI, (obj), TYPE_VHOST_USER_SCSI)
|
||||
|
||||
typedef struct VHostUserSCSI {
|
||||
struct VHostUserSCSI {
|
||||
VHostSCSICommon parent_obj;
|
||||
VhostUserState vhost_user;
|
||||
} VHostUserSCSI;
|
||||
};
|
||||
|
||||
#endif /* VHOST_USER_SCSI_H */
|
||||
|
|
|
@ -14,8 +14,10 @@
|
|||
#include "hw/virtio/vhost-vsock-common.h"
|
||||
#include "hw/virtio/vhost-user.h"
|
||||
#include "standard-headers/linux/virtio_vsock.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VHOST_USER_VSOCK "vhost-user-vsock-device"
|
||||
typedef struct VHostUserVSock VHostUserVSock;
|
||||
#define VHOST_USER_VSOCK(obj) \
|
||||
OBJECT_CHECK(VHostUserVSock, (obj), TYPE_VHOST_USER_VSOCK)
|
||||
|
||||
|
@ -23,7 +25,7 @@ typedef struct {
|
|||
CharBackend chardev;
|
||||
} VHostUserVSockConf;
|
||||
|
||||
typedef struct {
|
||||
struct VHostUserVSock {
|
||||
/*< private >*/
|
||||
VHostVSockCommon parent;
|
||||
VhostUserState vhost_user;
|
||||
|
@ -31,6 +33,6 @@ typedef struct {
|
|||
struct virtio_vsock_config vsockcfg;
|
||||
|
||||
/*< public >*/
|
||||
} VHostUserVSock;
|
||||
};
|
||||
|
||||
#endif /* _QEMU_VHOST_USER_VSOCK_H */
|
||||
|
|
|
@ -13,8 +13,10 @@
|
|||
|
||||
#include "hw/virtio/virtio.h"
|
||||
#include "hw/virtio/vhost.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VHOST_VSOCK_COMMON "vhost-vsock-common"
|
||||
typedef struct VHostVSockCommon VHostVSockCommon;
|
||||
#define VHOST_VSOCK_COMMON(obj) \
|
||||
OBJECT_CHECK(VHostVSockCommon, (obj), TYPE_VHOST_VSOCK_COMMON)
|
||||
|
||||
|
@ -24,7 +26,7 @@ enum {
|
|||
VHOST_VSOCK_QUEUE_SIZE = 128,
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
struct VHostVSockCommon {
|
||||
VirtIODevice parent;
|
||||
|
||||
struct vhost_virtqueue vhost_vqs[2];
|
||||
|
@ -35,7 +37,7 @@ typedef struct {
|
|||
VirtQueue *trans_vq;
|
||||
|
||||
QEMUTimer *post_load_timer;
|
||||
} VHostVSockCommon;
|
||||
};
|
||||
|
||||
int vhost_vsock_common_start(VirtIODevice *vdev);
|
||||
void vhost_vsock_common_stop(VirtIODevice *vdev);
|
||||
|
|
|
@ -15,8 +15,10 @@
|
|||
#define QEMU_VHOST_VSOCK_H
|
||||
|
||||
#include "hw/virtio/vhost-vsock-common.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VHOST_VSOCK "vhost-vsock-device"
|
||||
typedef struct VHostVSock VHostVSock;
|
||||
#define VHOST_VSOCK(obj) \
|
||||
OBJECT_CHECK(VHostVSock, (obj), TYPE_VHOST_VSOCK)
|
||||
|
||||
|
@ -25,12 +27,12 @@ typedef struct {
|
|||
char *vhostfd;
|
||||
} VHostVSockConf;
|
||||
|
||||
typedef struct {
|
||||
struct VHostVSock {
|
||||
/*< private >*/
|
||||
VHostVSockCommon parent;
|
||||
VHostVSockConf conf;
|
||||
|
||||
/*< public >*/
|
||||
} VHostVSock;
|
||||
};
|
||||
|
||||
#endif /* QEMU_VHOST_VSOCK_H */
|
||||
|
|
|
@ -18,8 +18,10 @@
|
|||
#include "standard-headers/linux/virtio_balloon.h"
|
||||
#include "hw/virtio/virtio.h"
|
||||
#include "sysemu/iothread.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VIRTIO_BALLOON "virtio-balloon-device"
|
||||
typedef struct VirtIOBalloon VirtIOBalloon;
|
||||
#define VIRTIO_BALLOON(obj) \
|
||||
OBJECT_CHECK(VirtIOBalloon, (obj), TYPE_VIRTIO_BALLOON)
|
||||
|
||||
|
@ -40,7 +42,7 @@ enum virtio_balloon_free_page_hint_status {
|
|||
FREE_PAGE_HINT_S_DONE = 3,
|
||||
};
|
||||
|
||||
typedef struct VirtIOBalloon {
|
||||
struct VirtIOBalloon {
|
||||
VirtIODevice parent_obj;
|
||||
VirtQueue *ivq, *dvq, *svq, *free_page_vq, *reporting_vq;
|
||||
uint32_t free_page_hint_status;
|
||||
|
@ -71,6 +73,6 @@ typedef struct VirtIOBalloon {
|
|||
|
||||
bool qemu_4_0_config_size;
|
||||
uint32_t poison_val;
|
||||
} VirtIOBalloon;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -19,8 +19,10 @@
|
|||
#include "hw/block/block.h"
|
||||
#include "sysemu/iothread.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VIRTIO_BLK "virtio-blk-device"
|
||||
typedef struct VirtIOBlock VirtIOBlock;
|
||||
#define VIRTIO_BLK(obj) \
|
||||
OBJECT_CHECK(VirtIOBlock, (obj), TYPE_VIRTIO_BLK)
|
||||
|
||||
|
@ -49,7 +51,7 @@ struct VirtIOBlkConf
|
|||
struct VirtIOBlockDataPlane;
|
||||
|
||||
struct VirtIOBlockReq;
|
||||
typedef struct VirtIOBlock {
|
||||
struct VirtIOBlock {
|
||||
VirtIODevice parent_obj;
|
||||
BlockBackend *blk;
|
||||
void *rq;
|
||||
|
@ -63,7 +65,7 @@ typedef struct VirtIOBlock {
|
|||
struct VirtIOBlockDataPlane *dataplane;
|
||||
uint64_t host_features;
|
||||
size_t config_size;
|
||||
} VirtIOBlock;
|
||||
};
|
||||
|
||||
typedef struct VirtIOBlockReq {
|
||||
VirtQueueElement elem;
|
||||
|
|
|
@ -27,17 +27,19 @@
|
|||
|
||||
#include "hw/qdev-core.h"
|
||||
#include "hw/virtio/virtio.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VIRTIO_BUS "virtio-bus"
|
||||
typedef struct VirtioBusClass VirtioBusClass;
|
||||
typedef struct VirtioBusState VirtioBusState;
|
||||
#define VIRTIO_BUS_GET_CLASS(obj) \
|
||||
OBJECT_GET_CLASS(VirtioBusClass, obj, TYPE_VIRTIO_BUS)
|
||||
#define VIRTIO_BUS_CLASS(klass) \
|
||||
OBJECT_CLASS_CHECK(VirtioBusClass, klass, TYPE_VIRTIO_BUS)
|
||||
#define VIRTIO_BUS(obj) OBJECT_CHECK(VirtioBusState, (obj), TYPE_VIRTIO_BUS)
|
||||
|
||||
typedef struct VirtioBusState VirtioBusState;
|
||||
|
||||
typedef struct VirtioBusClass {
|
||||
struct VirtioBusClass {
|
||||
/* This is what a VirtioBus must implement */
|
||||
BusClass parent;
|
||||
void (*notify)(DeviceState *d, uint16_t vector);
|
||||
|
@ -94,7 +96,7 @@ typedef struct VirtioBusClass {
|
|||
*/
|
||||
bool has_variable_vring_alignment;
|
||||
AddressSpace *(*get_dma_as)(DeviceState *d);
|
||||
} VirtioBusClass;
|
||||
};
|
||||
|
||||
struct VirtioBusState {
|
||||
BusState parent_obj;
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include "hw/virtio/virtio.h"
|
||||
#include "sysemu/iothread.h"
|
||||
#include "sysemu/cryptodev.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
|
||||
#define DEBUG_VIRTIO_CRYPTO 0
|
||||
|
@ -31,6 +32,7 @@ do { \
|
|||
|
||||
|
||||
#define TYPE_VIRTIO_CRYPTO "virtio-crypto-device"
|
||||
typedef struct VirtIOCrypto VirtIOCrypto;
|
||||
#define VIRTIO_CRYPTO(obj) \
|
||||
OBJECT_CHECK(VirtIOCrypto, (obj), TYPE_VIRTIO_CRYPTO)
|
||||
#define VIRTIO_CRYPTO_GET_PARENT_CLASS(obj) \
|
||||
|
@ -82,7 +84,7 @@ typedef struct VirtIOCryptoQueue {
|
|||
struct VirtIOCrypto *vcrypto;
|
||||
} VirtIOCryptoQueue;
|
||||
|
||||
typedef struct VirtIOCrypto {
|
||||
struct VirtIOCrypto {
|
||||
VirtIODevice parent_obj;
|
||||
|
||||
VirtQueue *ctrl_vq;
|
||||
|
@ -97,6 +99,6 @@ typedef struct VirtIOCrypto {
|
|||
uint32_t curr_queues;
|
||||
size_t config_size;
|
||||
uint8_t vhost_started;
|
||||
} VirtIOCrypto;
|
||||
};
|
||||
|
||||
#endif /* QEMU_VIRTIO_CRYPTO_H */
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#include "hw/virtio/virtio-pci.h"
|
||||
#include "hw/virtio/virtio-gpu.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
typedef struct VirtIOGPUPCIBase VirtIOGPUPCIBase;
|
||||
|
||||
|
|
|
@ -22,8 +22,11 @@
|
|||
#include "sysemu/vhost-user-backend.h"
|
||||
|
||||
#include "standard-headers/linux/virtio_gpu.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VIRTIO_GPU_BASE "virtio-gpu-base"
|
||||
typedef struct VirtIOGPUBase VirtIOGPUBase;
|
||||
typedef struct VirtIOGPUBaseClass VirtIOGPUBaseClass;
|
||||
#define VIRTIO_GPU_BASE(obj) \
|
||||
OBJECT_CHECK(VirtIOGPUBase, (obj), TYPE_VIRTIO_GPU_BASE)
|
||||
#define VIRTIO_GPU_BASE_GET_CLASS(obj) \
|
||||
|
@ -32,10 +35,12 @@
|
|||
OBJECT_CLASS_CHECK(VirtIOGPUBaseClass, klass, TYPE_VIRTIO_GPU_BASE)
|
||||
|
||||
#define TYPE_VIRTIO_GPU "virtio-gpu-device"
|
||||
typedef struct VirtIOGPU VirtIOGPU;
|
||||
#define VIRTIO_GPU(obj) \
|
||||
OBJECT_CHECK(VirtIOGPU, (obj), TYPE_VIRTIO_GPU)
|
||||
|
||||
#define TYPE_VHOST_USER_GPU "vhost-user-gpu"
|
||||
typedef struct VhostUserGPU VhostUserGPU;
|
||||
#define VHOST_USER_GPU(obj) \
|
||||
OBJECT_CHECK(VhostUserGPU, (obj), TYPE_VHOST_USER_GPU)
|
||||
|
||||
|
@ -100,7 +105,7 @@ struct virtio_gpu_ctrl_command {
|
|||
QTAILQ_ENTRY(virtio_gpu_ctrl_command) next;
|
||||
};
|
||||
|
||||
typedef struct VirtIOGPUBase {
|
||||
struct VirtIOGPUBase {
|
||||
VirtIODevice parent_obj;
|
||||
|
||||
Error *migration_blocker;
|
||||
|
@ -116,13 +121,13 @@ typedef struct VirtIOGPUBase {
|
|||
|
||||
int enabled_output_bitmask;
|
||||
struct virtio_gpu_requested_state req_state[VIRTIO_GPU_MAX_SCANOUTS];
|
||||
} VirtIOGPUBase;
|
||||
};
|
||||
|
||||
typedef struct VirtIOGPUBaseClass {
|
||||
struct VirtIOGPUBaseClass {
|
||||
VirtioDeviceClass parent;
|
||||
|
||||
void (*gl_unblock)(VirtIOGPUBase *g);
|
||||
} VirtIOGPUBaseClass;
|
||||
};
|
||||
|
||||
#define VIRTIO_GPU_BASE_PROPERTIES(_state, _conf) \
|
||||
DEFINE_PROP_UINT32("max_outputs", _state, _conf.max_outputs, 1), \
|
||||
|
@ -131,7 +136,7 @@ typedef struct VirtIOGPUBaseClass {
|
|||
DEFINE_PROP_UINT32("xres", _state, _conf.xres, 1024), \
|
||||
DEFINE_PROP_UINT32("yres", _state, _conf.yres, 768)
|
||||
|
||||
typedef struct VirtIOGPU {
|
||||
struct VirtIOGPU {
|
||||
VirtIOGPUBase parent_obj;
|
||||
|
||||
uint64_t conf_max_hostmem;
|
||||
|
@ -160,9 +165,9 @@ typedef struct VirtIOGPU {
|
|||
uint32_t req_3d;
|
||||
uint32_t bytes_3d;
|
||||
} stats;
|
||||
} VirtIOGPU;
|
||||
};
|
||||
|
||||
typedef struct VhostUserGPU {
|
||||
struct VhostUserGPU {
|
||||
VirtIOGPUBase parent_obj;
|
||||
|
||||
VhostUserBackend *vhost;
|
||||
|
@ -170,7 +175,7 @@ typedef struct VhostUserGPU {
|
|||
CharBackend vhost_chr;
|
||||
QemuDmaBuf dmabuf[VIRTIO_GPU_MAX_SCANOUTS];
|
||||
bool backend_blocked;
|
||||
} VhostUserGPU;
|
||||
};
|
||||
|
||||
extern const GraphicHwOps virtio_gpu_ops;
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#include "standard-headers/linux/virtio_ids.h"
|
||||
#include "standard-headers/linux/virtio_input.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
typedef struct virtio_input_absinfo virtio_input_absinfo;
|
||||
typedef struct virtio_input_config virtio_input_config;
|
||||
|
@ -18,6 +19,8 @@ typedef struct virtio_input_event virtio_input_event;
|
|||
/* qemu internals */
|
||||
|
||||
#define TYPE_VIRTIO_INPUT "virtio-input-device"
|
||||
typedef struct VirtIOInput VirtIOInput;
|
||||
typedef struct VirtIOInputClass VirtIOInputClass;
|
||||
#define VIRTIO_INPUT(obj) \
|
||||
OBJECT_CHECK(VirtIOInput, (obj), TYPE_VIRTIO_INPUT)
|
||||
#define VIRTIO_INPUT_GET_PARENT_CLASS(obj) \
|
||||
|
@ -32,29 +35,27 @@ typedef struct virtio_input_event virtio_input_event;
|
|||
#define TYPE_VIRTIO_MOUSE "virtio-mouse-device"
|
||||
#define TYPE_VIRTIO_TABLET "virtio-tablet-device"
|
||||
|
||||
typedef struct VirtIOInputHID VirtIOInputHID;
|
||||
#define VIRTIO_INPUT_HID(obj) \
|
||||
OBJECT_CHECK(VirtIOInputHID, (obj), TYPE_VIRTIO_INPUT_HID)
|
||||
#define VIRTIO_INPUT_HID_GET_PARENT_CLASS(obj) \
|
||||
OBJECT_GET_PARENT_CLASS(obj, TYPE_VIRTIO_INPUT_HID)
|
||||
|
||||
#define TYPE_VIRTIO_INPUT_HOST "virtio-input-host-device"
|
||||
typedef struct VirtIOInputHost VirtIOInputHost;
|
||||
#define VIRTIO_INPUT_HOST(obj) \
|
||||
OBJECT_CHECK(VirtIOInputHost, (obj), TYPE_VIRTIO_INPUT_HOST)
|
||||
#define VIRTIO_INPUT_HOST_GET_PARENT_CLASS(obj) \
|
||||
OBJECT_GET_PARENT_CLASS(obj, TYPE_VIRTIO_INPUT_HOST)
|
||||
|
||||
#define TYPE_VHOST_USER_INPUT "vhost-user-input"
|
||||
typedef struct VHostUserInput VHostUserInput;
|
||||
#define VHOST_USER_INPUT(obj) \
|
||||
OBJECT_CHECK(VHostUserInput, (obj), TYPE_VHOST_USER_INPUT)
|
||||
#define VHOST_USER_INPUT_GET_PARENT_CLASS(obj) \
|
||||
OBJECT_GET_PARENT_CLASS(obj, TYPE_VHOST_USER_INPUT)
|
||||
|
||||
typedef struct VirtIOInput VirtIOInput;
|
||||
typedef struct VirtIOInputClass VirtIOInputClass;
|
||||
typedef struct VirtIOInputConfig VirtIOInputConfig;
|
||||
typedef struct VirtIOInputHID VirtIOInputHID;
|
||||
typedef struct VirtIOInputHost VirtIOInputHost;
|
||||
typedef struct VHostUserInput VHostUserInput;
|
||||
|
||||
struct VirtIOInputConfig {
|
||||
virtio_input_config config;
|
||||
|
|
|
@ -23,9 +23,11 @@
|
|||
#include "standard-headers/linux/virtio_iommu.h"
|
||||
#include "hw/virtio/virtio.h"
|
||||
#include "hw/pci/pci.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VIRTIO_IOMMU "virtio-iommu-device"
|
||||
#define TYPE_VIRTIO_IOMMU_PCI "virtio-iommu-device-base"
|
||||
typedef struct VirtIOIOMMU VirtIOIOMMU;
|
||||
#define VIRTIO_IOMMU(obj) \
|
||||
OBJECT_CHECK(VirtIOIOMMU, (obj), TYPE_VIRTIO_IOMMU)
|
||||
|
||||
|
@ -44,7 +46,7 @@ typedef struct IOMMUPciBus {
|
|||
IOMMUDevice *pbdev[]; /* Parent array is sparse, so dynamically alloc */
|
||||
} IOMMUPciBus;
|
||||
|
||||
typedef struct VirtIOIOMMU {
|
||||
struct VirtIOIOMMU {
|
||||
VirtIODevice parent_obj;
|
||||
VirtQueue *req_vq;
|
||||
VirtQueue *event_vq;
|
||||
|
@ -58,6 +60,6 @@ typedef struct VirtIOIOMMU {
|
|||
GTree *domains;
|
||||
QemuMutex mutex;
|
||||
GTree *endpoints;
|
||||
} VirtIOIOMMU;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -17,9 +17,12 @@
|
|||
#include "hw/virtio/virtio.h"
|
||||
#include "qapi/qapi-types-misc.h"
|
||||
#include "sysemu/hostmem.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VIRTIO_MEM "virtio-mem"
|
||||
|
||||
typedef struct VirtIOMEM VirtIOMEM;
|
||||
typedef struct VirtIOMEMClass VirtIOMEMClass;
|
||||
#define VIRTIO_MEM(obj) \
|
||||
OBJECT_CHECK(VirtIOMEM, (obj), TYPE_VIRTIO_MEM)
|
||||
#define VIRTIO_MEM_CLASS(oc) \
|
||||
|
@ -34,7 +37,7 @@
|
|||
#define VIRTIO_MEM_BLOCK_SIZE_PROP "block-size"
|
||||
#define VIRTIO_MEM_ADDR_PROP "memaddr"
|
||||
|
||||
typedef struct VirtIOMEM {
|
||||
struct VirtIOMEM {
|
||||
VirtIODevice parent_obj;
|
||||
|
||||
/* guest -> host request queue */
|
||||
|
@ -70,9 +73,9 @@ typedef struct VirtIOMEM {
|
|||
|
||||
/* don't migrate unplugged memory */
|
||||
NotifierWithReturn precopy_notifier;
|
||||
} VirtIOMEM;
|
||||
};
|
||||
|
||||
typedef struct VirtIOMEMClass {
|
||||
struct VirtIOMEMClass {
|
||||
/* private */
|
||||
VirtIODevice parent;
|
||||
|
||||
|
@ -81,6 +84,6 @@ typedef struct VirtIOMEMClass {
|
|||
MemoryRegion *(*get_memory_region)(VirtIOMEM *vmem, Error **errp);
|
||||
void (*add_size_change_notifier)(VirtIOMEM *vmem, Notifier *notifier);
|
||||
void (*remove_size_change_notifier)(VirtIOMEM *vmem, Notifier *notifier);
|
||||
} VirtIOMEMClass;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#define HW_VIRTIO_MMIO_H
|
||||
|
||||
#include "hw/virtio/virtio-bus.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
/* QOM macros */
|
||||
/* virtio-mmio-bus */
|
||||
|
@ -36,6 +37,7 @@
|
|||
|
||||
/* virtio-mmio */
|
||||
#define TYPE_VIRTIO_MMIO "virtio-mmio"
|
||||
typedef struct VirtIOMMIOProxy VirtIOMMIOProxy;
|
||||
#define VIRTIO_MMIO(obj) \
|
||||
OBJECT_CHECK(VirtIOMMIOProxy, (obj), TYPE_VIRTIO_MMIO)
|
||||
|
||||
|
@ -52,7 +54,7 @@ typedef struct VirtIOMMIOQueue {
|
|||
uint32_t used[2];
|
||||
} VirtIOMMIOQueue;
|
||||
|
||||
typedef struct {
|
||||
struct VirtIOMMIOProxy {
|
||||
/* Generic */
|
||||
SysBusDevice parent_obj;
|
||||
MemoryRegion iomem;
|
||||
|
@ -68,6 +70,6 @@ typedef struct {
|
|||
/* Fields only used for non-legacy (v2) devices */
|
||||
uint32_t guest_features[2];
|
||||
VirtIOMMIOQueue vqs[VIRTIO_QUEUE_MAX];
|
||||
} VirtIOMMIOProxy;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -19,8 +19,10 @@
|
|||
#include "hw/virtio/virtio.h"
|
||||
#include "net/announce.h"
|
||||
#include "qemu/option_int.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VIRTIO_NET "virtio-net-device"
|
||||
typedef struct VirtIONet VirtIONet;
|
||||
#define VIRTIO_NET(obj) \
|
||||
OBJECT_CHECK(VirtIONet, (obj), TYPE_VIRTIO_NET)
|
||||
|
||||
|
@ -109,7 +111,6 @@ typedef struct VirtioNetRscSeg {
|
|||
NetClientState *nc;
|
||||
} VirtioNetRscSeg;
|
||||
|
||||
typedef struct VirtIONet VirtIONet;
|
||||
|
||||
/* Chain is divided by protocol(ipv4/v6) and NetClientInfo */
|
||||
typedef struct VirtioNetRscChain {
|
||||
|
|
|
@ -16,9 +16,12 @@
|
|||
|
||||
#include "hw/virtio/virtio.h"
|
||||
#include "qapi/qapi-types-misc.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VIRTIO_PMEM "virtio-pmem"
|
||||
|
||||
typedef struct VirtIOPMEM VirtIOPMEM;
|
||||
typedef struct VirtIOPMEMClass VirtIOPMEMClass;
|
||||
#define VIRTIO_PMEM(obj) \
|
||||
OBJECT_CHECK(VirtIOPMEM, (obj), TYPE_VIRTIO_PMEM)
|
||||
#define VIRTIO_PMEM_CLASS(oc) \
|
||||
|
@ -29,21 +32,21 @@
|
|||
#define VIRTIO_PMEM_ADDR_PROP "memaddr"
|
||||
#define VIRTIO_PMEM_MEMDEV_PROP "memdev"
|
||||
|
||||
typedef struct VirtIOPMEM {
|
||||
struct VirtIOPMEM {
|
||||
VirtIODevice parent_obj;
|
||||
|
||||
VirtQueue *rq_vq;
|
||||
uint64_t start;
|
||||
HostMemoryBackend *memdev;
|
||||
} VirtIOPMEM;
|
||||
};
|
||||
|
||||
typedef struct VirtIOPMEMClass {
|
||||
struct VirtIOPMEMClass {
|
||||
/* private */
|
||||
VirtIODevice parent;
|
||||
|
||||
/* public */
|
||||
void (*fill_device_info)(const VirtIOPMEM *pmem, VirtioPMEMDeviceInfo *vi);
|
||||
MemoryRegion *(*get_memory_region)(VirtIOPMEM *pmem, Error **errp);
|
||||
} VirtIOPMEMClass;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -15,8 +15,10 @@
|
|||
#include "hw/virtio/virtio.h"
|
||||
#include "sysemu/rng.h"
|
||||
#include "standard-headers/linux/virtio_rng.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_VIRTIO_RNG "virtio-rng-device"
|
||||
typedef struct VirtIORNG VirtIORNG;
|
||||
#define VIRTIO_RNG(obj) \
|
||||
OBJECT_CHECK(VirtIORNG, (obj), TYPE_VIRTIO_RNG)
|
||||
#define VIRTIO_RNG_GET_PARENT_CLASS(obj) \
|
||||
|
@ -28,7 +30,7 @@ struct VirtIORNGConf {
|
|||
uint32_t period_ms;
|
||||
};
|
||||
|
||||
typedef struct VirtIORNG {
|
||||
struct VirtIORNG {
|
||||
VirtIODevice parent_obj;
|
||||
|
||||
/* Only one vq - guest puts buffer(s) on it when it needs entropy */
|
||||
|
@ -46,6 +48,6 @@ typedef struct VirtIORNG {
|
|||
bool activate_timer;
|
||||
|
||||
VMChangeStateEntry *vmstate;
|
||||
} VirtIORNG;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
#ifndef QEMU_VIRTIO_SCSI_H
|
||||
#define QEMU_VIRTIO_SCSI_H
|
||||
#include "qom/object.h"
|
||||
|
||||
/* Override CDB/sense data size: they are dynamic (guest controlled) in QEMU */
|
||||
#define VIRTIO_SCSI_CDB_SIZE 0
|
||||
|
@ -25,10 +26,12 @@
|
|||
#include "sysemu/iothread.h"
|
||||
|
||||
#define TYPE_VIRTIO_SCSI_COMMON "virtio-scsi-common"
|
||||
typedef struct VirtIOSCSICommon VirtIOSCSICommon;
|
||||
#define VIRTIO_SCSI_COMMON(obj) \
|
||||
OBJECT_CHECK(VirtIOSCSICommon, (obj), TYPE_VIRTIO_SCSI_COMMON)
|
||||
|
||||
#define TYPE_VIRTIO_SCSI "virtio-scsi-device"
|
||||
typedef struct VirtIOSCSI VirtIOSCSI;
|
||||
#define VIRTIO_SCSI(obj) \
|
||||
OBJECT_CHECK(VirtIOSCSI, (obj), TYPE_VIRTIO_SCSI)
|
||||
|
||||
|
@ -67,7 +70,7 @@ struct VirtIOSCSIConf {
|
|||
|
||||
struct VirtIOSCSI;
|
||||
|
||||
typedef struct VirtIOSCSICommon {
|
||||
struct VirtIOSCSICommon {
|
||||
VirtIODevice parent_obj;
|
||||
VirtIOSCSIConf conf;
|
||||
|
||||
|
@ -76,9 +79,9 @@ typedef struct VirtIOSCSICommon {
|
|||
VirtQueue *ctrl_vq;
|
||||
VirtQueue *event_vq;
|
||||
VirtQueue **cmd_vqs;
|
||||
} VirtIOSCSICommon;
|
||||
};
|
||||
|
||||
typedef struct VirtIOSCSI {
|
||||
struct VirtIOSCSI {
|
||||
VirtIOSCSICommon parent_obj;
|
||||
|
||||
SCSIBus bus;
|
||||
|
@ -93,7 +96,7 @@ typedef struct VirtIOSCSI {
|
|||
bool dataplane_stopping;
|
||||
bool dataplane_fenced;
|
||||
uint32_t host_features;
|
||||
} VirtIOSCSI;
|
||||
};
|
||||
|
||||
typedef struct VirtIOSCSIReq {
|
||||
/* Note:
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
#include "standard-headers/linux/virtio_console.h"
|
||||
#include "hw/virtio/virtio.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
struct virtio_serial_conf {
|
||||
/* Max. number of ports we can have for a virtio-serial device */
|
||||
|
@ -25,6 +26,8 @@ struct virtio_serial_conf {
|
|||
};
|
||||
|
||||
#define TYPE_VIRTIO_SERIAL_PORT "virtio-serial-port"
|
||||
typedef struct VirtIOSerialPort VirtIOSerialPort;
|
||||
typedef struct VirtIOSerialPortClass VirtIOSerialPortClass;
|
||||
#define VIRTIO_SERIAL_PORT(obj) \
|
||||
OBJECT_CHECK(VirtIOSerialPort, (obj), TYPE_VIRTIO_SERIAL_PORT)
|
||||
#define VIRTIO_SERIAL_PORT_CLASS(klass) \
|
||||
|
@ -39,9 +42,8 @@ typedef struct VirtIOSerialBus VirtIOSerialBus;
|
|||
#define VIRTIO_SERIAL_BUS(obj) \
|
||||
OBJECT_CHECK(VirtIOSerialBus, (obj), TYPE_VIRTIO_SERIAL_BUS)
|
||||
|
||||
typedef struct VirtIOSerialPort VirtIOSerialPort;
|
||||
|
||||
typedef struct VirtIOSerialPortClass {
|
||||
struct VirtIOSerialPortClass {
|
||||
DeviceClass parent_class;
|
||||
|
||||
/* Is this a device that binds with hvc in the guest? */
|
||||
|
@ -86,7 +88,7 @@ typedef struct VirtIOSerialPortClass {
|
|||
*/
|
||||
ssize_t (*have_data)(VirtIOSerialPort *port, const uint8_t *buf,
|
||||
ssize_t len);
|
||||
} VirtIOSerialPortClass;
|
||||
};
|
||||
|
||||
/*
|
||||
* This is the state that's shared between all the ports. Some of the
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "qemu/event_notifier.h"
|
||||
#include "standard-headers/linux/virtio_config.h"
|
||||
#include "standard-headers/linux/virtio_ring.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
/* A guest should never accept this. It implies negotiation is broken. */
|
||||
#define VIRTIO_F_BAD_FEATURE 30
|
||||
|
@ -67,6 +68,7 @@ typedef struct VirtQueueElement
|
|||
#define VIRTIO_NO_VECTOR 0xffff
|
||||
|
||||
#define TYPE_VIRTIO_DEVICE "virtio-device"
|
||||
typedef struct VirtioDeviceClass VirtioDeviceClass;
|
||||
#define VIRTIO_DEVICE_GET_CLASS(obj) \
|
||||
OBJECT_GET_CLASS(VirtioDeviceClass, obj, TYPE_VIRTIO_DEVICE)
|
||||
#define VIRTIO_DEVICE_CLASS(klass) \
|
||||
|
@ -113,7 +115,7 @@ struct VirtIODevice
|
|||
QLIST_HEAD(, VirtQueue) *vector_queues;
|
||||
};
|
||||
|
||||
typedef struct VirtioDeviceClass {
|
||||
struct VirtioDeviceClass {
|
||||
/*< private >*/
|
||||
DeviceClass parent;
|
||||
/*< public >*/
|
||||
|
@ -163,7 +165,7 @@ typedef struct VirtioDeviceClass {
|
|||
int (*post_load)(VirtIODevice *vdev);
|
||||
const VMStateDescription *vmsd;
|
||||
bool (*primary_unplug_pending)(void *opaque);
|
||||
} VirtioDeviceClass;
|
||||
};
|
||||
|
||||
void virtio_instance_init_common(Object *proxy_obj, void *data,
|
||||
size_t vdev_size, const char *vdev_name);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue