111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_IF_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_IF_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h> 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/socket.h> 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/compiler.h> 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFNAMSIZ 16 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/hdlc/ioctl.h> 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_UP 0x1 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_BROADCAST 0x2 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_DEBUG 0x4 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_LOOPBACK 0x8 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_POINTOPOINT 0x10 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_NOTRAILERS 0x20 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_RUNNING 0x40 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_NOARP 0x80 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_PROMISC 0x100 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_ALLMULTI 0x200 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_MASTER 0x400 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_SLAVE 0x800 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_MULTICAST 0x1000 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_PORTSEL 0x2000 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_AUTOMEDIA 0x4000 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_DYNAMIC 0x8000 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_LOWER_UP 0x10000 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_DORMANT 0x20000 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST| IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_802_1Q_VLAN 0x1 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_EBRIDGE 0x2 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_SLAVE_INACTIVE 0x4 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_MASTER_8023AD 0x8 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFF_MASTER_ALB 0x10 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_GET_IFACE 0x0001 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_GET_PROTO 0x0002 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_IFACE_V35 0x1000 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_IFACE_V24 0x1001 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_IFACE_X21 0x1002 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_IFACE_T1 0x1003 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_IFACE_E1 0x1004 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_IFACE_SYNC_SERIAL 0x1005 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_IFACE_X21D 0x1006 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_HDLC 0x2000 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_PPP 0x2001 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_CISCO 0x2002 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_FR 0x2003 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_FR_ADD_PVC 0x2004 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_FR_DEL_PVC 0x2005 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_X25 0x2006 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_HDLC_ETH 0x2007 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_FR_ADD_ETH_PVC 0x2008 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_FR_DEL_ETH_PVC 0x2009 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_FR_PVC 0x200A 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_FR_ETH_PVC 0x200B 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IF_PROTO_RAW 0x200C 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum { 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IF_OPER_UNKNOWN, 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IF_OPER_NOTPRESENT, 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IF_OPER_DOWN, 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IF_OPER_LOWERLAYERDOWN, 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IF_OPER_TESTING, 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IF_OPER_DORMANT, 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IF_OPER_UP, 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum { 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IF_LINK_MODE_DEFAULT, 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert IF_LINK_MODE_DORMANT, 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ifmap 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long mem_start; 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long mem_end; 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short base_addr; 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char irq; 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char dma; 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char port; 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct if_settings 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int type; 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int size; 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert raw_hdlc_proto __user *raw_hdlc; 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert cisco_proto __user *cisco; 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert fr_proto __user *fr; 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert fr_proto_pvc __user *fr_pvc; 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert fr_proto_pvc_info __user *fr_pvc_info; 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert sync_serial_settings __user *sync; 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert te1_settings __user *te1; 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } ifs_ifsu; 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ifreq 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IFHWADDRLEN 6 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char ifrn_name[IFNAMSIZ]; 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } ifr_ifrn; 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct sockaddr ifru_addr; 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct sockaddr ifru_dstaddr; 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct sockaddr ifru_broadaddr; 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct sockaddr ifru_netmask; 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct sockaddr ifru_hwaddr; 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short ifru_flags; 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int ifru_ivalue; 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int ifru_mtu; 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct ifmap ifru_map; 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char ifru_slave[IFNAMSIZ]; 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char ifru_newname[IFNAMSIZ]; 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user * ifru_data; 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct if_settings ifru_settings; 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } ifr_ifru; 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_name ifr_ifrn.ifrn_name 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_hwaddr ifr_ifru.ifru_hwaddr 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_addr ifr_ifru.ifru_addr 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_dstaddr ifr_ifru.ifru_dstaddr 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_broadaddr ifr_ifru.ifru_broadaddr 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_netmask ifr_ifru.ifru_netmask 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_flags ifr_ifru.ifru_flags 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_metric ifr_ifru.ifru_ivalue 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_mtu ifr_ifru.ifru_mtu 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_map ifr_ifru.ifru_map 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_slave ifr_ifru.ifru_slave 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_data ifr_ifru.ifru_data 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_ifindex ifr_ifru.ifru_ivalue 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_bandwidth ifr_ifru.ifru_ivalue 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_qlen ifr_ifru.ifru_ivalue 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_newname ifr_ifru.ifru_newname 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifr_settings ifr_ifru.ifru_settings 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ifconf 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int ifc_len; 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char __user *ifcu_buf; 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct ifreq __user *ifcu_req; 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } ifc_ifcu; 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifc_buf ifc_ifcu.ifcu_buf 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ifc_req ifc_ifcu.ifcu_req 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 177