فهرست منبع

pcnet: add bootindex to qom property

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.gonglei@huawei.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gonglei 11 سال پیش
والد
کامیت
ea3b3511cd
3فایلهای تغییر یافته به همراه24 افزوده شده و 1 حذف شده
  1. 12 0
      hw/net/lance.c
  2. 12 0
      hw/net/pcnet-pci.c
  3. 0 1
      hw/net/pcnet.h

+ 12 - 0
hw/net/lance.c

@@ -42,6 +42,7 @@
 #include "hw/sparc/sun4m.h"
 #include "hw/sparc/sun4m.h"
 #include "pcnet.h"
 #include "pcnet.h"
 #include "trace.h"
 #include "trace.h"
+#include "sysemu/sysemu.h"
 
 
 #define TYPE_LANCE "lance"
 #define TYPE_LANCE "lance"
 #define SYSBUS_PCNET(obj) \
 #define SYSBUS_PCNET(obj) \
@@ -143,6 +144,16 @@ static void lance_reset(DeviceState *dev)
     pcnet_h_reset(&d->state);
     pcnet_h_reset(&d->state);
 }
 }
 
 
+static void lance_instance_init(Object *obj)
+{
+    SysBusPCNetState *d = SYSBUS_PCNET(obj);
+    PCNetState *s = &d->state;
+
+    device_add_bootindex_property(obj, &s->conf.bootindex,
+                                  "bootindex", "/ethernet-phy@0",
+                                  DEVICE(obj), NULL);
+}
+
 static Property lance_properties[] = {
 static Property lance_properties[] = {
     DEFINE_PROP_PTR("dma", SysBusPCNetState, state.dma_opaque),
     DEFINE_PROP_PTR("dma", SysBusPCNetState, state.dma_opaque),
     DEFINE_NIC_PROPERTIES(SysBusPCNetState, state.conf),
     DEFINE_NIC_PROPERTIES(SysBusPCNetState, state.conf),
@@ -169,6 +180,7 @@ static const TypeInfo lance_info = {
     .parent        = TYPE_SYS_BUS_DEVICE,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(SysBusPCNetState),
     .instance_size = sizeof(SysBusPCNetState),
     .class_init    = lance_class_init,
     .class_init    = lance_class_init,
+    .instance_init = lance_instance_init,
 };
 };
 
 
 static void lance_register_types(void)
 static void lance_register_types(void)

+ 12 - 0
hw/net/pcnet-pci.c

@@ -32,6 +32,7 @@
 #include "hw/loader.h"
 #include "hw/loader.h"
 #include "qemu/timer.h"
 #include "qemu/timer.h"
 #include "sysemu/dma.h"
 #include "sysemu/dma.h"
+#include "sysemu/sysemu.h"
 
 
 #include "pcnet.h"
 #include "pcnet.h"
 
 
@@ -344,6 +345,16 @@ static void pci_reset(DeviceState *dev)
     pcnet_h_reset(&d->state);
     pcnet_h_reset(&d->state);
 }
 }
 
 
+static void pcnet_instance_init(Object *obj)
+{
+    PCIPCNetState *d = PCI_PCNET(obj);
+    PCNetState *s = &d->state;
+
+    device_add_bootindex_property(obj, &s->conf.bootindex,
+                                  "bootindex", "/ethernet-phy@0",
+                                  DEVICE(obj), NULL);
+}
+
 static Property pcnet_properties[] = {
 static Property pcnet_properties[] = {
     DEFINE_NIC_PROPERTIES(PCIPCNetState, state.conf),
     DEFINE_NIC_PROPERTIES(PCIPCNetState, state.conf),
     DEFINE_PROP_END_OF_LIST(),
     DEFINE_PROP_END_OF_LIST(),
@@ -372,6 +383,7 @@ static const TypeInfo pcnet_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIPCNetState),
     .instance_size = sizeof(PCIPCNetState),
     .class_init    = pcnet_class_init,
     .class_init    = pcnet_class_init,
+    .instance_init = pcnet_instance_init,
 };
 };
 
 
 static void pci_pcnet_register_types(void)
 static void pci_pcnet_register_types(void)

+ 0 - 1
hw/net/pcnet.h

@@ -66,5 +66,4 @@ void pcnet_set_link_status(NetClientState *nc);
 void pcnet_common_cleanup(PCNetState *d);
 void pcnet_common_cleanup(PCNetState *d);
 int pcnet_common_init(DeviceState *dev, PCNetState *s, NetClientInfo *info);
 int pcnet_common_init(DeviceState *dev, PCNetState *s, NetClientInfo *info);
 extern const VMStateDescription vmstate_pcnet;
 extern const VMStateDescription vmstate_pcnet;
-
 #endif
 #endif