xref: /aosp_15_r20/prebuilts/build-tools/sysroots/i686-unknown-linux-musl/include/net/if.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker #ifndef _NET_IF_H
2*cda5da8dSAndroid Build Coastguard Worker #define _NET_IF_H
3*cda5da8dSAndroid Build Coastguard Worker 
4*cda5da8dSAndroid Build Coastguard Worker #ifdef __cplusplus
5*cda5da8dSAndroid Build Coastguard Worker extern "C" {
6*cda5da8dSAndroid Build Coastguard Worker #endif
7*cda5da8dSAndroid Build Coastguard Worker 
8*cda5da8dSAndroid Build Coastguard Worker #include <features.h>
9*cda5da8dSAndroid Build Coastguard Worker 
10*cda5da8dSAndroid Build Coastguard Worker #define IF_NAMESIZE 16
11*cda5da8dSAndroid Build Coastguard Worker 
12*cda5da8dSAndroid Build Coastguard Worker struct if_nameindex {
13*cda5da8dSAndroid Build Coastguard Worker 	unsigned int if_index;
14*cda5da8dSAndroid Build Coastguard Worker 	char *if_name;
15*cda5da8dSAndroid Build Coastguard Worker };
16*cda5da8dSAndroid Build Coastguard Worker 
17*cda5da8dSAndroid Build Coastguard Worker unsigned int if_nametoindex (const char *);
18*cda5da8dSAndroid Build Coastguard Worker char *if_indextoname (unsigned int, char *);
19*cda5da8dSAndroid Build Coastguard Worker struct if_nameindex *if_nameindex (void);
20*cda5da8dSAndroid Build Coastguard Worker void if_freenameindex (struct if_nameindex *);
21*cda5da8dSAndroid Build Coastguard Worker 
22*cda5da8dSAndroid Build Coastguard Worker 
23*cda5da8dSAndroid Build Coastguard Worker 
24*cda5da8dSAndroid Build Coastguard Worker 
25*cda5da8dSAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
26*cda5da8dSAndroid Build Coastguard Worker 
27*cda5da8dSAndroid Build Coastguard Worker #include <sys/socket.h>
28*cda5da8dSAndroid Build Coastguard Worker 
29*cda5da8dSAndroid Build Coastguard Worker #define IFF_UP	0x1
30*cda5da8dSAndroid Build Coastguard Worker #define IFF_BROADCAST 0x2
31*cda5da8dSAndroid Build Coastguard Worker #define IFF_DEBUG 0x4
32*cda5da8dSAndroid Build Coastguard Worker #define IFF_LOOPBACK 0x8
33*cda5da8dSAndroid Build Coastguard Worker #define IFF_POINTOPOINT 0x10
34*cda5da8dSAndroid Build Coastguard Worker #define IFF_NOTRAILERS 0x20
35*cda5da8dSAndroid Build Coastguard Worker #define IFF_RUNNING 0x40
36*cda5da8dSAndroid Build Coastguard Worker #define IFF_NOARP 0x80
37*cda5da8dSAndroid Build Coastguard Worker #define IFF_PROMISC 0x100
38*cda5da8dSAndroid Build Coastguard Worker #define IFF_ALLMULTI 0x200
39*cda5da8dSAndroid Build Coastguard Worker #define IFF_MASTER 0x400
40*cda5da8dSAndroid Build Coastguard Worker #define IFF_SLAVE 0x800
41*cda5da8dSAndroid Build Coastguard Worker #define IFF_MULTICAST 0x1000
42*cda5da8dSAndroid Build Coastguard Worker #define IFF_PORTSEL 0x2000
43*cda5da8dSAndroid Build Coastguard Worker #define IFF_AUTOMEDIA 0x4000
44*cda5da8dSAndroid Build Coastguard Worker #define IFF_DYNAMIC 0x8000
45*cda5da8dSAndroid Build Coastguard Worker #define IFF_LOWER_UP 0x10000
46*cda5da8dSAndroid Build Coastguard Worker #define IFF_DORMANT 0x20000
47*cda5da8dSAndroid Build Coastguard Worker #define IFF_ECHO 0x40000
48*cda5da8dSAndroid Build Coastguard Worker #define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST| \
49*cda5da8dSAndroid Build Coastguard Worker         IFF_ECHO|IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)
50*cda5da8dSAndroid Build Coastguard Worker 
51*cda5da8dSAndroid Build Coastguard Worker struct ifaddr {
52*cda5da8dSAndroid Build Coastguard Worker 	struct sockaddr ifa_addr;
53*cda5da8dSAndroid Build Coastguard Worker 	union {
54*cda5da8dSAndroid Build Coastguard Worker 		struct sockaddr	ifu_broadaddr;
55*cda5da8dSAndroid Build Coastguard Worker 		struct sockaddr	ifu_dstaddr;
56*cda5da8dSAndroid Build Coastguard Worker 	} ifa_ifu;
57*cda5da8dSAndroid Build Coastguard Worker 	struct iface *ifa_ifp;
58*cda5da8dSAndroid Build Coastguard Worker 	struct ifaddr *ifa_next;
59*cda5da8dSAndroid Build Coastguard Worker };
60*cda5da8dSAndroid Build Coastguard Worker 
61*cda5da8dSAndroid Build Coastguard Worker #define ifa_broadaddr	ifa_ifu.ifu_broadaddr
62*cda5da8dSAndroid Build Coastguard Worker #define ifa_dstaddr	ifa_ifu.ifu_dstaddr
63*cda5da8dSAndroid Build Coastguard Worker 
64*cda5da8dSAndroid Build Coastguard Worker struct ifmap {
65*cda5da8dSAndroid Build Coastguard Worker 	unsigned long int mem_start;
66*cda5da8dSAndroid Build Coastguard Worker 	unsigned long int mem_end;
67*cda5da8dSAndroid Build Coastguard Worker 	unsigned short int base_addr;
68*cda5da8dSAndroid Build Coastguard Worker 	unsigned char irq;
69*cda5da8dSAndroid Build Coastguard Worker 	unsigned char dma;
70*cda5da8dSAndroid Build Coastguard Worker 	unsigned char port;
71*cda5da8dSAndroid Build Coastguard Worker };
72*cda5da8dSAndroid Build Coastguard Worker 
73*cda5da8dSAndroid Build Coastguard Worker #define IFHWADDRLEN	6
74*cda5da8dSAndroid Build Coastguard Worker #define IFNAMSIZ	IF_NAMESIZE
75*cda5da8dSAndroid Build Coastguard Worker 
76*cda5da8dSAndroid Build Coastguard Worker struct ifreq {
77*cda5da8dSAndroid Build Coastguard Worker 	union {
78*cda5da8dSAndroid Build Coastguard Worker 		char ifrn_name[IFNAMSIZ];
79*cda5da8dSAndroid Build Coastguard Worker 	} ifr_ifrn;
80*cda5da8dSAndroid Build Coastguard Worker 	union {
81*cda5da8dSAndroid Build Coastguard Worker 		struct sockaddr ifru_addr;
82*cda5da8dSAndroid Build Coastguard Worker 		struct sockaddr ifru_dstaddr;
83*cda5da8dSAndroid Build Coastguard Worker 		struct sockaddr ifru_broadaddr;
84*cda5da8dSAndroid Build Coastguard Worker 		struct sockaddr ifru_netmask;
85*cda5da8dSAndroid Build Coastguard Worker 		struct sockaddr ifru_hwaddr;
86*cda5da8dSAndroid Build Coastguard Worker 		short int ifru_flags;
87*cda5da8dSAndroid Build Coastguard Worker 		int ifru_ivalue;
88*cda5da8dSAndroid Build Coastguard Worker 		int ifru_mtu;
89*cda5da8dSAndroid Build Coastguard Worker 		struct ifmap ifru_map;
90*cda5da8dSAndroid Build Coastguard Worker 		char ifru_slave[IFNAMSIZ];
91*cda5da8dSAndroid Build Coastguard Worker 		char ifru_newname[IFNAMSIZ];
92*cda5da8dSAndroid Build Coastguard Worker 		char *ifru_data;
93*cda5da8dSAndroid Build Coastguard Worker 	} ifr_ifru;
94*cda5da8dSAndroid Build Coastguard Worker };
95*cda5da8dSAndroid Build Coastguard Worker 
96*cda5da8dSAndroid Build Coastguard Worker #define ifr_name	ifr_ifrn.ifrn_name
97*cda5da8dSAndroid Build Coastguard Worker #define ifr_hwaddr	ifr_ifru.ifru_hwaddr
98*cda5da8dSAndroid Build Coastguard Worker #define ifr_addr	ifr_ifru.ifru_addr
99*cda5da8dSAndroid Build Coastguard Worker #define ifr_dstaddr	ifr_ifru.ifru_dstaddr
100*cda5da8dSAndroid Build Coastguard Worker #define ifr_broadaddr	ifr_ifru.ifru_broadaddr
101*cda5da8dSAndroid Build Coastguard Worker #define ifr_netmask	ifr_ifru.ifru_netmask
102*cda5da8dSAndroid Build Coastguard Worker #define ifr_flags	ifr_ifru.ifru_flags
103*cda5da8dSAndroid Build Coastguard Worker #define ifr_metric	ifr_ifru.ifru_ivalue
104*cda5da8dSAndroid Build Coastguard Worker #define ifr_mtu		ifr_ifru.ifru_mtu
105*cda5da8dSAndroid Build Coastguard Worker #define ifr_map		ifr_ifru.ifru_map
106*cda5da8dSAndroid Build Coastguard Worker #define ifr_slave	ifr_ifru.ifru_slave
107*cda5da8dSAndroid Build Coastguard Worker #define ifr_data	ifr_ifru.ifru_data
108*cda5da8dSAndroid Build Coastguard Worker #define ifr_ifindex	ifr_ifru.ifru_ivalue
109*cda5da8dSAndroid Build Coastguard Worker #define ifr_bandwidth	ifr_ifru.ifru_ivalue
110*cda5da8dSAndroid Build Coastguard Worker #define ifr_qlen	ifr_ifru.ifru_ivalue
111*cda5da8dSAndroid Build Coastguard Worker #define ifr_newname	ifr_ifru.ifru_newname
112*cda5da8dSAndroid Build Coastguard Worker #define _IOT_ifreq	_IOT(_IOTS(char),IFNAMSIZ,_IOTS(char),16,0,0)
113*cda5da8dSAndroid Build Coastguard Worker #define _IOT_ifreq_short _IOT(_IOTS(char),IFNAMSIZ,_IOTS(short),1,0,0)
114*cda5da8dSAndroid Build Coastguard Worker #define _IOT_ifreq_int	_IOT(_IOTS(char),IFNAMSIZ,_IOTS(int),1,0,0)
115*cda5da8dSAndroid Build Coastguard Worker 
116*cda5da8dSAndroid Build Coastguard Worker struct ifconf {
117*cda5da8dSAndroid Build Coastguard Worker 	int ifc_len;
118*cda5da8dSAndroid Build Coastguard Worker 	union {
119*cda5da8dSAndroid Build Coastguard Worker 		char *ifcu_buf;
120*cda5da8dSAndroid Build Coastguard Worker 		struct ifreq *ifcu_req;
121*cda5da8dSAndroid Build Coastguard Worker 	} ifc_ifcu;
122*cda5da8dSAndroid Build Coastguard Worker };
123*cda5da8dSAndroid Build Coastguard Worker 
124*cda5da8dSAndroid Build Coastguard Worker #define ifc_buf		ifc_ifcu.ifcu_buf
125*cda5da8dSAndroid Build Coastguard Worker #define ifc_req		ifc_ifcu.ifcu_req
126*cda5da8dSAndroid Build Coastguard Worker #define _IOT_ifconf _IOT(_IOTS(struct ifconf),1,0,0,0,0)
127*cda5da8dSAndroid Build Coastguard Worker 
128*cda5da8dSAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFCONF                                    0
129*cda5da8dSAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFMAP                                     0
130*cda5da8dSAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFNAMSIZ                                  0
131*cda5da8dSAndroid Build Coastguard Worker #define __UAPI_DEF_IF_IFREQ                                     0
132*cda5da8dSAndroid Build Coastguard Worker #define __UAPI_DEF_IF_NET_DEVICE_FLAGS                          0
133*cda5da8dSAndroid Build Coastguard Worker #define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO    0
134*cda5da8dSAndroid Build Coastguard Worker 
135*cda5da8dSAndroid Build Coastguard Worker #endif
136*cda5da8dSAndroid Build Coastguard Worker 
137*cda5da8dSAndroid Build Coastguard Worker #ifdef __cplusplus
138*cda5da8dSAndroid Build Coastguard Worker }
139*cda5da8dSAndroid Build Coastguard Worker #endif
140*cda5da8dSAndroid Build Coastguard Worker 
141*cda5da8dSAndroid Build Coastguard Worker #endif
142