[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [6595] qemu: dynamic nic info index allocation (Marcelo Tos
From: |
Anthony Liguori |
Subject: |
[Qemu-devel] [6595] qemu: dynamic nic info index allocation (Marcelo Tosatti) |
Date: |
Wed, 11 Feb 2009 15:20:07 +0000 |
Revision: 6595
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6595
Author: aliguori
Date: 2009-02-11 15:20:03 +0000 (Wed, 11 Feb 2009)
Log Message:
-----------
qemu: dynamic nic info index allocation (Marcelo Tosatti)
Dynamically allocate nic info index, so to reuse indexes when devices are
removed.
Signed-off-by: Marcelo Tosatti <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>
Modified Paths:
--------------
trunk/net.c
trunk/net.h
Modified: trunk/net.c
===================================================================
--- trunk/net.c 2009-02-11 15:19:58 UTC (rev 6594)
+++ trunk/net.c 2009-02-11 15:20:03 UTC (rev 6595)
@@ -1501,6 +1501,16 @@
return vlan;
}
+static int nic_get_free_idx(void)
+{
+ int index;
+
+ for (index = 0; index < MAX_NICS; index++)
+ if (!nd_table[index].used)
+ return index;
+ return -1;
+}
+
void qemu_check_nic_model(NICInfo *nd, const char *model)
{
const char *models[2];
@@ -1557,19 +1567,20 @@
if (!strcmp(device, "nic")) {
NICInfo *nd;
uint8_t *macaddr;
+ int idx = nic_get_free_idx();
- if (nb_nics >= MAX_NICS) {
+ if (idx == -1 || nb_nics >= MAX_NICS) {
fprintf(stderr, "Too Many NICs\n");
return -1;
}
- nd = &nd_table[nb_nics];
+ nd = &nd_table[idx];
macaddr = nd->macaddr;
macaddr[0] = 0x52;
macaddr[1] = 0x54;
macaddr[2] = 0x00;
macaddr[3] = 0x12;
macaddr[4] = 0x34;
- macaddr[5] = 0x56 + nb_nics;
+ macaddr[5] = 0x56 + idx;
if (get_param_value(buf, sizeof(buf), "macaddr", p)) {
if (parse_macaddr(macaddr, buf) < 0) {
@@ -1582,6 +1593,7 @@
}
nd->vlan = vlan;
nd->name = name;
+ nd->used = 1;
name = NULL;
nb_nics++;
vlan->nb_guest_devs++;
Modified: trunk/net.h
===================================================================
--- trunk/net.h 2009-02-11 15:19:58 UTC (rev 6594)
+++ trunk/net.h 2009-02-11 15:20:03 UTC (rev 6595)
@@ -65,6 +65,7 @@
const char *name;
VLANState *vlan;
void *private;
+ int used;
};
extern int nb_nics;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [6595] qemu: dynamic nic info index allocation (Marcelo Tosatti),
Anthony Liguori <=