aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2009-07-15 13:43:35 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2009-07-16 17:28:53 -0500
commiteb54b6dcb8c6795c3667bcf1cb142639a36fdf85 (patch)
tree8b19ec6fb83e0a896164206f8a00811730a9f5a6
parentab73ff29ceb785aad3fc182e09d702ccee2e5559 (diff)
qdev: add id= support for pci nics.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--hw/pci.c2
-rw-r--r--net.c5
-rw-r--r--net.h1
3 files changed, 7 insertions, 1 deletions
diff --git a/hw/pci.c b/hw/pci.c
index b3856e72ab..0d51714257 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -822,6 +822,8 @@ PCIDevice *pci_nic_init(NICInfo *nd, const char *default_model,
if (strcmp(nd->model, pci_nic_models[i]) == 0) {
pci_dev = pci_create(pci_nic_names[i], devaddr);
dev = &pci_dev->qdev;
+ if (nd->id)
+ dev->id = qemu_strdup(nd->id);
dev->nd = nd;
qdev_init(dev);
nd->private = dev;
diff --git a/net.c b/net.c
index a0c4153680..90cf912378 100644
--- a/net.c
+++ b/net.c
@@ -2428,7 +2428,7 @@ int net_client_init(Monitor *mon, const char *device, const char *p)
}
if (!strcmp(device, "nic")) {
static const char * const nic_params[] = {
- "vlan", "name", "macaddr", "model", "addr", "vectors", NULL
+ "vlan", "name", "macaddr", "model", "addr", "id", "vectors", NULL
};
NICInfo *nd;
uint8_t *macaddr;
@@ -2466,6 +2466,9 @@ int net_client_init(Monitor *mon, const char *device, const char *p)
if (get_param_value(buf, sizeof(buf), "addr", p)) {
nd->devaddr = strdup(buf);
}
+ if (get_param_value(buf, sizeof(buf), "id", p)) {
+ nd->id = strdup(buf);
+ }
nd->nvectors = NIC_NVECTORS_UNSPECIFIED;
if (get_param_value(buf, sizeof(buf), "vectors", p)) {
char *endptr;
diff --git a/net.h b/net.h
index 6026e10361..188fa395e4 100644
--- a/net.h
+++ b/net.h
@@ -95,6 +95,7 @@ struct NICInfo {
const char *model;
const char *name;
const char *devaddr;
+ const char *id;
VLANState *vlan;
VLANClientState *vc;
void *private;