VSF Documented
if.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_NET_IF_H__
2#define __VSF_LINUX_NET_IF_H__
3
5#include <linux/sockios.h>
6// for sockaddr
7#include <sys/socket.h>
8
9#define IFNAMSIZ 16
10#define IFALIASZ 256
11
12struct ifmap {
13 unsigned long mem_start;
14 unsigned long mem_end;
15 unsigned short base_addr;
16 unsigned char irq;
17 unsigned char dma;
18 unsigned char port;
19};
20
21struct ifreq {
22 union {
25
26 union {
38 char *ifru_data;
40};
41#define ifr_name ifr_ifrn.ifrn_name
42#define ifr_hwaddr ifr_ifru.ifru_hwaddr
43#define ifr_addr ifr_ifru.ifru_addr
44#define ifr_dstaddr ifr_ifru.ifru_dstaddr
45#define ifr_broadaddr ifr_ifru.ifru_broadaddr
46#define ifr_brdaddr ifr_broadaddr
47#define ifr_netmask ifr_ifru.ifru_netmask
48#define ifr_flags ifr_ifru.ifru_flags
49#define ifr_metric ifr_ifru.ifru_ivalue
50#define ifr_mtu ifr_ifru.ifru_mtu
51#define ifr_map ifr_ifru.ifru_map
52#define ifr_slave ifr_ifru.ifru_slave
53#define ifr_data ifr_ifru.ifru_data
54#define ifr_ifindex ifr_ifru.ifru_ivalue
55#define ifr_bandwidth ifr_ifru.ifru_ivalue
56#define ifr_qlen ifr_ifru.ifru_ivalue
57#define ifr_newname ifr_ifru.ifru_newname
58#define ifr_settings ifr_ifru.ifru_settings
59
60struct ifconf {
62 union {
63 char *ifc_buf;
64 struct ifreq *ifc_req;
65 };
66};
67
68#if VSF_LINUX_APPLET_USE_NET_IF == ENABLED
71
75# ifndef __VSF_APPLET__
77# endif
78#endif
79
80#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_NET_IF_LIB__))\
81 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_NET_IF == ENABLED
82
83#ifndef VSF_LINUX_APPLET_NET_IF_VPLT
84# if VSF_LINUX_USE_APPLET == ENABLED
85# define VSF_LINUX_APPLET_NET_IF_VPLT \
86 ((vsf_linux_net_if_vplt_t *)(VSF_LINUX_APPLET_VPLT->net_if_vplt))
87# else
88# define VSF_LINUX_APPLET_NET_IF_VPLT \
89 ((vsf_linux_net_if_vplt_t *)vsf_vplt((void *)0))
90# endif
91#endif
92
93#define VSF_LINUX_APPLET_NET_IF_ENTRY(__NAME) \
94 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_NET_IF_VPLT, __NAME)
95#define VSF_LINUX_APPLET_NET_IF_IMP(...) \
96 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_NET_IF_VPLT, __VA_ARGS__)
97
98VSF_LINUX_APPLET_NET_IF_IMP(if_nametoindex, unsigned int, const char *ifname) {
100 return VSF_LINUX_APPLET_NET_IF_ENTRY(if_nametoindex)(ifname);
101}
102VSF_LINUX_APPLET_NET_IF_IMP(if_indextoname, char *, unsigned int ifindex, char *ifname) {
104 return VSF_LINUX_APPLET_NET_IF_ENTRY(if_indextoname)(ifindex, ifname);
105}
106
107#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_NET_IF
108
109unsigned int if_nametoindex(const char *ifname);
110char * if_indextoname(unsigned int ifindex, char *ifname);
111
112#endif
113
114#endif // __VSF_LINUX_NET_IF_H__
__VSF_VPLT_DECORATOR__ vsf_linux_net_if_vplt_t vsf_linux_net_if_vplt
Definition vsf_linux_socket.c:806
char * if_indextoname(unsigned int ifindex, char *ifname)
Definition vsf_linux_socket.c:752
unsigned int if_nametoindex(const char *ifname)
Definition vsf_linux_socket.c:747
#define IFNAMSIZ
Definition if.h:9
Definition if.h:60
struct ifreq * ifc_req
Definition if.h:64
char * ifc_buf
Definition if.h:63
int ifc_len
Definition if.h:61
Definition if.h:12
unsigned char port
Definition if.h:18
unsigned long mem_start
Definition if.h:13
unsigned char dma
Definition if.h:17
unsigned char irq
Definition if.h:16
unsigned short base_addr
Definition if.h:15
unsigned long mem_end
Definition if.h:14
Definition if.h:21
union ifreq::@974 ifr_ifru
struct sockaddr ifru_broadaddr
Definition if.h:29
char ifrn_name[IFNAMSIZ]
Definition if.h:23
char ifru_slave[IFNAMSIZ]
Definition if.h:36
struct sockaddr ifru_netmask
Definition if.h:30
short ifru_flags
Definition if.h:32
struct sockaddr ifru_hwaddr
Definition if.h:31
struct sockaddr ifru_dstaddr
Definition if.h:28
struct ifmap ifru_map
Definition if.h:35
struct sockaddr ifru_addr
Definition if.h:27
int ifru_mtu
Definition if.h:34
char ifru_newname[IFNAMSIZ]
Definition if.h:37
int ifru_ivalue
Definition if.h:33
union ifreq::@973 ifr_ifrn
char * ifru_data
Definition if.h:38
Definition socket.h:74
Definition if.h:69
vsf_vplt_info_t info
Definition if.h:70
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(if_nametoindex)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(if_indextoname)
Definition vsf_cfg.h:95
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165
Generated from commit: vsfteam/vsf@2b286be