提交 702c651c 编写于 作者: B bellard

added -macaddr option

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@697 c046a42c-6fe2-441c-8c8c-71466251a162
上级 1154e441
master openEuler-20.03-LTS openEuler-20.09 openEuler-RISCV stable-0.10 stable-0.11 stable-0.12 stable-0.13 stable-0.14 stable-0.15 stable-1.0 stable-1.1 stable-1.2 stable-1.3 stable-1.4 stable-1.5 stable-1.6 stable-1.7 stable-2.0 stable-2.1 stable-2.10 stable-2.11 stable-2.12 stable-2.2 stable-2.3 stable-2.4 stable-2.5 stable-2.6 stable-2.7 stable-2.8 stable-2.9 stable-3.0 stable-3.1 stable-4.0 stable-4.1 stable-4.2 staging v5.1.0-rc2 v5.1.0-rc1 v5.1.0-rc0 v5.0.0 v5.0.0-rc4 v5.0.0-rc3 v5.0.0-rc2 v5.0.0-rc1 v5.0.0-rc0 v4.2.1 v4.2.0 v4.2.0-rc5 v4.2.0-rc4 v4.2.0-rc3 v4.2.0-rc2 v4.2.0-rc1 v4.2.0-rc0 v4.1.1 v4.1.0 v4.1.0-rc5 v4.1.0-rc4 v4.1.0-rc3 v4.1.0-rc2 v4.1.0-rc1 v4.1.0-rc0 v4.0.1 v4.0.0 v4.0.0-rc4 v4.0.0-rc3 v4.0.0-rc2 v4.0.0-rc1 v4.0.0-rc0 v3.1.1.1 v3.1.1 v3.1.0 v3.1.0-rc5 v3.1.0-rc4 v3.1.0-rc3 v3.1.0-rc2 v3.1.0-rc1 v3.1.0-rc0 v3.0.1 v3.0.0 v3.0.0-rc4 v3.0.0-rc3 v3.0.0-rc2 v3.0.0-rc1 v3.0.0-rc0 v2.12.1 v2.12.0 v2.12.0-rc4 v2.12.0-rc3 v2.12.0-rc2 v2.12.0-rc1 v2.12.0-rc0 v2.11.2 v2.11.1 v2.11.0 v2.11.0-rc5 v2.11.0-rc4 v2.11.0-rc3 v2.11.0-rc2 v2.11.0-rc1 v2.11.0-rc0 v2.10.2 v2.10.1 v2.10.0 v2.10.0-rc4 v2.10.0-rc3 v2.10.0-rc2 v2.10.0-rc1 v2.10.0-rc0 v2.9.1 v2.9.0 v2.9.0-rc5 v2.9.0-rc4 v2.9.0-rc3 v2.9.0-rc2 v2.9.0-rc1 v2.9.0-rc0 v2.8.1.1 v2.8.1 v2.8.0 v2.8.0-rc4 v2.8.0-rc3 v2.8.0-rc2 v2.8.0-rc1 v2.8.0-rc0 v2.7.1 v2.7.0 v2.7.0-rc5 v2.7.0-rc4 v2.7.0-rc3 v2.7.0-rc2 v2.7.0-rc1 v2.7.0-rc0 v2.6.2 v2.6.1 v2.6.0 v2.6.0-rc5 v2.6.0-rc4 v2.6.0-rc3 v2.6.0-rc2 v2.6.0-rc1 v2.6.0-rc0 v2.5.1.1 v2.5.1 v2.5.0 v2.5.0-rc4 v2.5.0-rc3 v2.5.0-rc2 v2.5.0-rc1 v2.5.0-rc0 v2.4.1 v2.4.0.1 v2.4.0 v2.4.0-rc4 v2.4.0-rc3 v2.4.0-rc2 v2.4.0-rc1 v2.4.0-rc0 v2.3.1 v2.3.0 v2.3.0-rc4 v2.3.0-rc3 v2.3.0-rc2 v2.3.0-rc1 v2.3.0-rc0 v2.2.1 v2.2.0 v2.2.0-rc5 v2.2.0-rc4 v2.2.0-rc3 v2.2.0-rc2 v2.2.0-rc1 v2.2.0-rc0 v2.1.3 v2.1.2 v2.1.1 v2.1.0 v2.1.0-rc5 v2.1.0-rc4 v2.1.0-rc3 v2.1.0-rc2 v2.1.0-rc1 v2.1.0-rc0 v2.0.2 v2.0.1 v2.0.0 v2.0.0-rc3 v2.0.0-rc2 v2.0.0-rc1 v2.0.0-rc0 v1.7.2 v1.7.1 v1.7.0 v1.7.0-rc2 v1.7.0-rc1 v1.7.0-rc0 v1.6.2 v1.6.1 v1.6.0 v1.6.0-rc3 v1.6.0-rc2 v1.6.0-rc1 v1.6.0-rc0 v1.5.3 v1.5.2 v1.5.1 v1.5.0 v1.5.0-rc3 v1.5.0-rc2 v1.5.0-rc1 v1.5.0-rc0 v1.4.2 v1.4.1 v1.4.0 v1.4.0-rc2 v1.4.0-rc1 v1.4.0-rc0 v1.3.1 v1.3.0 v1.3.0-rc2 v1.3.0-rc1 v1.3.0-rc0 v1.2.2 v1.2.1 v1.2.0 v1.2.0-rc3 v1.2.0-rc2 v1.2.0-rc1 v1.2.0-rc0 v1.1.2 v1.1.1 v1.1.0 v1.1.0-rc4 v1.1.0-rc3 v1.1.0-rc2 v1.1-rc2 v1.1-rc1 v1.1-rc0 v1.0.1 v1.0 v1.0-rc4 v1.0-rc3 v1.0-rc2 v1.0-rc1 v1.0-rc0 v0.15.1 v0.15.0 v0.15.0-rc2 v0.15.0-rc1 v0.15.0-rc0 v0.14.1 v0.14.0 v0.14.0-rc2 v0.14.0-rc1 v0.14.0-rc0 v0.13.0 v0.13.0-rc3 v0.13.0-rc2 v0.13.0-rc1 v0.13.0-rc0 v0.12.5 v0.12.4 v0.12.3 v0.12.2 v0.12.1 v0.12.0 v0.12.0-rc2 v0.12.0-rc1 v0.12.0-rc0 v0.11.1 v0.11.0 v0.11.0-rc2 v0.11.0-rc1 v0.11.0-rc0 v0.10.6 v0.10.5 v0.10.4 v0.10.3 v0.10.2 v0.10.1 v0.10.0 v0.9.1 v0.9.0 v0.8.2 v0.8.1 v0.7.1 v0.7.0 v0.6.1 v0.6.0 release_0_10_2 release_0_10_1 release_0_10_0 release_0_9_1 release_0_9_0 release_0_8_2 release_0_8_1 release_0_7_1 release_0_7_0 release_0_6_1 release_0_6_0
无相关合并请求
......@@ -1600,6 +1600,7 @@ void help(void)
"Network options:\n"
"-n script set network init script [default=%s]\n"
"-nics n simulate 'n' network interfaces [default=1]\n"
"-macaddr addr set the mac address of the first interface\n"
"-tun-fd fd0[,...] use these fds as already opened tap/tun interfaces\n"
"\n"
"Linux boot specific:\n"
......@@ -1655,6 +1656,7 @@ struct option long_options[] = {
{ "fdb", 1, NULL, 0, },
{ "no-code-copy", 0, NULL, 0 },
{ "nics", 1, NULL, 0 },
{ "macaddr", 1, NULL, 0 },
{ NULL, 0, NULL, 0 },
};
......@@ -1692,6 +1694,7 @@ int main(int argc, char **argv)
const char *kernel_filename, *kernel_cmdline;
DisplayState *ds = &display_state;
int cyls, heads, secs;
uint8_t macaddr[6];
#if !defined(CONFIG_SOFTMMU)
/* we never want that malloc() uses mmap() */
......@@ -1717,17 +1720,13 @@ int main(int argc, char **argv)
cyls = heads = secs = 0;
nb_nics = 1;
for(i = 0; i < MAX_NICS; i++) {
NetDriverState *nd = &nd_table[i];
nd->fd = -1;
/* init virtual mac address */
nd->macaddr[0] = 0x52;
nd->macaddr[1] = 0x54;
nd->macaddr[2] = 0x00;
nd->macaddr[3] = 0x12;
nd->macaddr[4] = 0x34;
nd->macaddr[5] = 0x56 + i;
}
/* default mac address of the first network interface */
macaddr[0] = 0x52;
macaddr[1] = 0x54;
macaddr[2] = 0x00;
macaddr[3] = 0x12;
macaddr[4] = 0x34;
macaddr[5] = 0x56;
for(;;) {
c = getopt_long_only(argc, argv, "hm:d:n:sp:L:", long_options, &long_index);
......@@ -1835,6 +1834,27 @@ int main(int argc, char **argv)
exit(1);
}
break;
case 17:
{
const char *p;
int i;
p = optarg;
for(i = 0; i < 6; i++) {
macaddr[i] = strtol(p, (char **)&p, 16);
if (i == 5) {
if (*p != '\0')
goto macaddr_error;
} else {
if (*p != ':') {
macaddr_error:
fprintf(stderr, "qemu: invalid syntax for ethernet address\n");
exit(1);
}
p++;
}
}
}
break;
}
break;
case 'h':
......@@ -1912,6 +1932,17 @@ int main(int argc, char **argv)
#endif
/* init host network redirectors */
for(i = 0; i < MAX_NICS; i++) {
NetDriverState *nd = &nd_table[i];
nd->fd = -1;
/* init virtual mac address */
nd->macaddr[0] = macaddr[0];
nd->macaddr[1] = macaddr[1];
nd->macaddr[2] = macaddr[2];
nd->macaddr[3] = macaddr[3];
nd->macaddr[4] = macaddr[4];
nd->macaddr[5] = macaddr[5] + i;
}
net_init();
/* init the memory */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部