| 727 | SYSUNINIT(tun_uninit, SI_SUB_PROTO_IF, SI_ORDER_ANY, tun_uninit, NULL); |
| 728 | |
| 729 | static struct tuntap_driver * |
| 730 | tuntap_driver_from_ifnet(const struct ifnet *ifp) |
| 731 | { |
| 732 | struct tuntap_driver *drv; |
| 733 | int i; |
| 734 | |
| 735 | if (ifp == NULL) |
| 736 | return (NULL); |
| 737 | |
| 738 | for (i = 0; i < nitems(tuntap_drivers); ++i) { |
| 739 | drv = &tuntap_drivers[i]; |
| 740 | if (strcmp(ifp->if_dname, drv->cdevsw.d_name) == 0) |
| 741 | return (drv); |
| 742 | } |
| 743 | |
| 744 | return (NULL); |
| 745 | } |
| 746 | |
| 747 | static int |
| 748 | tuntapmodevent(module_t mod, int type, void *data) |