source: svn/trunk/newcon3bcm2_21bu/toolchain/mipsel-linux-uclibc/include/linux/irda.h @ 2

Last change on this file since 2 was 2, checked in by phkim, 11 years ago

1.phkim

  1. revision copy newcon3sk r27
  • Property svn:executable set to *
File size: 6.9 KB
Line 
1/*********************************************************************
2 *               
3 * Filename:      irda.h
4 * Version:       
5 * Description:   
6 * Status:        Experimental.
7 * Author:        Dag Brattli <dagb@cs.uit.no>
8 * Created at:    Mon Mar  8 14:06:12 1999
9 * Modified at:   Sat Dec 25 16:06:42 1999
10 * Modified by:   Dag Brattli <dagb@cs.uit.no>
11 *
12 *     Copyright (c) 1999 Dag Brattli, All Rights Reserved.
13 *     
14 *     This program is free software; you can redistribute it and/or
15 *     modify it under the terms of the GNU General Public License as
16 *     published by the Free Software Foundation; either version 2 of
17 *     the License, or (at your option) any later version.
18 * 
19 *     Neither Dag Brattli nor University of Tromsø admit liability nor
20 *     provide warranty for any of this software. This material is
21 *     provided "AS-IS" and at no charge.
22 *
23 ********************************************************************/
24
25#ifndef KERNEL_IRDA_H
26#define KERNEL_IRDA_H
27
28/* Please do *not* add any #include in this file, this file is
29 * included as-is in user space.
30 * Please fix the calling file to properly included needed files before
31 * this one, or preferably to include <net/irda/irda.h> instead.
32 * Jean II */
33
34#include <asm/types.h>
35
36/* Hint bit positions for first hint byte */
37#define HINT_PNP         0x01
38#define HINT_PDA         0x02
39#define HINT_COMPUTER    0x04
40#define HINT_PRINTER     0x08
41#define HINT_MODEM       0x10
42#define HINT_FAX         0x20
43#define HINT_LAN         0x40
44#define HINT_EXTENSION   0x80
45
46/* Hint bit positions for second hint byte (first extension byte) */
47#define HINT_TELEPHONY   0x01
48#define HINT_FILE_SERVER 0x02
49#define HINT_COMM        0x04
50#define HINT_MESSAGE     0x08
51#define HINT_HTTP        0x10
52#define HINT_OBEX        0x20
53
54/* IrLMP character code values */
55#define CS_ASCII         0x00
56#define CS_ISO_8859_1    0x01
57#define CS_ISO_8859_2    0x02
58#define CS_ISO_8859_3    0x03
59#define CS_ISO_8859_4    0x04
60#define CS_ISO_8859_5    0x05
61#define CS_ISO_8859_6    0x06
62#define CS_ISO_8859_7    0x07
63#define CS_ISO_8859_8    0x08
64#define CS_ISO_8859_9    0x09
65#define CS_UNICODE       0xff
66
67/* These are the currently known dongles */
68typedef enum {
69        IRDA_TEKRAM_DONGLE       = 0,
70        IRDA_ESI_DONGLE          = 1,
71        IRDA_ACTISYS_DONGLE      = 2,
72        IRDA_ACTISYS_PLUS_DONGLE = 3,
73        IRDA_GIRBIL_DONGLE       = 4,
74        IRDA_LITELINK_DONGLE     = 5,
75        IRDA_AIRPORT_DONGLE      = 6,
76        IRDA_OLD_BELKIN_DONGLE   = 7,
77        IRDA_EP7211_IR           = 8,
78        IRDA_MCP2120_DONGLE      = 9,
79        IRDA_ACT200L_DONGLE      = 10,
80        IRDA_MA600_DONGLE        = 11,
81} IRDA_DONGLE;
82
83/* Protocol types to be used for SOCK_DGRAM */
84enum {
85        IRDAPROTO_UNITDATA = 0,
86        IRDAPROTO_ULTRA    = 1,
87        IRDAPROTO_MAX
88};
89
90#define SOL_IRLMP      266 /* Same as SOL_IRDA for now */
91#define SOL_IRTTP      266 /* Same as SOL_IRDA for now */
92
93#define IRLMP_ENUMDEVICES        1      /* Return discovery log */
94#define IRLMP_IAS_SET            2      /* Set an attribute in local IAS */
95#define IRLMP_IAS_QUERY          3      /* Query remote IAS for attribute */
96#define IRLMP_HINTS_SET          4      /* Set hint bits advertised */
97#define IRLMP_QOS_SET            5
98#define IRLMP_QOS_GET            6
99#define IRLMP_MAX_SDU_SIZE       7
100#define IRLMP_IAS_GET            8      /* Get an attribute from local IAS */
101#define IRLMP_IAS_DEL            9      /* Remove attribute from local IAS */
102#define IRLMP_HINT_MASK_SET     10      /* Set discovery filter */
103#define IRLMP_WAITDEVICE        11      /* Wait for a new discovery */
104
105#define IRTTP_MAX_SDU_SIZE IRLMP_MAX_SDU_SIZE /* Compatibility */
106
107#define IAS_MAX_STRING         256      /* See IrLMP 1.1, 4.3.3.2 */
108#define IAS_MAX_OCTET_STRING  1024      /* See IrLMP 1.1, 4.3.3.2 */
109#define IAS_MAX_CLASSNAME       60      /* See IrLMP 1.1, 4.3.1 */
110#define IAS_MAX_ATTRIBNAME      60      /* See IrLMP 1.1, 4.3.3.1 */
111#define IAS_MAX_ATTRIBNUMBER   256      /* See IrLMP 1.1, 4.3.3.1 */
112/* For user space backward compatibility - may be fixed in kernel 2.5.X
113 * Note : need 60+1 ('\0'), make it 64 for alignement - Jean II */
114#define IAS_EXPORT_CLASSNAME       64
115#define IAS_EXPORT_ATTRIBNAME     256
116
117/* Attribute type needed for struct irda_ias_set */
118#define IAS_MISSING 0
119#define IAS_INTEGER 1
120#define IAS_OCT_SEQ 2
121#define IAS_STRING  3
122
123#define LSAP_ANY              0xff
124
125struct sockaddr_irda {
126        sa_family_t sir_family;   /* AF_IRDA */
127        __u8        sir_lsap_sel; /* LSAP selector */
128        __u32       sir_addr;     /* Device address */
129        char        sir_name[25]; /* Usually <service>:IrDA:TinyTP */
130};
131
132struct irda_device_info {
133        __u32       saddr;    /* Address of local interface */
134        __u32       daddr;    /* Address of remote device */
135        char        info[22]; /* Description */
136        __u8        charset;  /* Charset used for description */
137        __u8        hints[2]; /* Hint bits */
138};
139
140struct irda_device_list {
141       __u32 len;
142       struct irda_device_info dev[1];
143};
144
145struct irda_ias_set {
146        char irda_class_name[IAS_EXPORT_CLASSNAME];
147        char irda_attrib_name[IAS_EXPORT_ATTRIBNAME];
148        unsigned int irda_attrib_type;
149        union {
150                unsigned int irda_attrib_int;
151                struct {
152                        unsigned short len;
153                        __u8 octet_seq[IAS_MAX_OCTET_STRING];
154                } irda_attrib_octet_seq;
155                struct {
156                        __u8 len;
157                        __u8 charset;
158                        __u8 string[IAS_MAX_STRING];
159                } irda_attrib_string;
160        } attribute;
161        __u32       daddr;    /* Address of device (for some queries only) */
162};
163
164/* Some private IOCTL's (max 16) */
165#define SIOCSDONGLE    (SIOCDEVPRIVATE + 0)
166#define SIOCGDONGLE    (SIOCDEVPRIVATE + 1)
167#define SIOCSBANDWIDTH (SIOCDEVPRIVATE + 2)
168#define SIOCSMEDIABUSY (SIOCDEVPRIVATE + 3)
169#define SIOCGMEDIABUSY (SIOCDEVPRIVATE + 4)
170#define SIOCGRECEIVING (SIOCDEVPRIVATE + 5)
171#define SIOCSMODE      (SIOCDEVPRIVATE + 6)
172#define SIOCGMODE      (SIOCDEVPRIVATE + 7)
173#define SIOCSDTRRTS    (SIOCDEVPRIVATE + 8)
174#define SIOCGQOS       (SIOCDEVPRIVATE + 9)
175
176/* No reason to include <linux/if.h> just because of this one ;-) */
177#define IRNAMSIZ 16
178
179/* IrDA quality of service information (must not exceed 16 bytes) */
180struct if_irda_qos {
181        unsigned long  baudrate;
182        unsigned short data_size;
183        unsigned short window_size;
184        unsigned short min_turn_time;
185        unsigned short max_turn_time;
186        unsigned char  add_bofs;
187        unsigned char  link_disc;
188};
189
190/* For setting RTS and DTR lines of a dongle */
191struct if_irda_line {
192        __u8 dtr;
193        __u8 rts;
194};
195
196/* IrDA interface configuration (data part must not exceed 16 bytes) */
197struct if_irda_req {
198        union {
199                char ifrn_name[IRNAMSIZ];  /* if name, e.g. "irda0" */
200        } ifr_ifrn;
201       
202        /* Data part */
203        union {
204                struct if_irda_line ifru_line;
205                struct if_irda_qos  ifru_qos;
206                unsigned short      ifru_flags;
207                unsigned int        ifru_receiving;
208                unsigned int        ifru_mode;
209                unsigned int        ifru_dongle;
210        } ifr_ifru;
211};
212
213#define ifr_baudrate  ifr_ifru.ifru_qos.baudrate
214#define ifr_receiving ifr_ifru.ifru_receiving
215#define ifr_dongle    ifr_ifru.ifru_dongle
216#define ifr_mode      ifr_ifru.ifru_mode
217#define ifr_dtr       ifr_ifru.ifru_line.dtr
218#define ifr_rts       ifr_ifru.ifru_line.rts
219
220#endif /* KERNEL_IRDA_H */
221
222
223
224
Note: See TracBrowser for help on using the repository browser.