Commit 7cb7434b1e4aee549b55536208abe56e35159763
1 parent
676cff29
Add qemu_format_nic_info_str() (Mark McLoughlin)
Factor out a simple little function for formatting a NIC's info_str and make all NICs use it. Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6218 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
9 changed files
with
26 additions
and
59 deletions
hw/e1000.c
| ... | ... | @@ -1074,10 +1074,7 @@ pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn) |
| 1074 | 1074 | d->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
| 1075 | 1075 | e1000_receive, e1000_can_receive, d); |
| 1076 | 1076 | |
| 1077 | - snprintf(d->vc->info_str, sizeof(d->vc->info_str), | |
| 1078 | - "%s macaddr=%02x:%02x:%02x:%02x:%02x:%02x", info_str, | |
| 1079 | - d->nd->macaddr[0], d->nd->macaddr[1], d->nd->macaddr[2], | |
| 1080 | - d->nd->macaddr[3], d->nd->macaddr[4], d->nd->macaddr[5]); | |
| 1077 | + qemu_format_nic_info_str(d->vc, d->nd->macaddr); | |
| 1081 | 1078 | |
| 1082 | 1079 | register_savevm(info_str, -1, 2, nic_save, nic_load, d); |
| 1083 | 1080 | } | ... | ... |
hw/eepro100.c
| ... | ... | @@ -1779,11 +1779,7 @@ static void nic_init(PCIBus * bus, NICInfo * nd, |
| 1779 | 1779 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
| 1780 | 1780 | nic_receive, nic_can_receive, s); |
| 1781 | 1781 | |
| 1782 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | |
| 1783 | - "eepro100 pci macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | |
| 1784 | - s->macaddr[0], | |
| 1785 | - s->macaddr[1], | |
| 1786 | - s->macaddr[2], s->macaddr[3], s->macaddr[4], s->macaddr[5]); | |
| 1782 | + qemu_format_nic_info_str(s->vc, s->macaddr); | |
| 1787 | 1783 | |
| 1788 | 1784 | qemu_register_reset(nic_reset, s); |
| 1789 | 1785 | ... | ... |
hw/mipsnet.c
| ... | ... | @@ -256,14 +256,7 @@ void mipsnet_init (int base, qemu_irq irq, NICInfo *nd) |
| 256 | 256 | s->vc = NULL; |
| 257 | 257 | } |
| 258 | 258 | |
| 259 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | |
| 260 | - "mipsnet macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | |
| 261 | - s->nd->macaddr[0], | |
| 262 | - s->nd->macaddr[1], | |
| 263 | - s->nd->macaddr[2], | |
| 264 | - s->nd->macaddr[3], | |
| 265 | - s->nd->macaddr[4], | |
| 266 | - s->nd->macaddr[5]); | |
| 259 | + qemu_format_nic_info_str(s->vc, s->nd->macaddr); | |
| 267 | 260 | |
| 268 | 261 | mipsnet_reset(s); |
| 269 | 262 | register_savevm("mipsnet", 0, 0, mipsnet_save, mipsnet_load, s); | ... | ... |
hw/ne2000.c
| ... | ... | @@ -744,14 +744,7 @@ void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd) |
| 744 | 744 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
| 745 | 745 | ne2000_receive, ne2000_can_receive, s); |
| 746 | 746 | |
| 747 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | |
| 748 | - "ne2000 macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | |
| 749 | - s->macaddr[0], | |
| 750 | - s->macaddr[1], | |
| 751 | - s->macaddr[2], | |
| 752 | - s->macaddr[3], | |
| 753 | - s->macaddr[4], | |
| 754 | - s->macaddr[5]); | |
| 747 | + qemu_format_nic_info_str(s->vc, s->macaddr); | |
| 755 | 748 | |
| 756 | 749 | register_savevm("ne2000", -1, 2, ne2000_save, ne2000_load, s); |
| 757 | 750 | } |
| ... | ... | @@ -814,14 +807,7 @@ void pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn) |
| 814 | 807 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
| 815 | 808 | ne2000_receive, ne2000_can_receive, s); |
| 816 | 809 | |
| 817 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | |
| 818 | - "ne2000 pci macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | |
| 819 | - s->macaddr[0], | |
| 820 | - s->macaddr[1], | |
| 821 | - s->macaddr[2], | |
| 822 | - s->macaddr[3], | |
| 823 | - s->macaddr[4], | |
| 824 | - s->macaddr[5]); | |
| 810 | + qemu_format_nic_info_str(s->vc, s->macaddr); | |
| 825 | 811 | |
| 826 | 812 | register_savevm("ne2000", -1, 3, ne2000_save, ne2000_load, s); |
| 827 | 813 | } | ... | ... |
hw/pcnet.c
| ... | ... | @@ -1939,14 +1939,7 @@ static void pcnet_common_init(PCNetState *d, NICInfo *nd, const char *info_str) |
| 1939 | 1939 | d->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
| 1940 | 1940 | pcnet_receive, pcnet_can_receive, d); |
| 1941 | 1941 | |
| 1942 | - snprintf(d->vc->info_str, sizeof(d->vc->info_str), | |
| 1943 | - "pcnet macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | |
| 1944 | - d->nd->macaddr[0], | |
| 1945 | - d->nd->macaddr[1], | |
| 1946 | - d->nd->macaddr[2], | |
| 1947 | - d->nd->macaddr[3], | |
| 1948 | - d->nd->macaddr[4], | |
| 1949 | - d->nd->macaddr[5]); | |
| 1942 | + qemu_format_nic_info_str(d->vc, d->nd->macaddr); | |
| 1950 | 1943 | } else { |
| 1951 | 1944 | d->vc = NULL; |
| 1952 | 1945 | } | ... | ... |
hw/rtl8139.c
| ... | ... | @@ -3441,14 +3441,7 @@ void pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int devfn) |
| 3441 | 3441 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
| 3442 | 3442 | rtl8139_receive, rtl8139_can_receive, s); |
| 3443 | 3443 | |
| 3444 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | |
| 3445 | - "rtl8139 pci macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | |
| 3446 | - s->macaddr[0], | |
| 3447 | - s->macaddr[1], | |
| 3448 | - s->macaddr[2], | |
| 3449 | - s->macaddr[3], | |
| 3450 | - s->macaddr[4], | |
| 3451 | - s->macaddr[5]); | |
| 3444 | + qemu_format_nic_info_str(s->vc, s->macaddr); | |
| 3452 | 3445 | |
| 3453 | 3446 | s->cplus_txbuffer = NULL; |
| 3454 | 3447 | s->cplus_txbuffer_len = 0; | ... | ... |
hw/usb-net.c
| ... | ... | @@ -1456,14 +1456,12 @@ USBDevice *usb_net_init(NICInfo *nd) |
| 1456 | 1456 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
| 1457 | 1457 | usbnet_receive, usbnet_can_receive, s); |
| 1458 | 1458 | |
| 1459 | + qemu_format_nic_info_str(s->vc, s->mac); | |
| 1460 | + | |
| 1459 | 1461 | snprintf(s->usbstring_mac, sizeof(s->usbstring_mac), |
| 1460 | 1462 | "%02x%02x%02x%02x%02x%02x", |
| 1461 | 1463 | 0x40, s->mac[1], s->mac[2], |
| 1462 | 1464 | s->mac[3], s->mac[4], s->mac[5]); |
| 1463 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | |
| 1464 | - "usbnet macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | |
| 1465 | - s->mac[0], s->mac[1], s->mac[2], | |
| 1466 | - s->mac[3], s->mac[4], s->mac[5]); | |
| 1467 | 1465 | fprintf(stderr, "usbnet: initialized mac %02x:%02x:%02x:%02x:%02x:%02x\n", |
| 1468 | 1466 | s->mac[0], s->mac[1], s->mac[2], |
| 1469 | 1467 | s->mac[3], s->mac[4], s->mac[5]); | ... | ... |
net.c
| ... | ... | @@ -296,6 +296,14 @@ static int parse_unix_path(struct sockaddr_un *uaddr, const char *str) |
| 296 | 296 | } |
| 297 | 297 | #endif |
| 298 | 298 | |
| 299 | +void qemu_format_nic_info_str(VLANClientState *vc, uint8_t macaddr[6]) | |
| 300 | +{ | |
| 301 | + snprintf(vc->info_str, sizeof(vc->info_str), | |
| 302 | + "macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | |
| 303 | + macaddr[0], macaddr[1], macaddr[2], | |
| 304 | + macaddr[3], macaddr[4], macaddr[5]); | |
| 305 | +} | |
| 306 | + | |
| 299 | 307 | static char *assign_name(VLANClientState *vc1, const char *model) |
| 300 | 308 | { |
| 301 | 309 | VLANState *vlan; |
| ... | ... | @@ -474,7 +482,7 @@ static int net_slirp_init(VLANState *vlan, const char *model) |
| 474 | 482 | } |
| 475 | 483 | slirp_vc = qemu_new_vlan_client(vlan, model, |
| 476 | 484 | slirp_receive, NULL, NULL); |
| 477 | - snprintf(slirp_vc->info_str, sizeof(slirp_vc->info_str), "user redirector"); | |
| 485 | + slirp_vc->info_str[0] = '\0'; | |
| 478 | 486 | return 0; |
| 479 | 487 | } |
| 480 | 488 | |
| ... | ... | @@ -699,7 +707,7 @@ static TAPState *net_tap_fd_init(VLANState *vlan, const char *model, int fd) |
| 699 | 707 | s->vc->fd_readv = tap_receive_iov; |
| 700 | 708 | #endif |
| 701 | 709 | qemu_set_fd_handler(s->fd, tap_send, NULL, s); |
| 702 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), "tap: fd=%d", fd); | |
| 710 | + snprintf(s->vc->info_str, sizeof(s->vc->info_str), "fd=%d", fd); | |
| 703 | 711 | return s; |
| 704 | 712 | } |
| 705 | 713 | |
| ... | ... | @@ -954,7 +962,8 @@ static int net_tap_init(VLANState *vlan, const char *model, const char *ifname1, |
| 954 | 962 | if (!s) |
| 955 | 963 | return -1; |
| 956 | 964 | snprintf(s->vc->info_str, sizeof(s->vc->info_str), |
| 957 | - "tap: ifname=%s setup_script=%s", ifname, setup_script); | |
| 965 | + "ifname=%s,script=%s,downscript=%s", | |
| 966 | + ifname, setup_script, down_script); | |
| 958 | 967 | if (down_script && strcmp(down_script, "no")) |
| 959 | 968 | snprintf(s->down_script, sizeof(s->down_script), "%s", down_script); |
| 960 | 969 | return 0; |
| ... | ... | @@ -1016,7 +1025,7 @@ static int net_vde_init(VLANState *vlan, const char *model, const char *sock, |
| 1016 | 1025 | } |
| 1017 | 1026 | s->vc = qemu_new_vlan_client(vlan, model, vde_from_qemu, NULL, s); |
| 1018 | 1027 | qemu_set_fd_handler(vde_datafd(s->vde), vde_to_qemu, NULL, s); |
| 1019 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), "vde: sock=%s fd=%d", | |
| 1028 | + snprintf(s->vc->info_str, sizeof(s->vc->info_str), "sock=%s,fd=%d", | |
| 1020 | 1029 | sock, vde_datafd(s->vde)); |
| 1021 | 1030 | return 0; |
| 1022 | 1031 | } |
| ... | ... | @@ -1639,7 +1648,7 @@ void do_info_network(void) |
| 1639 | 1648 | for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { |
| 1640 | 1649 | term_printf("VLAN %d devices:\n", vlan->id); |
| 1641 | 1650 | for(vc = vlan->first_client; vc != NULL; vc = vc->next) |
| 1642 | - term_printf(" %s\n", vc->info_str); | |
| 1651 | + term_printf(" %s: %s\n", vc->name, vc->info_str); | |
| 1643 | 1652 | } |
| 1644 | 1653 | } |
| 1645 | 1654 | |
| ... | ... | @@ -1657,7 +1666,8 @@ void net_cleanup(void) |
| 1657 | 1666 | char ifname[64]; |
| 1658 | 1667 | TAPState *s = vc->opaque; |
| 1659 | 1668 | |
| 1660 | - if (sscanf(vc->info_str, "tap: ifname=%63s ", ifname) == 1 && | |
| 1669 | + if (strcmp(vc->model, "tap") == 0 && | |
| 1670 | + sscanf(vc->info_str, "ifname=%63s ", ifname) == 1 && | |
| 1661 | 1671 | s->down_script[0]) |
| 1662 | 1672 | launch_script(s->down_script, ifname, s->fd); |
| 1663 | 1673 | } | ... | ... |
net.h
| ... | ... | @@ -41,6 +41,7 @@ int qemu_can_send_packet(VLANClientState *vc); |
| 41 | 41 | ssize_t qemu_sendv_packet(VLANClientState *vc, const struct iovec *iov, |
| 42 | 42 | int iovcnt); |
| 43 | 43 | void qemu_send_packet(VLANClientState *vc, const uint8_t *buf, int size); |
| 44 | +void qemu_format_nic_info_str(VLANClientState *vc, uint8_t macaddr[6]); | |
| 44 | 45 | void qemu_handler_true(void *opaque); |
| 45 | 46 | |
| 46 | 47 | void do_info_network(void); | ... | ... |