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