| 638 | } |
| 639 | |
| 640 | int |
| 641 | firewire_ioctl(struct ifnet *ifp, u_long command, caddr_t data) |
| 642 | { |
| 643 | struct ifaddr *ifa = (struct ifaddr *) data; |
| 644 | struct ifreq *ifr = (struct ifreq *) data; |
| 645 | int error = 0; |
| 646 | |
| 647 | switch (command) { |
| 648 | case SIOCSIFADDR: |
| 649 | ifp->if_flags |= IFF_UP; |
| 650 | |
| 651 | switch (ifa->ifa_addr->sa_family) { |
| 652 | #ifdef INET |
| 653 | case AF_INET: |
| 654 | ifp->if_init(ifp->if_softc); /* before arpwhohas */ |
| 655 | arp_ifinit(ifp, ifa); |
| 656 | break; |
| 657 | #endif |
| 658 | default: |
| 659 | ifp->if_init(ifp->if_softc); |
| 660 | break; |
| 661 | } |
| 662 | break; |
| 663 | |
| 664 | case SIOCGIFADDR: |
| 665 | bcopy(&IFP2FWC(ifp)->fc_hwaddr, &ifr->ifr_addr.sa_data[0], |
| 666 | sizeof(struct fw_hwaddr)); |
| 667 | break; |
| 668 | |
| 669 | case SIOCSIFMTU: |
| 670 | /* |
| 671 | * Set the interface MTU. |
| 672 | */ |
| 673 | if (ifr->ifr_mtu > 1500) { |
| 674 | error = EINVAL; |
| 675 | } else { |
| 676 | ifp->if_mtu = ifr->ifr_mtu; |
| 677 | } |
| 678 | break; |
| 679 | default: |
| 680 | error = EINVAL; /* XXX netbsd has ENOTTY??? */ |
| 681 | break; |
| 682 | } |
| 683 | return (error); |
| 684 | } |
| 685 | |
| 686 | static int |
| 687 | firewire_resolvemulti(struct ifnet *ifp, struct sockaddr **llsa, |
nothing calls this directly
no test coverage detected