From: Gonglei <arei.gong...@huawei.com>

Add a qom property with the same name 'bootindex',
when we remove it form qdev property, things will
continue to work just fine, and we can use qom features
which are not supported by qdev property.

Signed-off-by: Gonglei <arei.gong...@huawei.com>
---
 hw/net/vmxnet3.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
index e82ef94..a9ed593 100644
--- a/hw/net/vmxnet3.c
+++ b/hw/net/vmxnet3.c
@@ -2203,6 +2203,29 @@ static void vmxnet3_qdev_reset(DeviceState *dev)
     add_boot_device_path(s->conf.bootindex, dev, "/ethernet-phy@0");
 }
 
+static void vmxnet3_get_bootindex(Object *obj, Visitor *v, void *opaque,
+                                  const char *name, Error **errp)
+{
+    VMXNET3State *s = VMXNET3(obj);
+
+    get_bootindex(&s->conf.bootindex, v, name, errp);
+}
+
+static void vmxnet3_set_bootindex(Object *obj, Visitor *v, void *opaque,
+                                  const char *name, Error **errp)
+{
+    VMXNET3State *s = VMXNET3(obj);
+
+    set_bootindex(&s->conf.bootindex, v, name, errp);
+}
+
+static void vmxnet3_instance_init(Object *obj)
+{
+    object_property_add(obj, "bootindex", "int",
+                        vmxnet3_get_bootindex,
+                        vmxnet3_set_bootindex, NULL, NULL, NULL);
+}
+
 static bool vmxnet3_mc_list_needed(void *opaque)
 {
     return true;
@@ -2524,6 +2547,7 @@ static const TypeInfo vmxnet3_info = {
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(VMXNET3State),
     .class_init    = vmxnet3_class_init,
+    .instance_init = vmxnet3_instance_init,
 };
 
 static void vmxnet3_register_types(void)
-- 
1.7.12.4



Reply via email to