source: EcnlProtoTool/trunk/musl-1.1.12/include/net/if.h@ 321

Last change on this file since 321 was 321, checked in by coas-nagasima, 7 years ago

文字コードを設定

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 3.0 KB
Line 
1#ifndef _NET_IF_H
2#define _NET_IF_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#include <features.h>
9
10#define IF_NAMESIZE 16
11
12struct if_nameindex
13{
14 unsigned int if_index;
15 char *if_name;
16};
17
18unsigned int if_nametoindex (const char *);
19char *if_indextoname (unsigned int, char *);
20struct if_nameindex *if_nameindex (void);
21void 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
52struct 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
65struct 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
77struct 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
117struct 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
Note: See TracBrowser for help on using the repository browser.