blob: c2dffea8c7475063d3e61ebc5cb8027c71d6bef2 [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef KERNEL_IRDA_H
20#define KERNEL_IRDA_H
21#include <linux/types.h>
22#include <linux/socket.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070023#define HINT_PNP 0x01
24#define HINT_PDA 0x02
25#define HINT_COMPUTER 0x04
26#define HINT_PRINTER 0x08
Ben Cheng655a7c02013-10-16 16:09:24 -070027#define HINT_MODEM 0x10
28#define HINT_FAX 0x20
29#define HINT_LAN 0x40
30#define HINT_EXTENSION 0x80
Ben Cheng655a7c02013-10-16 16:09:24 -070031#define HINT_TELEPHONY 0x01
32#define HINT_FILE_SERVER 0x02
33#define HINT_COMM 0x04
34#define HINT_MESSAGE 0x08
Ben Cheng655a7c02013-10-16 16:09:24 -070035#define HINT_HTTP 0x10
36#define HINT_OBEX 0x20
37#define CS_ASCII 0x00
38#define CS_ISO_8859_1 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -070039#define CS_ISO_8859_2 0x02
40#define CS_ISO_8859_3 0x03
41#define CS_ISO_8859_4 0x04
42#define CS_ISO_8859_5 0x05
Ben Cheng655a7c02013-10-16 16:09:24 -070043#define CS_ISO_8859_6 0x06
44#define CS_ISO_8859_7 0x07
45#define CS_ISO_8859_8 0x08
46#define CS_ISO_8859_9 0x09
Ben Cheng655a7c02013-10-16 16:09:24 -070047#define CS_UNICODE 0xff
48typedef enum {
Tao Baod7db5942015-01-28 10:07:51 -080049 IRDA_TEKRAM_DONGLE = 0,
50 IRDA_ESI_DONGLE = 1,
Tao Baod7db5942015-01-28 10:07:51 -080051 IRDA_ACTISYS_DONGLE = 2,
52 IRDA_ACTISYS_PLUS_DONGLE = 3,
53 IRDA_GIRBIL_DONGLE = 4,
54 IRDA_LITELINK_DONGLE = 5,
Tao Baod7db5942015-01-28 10:07:51 -080055 IRDA_AIRPORT_DONGLE = 6,
56 IRDA_OLD_BELKIN_DONGLE = 7,
57 IRDA_EP7211_IR = 8,
58 IRDA_MCP2120_DONGLE = 9,
Tao Baod7db5942015-01-28 10:07:51 -080059 IRDA_ACT200L_DONGLE = 10,
60 IRDA_MA600_DONGLE = 11,
61 IRDA_TOIM3232_DONGLE = 12,
62 IRDA_EP7211_DONGLE = 13,
Ben Cheng655a7c02013-10-16 16:09:24 -070063} IRDA_DONGLE;
64enum {
Tao Baod7db5942015-01-28 10:07:51 -080065 IRDAPROTO_UNITDATA = 0,
66 IRDAPROTO_ULTRA = 1,
Tao Baod7db5942015-01-28 10:07:51 -080067 IRDAPROTO_MAX
Ben Cheng655a7c02013-10-16 16:09:24 -070068};
69#define SOL_IRLMP 266
70#define SOL_IRTTP 266
Ben Cheng655a7c02013-10-16 16:09:24 -070071#define IRLMP_ENUMDEVICES 1
72#define IRLMP_IAS_SET 2
73#define IRLMP_IAS_QUERY 3
74#define IRLMP_HINTS_SET 4
Ben Cheng655a7c02013-10-16 16:09:24 -070075#define IRLMP_QOS_SET 5
76#define IRLMP_QOS_GET 6
77#define IRLMP_MAX_SDU_SIZE 7
78#define IRLMP_IAS_GET 8
Ben Cheng655a7c02013-10-16 16:09:24 -070079#define IRLMP_IAS_DEL 9
80#define IRLMP_HINT_MASK_SET 10
81#define IRLMP_WAITDEVICE 11
82#define IRTTP_MAX_SDU_SIZE IRLMP_MAX_SDU_SIZE
Ben Cheng655a7c02013-10-16 16:09:24 -070083#define IAS_MAX_STRING 256
84#define IAS_MAX_OCTET_STRING 1024
85#define IAS_MAX_CLASSNAME 60
86#define IAS_MAX_ATTRIBNAME 60
Ben Cheng655a7c02013-10-16 16:09:24 -070087#define IAS_MAX_ATTRIBNUMBER 256
88#define IAS_EXPORT_CLASSNAME 64
89#define IAS_EXPORT_ATTRIBNAME 256
90#define IAS_MISSING 0
Ben Cheng655a7c02013-10-16 16:09:24 -070091#define IAS_INTEGER 1
92#define IAS_OCT_SEQ 2
93#define IAS_STRING 3
94#define LSAP_ANY 0xff
Ben Cheng655a7c02013-10-16 16:09:24 -070095struct sockaddr_irda {
Tao Baod7db5942015-01-28 10:07:51 -080096 __kernel_sa_family_t sir_family;
97 __u8 sir_lsap_sel;
98 __u32 sir_addr;
Tao Baod7db5942015-01-28 10:07:51 -080099 char sir_name[25];
Ben Cheng655a7c02013-10-16 16:09:24 -0700100};
101struct irda_device_info {
Tao Baod7db5942015-01-28 10:07:51 -0800102 __u32 saddr;
Tao Baod7db5942015-01-28 10:07:51 -0800103 __u32 daddr;
104 char info[22];
105 __u8 charset;
106 __u8 hints[2];
Ben Cheng655a7c02013-10-16 16:09:24 -0700107};
108struct irda_device_list {
Tao Baod7db5942015-01-28 10:07:51 -0800109 __u32 len;
110 struct irda_device_info dev[1];
Ben Cheng655a7c02013-10-16 16:09:24 -0700111};
112struct irda_ias_set {
Tao Baod7db5942015-01-28 10:07:51 -0800113 char irda_class_name[IAS_EXPORT_CLASSNAME];
114 char irda_attrib_name[IAS_EXPORT_ATTRIBNAME];
Tao Baod7db5942015-01-28 10:07:51 -0800115 unsigned int irda_attrib_type;
116 union {
117 unsigned int irda_attrib_int;
118 struct {
Tao Baod7db5942015-01-28 10:07:51 -0800119 unsigned short len;
120 __u8 octet_seq[IAS_MAX_OCTET_STRING];
121 } irda_attrib_octet_seq;
122 struct {
Tao Baod7db5942015-01-28 10:07:51 -0800123 __u8 len;
124 __u8 charset;
125 __u8 string[IAS_MAX_STRING];
126 } irda_attrib_string;
Tao Baod7db5942015-01-28 10:07:51 -0800127 } attribute;
128 __u32 daddr;
Ben Cheng655a7c02013-10-16 16:09:24 -0700129};
130#define SIOCSDONGLE (SIOCDEVPRIVATE + 0)
Ben Cheng655a7c02013-10-16 16:09:24 -0700131#define SIOCGDONGLE (SIOCDEVPRIVATE + 1)
132#define SIOCSBANDWIDTH (SIOCDEVPRIVATE + 2)
133#define SIOCSMEDIABUSY (SIOCDEVPRIVATE + 3)
134#define SIOCGMEDIABUSY (SIOCDEVPRIVATE + 4)
Ben Cheng655a7c02013-10-16 16:09:24 -0700135#define SIOCGRECEIVING (SIOCDEVPRIVATE + 5)
136#define SIOCSMODE (SIOCDEVPRIVATE + 6)
137#define SIOCGMODE (SIOCDEVPRIVATE + 7)
138#define SIOCSDTRRTS (SIOCDEVPRIVATE + 8)
Ben Cheng655a7c02013-10-16 16:09:24 -0700139#define SIOCGQOS (SIOCDEVPRIVATE + 9)
140#define IRNAMSIZ 16
141struct if_irda_qos {
Tao Baod7db5942015-01-28 10:07:51 -0800142 unsigned long baudrate;
Tao Baod7db5942015-01-28 10:07:51 -0800143 unsigned short data_size;
144 unsigned short window_size;
145 unsigned short min_turn_time;
146 unsigned short max_turn_time;
Tao Baod7db5942015-01-28 10:07:51 -0800147 unsigned char add_bofs;
148 unsigned char link_disc;
Ben Cheng655a7c02013-10-16 16:09:24 -0700149};
150struct if_irda_line {
Tao Baod7db5942015-01-28 10:07:51 -0800151 __u8 dtr;
152 __u8 rts;
Ben Cheng655a7c02013-10-16 16:09:24 -0700153};
154struct if_irda_req {
Tao Baod7db5942015-01-28 10:07:51 -0800155 union {
156 char ifrn_name[IRNAMSIZ];
157 } ifr_ifrn;
158 union {
Tao Baod7db5942015-01-28 10:07:51 -0800159 struct if_irda_line ifru_line;
160 struct if_irda_qos ifru_qos;
161 unsigned short ifru_flags;
162 unsigned int ifru_receiving;
Tao Baod7db5942015-01-28 10:07:51 -0800163 unsigned int ifru_mode;
164 unsigned int ifru_dongle;
165 } ifr_ifru;
Ben Cheng655a7c02013-10-16 16:09:24 -0700166};
Ben Cheng655a7c02013-10-16 16:09:24 -0700167#define ifr_baudrate ifr_ifru.ifru_qos.baudrate
168#define ifr_receiving ifr_ifru.ifru_receiving
169#define ifr_dongle ifr_ifru.ifru_dongle
170#define ifr_mode ifr_ifru.ifru_mode
Ben Cheng655a7c02013-10-16 16:09:24 -0700171#define ifr_dtr ifr_ifru.ifru_line.dtr
172#define ifr_rts ifr_ifru.ifru_line.rts
173#define IRDA_NL_NAME "irda"
174#define IRDA_NL_VERSION 1
Ben Cheng655a7c02013-10-16 16:09:24 -0700175enum irda_nl_commands {
Tao Baod7db5942015-01-28 10:07:51 -0800176 IRDA_NL_CMD_UNSPEC,
177 IRDA_NL_CMD_SET_MODE,
178 IRDA_NL_CMD_GET_MODE,
Tao Baod7db5942015-01-28 10:07:51 -0800179 __IRDA_NL_CMD_AFTER_LAST
Ben Cheng655a7c02013-10-16 16:09:24 -0700180};
181#define IRDA_NL_CMD_MAX (__IRDA_NL_CMD_AFTER_LAST - 1)
182enum nl80211_attrs {
Tao Baod7db5942015-01-28 10:07:51 -0800183 IRDA_NL_ATTR_UNSPEC,
184 IRDA_NL_ATTR_IFNAME,
185 IRDA_NL_ATTR_MODE,
186 __IRDA_NL_ATTR_AFTER_LAST
Ben Cheng655a7c02013-10-16 16:09:24 -0700187};
188#define IRDA_NL_ATTR_MAX (__IRDA_NL_ATTR_AFTER_LAST - 1)
189#define IRDA_MODE_PRIMARY 0x1
190#define IRDA_MODE_SECONDARY 0x2
Ben Cheng655a7c02013-10-16 16:09:24 -0700191#define IRDA_MODE_MONITOR 0x4
192#endif