~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/linux/irda.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 /* Hint bit positions for first hint byte */
 29 #define HINT_PNP         0x01
 30 #define HINT_PDA         0x02
 31 #define HINT_COMPUTER    0x04
 32 #define HINT_PRINTER     0x08
 33 #define HINT_MODEM       0x10
 34 #define HINT_FAX         0x20
 35 #define HINT_LAN         0x40
 36 #define HINT_EXTENSION   0x80
 37 
 38 /* Hint bit positions for second hint byte (first extension byte) */
 39 #define HINT_TELEPHONY   0x01
 40 #define HINT_FILE_SERVER 0x02
 41 #define HINT_COMM        0x04
 42 #define HINT_MESSAGE     0x08
 43 #define HINT_HTTP        0x10
 44 #define HINT_OBEX        0x20
 45 
 46 /* IrLMP character code values */
 47 #define CS_ASCII         0x00
 48 #define CS_ISO_8859_1    0x01
 49 #define CS_ISO_8859_2    0x02
 50 #define CS_ISO_8859_3    0x03
 51 #define CS_ISO_8859_4    0x04
 52 #define CS_ISO_8859_5    0x05
 53 #define CS_ISO_8859_6    0x06
 54 #define CS_ISO_8859_7    0x07
 55 #define CS_ISO_8859_8    0x08
 56 #define CS_ISO_8859_9    0x09
 57 #define CS_UNICODE       0xff
 58 
 59 /* These are the currently known dongles */
 60 typedef enum {
 61         IRDA_TEKRAM_DONGLE       = 0,
 62         IRDA_ESI_DONGLE          = 1,
 63         IRDA_ACTISYS_DONGLE      = 2,
 64         IRDA_ACTISYS_PLUS_DONGLE = 3,
 65         IRDA_GIRBIL_DONGLE       = 4,
 66         IRDA_LITELINK_DONGLE     = 5,
 67         IRDA_AIRPORT_DONGLE      = 6,
 68         IRDA_OLD_BELKIN_DONGLE   = 7,
 69 } IRDA_DONGLE;
 70 
 71 /* Protocol types to be used for SOCK_DGRAM */
 72 enum {
 73         IRDAPROTO_UNITDATA = 0,
 74         IRDAPROTO_ULTRA    = 1,
 75         IRDAPROTO_MAX
 76 };
 77 
 78 #define SOL_IRLMP      266 /* Same as SOL_IRDA for now */
 79 #define SOL_IRTTP      266 /* Same as SOL_IRDA for now */
 80 
 81 #define IRLMP_ENUMDEVICES        1      /* Return discovery log */
 82 #define IRLMP_IAS_SET            2      /* Set an attribute in local IAS */
 83 #define IRLMP_IAS_QUERY          3      /* Query remote IAS for attribute */
 84 #define IRLMP_HINTS_SET          4      /* Set hint bits advertised */
 85 #define IRLMP_QOS_SET            5
 86 #define IRLMP_QOS_GET            6
 87 #define IRLMP_MAX_SDU_SIZE       7
 88 #define IRLMP_IAS_GET            8      /* Get an attribute from local IAS */
 89 #define IRLMP_IAS_DEL            9      /* Remove attribute from local IAS */
 90 #define IRLMP_HINT_MASK_SET     10      /* Set discovery filter */
 91 #define IRLMP_WAITDEVICE        11      /* Wait for a new discovery */
 92 
 93 #define IRTTP_MAX_SDU_SIZE IRLMP_MAX_SDU_SIZE /* Compatibility */
 94 
 95 #define IAS_MAX_STRING         256
 96 #define IAS_MAX_OCTET_STRING  1024
 97 #define IAS_MAX_CLASSNAME       64
 98 #define IAS_MAX_ATTRIBNAME     256
 99 
100 /* Attribute type needed for struct irda_ias_set */
101 #define IAS_MISSING 0
102 #define IAS_INTEGER 1
103 #define IAS_OCT_SEQ 2
104 #define IAS_STRING  3
105 
106 #define LSAP_ANY              0xff
107 
108 struct sockaddr_irda {
109         sa_family_t sir_family;   /* AF_IRDA */
110         __u8        sir_lsap_sel; /* LSAP selector */
111         __u32       sir_addr;     /* Device address */
112         char        sir_name[25]; /* Usually <service>:IrDA:TinyTP */
113 };
114 
115 struct irda_device_info {
116         __u32       saddr;    /* Address of local interface */
117         __u32       daddr;    /* Address of remote device */
118         char        info[22]; /* Description */
119         __u8        charset;  /* Charset used for description */
120         __u8        hints[2]; /* Hint bits */
121 };
122 
123 struct irda_device_list {
124        __u32 len;
125        struct irda_device_info dev[1];
126 };
127 
128 struct irda_ias_set {
129         char irda_class_name[IAS_MAX_CLASSNAME];
130         char irda_attrib_name[IAS_MAX_ATTRIBNAME];
131         unsigned int irda_attrib_type;
132         union {
133                 unsigned int irda_attrib_int;
134                 struct {
135                         unsigned short len;
136                         __u8 octet_seq[IAS_MAX_OCTET_STRING];
137                 } irda_attrib_octet_seq;
138                 struct {
139                         __u8 len;
140                         __u8 charset;
141                         __u8 string[IAS_MAX_STRING];
142                 } irda_attrib_string;
143         } attribute;
144         __u32       daddr;    /* Address of device (for some queries only) */
145 };
146 
147 /* Some private IOCTL's (max 16) */
148 #define SIOCSDONGLE    (SIOCDEVPRIVATE + 0)
149 #define SIOCGDONGLE    (SIOCDEVPRIVATE + 1)
150 #define SIOCSBANDWIDTH (SIOCDEVPRIVATE + 2)
151 #define SIOCSMEDIABUSY (SIOCDEVPRIVATE + 3)
152 #define SIOCGMEDIABUSY (SIOCDEVPRIVATE + 4)
153 #define SIOCGRECEIVING (SIOCDEVPRIVATE + 5)
154 #define SIOCSMODE      (SIOCDEVPRIVATE + 6)
155 #define SIOCGMODE      (SIOCDEVPRIVATE + 7)
156 #define SIOCSDTRRTS    (SIOCDEVPRIVATE + 8)
157 #define SIOCGQOS       (SIOCDEVPRIVATE + 9)
158 
159 /* No reason to include <linux/if.h> just because of this one ;-) */
160 #define IRNAMSIZ 16 
161 
162 /* IrDA quality of service information (must not exceed 16 bytes) */
163 struct if_irda_qos {
164         unsigned long  baudrate;
165         unsigned short data_size;
166         unsigned short window_size;
167         unsigned short min_turn_time;
168         unsigned short max_turn_time;
169         unsigned char  add_bofs;
170         unsigned char  link_disc;
171 };
172 
173 /* For setting RTS and DTR lines of a dongle */
174 struct if_irda_line {
175         __u8 dtr;
176         __u8 rts;
177 };
178 
179 /* IrDA interface configuration (data part must not exceed 16 bytes) */
180 struct if_irda_req {
181         union {
182                 char ifrn_name[IRNAMSIZ];  /* if name, e.g. "irda0" */
183         } ifr_ifrn;
184         
185         /* Data part */
186         union {
187                 struct if_irda_line ifru_line;
188                 struct if_irda_qos  ifru_qos;
189                 unsigned short      ifru_flags;
190                 unsigned int        ifru_receiving;
191                 unsigned int        ifru_mode;
192                 unsigned int        ifru_dongle;
193         } ifr_ifru;
194 };
195 
196 #define ifr_baudrate  ifr_ifru.ifru_qos.baudrate
197 #define ifr_receiving ifr_ifru.ifru_receiving 
198 #define ifr_dongle    ifr_ifru.ifru_dongle
199 #define ifr_mode      ifr_ifru.ifru_mode
200 #define ifr_dtr       ifr_ifru.ifru_line.dtr
201 #define ifr_rts       ifr_ifru.ifru_line.rts
202 
203 #endif /* KERNEL_IRDA_H */
204 
205 
206 
207 
208 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.