diff options
Diffstat (limited to 'libc/kernel/common/linux/if.h')
-rw-r--r-- | libc/kernel/common/linux/if.h | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/libc/kernel/common/linux/if.h b/libc/kernel/common/linux/if.h new file mode 100644 index 0000000..47c29d9 --- /dev/null +++ b/libc/kernel/common/linux/if.h @@ -0,0 +1,176 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _LINUX_IF_H +#define _LINUX_IF_H + +#include <linux/types.h> +#include <linux/socket.h> +#include <linux/compiler.h> + +#define IFNAMSIZ 16 +#include <linux/hdlc/ioctl.h> + +#define IFF_UP 0x1 +#define IFF_BROADCAST 0x2 +#define IFF_DEBUG 0x4 +#define IFF_LOOPBACK 0x8 +#define IFF_POINTOPOINT 0x10 +#define IFF_NOTRAILERS 0x20 +#define IFF_RUNNING 0x40 +#define IFF_NOARP 0x80 +#define IFF_PROMISC 0x100 +#define IFF_ALLMULTI 0x200 + +#define IFF_MASTER 0x400 +#define IFF_SLAVE 0x800 + +#define IFF_MULTICAST 0x1000 + +#define IFF_PORTSEL 0x2000 +#define IFF_AUTOMEDIA 0x4000 +#define IFF_DYNAMIC 0x8000 + +#define IFF_LOWER_UP 0x10000 +#define IFF_DORMANT 0x20000 + +#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST| IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) + +#define IFF_802_1Q_VLAN 0x1 +#define IFF_EBRIDGE 0x2 +#define IFF_SLAVE_INACTIVE 0x4 +#define IFF_MASTER_8023AD 0x8 +#define IFF_MASTER_ALB 0x10 + +#define IF_GET_IFACE 0x0001 +#define IF_GET_PROTO 0x0002 + +#define IF_IFACE_V35 0x1000 +#define IF_IFACE_V24 0x1001 +#define IF_IFACE_X21 0x1002 +#define IF_IFACE_T1 0x1003 +#define IF_IFACE_E1 0x1004 +#define IF_IFACE_SYNC_SERIAL 0x1005 +#define IF_IFACE_X21D 0x1006 + +#define IF_PROTO_HDLC 0x2000 +#define IF_PROTO_PPP 0x2001 +#define IF_PROTO_CISCO 0x2002 +#define IF_PROTO_FR 0x2003 +#define IF_PROTO_FR_ADD_PVC 0x2004 +#define IF_PROTO_FR_DEL_PVC 0x2005 +#define IF_PROTO_X25 0x2006 +#define IF_PROTO_HDLC_ETH 0x2007 +#define IF_PROTO_FR_ADD_ETH_PVC 0x2008 +#define IF_PROTO_FR_DEL_ETH_PVC 0x2009 +#define IF_PROTO_FR_PVC 0x200A +#define IF_PROTO_FR_ETH_PVC 0x200B +#define IF_PROTO_RAW 0x200C + +enum { + IF_OPER_UNKNOWN, + IF_OPER_NOTPRESENT, + IF_OPER_DOWN, + IF_OPER_LOWERLAYERDOWN, + IF_OPER_TESTING, + IF_OPER_DORMANT, + IF_OPER_UP, +}; + +enum { + IF_LINK_MODE_DEFAULT, + IF_LINK_MODE_DORMANT, +}; + +struct ifmap +{ + unsigned long mem_start; + unsigned long mem_end; + unsigned short base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; + +}; + +struct if_settings +{ + unsigned int type; + unsigned int size; + union { + + raw_hdlc_proto __user *raw_hdlc; + cisco_proto __user *cisco; + fr_proto __user *fr; + fr_proto_pvc __user *fr_pvc; + fr_proto_pvc_info __user *fr_pvc_info; + + sync_serial_settings __user *sync; + te1_settings __user *te1; + } ifs_ifsu; +}; + +struct ifreq +{ +#define IFHWADDRLEN 6 + union + { + char ifrn_name[IFNAMSIZ]; + } ifr_ifrn; + + union { + struct sockaddr ifru_addr; + struct sockaddr ifru_dstaddr; + struct sockaddr ifru_broadaddr; + struct sockaddr ifru_netmask; + struct sockaddr ifru_hwaddr; + short ifru_flags; + int ifru_ivalue; + int ifru_mtu; + struct ifmap ifru_map; + char ifru_slave[IFNAMSIZ]; + char ifru_newname[IFNAMSIZ]; + void __user * ifru_data; + struct if_settings ifru_settings; + } ifr_ifru; +}; + +#define ifr_name ifr_ifrn.ifrn_name +#define ifr_hwaddr ifr_ifru.ifru_hwaddr +#define ifr_addr ifr_ifru.ifru_addr +#define ifr_dstaddr ifr_ifru.ifru_dstaddr +#define ifr_broadaddr ifr_ifru.ifru_broadaddr +#define ifr_netmask ifr_ifru.ifru_netmask +#define ifr_flags ifr_ifru.ifru_flags +#define ifr_metric 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_data ifr_ifru.ifru_data +#define ifr_ifindex ifr_ifru.ifru_ivalue +#define ifr_bandwidth ifr_ifru.ifru_ivalue +#define ifr_qlen ifr_ifru.ifru_ivalue +#define ifr_newname ifr_ifru.ifru_newname +#define ifr_settings ifr_ifru.ifru_settings + +struct ifconf +{ + int ifc_len; + union + { + char __user *ifcu_buf; + struct ifreq __user *ifcu_req; + } ifc_ifcu; +}; +#define ifc_buf ifc_ifcu.ifcu_buf +#define ifc_req ifc_ifcu.ifcu_req + +#endif |