xref: /csrg-svn/sys/net/if.c (revision 5104)
1*5104Swnj /*	if.c	4.4	81/11/29	*/
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 
94951Swnj /*ARGSUSED*/
104951Swnj struct ifnet *
114944Swnj if_ifwithaddr(in)
124944Swnj 	struct in_addr in;
134944Swnj {
144944Swnj 	register struct ifnet *ifp;
154944Swnj 
164951Swnj COUNT(IF_IFWITHADDR);
174944Swnj 	for (ifp = ifnet; ifp; ifp = ifp->if_next)
184944Swnj 		if (ifp->if_addr.s_addr == in.s_addr)
194944Swnj 			break;
204944Swnj 	return (ifp);
214944Swnj }
224944Swnj 
234951Swnj /*ARGSUSED*/
244951Swnj struct ifnet *
254944Swnj if_ifonnetof(in)
264944Swnj 	struct in_addr in;
274944Swnj {
284944Swnj 	register struct ifnet *ifp;
294944Swnj 	int net;
304944Swnj 
314951Swnj COUNT(IF_IFONNETOF);
325083Swnj 	net = in.s_net;			/* XXX */
334944Swnj 	for (ifp = ifnet; ifp; ifp = ifp->if_next)
344944Swnj 		if (ifp->if_net == net)
354944Swnj 			break;
364944Swnj 	return (ifp);
374944Swnj }
384944Swnj 
39*5104Swnj /*ARGSUSED*/
405083Swnj struct ifnet *
415083Swnj if_gatewayfor(addr)
425083Swnj 	struct in_addr addr;
435083Swnj {
445083Swnj 
455083Swnj COUNT(IF_GATEWAYFOR);
465083Swnj 	return (0);
475083Swnj }
48*5104Swnj 
49*5104Swnj struct in_addr
50*5104Swnj if_makeaddr(net, host)
51*5104Swnj 	int net, host;
52*5104Swnj {
53*5104Swnj 	u_long addr;
54*5104Swnj 
55*5104Swnj 	if (net < 128)
56*5104Swnj 		addr = (host << 8) | net;
57*5104Swnj 	else if (net < 65536)
58*5104Swnj 		addr = (host << 16) | net;
59*5104Swnj 	else
60*5104Swnj 		addr = (host << 24) | net;
61*5104Swnj 	addr = htonl(addr);
62*5104Swnj 	return (*(struct in_addr *)&addr);
63*5104Swnj }
64