1*5160Swnj /* if.c 4.5 81/12/02 */ 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 9*5160Swnj if_attach(ifp) 10*5160Swnj struct ifnet *ifp; 11*5160Swnj { 12*5160Swnj 13*5160Swnj COUNT(IF_ATTACH); 14*5160Swnj ifp->if_next = ifnet; 15*5160Swnj ifnet = ifp; 16*5160Swnj } 17*5160Swnj 184951Swnj /*ARGSUSED*/ 194951Swnj struct ifnet * 204944Swnj if_ifwithaddr(in) 214944Swnj struct in_addr in; 224944Swnj { 234944Swnj register struct ifnet *ifp; 244944Swnj 254951Swnj COUNT(IF_IFWITHADDR); 264944Swnj for (ifp = ifnet; ifp; ifp = ifp->if_next) 274944Swnj if (ifp->if_addr.s_addr == in.s_addr) 284944Swnj break; 294944Swnj return (ifp); 304944Swnj } 314944Swnj 324951Swnj /*ARGSUSED*/ 334951Swnj struct ifnet * 344944Swnj if_ifonnetof(in) 354944Swnj struct in_addr in; 364944Swnj { 374944Swnj register struct ifnet *ifp; 384944Swnj int net; 394944Swnj 404951Swnj COUNT(IF_IFONNETOF); 415083Swnj net = in.s_net; /* XXX */ 424944Swnj for (ifp = ifnet; ifp; ifp = ifp->if_next) 434944Swnj if (ifp->if_net == net) 444944Swnj break; 454944Swnj return (ifp); 464944Swnj } 474944Swnj 485104Swnj /*ARGSUSED*/ 495083Swnj struct ifnet * 505083Swnj if_gatewayfor(addr) 515083Swnj struct in_addr addr; 525083Swnj { 535083Swnj 545083Swnj COUNT(IF_GATEWAYFOR); 555083Swnj return (0); 565083Swnj } 575104Swnj 585104Swnj struct in_addr 595104Swnj if_makeaddr(net, host) 605104Swnj int net, host; 615104Swnj { 625104Swnj u_long addr; 635104Swnj 645104Swnj if (net < 128) 655104Swnj addr = (host << 8) | net; 665104Swnj else if (net < 65536) 675104Swnj addr = (host << 16) | net; 685104Swnj else 695104Swnj addr = (host << 24) | net; 705104Swnj addr = htonl(addr); 715104Swnj return (*(struct in_addr *)&addr); 725104Swnj } 73