--- /dev/null
+/*******************************************************************
+ bluetooth library
+
+ l2cap.h - list of fce for operation L2CAP protocol and
+ list of L2CAP structures
+
+ Copyright (C) 2006 by Petr Kovacik petr_kovacik@gmail.com
+
+ *******************************************************************/
+
+#ifndef __L2CAP_H
+#define __L2CAP_H
+
+
+/* L2CAP defaults */
+#define L2CAP_DEFAULT_MTU 672
+#define L2CAP_DEFAULT_FLUSH_TO 0xFFFF
+
+#define L2CAP_CONN_TIMEOUT (HZ * 40)
+
+/* L2CAP socket address */
+//struct sockaddr_l2 {
+// sa_family_t l2_family;
+// unsigned short l2_psm;
+// bdaddr_t l2_bdaddr;
+//};
+
+/* L2CAP socket options */
+//#define L2CAP_OPTIONS 0x01
+//struct l2cap_options {
+// uint16_t omtu;
+// uint16_t imtu;
+// uint16_t flush_to;
+// uint8_t mode;
+//};
+
+
+//#define L2CAP_CONNINFO 0x02
+//struct l2cap_conninfo {
+// uint16_t hci_handle;
+// uint8_t dev_class[3];
+//};
+
+#define L2CAP_LM 0x03
+#define L2CAP_LM_MASTER 0x0001
+#define L2CAP_LM_AUTH 0x0002
+#define L2CAP_LM_ENCRYPT 0x0004
+#define L2CAP_LM_TRUSTED 0x0008
+#define L2CAP_LM_RELIABLE 0x0010
+#define L2CAP_LM_SECURE 0x0020
+
+/* L2CAP command codes */
+#define L2CAP_COMMAND_REJ 0x01
+#define L2CAP_CONN_REQ 0x02
+#define L2CAP_CONN_RSP 0x03
+#define L2CAP_CONF_REQ 0x04
+#define L2CAP_CONF_RSP 0x05
+#define L2CAP_DISCONN_REQ 0x06
+#define L2CAP_DISCONN_RSP 0x07
+#define L2CAP_ECHO_REQ 0x08
+#define L2CAP_ECHO_RSP 0x09
+#define L2CAP_INFO_REQ 0x0a
+#define L2CAP_INFO_RSP 0x0b
+
+/* L2CAP structures */
+typedef struct {
+ uint16_t len;
+ uint16_t cid;
+} l2cap_hdr;
+#define L2CAP_HDR____len 0
+#define L2CAP_HDR____cid 2
+/*--------------------------------*/
+#define L2CAP_HDR_SIZE 4
+/****************************************************************/
+/****************************************************************/
+
+typedef struct {
+ uint8_t code;
+ uint8_t ident;
+ uint16_t len;
+} l2cap_cmd_hdr;
+#define L2CAP_CMD_HDR____code 0
+#define L2CAP_CMD_HDR____ident 1
+#define L2CAP_CMD_HDR____len 2
+/*--------------------------------*/
+#define L2CAP_CMD_HDR_SIZE 4
+/****************************************************************/
+/****************************************************************/
+
+typedef struct {
+ uint16_t reason;
+}l2cap_cmd_rej;
+#define L2CAP_CMD_REJ____reason 0
+/*--------------------------------*/
+#define L2CAP_CMD_REJ_SIZE 2
+/****************************************************************/
+/****************************************************************/
+
+typedef struct { //0x02
+ uint16_t psm;
+ uint16_t scid;
+} l2cap_conn_req;
+
+#define L2CAP_CONN_REQ____psm 0
+#define L2CAP_CONN_REQ____scid 2
+/*--------------------------------*/
+#define L2CAP_CONN_REQ_SIZE 4
+/****************************************************************/
+/****************************************************************/
+
+typedef struct { //0x03
+ uint16_t dcid;
+ uint16_t scid;
+ uint16_t result;
+ uint16_t status;
+} l2cap_conn_rsp;
+#define L2CAP_CONN_RSP____dcid 0
+#define L2CAP_CONN_RSP____scid 2
+#define L2CAP_CONN_RSP____result 4
+#define L2CAP_CONN_RSP____status 6
+/*--------------------------------*/
+#define L2CAP_CONN_RSP_SIZE 8
+/****************************************************************/
+/****************************************************************/
+
+/* connect result */
+#define L2CAP_CR_SUCCESS 0x0000
+#define L2CAP_CR_PEND 0x0001
+#define L2CAP_CR_BAD_PSM 0x0002
+#define L2CAP_CR_SEC_BLOCK 0x0003
+#define L2CAP_CR_NO_MEM 0x0004
+
+/* connect status */
+#define L2CAP_CS_NO_INFO 0x0000
+#define L2CAP_CS_AUTHEN_PEND 0x0001
+#define L2CAP_CS_AUTHOR_PEND 0x0002
+
+typedef struct { //0x04
+ uint16_t dcid;
+ uint16_t flags;
+ uint8_t data[0];
+} l2cap_conf_req;
+#define L2CAP_CONF_REQ____dcid 0
+#define L2CAP_CONF_REQ____flags 2
+#define L2CAP_CONF_REQ____data 4
+/*--------------------------------*/
+#define L2CAP_CONF_REQ_SIZE 4
+/****************************************************************/
+/****************************************************************/
+
+typedef struct { //0x05
+ uint16_t scid;
+ uint16_t flags;
+ uint16_t result;
+ uint8_t data[0];
+} l2cap_conf_rsp;
+#define L2CAP_CONF_RSP____scid 0
+#define L2CAP_CONF_RSP____flags 2
+#define L2CAP_CONF_RSP____result 4
+#define L2CAP_CONF_RSP____data 6
+/*--------------------------------*/
+#define L2CAP_CONF_RSP_SIZE 6
+/****************************************************************/
+/****************************************************************/
+
+
+
+#define L2CAP_CONF_SUCCESS 0x0000
+#define L2CAP_CONF_UNACCEPT 0x0001
+#define L2CAP_CONF_REJECT 0x0002
+#define L2CAP_CONF_UNKNOWN 0x0003
+
+typedef struct {
+ uint8_t type;
+ uint8_t len;
+ uint8_t val[0];
+} l2cap_conf_opt;
+#define L2CAP_CONF_OPT____type 0
+#define L2CAP_CONF_OPT____len 1
+#define L2CAP_CONF_OPT____val 2
+/*--------------------------------*/
+#define L2CAP_CONF_OPT_SIZE 2
+/****************************************************************/
+/****************************************************************/
+
+
+#define L2CAP_CONF_MTU 0x01
+#define L2CAP_CONF_FLUSH_TO 0x02
+#define L2CAP_CONF_QOS 0x03
+#define L2CAP_CONF_RFC 0x04
+#define L2CAP_CONF_RFC_MODE 0x04
+
+#define L2CAP_CONF_MAX_SIZE 22
+
+typedef struct {
+ uint16_t dcid;
+ uint16_t scid;
+} l2cap_disconn_req;
+#define L2CAP_DISCONN_REQ____dcid 0
+#define L2CAP_DISCONN_REQ____scid 2
+/*--------------------------------*/
+#define L2CAP_DISCONN_REQ_SIZE 4
+/****************************************************************/
+/****************************************************************/
+
+typedef struct {
+ uint16_t dcid;
+ uint16_t scid;
+} l2cap_disconn_rsp;
+#define L2CAP_DISCONN_RSP____dcid 0
+#define L2CAP_DISCONN_RSP____scid 2
+/*--------------------------------*/
+#define L2CAP_DISCONN_RSP_SIZE 4
+/****************************************************************/
+/****************************************************************/
+
+typedef struct {
+ uint16_t type;
+ uint8_t data[0];
+} l2cap_info_req;
+#define L2CAP_INFO_REQ____type 0
+#define L2CAP_INFO_REQ____data 2
+/*--------------------------------*/
+#define L2CAP_INFO_REQ_SIZE 2
+/****************************************************************/
+/****************************************************************/
+
+typedef struct {
+ uint16_t type;
+ uint16_t result;
+ uint8_t data[0];
+} l2cap_info_rsp;
+#define L2CAP_INFO_RSP____type 0
+#define L2CAP_INFO_RSP____result 2
+#define L2CAP_INFO_RSP____data 4
+/*--------------------------------*/
+#define L2CAP_INFO_RSP_SIZE 4
+/****************************************************************/
+/****************************************************************/
+
+/* info type */
+#define L2CAP_IT_CL_MTU 0x0001
+#define L2CAP_IT_FEAT_MASK 0x0002
+
+/* info result */
+#define L2CAP_IR_SUCCESS 0x0000
+#define L2CAP_IR_NOTSUPP 0x0001
+
+
+
+
+
+
+
+/*----------------------- funkce zavisle na code -----------------------------------*/
+int l2cap_signaling(uint8_t *bth_p, uint16_t size, int dev_num);
+
+int l2cap_none(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan);
+int l2cap_cod_command_rej(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan); //0x01
+int l2cap_cod_conn_req(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan); //0x02
+int l2cap_cod_conn_rsp(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan); //0x03
+int l2cap_cod_conf_req(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan); //0x04
+int l2cap_cod_conf_rsp(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan); //0x05
+int l2cap_cod_disconn_req(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan); //0x06
+int l2cap_cod_disconn_rsp(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan); //0x07
+int l2cap_cod_echo_req(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan); //0x08
+int l2cap_cod_echo_rsp(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan); //0x09
+int l2cap_cod_info_req(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan); //0x0a
+int l2cap_cod_info_rsp(uint8_t *bth_p, uint16_t size, int dev_num, int pos_chan); //0x0b
+//int l2cap_send_data(int inx_handle, int inx_chanal);
+
+#endif /* __L2CAP_H */