On 10/5/21 5:18 PM, Eric Blake wrote: > 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 >> --- >> +++ 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. Gotcha, will do! Jonah > >> +++ 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. >