lguest: Convert entropy device to virtio 1.0 PCI.
authorRusty Russell <rusty@rustcorp.com.au>
Wed, 11 Feb 2015 04:47:01 +0000 (15:17 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Wed, 11 Feb 2015 06:17:39 +0000 (16:47 +1030)
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
tools/lguest/lguest.c

index b6c88a1..842c82b 100644 (file)
@@ -71,7 +71,7 @@ typedef uint8_t u8;
 #include "../../include/uapi/linux/virtio_net.h"
 #include "../../include/uapi/linux/virtio_blk.h"
 #include <linux/virtio_console.h>
-#include <linux/virtio_rng.h>
+#include "../../include/uapi/linux/virtio_rng.h"
 #include <linux/virtio_ring.h>
 #include "../../include/uapi/linux/virtio_pci.h"
 #include <asm/bootparam.h>
@@ -2224,7 +2224,6 @@ static void init_pci_config(struct pci_config *pci, u16 type,
         *
         * eg :
         *  VIRTIO_ID_CONSOLE: class = 0x07, subclass = 0x00
-        *  VIRTIO_ID_RNG: class = 0xff, subclass = 0
         */
        pci->class = class;
        pci->subclass = subclass;
@@ -2816,13 +2815,16 @@ static void setup_rng(void)
        rng_info->rfd = open_or_die("/dev/urandom", O_RDONLY);
 
        /* Create the new device. */
-       dev = new_device("rng", VIRTIO_ID_RNG);
+       dev = new_pci_device("rng", VIRTIO_ID_RNG, 0xff, 0);
        dev->priv = rng_info;
 
        /* The device has one virtqueue, where the Guest places inbufs. */
-       add_virtqueue(dev, VIRTQUEUE_NUM, rng_input);
+       add_pci_virtqueue(dev, rng_input);
 
-       verbose("device %u: rng\n", devices.device_num++);
+       /* We don't have any configuration space */
+       no_device_config(dev);
+
+       verbose("device %u: rng\n", devices.device_num);
 }
 /* That's the end of device setup. */