On Fri, Feb 06, 2015 at 01:41:26PM +0800, Tiejun Chen wrote: > Actually we define these device IDs in virtio standard, so > we'd better put them into one common place to manage conveniently. > Here I also add VIRTIO_ID_RESERVE according to virtio spec. > > Signed-off-by: Tiejun Chen <tiejun.c...@intel.com>
So I just posted a script that pulls in headers from a linux tree, doing minor changes required to make the headers portable, such as linux/types.h -> inttypes.h I think it's a better idea, a virtio 1.0 work will benefit from this too. > --- > hw/9pfs/virtio-9p.h | 2 -- > include/hw/virtio/virtio-balloon.h | 3 --- > include/hw/virtio/virtio-blk.h | 3 --- > include/hw/virtio/virtio-rng.h | 3 --- > include/hw/virtio/virtio-scsi.h | 3 --- > include/hw/virtio/virtio-serial.h | 3 --- > include/hw/virtio/virtio.h | 16 ++++++++++++++++ > pc-bios/s390-ccw/virtio.h | 8 +------- > 8 files changed, 17 insertions(+), 24 deletions(-) > > diff --git a/hw/9pfs/virtio-9p.h b/hw/9pfs/virtio-9p.h > index 2c3603a..228e05d 100644 > --- a/hw/9pfs/virtio-9p.h > +++ b/hw/9pfs/virtio-9p.h > @@ -146,8 +146,6 @@ struct V9fsPDU > > /* from Linux's linux/virtio_9p.h */ > > -/* The ID for virtio console */ > -#define VIRTIO_ID_9P 9 > #define MAX_REQ 128 > #define MAX_TAG_LEN 32 > > diff --git a/include/hw/virtio/virtio-balloon.h > b/include/hw/virtio/virtio-balloon.h > index f863bfe..6e0a775 100644 > --- a/include/hw/virtio/virtio-balloon.h > +++ b/include/hw/virtio/virtio-balloon.h > @@ -24,9 +24,6 @@ > > /* from Linux's linux/virtio_balloon.h */ > > -/* The ID for virtio_balloon */ > -#define VIRTIO_ID_BALLOON 5 > - > /* The feature bitmap for virtio balloon */ > #define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */ > #define VIRTIO_BALLOON_F_STATS_VQ 1 /* Memory stats virtqueue */ > diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h > index 4652b70..6ee3e8f 100644 > --- a/include/hw/virtio/virtio-blk.h > +++ b/include/hw/virtio/virtio-blk.h > @@ -25,9 +25,6 @@ > > /* from Linux's linux/virtio_blk.h */ > > -/* The ID for virtio_block */ > -#define VIRTIO_ID_BLOCK 2 > - > /* Feature bits */ > #define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */ > #define VIRTIO_BLK_F_SIZE_MAX 1 /* Indicates maximum segment size */ > diff --git a/include/hw/virtio/virtio-rng.h b/include/hw/virtio/virtio-rng.h > index 14e85a5..e2bb6ce 100644 > --- a/include/hw/virtio/virtio-rng.h > +++ b/include/hw/virtio/virtio-rng.h > @@ -21,9 +21,6 @@ > #define VIRTIO_RNG_GET_PARENT_CLASS(obj) \ > OBJECT_GET_PARENT_CLASS(obj, TYPE_VIRTIO_RNG) > > -/* The Virtio ID for the virtio rng device */ > -#define VIRTIO_ID_RNG 4 > - > struct VirtIORNGConf { > RngBackend *rng; > uint64_t max_bytes; > diff --git a/include/hw/virtio/virtio-scsi.h b/include/hw/virtio/virtio-scsi.h > index bf17cc9..9606f43 100644 > --- a/include/hw/virtio/virtio-scsi.h > +++ b/include/hw/virtio/virtio-scsi.h > @@ -29,9 +29,6 @@ > OBJECT_CHECK(VirtIOSCSI, (obj), TYPE_VIRTIO_SCSI) > > > -/* The ID for virtio_scsi */ > -#define VIRTIO_ID_SCSI 8 > - > /* Feature Bits */ > #define VIRTIO_SCSI_F_INOUT 0 > #define VIRTIO_SCSI_F_HOTPLUG 1 > diff --git a/include/hw/virtio/virtio-serial.h > b/include/hw/virtio/virtio-serial.h > index 11af978..1dcced6 100644 > --- a/include/hw/virtio/virtio-serial.h > +++ b/include/hw/virtio/virtio-serial.h > @@ -20,9 +20,6 @@ > > /* == Interface shared between the guest kernel and qemu == */ > > -/* The Virtio ID for virtio console / serial ports */ > -#define VIRTIO_ID_CONSOLE 3 > - > /* Features supported */ > #define VIRTIO_CONSOLE_F_MULTIPORT 1 > > diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h > index f24997d..9ad6bb2 100644 > --- a/include/hw/virtio/virtio.h > +++ b/include/hw/virtio/virtio.h > @@ -23,6 +23,22 @@ > #include "hw/virtio/virtio-9p.h" > #endif > > +/* Refer to Linux's linux/virtio_ids.h */ > + > +enum virtio_dev_type { > + VIRTIO_ID_RESERVED = 0, /* invalid virtio device */ > + VIRTIO_ID_NET = 1, /* virtio net */ > + VIRTIO_ID_BLOCK = 2, /* virtio block */ > + VIRTIO_ID_CONSOLE = 3, /* virtio console */ > + VIRTIO_ID_RNG = 4, /* virtio rng */ > + VIRTIO_ID_BALLOON = 5, /* virtio balloon */ > + VIRTIO_ID_RPMSG = 7, /* virtio remote processor messaging */ > + VIRTIO_ID_SCSI = 8, /* virtio scsi */ > + VIRTIO_ID_9P = 9, /* 9p virtio console */ > + VIRTIO_ID_RPROC_SERIAL = 11, /* virtio remoteproc serial link */ > + VIRTIO_ID_CAIF = 12, /* Virtio caif */ > +}; > + > /* from Linux's linux/virtio_config.h */ > > /* Status byte for guest to report progress, and synchronize features. */ > diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h > index c23466b..2eabcb4 100644 > --- a/pc-bios/s390-ccw/virtio.h > +++ b/pc-bios/s390-ccw/virtio.h > @@ -11,6 +11,7 @@ > #ifndef VIRTIO_H > #define VIRTIO_H > > +#include "hw/virtio/virtio.h" > #include "s390-ccw.h" > > /* Status byte for guest to report progress, and synchronize features. */ > @@ -23,13 +24,6 @@ > /* We've given up on this device. */ > #define VIRTIO_CONFIG_S_FAILED 0x80 > > -enum virtio_dev_type { > - VIRTIO_ID_NET = 1, > - VIRTIO_ID_BLOCK = 2, > - VIRTIO_ID_CONSOLE = 3, > - VIRTIO_ID_BALLOON = 5, > -}; > - > struct virtio_dev_header { > enum virtio_dev_type type : 8; > u8 num_vq; > -- > 1.9.1