Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /********************************************************************* |
2 | * | |
3 | * Filename: af_irda.h | |
4 | * Version: 1.0 | |
5 | * Description: IrDA sockets declarations | |
6 | * Status: Stable | |
7 | * Author: Dag Brattli <dagb@cs.uit.no> | |
8 | * Created at: Tue Dec 9 21:13:12 1997 | |
9 | * Modified at: Fri Jan 28 13:16:32 2000 | |
10 | * Modified by: Dag Brattli <dagb@cs.uit.no> | |
11 | * | |
12 | * Copyright (c) 1998-2000 Dag Brattli, All Rights Reserved. | |
13 | * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.com> | |
14 | * | |
15 | * This program is free software; you can redistribute it and/or | |
16 | * modify it under the terms of the GNU General Public License as | |
17 | * published by the Free Software Foundation; either version 2 of | |
18 | * the License, or (at your option) any later version. | |
19 | * | |
121e70b6 | 20 | * Neither Dag Brattli nor University of Tromsø admit liability nor |
1da177e4 LT |
21 | * provide warranty for any of this software. This material is |
22 | * provided "AS-IS" and at no charge. | |
23 | * | |
24 | ********************************************************************/ | |
25 | ||
26 | #ifndef AF_IRDA_H | |
27 | #define AF_IRDA_H | |
28 | ||
29 | #include <linux/irda.h> | |
30 | #include <net/irda/irda.h> | |
31 | #include <net/irda/iriap.h> /* struct iriap_cb */ | |
32 | #include <net/irda/irias_object.h> /* struct ias_value */ | |
33 | #include <net/irda/irlmp.h> /* struct lsap_cb */ | |
34 | #include <net/irda/irttp.h> /* struct tsap_cb */ | |
35 | #include <net/irda/discovery.h> /* struct discovery_t */ | |
36 | #include <net/sock.h> | |
37 | ||
38 | /* IrDA Socket */ | |
39 | struct irda_sock { | |
40 | /* struct sock has to be the first member of irda_sock */ | |
41 | struct sock sk; | |
42 | __u32 saddr; /* my local address */ | |
43 | __u32 daddr; /* peer address */ | |
44 | ||
45 | struct lsap_cb *lsap; /* LSAP used by Ultra */ | |
46 | __u8 pid; /* Protocol IP (PID) used by Ultra */ | |
47 | ||
48 | struct tsap_cb *tsap; /* TSAP used by this connection */ | |
49 | __u8 dtsap_sel; /* remote TSAP address */ | |
50 | __u8 stsap_sel; /* local TSAP address */ | |
51 | ||
52 | __u32 max_sdu_size_rx; | |
53 | __u32 max_sdu_size_tx; | |
54 | __u32 max_data_size; | |
55 | __u8 max_header_size; | |
56 | struct qos_info qos_tx; | |
57 | ||
58 | __u16_host_order mask; /* Hint bits mask */ | |
59 | __u16_host_order hints; /* Hint bits */ | |
60 | ||
61 | void *ckey; /* IrLMP client handle */ | |
62 | void *skey; /* IrLMP service handle */ | |
63 | ||
64 | struct ias_object *ias_obj; /* Our service name + lsap in IAS */ | |
65 | struct iriap_cb *iriap; /* Used to query remote IAS */ | |
66 | struct ias_value *ias_result; /* Result of remote IAS query */ | |
67 | ||
68 | hashbin_t *cachelog; /* Result of discovery query */ | |
69 | __u32 cachedaddr; /* Result of selective discovery query */ | |
70 | ||
71 | int nslots; /* Number of slots to use for discovery */ | |
72 | ||
73 | int errno; /* status of the IAS query */ | |
74 | ||
75 | wait_queue_head_t query_wait; /* Wait for the answer to a query */ | |
76 | struct timer_list watchdog; /* Timeout for discovery */ | |
77 | ||
78 | LOCAL_FLOW tx_flow; | |
79 | LOCAL_FLOW rx_flow; | |
80 | }; | |
81 | ||
82 | static inline struct irda_sock *irda_sk(struct sock *sk) | |
83 | { | |
84 | return (struct irda_sock *)sk; | |
85 | } | |
86 | ||
87 | #endif /* AF_IRDA_H */ |