On Tue, Oct 05, 2021 at 12:45:46PM -0400, Jonah Palmer wrote: > This patch drops the name parameter for the virtio_init function. > > The pair between the numeric device ID and the string device ID > (name) of a virtio device already exists, but not in a way that > let's us map between them.
s/let's/lets/ > > This patch will let us do this and removes the need for the name > parameter in virtio_init(). > > Signed-off-by: Jonah Palmer <jonah.pal...@oracle.com> > --- > +++ b/hw/virtio/virtio.c > @@ -133,6 +133,43 @@ struct VirtQueue > QLIST_ENTRY(VirtQueue) node; > }; > > +const char *virtio_device_names[] = { > + [VIRTIO_ID_NET] = "virtio-net", > + [VIRTIO_ID_BLOCK] = "virtio-blk", > + [VIRTIO_ID_CONSOLE] = "virtio-serial", > + [VIRTIO_ID_RNG] = "virtio-rng", > + [VIRTIO_ID_BALLOON] = "virtio-balloon", > + [VIRTIO_ID_IOMEM] = "virtio-iomem", > + [VIRTIO_ID_RPMSG] = "virtio-rpmsg", > + [VIRTIO_ID_SCSI] = "virtio-scsi", > + [VIRTIO_ID_9P] = "virtio-9p", > + [VIRTIO_ID_MAC80211_WLAN] = "virtio-mac-wlan", > + [VIRTIO_ID_RPROC_SERIAL] = "virtio-rproc-serial", > + [VIRTIO_ID_CAIF] = "virtio-caif", > + [VIRTIO_ID_MEMORY_BALLOON] = "virtio-mem-balloon", > + [VIRTIO_ID_GPU] = "virtio-gpu", > + [VIRTIO_ID_CLOCK] = "virtio-clk", > + [VIRTIO_ID_INPUT] = "virtio-input", > + [VIRTIO_ID_VSOCK] = "vhost-vsock", > + [VIRTIO_ID_CRYPTO] = "virtio-crypto", > + [VIRTIO_ID_SIGNAL_DIST] = "virtio-signal", > + [VIRTIO_ID_PSTORE] = "virtio-pstore", > + [VIRTIO_ID_IOMMU] = "virtio-iommu", > + [VIRTIO_ID_MEM] = "virtio-mem", > + [VIRTIO_ID_SOUND] = "virtio-sound", > + [VIRTIO_ID_FS] = "vhost-user-fs", > + [VIRTIO_ID_PMEM] = "virtio-pmem", > + [VIRTIO_ID_MAC80211_HWSIM] = "virtio-mac-hwsim", > + [VIRTIO_ID_I2C_ADAPTER] = "vhost-user-i2c", > + [VIRTIO_ID_BT] = "virtio-bluetooth" > +}; Are these IDs consecutive, or can the array have gaps? > + > +static const char *virtio_id_to_name(uint16_t device_id) > +{ > + assert(device_id < G_N_ELEMENTS(virtio_device_names)); > + return virtio_device_names[device_id]; If the latter, you may also want to assert that you aren't returning NULL. > +++ b/include/standard-headers/linux/virtio_ids.h > @@ -55,6 +55,7 @@ > #define VIRTIO_ID_FS 26 /* virtio filesystem */ > #define VIRTIO_ID_PMEM 27 /* virtio pmem */ > #define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */ > +#define VIRTIO_ID_I2C_ADAPTER 34 /* virtio I2C adapater */ > #define VIRTIO_ID_BT 40 /* virtio bluetooth */ And it looks like the array has gaps. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org