11dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/****************************************************************************
21dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ****************************************************************************
31dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***
41dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   This header was automatically generated from a Linux kernel header
51dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   of the same name, to make information necessary for userspace to
61dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   call into the kernel available to libc.  It contains only constants,
71dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   structures, and macros generated from the original header, and thus,
81dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   contains no copyrightable information.
91dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***
101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ****************************************************************************
111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ****************************************************************************/
121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifndef _LINUX_IF_H
131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define _LINUX_IF_H
141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <linux/types.h>
161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <linux/socket.h>
171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <linux/compiler.h>
181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFNAMSIZ 16
201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <linux/hdlc/ioctl.h>
211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_UP 0x1
231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_BROADCAST 0x2
241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_DEBUG 0x4
251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_LOOPBACK 0x8
261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_POINTOPOINT 0x10
271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_NOTRAILERS 0x20
281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_RUNNING 0x40
291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_NOARP 0x80
301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_PROMISC 0x100
311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_ALLMULTI 0x200
321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_MASTER 0x400
341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_SLAVE 0x800
351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_MULTICAST 0x1000
371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_PORTSEL 0x2000
391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_AUTOMEDIA 0x4000
401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_DYNAMIC 0x8000
411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_LOWER_UP 0x10000
431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_DORMANT 0x20000
441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|  IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)
461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_802_1Q_VLAN 0x1
481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_EBRIDGE 0x2
491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_SLAVE_INACTIVE 0x4
501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_MASTER_8023AD 0x8
511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFF_MASTER_ALB 0x10
521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_GET_IFACE 0x0001
541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_GET_PROTO 0x0002
551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_IFACE_V35 0x1000
571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_IFACE_V24 0x1001
581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_IFACE_X21 0x1002
591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_IFACE_T1 0x1003
601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_IFACE_E1 0x1004
611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_IFACE_SYNC_SERIAL 0x1005
621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_IFACE_X21D 0x1006
631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_HDLC 0x2000
651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_PPP 0x2001
661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_CISCO 0x2002
671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_FR 0x2003
681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_FR_ADD_PVC 0x2004
691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_FR_DEL_PVC 0x2005
701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_X25 0x2006
711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_HDLC_ETH 0x2007
721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_FR_ADD_ETH_PVC 0x2008
731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_FR_DEL_ETH_PVC 0x2009
741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_FR_PVC 0x200A
751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_FR_ETH_PVC 0x200B
761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IF_PROTO_RAW 0x200C
771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectenum {
791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project IF_OPER_UNKNOWN,
801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project IF_OPER_NOTPRESENT,
811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project IF_OPER_DOWN,
821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project IF_OPER_LOWERLAYERDOWN,
831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project IF_OPER_TESTING,
841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project IF_OPER_DORMANT,
851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project IF_OPER_UP,
861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectenum {
891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project IF_LINK_MODE_DEFAULT,
901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project IF_LINK_MODE_DORMANT,
911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct ifmap
941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{
951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned long mem_start;
961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned long mem_end;
971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short base_addr;
981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char irq;
991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char dma;
1001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char port;
1011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
1031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct if_settings
1051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{
1061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int type;
1071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int size;
1081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project union {
1091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project raw_hdlc_proto __user *raw_hdlc;
1111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project cisco_proto __user *cisco;
1121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project fr_proto __user *fr;
1131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project fr_proto_pvc __user *fr_pvc;
1141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project fr_proto_pvc_info __user *fr_pvc_info;
1151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sync_serial_settings __user *sync;
1171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project te1_settings __user *te1;
1181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project } ifs_ifsu;
1191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
1201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct ifreq
1221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{
1231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IFHWADDRLEN 6
1241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project union
1251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project {
1261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project char ifrn_name[IFNAMSIZ];
1271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project } ifr_ifrn;
1281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project union {
1301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct sockaddr ifru_addr;
1311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct sockaddr ifru_dstaddr;
1321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct sockaddr ifru_broadaddr;
1331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct sockaddr ifru_netmask;
1341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct sockaddr ifru_hwaddr;
1351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project short ifru_flags;
1361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int ifru_ivalue;
1371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int ifru_mtu;
1381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct ifmap ifru_map;
1391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project char ifru_slave[IFNAMSIZ];
1401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project char ifru_newname[IFNAMSIZ];
1411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project void __user * ifru_data;
1421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct if_settings ifru_settings;
1431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project } ifr_ifru;
1441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
1451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_name ifr_ifrn.ifrn_name
1471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_hwaddr ifr_ifru.ifru_hwaddr
1481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_addr ifr_ifru.ifru_addr
1491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_dstaddr ifr_ifru.ifru_dstaddr
1501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_broadaddr ifr_ifru.ifru_broadaddr
1511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_netmask ifr_ifru.ifru_netmask
1521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_flags ifr_ifru.ifru_flags
1531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_metric ifr_ifru.ifru_ivalue
1541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_mtu ifr_ifru.ifru_mtu
1551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_map ifr_ifru.ifru_map
1561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_slave ifr_ifru.ifru_slave
1571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_data ifr_ifru.ifru_data
1581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_ifindex ifr_ifru.ifru_ivalue
1591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_bandwidth ifr_ifru.ifru_ivalue
1601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_qlen ifr_ifru.ifru_ivalue
1611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_newname ifr_ifru.ifru_newname
1621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifr_settings ifr_ifru.ifru_settings
1631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct ifconf
1651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{
1661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int ifc_len;
1671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project union
1681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project {
1691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project char __user *ifcu_buf;
1701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct ifreq __user *ifcu_req;
1711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project } ifc_ifcu;
1721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
1731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifc_buf ifc_ifcu.ifcu_buf
1741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ifc_req ifc_ifcu.ifcu_req
1751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif
177