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
39 struct cmtp_connadd_req {
40 int sock;
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
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 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
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
125
126 int cmtp_init_sockets(void);
127 void cmtp_cleanup_sockets(void);
128
129 #endif