diff options
Diffstat (limited to 'net/bluetooth/cmtp/cmtp.h')
-rw-r--r-- | net/bluetooth/cmtp/cmtp.h | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/net/bluetooth/cmtp/cmtp.h b/net/bluetooth/cmtp/cmtp.h new file mode 100644 index 000000000000..40e3dfec0cc8 --- /dev/null +++ b/net/bluetooth/cmtp/cmtp.h | |||
@@ -0,0 +1,135 @@ | |||
1 | /* | ||
2 | CMTP implementation for Linux Bluetooth stack (BlueZ). | ||
3 | Copyright (C) 2002-2003 Marcel Holtmann <marcel@holtmann.org> | ||
4 | |||
5 | This program is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License version 2 as | ||
7 | published by the Free Software Foundation; | ||
8 | |||
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||
10 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
11 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. | ||
12 | IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY | ||
13 | CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES | ||
14 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
15 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
16 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
17 | |||
18 | ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, | ||
19 | COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS | ||
20 | SOFTWARE IS DISCLAIMED. | ||
21 | */ | ||
22 | |||
23 | #ifndef __CMTP_H | ||
24 | #define __CMTP_H | ||
25 | |||
26 | #include <linux/types.h> | ||
27 | #include <net/bluetooth/bluetooth.h> | ||
28 | |||
29 | #define BTNAMSIZ 18 | ||
30 | |||
31 | /* CMTP ioctl defines */ | ||
32 | #define CMTPCONNADD _IOW('C', 200, int) | ||
33 | #define CMTPCONNDEL _IOW('C', 201, int) | ||
34 | #define CMTPGETCONNLIST _IOR('C', 210, int) | ||
35 | #define CMTPGETCONNINFO _IOR('C', 211, int) | ||
36 | |||
37 | #define CMTP_LOOPBACK 0 | ||
38 | |||
39 | struct cmtp_connadd_req { | ||
40 | int sock; // Connected socket | ||
41 | __u32 flags; | ||
42 | }; | ||
43 | |||
44 | struct cmtp_conndel_req { | ||
45 | bdaddr_t bdaddr; | ||
46 | __u32 flags; | ||
47 | }; | ||
48 | |||
49 | struct cmtp_conninfo { | ||
50 | bdaddr_t bdaddr; | ||
51 | __u32 flags; | ||
52 | __u16 state; | ||
53 | int num; | ||
54 | }; | ||
55 | |||
56 | struct cmtp_connlist_req { | ||
57 | __u32 cnum; | ||
58 | struct cmtp_conninfo __user *ci; | ||
59 | }; | ||
60 | |||
61 | int cmtp_add_connection(struct cmtp_connadd_req *req, struct socket *sock); | ||
62 | int cmtp_del_connection(struct cmtp_conndel_req *req); | ||
63 | int cmtp_get_connlist(struct cmtp_connlist_req *req); | ||
64 | int cmtp_get_conninfo(struct cmtp_conninfo *ci); | ||
65 | |||
66 | /* CMTP session defines */ | ||
67 | #define CMTP_INTEROP_TIMEOUT (HZ * 5) | ||
68 | #define CMTP_INITIAL_MSGNUM 0xff00 | ||
69 | |||
70 | struct cmtp_session { | ||
71 | struct list_head list; | ||
72 | |||
73 | struct socket *sock; | ||
74 | |||
75 | bdaddr_t bdaddr; | ||
76 | |||
77 | unsigned long state; | ||
78 | unsigned long flags; | ||
79 | |||
80 | uint mtu; | ||
81 | |||
82 | char name[BTNAMSIZ]; | ||
83 | |||
84 | atomic_t terminate; | ||
85 | |||
86 | wait_queue_head_t wait; | ||
87 | |||
88 | int ncontroller; | ||
89 | int num; | ||
90 | struct capi_ctr ctrl; | ||
91 | |||
92 | struct list_head applications; | ||
93 | |||
94 | unsigned long blockids; | ||
95 | int msgnum; | ||
96 | |||
97 | struct sk_buff_head transmit; | ||
98 | |||
99 | struct sk_buff *reassembly[16]; | ||
100 | }; | ||
101 | |||
102 | struct cmtp_application { | ||
103 | struct list_head list; | ||
104 | |||
105 | unsigned long state; | ||
106 | int err; | ||
107 | |||
108 | __u16 appl; | ||
109 | __u16 mapping; | ||
110 | |||
111 | __u16 msgnum; | ||
112 | }; | ||
113 | |||
114 | struct cmtp_scb { | ||
115 | int id; | ||
116 | int data; | ||
117 | }; | ||
118 | |||
119 | int cmtp_attach_device(struct cmtp_session *session); | ||
120 | void cmtp_detach_device(struct cmtp_session *session); | ||
121 | |||
122 | void cmtp_recv_capimsg(struct cmtp_session *session, struct sk_buff *skb); | ||
123 | |||
124 | static inline void cmtp_schedule(struct cmtp_session *session) | ||
125 | { | ||
126 | struct sock *sk = session->sock->sk; | ||
127 | |||
128 | wake_up_interruptible(sk->sk_sleep); | ||
129 | } | ||
130 | |||
131 | /* CMTP init defines */ | ||
132 | int cmtp_init_sockets(void); | ||
133 | void cmtp_cleanup_sockets(void); | ||
134 | |||
135 | #endif /* __CMTP_H */ | ||