|
|
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.