- case SIOCSIFMAP:
- if (umove(tcp, tcp->u_arg[2], &ifr) < 0)
- tprintf(", %#lx", tcp->u_arg[2]);
- else if (syserror(tcp)) {
- if (code == SIOCGIFNAME || code == SIOCSIFNAME)
- tprintf(", {ifr_index=%d, ifr_name=???}", ifr.ifr_ifindex);
- else
- tprintf(", {ifr_name=\"%s\", ???}", ifr.ifr_name);
- } else if (code == SIOCGIFNAME || code == SIOCSIFNAME)
- tprintf(", {ifr_index=%d, ifr_name=\"%s\"}",
- ifr.ifr_ifindex, ifr.ifr_name);
- else {
- tprintf(", {ifr_name=\"%s\", ", ifr.ifr_name);
- switch (code) {
- case SIOCGIFINDEX:
- tprintf("ifr_index=%d", ifr.ifr_ifindex);
- break;
- case SIOCGIFADDR:
- case SIOCSIFADDR:
- str = "ifr_addr";
- case SIOCGIFDSTADDR:
- case SIOCSIFDSTADDR:
- if (!str)
- str = "ifr_dstaddr";
- case SIOCGIFBRDADDR:
- case SIOCSIFBRDADDR:
- if (!str)
- str = "ifr_broadaddr";
- case SIOCGIFNETMASK:
- case SIOCSIFNETMASK:
- if (!str)
- str = "ifr_netmask";
- tprintf("%s={", str);
- printxval(addrfams,
- ifr.ifr_addr.sa_family,
- "AF_???");
- tprintf(", ");
- print_addr(tcp, ((long) tcp->u_arg[2]
- + offsetof (struct ifreq,
- ifr_addr.sa_data)),
- &ifr);
- tprintf("}");
- break;
- case SIOCGIFHWADDR:
- case SIOCSIFHWADDR:
- /* XXX Are there other hardware addresses
- than 6-byte MACs? */
- bytes = (unsigned char *) &ifr.ifr_hwaddr.sa_data;
- tprintf("ifr_hwaddr=%02x:%02x:%02x:%02x:%02x:%02x",
- bytes[0], bytes[1], bytes[2],
- bytes[3], bytes[4], bytes[5]);
- break;
- case SIOCGIFFLAGS:
- case SIOCSIFFLAGS:
- tprintf("ifr_flags=");
- printflags(iffflags, ifr.ifr_flags, "IFF_???");
- break;
- case SIOCGIFMETRIC:
- case SIOCSIFMETRIC:
- tprintf("ifr_metric=%d", ifr.ifr_metric);
- break;
- case SIOCGIFMTU:
- case SIOCSIFMTU:
- tprintf("ifr_mtu=%d", ifr.ifr_mtu);
- break;
- case SIOCGIFSLAVE:
- case SIOCSIFSLAVE:
- tprintf("ifr_slave=\"%s\"", ifr.ifr_slave);
- break;
- case SIOCGIFTXQLEN:
- case SIOCSIFTXQLEN:
- tprintf("ifr_qlen=%d", ifr.ifr_qlen);
- break;
- case SIOCGIFMAP:
- case SIOCSIFMAP:
- tprintf("ifr_map={mem_start=%#lx, "
- "mem_end=%#lx, base_addr=%#x, "
- "irq=%u, dma=%u, port=%u}",
- ifr.ifr_map.mem_start,
- ifr.ifr_map.mem_end,
- (unsigned) ifr.ifr_map.base_addr,
- (unsigned) ifr.ifr_map.irq,
- (unsigned) ifr.ifr_map.dma,
- (unsigned) ifr.ifr_map.port);