|
|
1.1 root 1: /*
2: * Copyright (c) 1985, 1986 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution is only permitted until one year after the first shipment
6: * of 4.4BSD by the Regents. Otherwise, redistribution and use in source and
7: * binary forms are permitted provided that: (1) source distributions retain
8: * this entire copyright notice and comment, and (2) distributions including
9: * binaries display the following acknowledgement: This product includes
10: * software developed by the University of California, Berkeley and its
11: * contributors'' in the documentation or other materials provided with the
12: * distribution and in all advertising materials mentioning features or use
13: * of this software. Neither the name of the University nor the names of
14: * its contributors may be used to endorse or promote products derived from
15: * this software without specific prior written permission.
16: * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
17: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
18: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19: *
20: * @(#)in_var.h 7.6 (Berkeley) 6/28/90
21: */
22:
23: /*
24: * Interface address, Internet version. One of these structures
25: * is allocated for each interface with an Internet address.
26: * The ifaddr structure contains the protocol-independent part
27: * of the structure and is assumed to be first.
28: */
29: struct in_ifaddr {
30: struct ifaddr ia_ifa; /* protocol-independent info */
31: #define ia_ifp ia_ifa.ifa_ifp
32: #define ia_flags ia_ifa.ifa_flags
33: /* ia_{,sub}net{,mask} in host order */
34: u_long ia_net; /* network number of interface */
35: u_long ia_netmask; /* mask of net part */
36: u_long ia_subnet; /* subnet number, including net */
37: u_long ia_subnetmask; /* mask of subnet part */
38: struct in_addr ia_netbroadcast; /* to recognize net broadcasts */
39: struct in_ifaddr *ia_next; /* next in list of internet addresses */
40: struct sockaddr_in ia_addr; /* reserve space for interface name */
41: struct sockaddr_in ia_dstaddr; /* reserve space for broadcast addr */
42: #define ia_broadaddr ia_dstaddr
43: struct sockaddr_in ia_sockmask; /* reserve space for general netmask */
44: };
45:
46: struct in_aliasreq {
47: char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */
48: struct sockaddr_in ifra_addr;
49: struct sockaddr_in ifra_broadaddr;
50: #define ifra_dstaddr ifra_broadaddr
51: struct sockaddr_in ifra_mask;
52: };
53: /*
54: * Given a pointer to an in_ifaddr (ifaddr),
55: * return a pointer to the addr as a sockaddr_in.
56: */
57: #define IA_SIN(ia) (&(((struct in_ifaddr *)(ia))->ia_addr))
58:
59: #ifdef KERNEL
60: struct in_ifaddr *in_ifaddr;
61: struct in_ifaddr *in_iaonnetof();
62: struct ifqueue ipintrq; /* ip packet input queue */
63: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.