1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef KERNEL_IRDA_H
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define KERNEL_IRDA_H
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h>
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/socket.h>
23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_PNP 0x01
24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_PDA 0x02
25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_COMPUTER 0x04
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_PRINTER 0x08
27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_MODEM 0x10
28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_FAX 0x20
29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_LAN 0x40
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_EXTENSION 0x80
31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_TELEPHONY 0x01
32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_FILE_SERVER 0x02
33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_COMM 0x04
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_MESSAGE 0x08
35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_HTTP 0x10
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HINT_OBEX 0x20
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CS_ASCII 0x00
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CS_ISO_8859_1 0x01
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CS_ISO_8859_2 0x02
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CS_ISO_8859_3 0x03
41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CS_ISO_8859_4 0x04
42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CS_ISO_8859_5 0x05
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CS_ISO_8859_6 0x06
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CS_ISO_8859_7 0x07
45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CS_ISO_8859_8 0x08
46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CS_ISO_8859_9 0x09
47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CS_UNICODE 0xff
48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef enum {
49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_TEKRAM_DONGLE = 0,
50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_ESI_DONGLE = 1,
51d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_ACTISYS_DONGLE = 2,
52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_ACTISYS_PLUS_DONGLE = 3,
53d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_GIRBIL_DONGLE = 4,
54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_LITELINK_DONGLE = 5,
55d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_AIRPORT_DONGLE = 6,
56d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_OLD_BELKIN_DONGLE = 7,
57d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_EP7211_IR = 8,
58d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_MCP2120_DONGLE = 9,
59d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_ACT200L_DONGLE = 10,
60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_MA600_DONGLE = 11,
61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_TOIM3232_DONGLE = 12,
62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_EP7211_DONGLE = 13,
63655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} IRDA_DONGLE;
64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
65d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDAPROTO_UNITDATA = 0,
66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDAPROTO_ULTRA = 1,
67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDAPROTO_MAX
68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SOL_IRLMP 266
70655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SOL_IRTTP 266
71655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRLMP_ENUMDEVICES 1
72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRLMP_IAS_SET 2
73655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRLMP_IAS_QUERY 3
74655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRLMP_HINTS_SET 4
75655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRLMP_QOS_SET 5
76655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRLMP_QOS_GET 6
77655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRLMP_MAX_SDU_SIZE 7
78655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRLMP_IAS_GET 8
79655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRLMP_IAS_DEL 9
80655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRLMP_HINT_MASK_SET 10
81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRLMP_WAITDEVICE 11
82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRTTP_MAX_SDU_SIZE IRLMP_MAX_SDU_SIZE
83655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IAS_MAX_STRING 256
84655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IAS_MAX_OCTET_STRING 1024
85655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IAS_MAX_CLASSNAME 60
86655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IAS_MAX_ATTRIBNAME 60
87655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IAS_MAX_ATTRIBNUMBER 256
88655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IAS_EXPORT_CLASSNAME 64
89655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IAS_EXPORT_ATTRIBNAME 256
90655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IAS_MISSING 0
91655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IAS_INTEGER 1
92655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IAS_OCT_SEQ 2
93655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IAS_STRING 3
94655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define LSAP_ANY 0xff
95655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct sockaddr_irda {
96d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __kernel_sa_family_t sir_family;
97d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 sir_lsap_sel;
98d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 sir_addr;
99d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char sir_name[25];
100655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
101655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct irda_device_info {
102d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 saddr;
103d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 daddr;
104d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char info[22];
105d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 charset;
106d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 hints[2];
107655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
108655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct irda_device_list {
109d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 len;
110d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct irda_device_info dev[1];
111655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
112655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct irda_ias_set {
113d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char irda_class_name[IAS_EXPORT_CLASSNAME];
114d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char irda_attrib_name[IAS_EXPORT_ATTRIBNAME];
115d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int irda_attrib_type;
116d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  union {
117d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    unsigned int irda_attrib_int;
118d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct {
119d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      unsigned short len;
120d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __u8 octet_seq[IAS_MAX_OCTET_STRING];
121d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    } irda_attrib_octet_seq;
122d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct {
123d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __u8 len;
124d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __u8 charset;
125d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __u8 string[IAS_MAX_STRING];
126d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    } irda_attrib_string;
127d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  } attribute;
128d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 daddr;
129655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
130655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSDONGLE (SIOCDEVPRIVATE + 0)
131655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGDONGLE (SIOCDEVPRIVATE + 1)
132655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSBANDWIDTH (SIOCDEVPRIVATE + 2)
133655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSMEDIABUSY (SIOCDEVPRIVATE + 3)
134655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGMEDIABUSY (SIOCDEVPRIVATE + 4)
135655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGRECEIVING (SIOCDEVPRIVATE + 5)
136655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSMODE (SIOCDEVPRIVATE + 6)
137655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGMODE (SIOCDEVPRIVATE + 7)
138655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSDTRRTS (SIOCDEVPRIVATE + 8)
139655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGQOS (SIOCDEVPRIVATE + 9)
140655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRNAMSIZ 16
141655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct if_irda_qos {
142d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned long baudrate;
143d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned short data_size;
144d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned short window_size;
145d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned short min_turn_time;
146d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned short max_turn_time;
147d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned char add_bofs;
148d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned char link_disc;
149655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
150655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct if_irda_line {
151d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 dtr;
152d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 rts;
153655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
154655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct if_irda_req {
155d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  union {
156d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    char ifrn_name[IRNAMSIZ];
157d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  } ifr_ifrn;
158d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  union {
159d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct if_irda_line ifru_line;
160d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct if_irda_qos ifru_qos;
161d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    unsigned short ifru_flags;
162d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    unsigned int ifru_receiving;
163d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    unsigned int ifru_mode;
164d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    unsigned int ifru_dongle;
165d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  } ifr_ifru;
166655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
167655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define ifr_baudrate ifr_ifru.ifru_qos.baudrate
168655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define ifr_receiving ifr_ifru.ifru_receiving
169655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define ifr_dongle ifr_ifru.ifru_dongle
170655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define ifr_mode ifr_ifru.ifru_mode
171655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define ifr_dtr ifr_ifru.ifru_line.dtr
172655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define ifr_rts ifr_ifru.ifru_line.rts
173655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRDA_NL_NAME "irda"
174655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRDA_NL_VERSION 1
175655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum irda_nl_commands {
176d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_NL_CMD_UNSPEC,
177d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_NL_CMD_SET_MODE,
178d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_NL_CMD_GET_MODE,
179d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __IRDA_NL_CMD_AFTER_LAST
180655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
181655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRDA_NL_CMD_MAX (__IRDA_NL_CMD_AFTER_LAST - 1)
182655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum nl80211_attrs {
183d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_NL_ATTR_UNSPEC,
184d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_NL_ATTR_IFNAME,
185d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IRDA_NL_ATTR_MODE,
186d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __IRDA_NL_ATTR_AFTER_LAST
187655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
188655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRDA_NL_ATTR_MAX (__IRDA_NL_ATTR_AFTER_LAST - 1)
189655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRDA_MODE_PRIMARY 0x1
190655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRDA_MODE_SECONDARY 0x2
191655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IRDA_MODE_MONITOR 0x4
192655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
193