1*5685Ssam /* if.c 4.7 82/02/03 */ 24944Swnj 34944Swnj #include "../h/param.h" 44944Swnj #include "../h/systm.h" 55083Swnj #include "../net/in.h" 65083Swnj #include "../net/in_systm.h" 74944Swnj #include "../net/if.h" 84944Swnj 95206Swnj ifinit() 105206Swnj { 115206Swnj register struct ifnet *ifp; 125206Swnj 135206Swnj for (ifp = ifnet; ifp; ifp = ifp->if_next) 145206Swnj if (ifp->if_init) 155206Swnj (*ifp->if_init)(); 165206Swnj } 175206Swnj 185206Swnj ifubareset(uban) 195206Swnj int uban; 205206Swnj { 215206Swnj register struct ifnet *ifp; 225206Swnj 235206Swnj for (ifp = ifnet; ifp; ifp = ifp->if_next) 245206Swnj if (ifp->if_ubareset) 255206Swnj (*ifp->if_ubareset)(uban); 265206Swnj } 275206Swnj 285160Swnj if_attach(ifp) 295160Swnj struct ifnet *ifp; 305160Swnj { 315160Swnj 325160Swnj COUNT(IF_ATTACH); 335160Swnj ifp->if_next = ifnet; 345160Swnj ifnet = ifp; 355160Swnj } 365160Swnj 374951Swnj /*ARGSUSED*/ 384951Swnj struct ifnet * 394944Swnj if_ifwithaddr(in) 404944Swnj struct in_addr in; 414944Swnj { 424944Swnj register struct ifnet *ifp; 434944Swnj 444951Swnj COUNT(IF_IFWITHADDR); 454944Swnj for (ifp = ifnet; ifp; ifp = ifp->if_next) 464944Swnj if (ifp->if_addr.s_addr == in.s_addr) 474944Swnj break; 484944Swnj return (ifp); 494944Swnj } 504944Swnj 514951Swnj /*ARGSUSED*/ 524951Swnj struct ifnet * 534944Swnj if_ifonnetof(in) 544944Swnj struct in_addr in; 554944Swnj { 564944Swnj register struct ifnet *ifp; 574944Swnj int net; 584944Swnj 594951Swnj COUNT(IF_IFONNETOF); 605083Swnj net = in.s_net; /* XXX */ 614944Swnj for (ifp = ifnet; ifp; ifp = ifp->if_next) 624944Swnj if (ifp->if_net == net) 634944Swnj break; 644944Swnj return (ifp); 654944Swnj } 664944Swnj 675104Swnj /*ARGSUSED*/ 685083Swnj struct ifnet * 695083Swnj if_gatewayfor(addr) 705083Swnj struct in_addr addr; 715083Swnj { 725083Swnj 735083Swnj COUNT(IF_GATEWAYFOR); 745083Swnj return (0); 755083Swnj } 765104Swnj 775104Swnj struct in_addr 785104Swnj if_makeaddr(net, host) 795104Swnj int net, host; 805104Swnj { 815104Swnj u_long addr; 825104Swnj 835104Swnj if (net < 128) 845206Swnj addr = (net << 24) | host; 855104Swnj else if (net < 65536) 865206Swnj addr = (net << 16) | host; 875104Swnj else 885206Swnj addr = (net << 8) | host; 89*5685Ssam #ifdef vax 905104Swnj addr = htonl(addr); 91*5685Ssam #endif 925104Swnj return (*(struct in_addr *)&addr); 935104Swnj } 94