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