1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
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
39struct cmtp_connadd_req {
40 int sock;
41 __u32 flags;
42};
43
44struct cmtp_conndel_req {
45 bdaddr_t bdaddr;
46 __u32 flags;
47};
48
49struct cmtp_conninfo {
50 bdaddr_t bdaddr;
51 __u32 flags;
52 __u16 state;
53 int num;
54};
55
56struct cmtp_connlist_req {
57 __u32 cnum;
58 struct cmtp_conninfo __user *ci;
59};
60
61int cmtp_add_connection(struct cmtp_connadd_req *req, struct socket *sock);
62int cmtp_del_connection(struct cmtp_conndel_req *req);
63int cmtp_get_connlist(struct cmtp_connlist_req *req);
64int cmtp_get_conninfo(struct cmtp_conninfo *ci);
65
66
67#define CMTP_INTEROP_TIMEOUT (HZ * 5)
68#define CMTP_INITIAL_MSGNUM 0xff00
69
70struct 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 struct task_struct *task;
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
103struct 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
115struct cmtp_scb {
116 int id;
117 int data;
118};
119
120int cmtp_attach_device(struct cmtp_session *session);
121void cmtp_detach_device(struct cmtp_session *session);
122
123void cmtp_recv_capimsg(struct cmtp_session *session, struct sk_buff *skb);
124
125
126int cmtp_init_sockets(void);
127void cmtp_cleanup_sockets(void);
128
129#endif
130