Commit | Line | Data |
---|---|---|
8e87d142 | 1 | /* |
1da177e4 LT |
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 | |
8e87d142 YH |
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 | |
1da177e4 LT |
16 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
17 | ||
8e87d142 YH |
18 | ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, |
19 | COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS | |
1da177e4 LT |
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 { | |
e0e185ef | 40 | int sock; /* Connected socket */ |
1da177e4 LT |
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 | ||
7176522c | 84 | atomic_t terminate; |
fada4ac3 | 85 | struct task_struct *task; |
1da177e4 LT |
86 | |
87 | wait_queue_head_t wait; | |
88 | ||
89 | int ncontroller; | |
90 | int num; | |
91 | struct capi_ctr ctrl; | |
92 | ||
93 | struct list_head applications; | |
94 | ||
95 | unsigned long blockids; | |
96 | int msgnum; | |
97 | ||
98 | struct sk_buff_head transmit; | |
99 | ||
100 | struct sk_buff *reassembly[16]; | |
101 | }; | |
102 | ||
103 | struct cmtp_application { | |
104 | struct list_head list; | |
105 | ||
106 | unsigned long state; | |
107 | int err; | |
108 | ||
109 | __u16 appl; | |
110 | __u16 mapping; | |
111 | ||
112 | __u16 msgnum; | |
113 | }; | |
114 | ||
115 | struct cmtp_scb { | |
116 | int id; | |
117 | int data; | |
118 | }; | |
119 | ||
120 | int cmtp_attach_device(struct cmtp_session *session); | |
121 | void cmtp_detach_device(struct cmtp_session *session); | |
122 | ||
123 | void cmtp_recv_capimsg(struct cmtp_session *session, struct sk_buff *skb); | |
124 | ||
1da177e4 LT |
125 | /* CMTP init defines */ |
126 | int cmtp_init_sockets(void); | |
127 | void cmtp_cleanup_sockets(void); | |
128 | ||
129 | #endif /* __CMTP_H */ |