@@ -1685,6 +1685,22 @@ static void virtio_net_device_unrealize(DeviceState *dev, Error **errp)
virtio_cleanup(vdev);
}
+static void virtio_net_get_bootindex(Object *obj, Visitor *v, void *opaque,
+ const char *name, Error **errp)
+{
+ VirtIONet *n = VIRTIO_NET(obj);
+
+ get_bootindex(&n->nic_conf.bootindex, v, name, errp);
+}
+
+static void virtio_net_set_bootindex(Object *obj, Visitor *v, void *opaque,
+ const char *name, Error **errp)
+{
+ VirtIONet *n = VIRTIO_NET(obj);
+
+ set_bootindex(&n->nic_conf.bootindex, v, name, errp);
+}
+
static void virtio_net_instance_init(Object *obj)
{
VirtIONet *n = VIRTIO_NET(obj);
@@ -1694,6 +1710,10 @@ static void virtio_net_instance_init(Object *obj)
* Can be overriden with virtio_net_set_config_size.
*/
n->config_size = sizeof(struct virtio_net_config);
+
+ object_property_add(obj, "bootindex", "int",
+ virtio_net_get_bootindex,
+ virtio_net_set_bootindex, NULL, NULL, NULL);
}
static Property virtio_net_properties[] = {
@@ -1451,11 +1451,33 @@ static void virtio_net_pci_class_init(ObjectClass *klass, void *data)
vpciklass->init = virtio_net_pci_init;
}
+static void virtio_net_pci_get_bootindex(Object *obj, Visitor *v, void *opaque,
+ const char *name, Error **errp)
+{
+ VirtIONetPCI *dev = VIRTIO_NET_PCI(obj);
+ VirtIONet *n = &dev->vdev;
+
+ get_bootindex(&n->nic_conf.bootindex, v, name, errp);
+}
+
+static void virtio_net_pci_set_bootindex(Object *obj, Visitor *v, void *opaque,
+ const char *name, Error **errp)
+{
+ VirtIONetPCI *dev = VIRTIO_NET_PCI(obj);
+ VirtIONet *n = &dev->vdev;
+
+ set_bootindex(&n->nic_conf.bootindex, v, name, errp);
+}
+
static void virtio_net_pci_instance_init(Object *obj)
{
VirtIONetPCI *dev = VIRTIO_NET_PCI(obj);
object_initialize(&dev->vdev, sizeof(dev->vdev), TYPE_VIRTIO_NET);
object_property_add_child(obj, "virtio-backend", OBJECT(&dev->vdev), NULL);
+
+ object_property_add(obj, "bootindex", "int",
+ virtio_net_pci_get_bootindex,
+ virtio_net_pci_set_bootindex, NULL, NULL, NULL);
}
static const TypeInfo virtio_net_pci_info = {