aboutsummaryrefslogtreecommitdiff
path: root/system/include/net/if.h
diff options
context:
space:
mode:
Diffstat (limited to 'system/include/net/if.h')
-rw-r--r--system/include/net/if.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/system/include/net/if.h b/system/include/net/if.h
index 9a4badf3..dd7884aa 100644
--- a/system/include/net/if.h
+++ b/system/include/net/if.h
@@ -2,6 +2,10 @@
#ifndef _NET_IF_H
#define _NET_IF_H
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -11,6 +15,61 @@ struct if_nameindex {
char *if_name;
};
+#define IFHWADDRLEN 6
+#define IFNAMSIZ 16
+
+struct ifmap {
+ unsigned long int mem_start;
+ unsigned long int mem_end;
+ unsigned short int base_addr;
+ unsigned char irq;
+ unsigned char dma;
+ unsigned char port;
+};
+
+struct ifreq {
+ union {
+ char ifrn_name[IFNAMSIZ];
+ } ifr_ifrn;
+ union {
+ struct sockaddr ifru_addr;
+ struct sockaddr ifru_destaddr;
+ struct sockaddr ifru_broadaddr;
+ struct sockaddr ifru_netmask;
+ struct sockaddr ifru_hwaddr;
+ short int ifru_flags;
+ int ifru_ivalue;
+ int ifru_mtu;
+ struct ifmap ifru_map;
+ char ifru_slave[IFNAMSIZ];
+ char ifru_newname[IFNAMSIZ];
+ caddr_t ifru_data;
+ } ifr_ifru;
+};
+#define ifr_name ifr_ifrn.ifrn_name
+#define ifr_addr ifr_ifru.ifru_addr
+#define ifr_destaddr ifr_ifru.ifru_destaddr
+#define ifr_broadaddr ifr_ifru.ifru_broadaddr
+#define ifr_netmask ifr_ifru.ifru_netmask
+#define ifr_hwaddr ifr_ifru.ifru_hwaddr
+#define ifr_flags ifr_ifru.ifru_flags
+#define ifr_ivalue ifr_ifru.ifru_ivalue
+#define ifr_mtu ifr_ifru.ifru_mtu
+#define ifr_map ifr_ifru.ifru_map
+#define ifr_slave ifr_ifru.ifru_slave
+#define ifr_newname ifr_ifru.ifru_newname
+#define ifr_data ifr_ifru.ifru_data
+
+struct ifconf {
+ int ifc_len;
+ union {
+ caddr_t ifcu_buf;
+ struct ifreq* ifcu_req;
+ } ifc_ifcu;
+};
+#define ifc_buf ifc_ifcu.ifcu_buf
+#define ifc_req ifc_ifcu.ifcu_req
+
#define IF_NAMESIZE abort(0);
unsigned if_nametoindex(const char *a);
@@ -18,6 +77,8 @@ char *if_indextoname(unsigned int a, char *b);
struct if_nameindex *if_nameindex();
void if_freenameindex(struct if_nameindex *a);
+
+
#ifdef __cplusplus
}
#endif