diff options
| author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2011-05-08 23:11:02 +0200 |
|---|---|---|
| committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2011-05-08 23:11:02 +0200 |
| commit | cded208c7ea6d107dcbfdb2e2d4622daf41c2886 (patch) | |
| tree | a04a03736b0a928c2954382f924aadb105ee39cc /libdde_linux26/contrib/include/net/bluetooth | |
| parent | fc82e00ca1e174cb961dea6ad37622e9b26cd899 (diff) | |
remove .svn directories
Diffstat (limited to 'libdde_linux26/contrib/include/net/bluetooth')
9 files changed, 0 insertions, 2852 deletions
diff --git a/libdde_linux26/contrib/include/net/bluetooth/.svn/all-wcprops b/libdde_linux26/contrib/include/net/bluetooth/.svn/all-wcprops deleted file mode 100644 index 6ea72ae5..00000000 --- a/libdde_linux26/contrib/include/net/bluetooth/.svn/all-wcprops +++ /dev/null @@ -1,41 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 80 -/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/bluetooth -END -hci_core.h -K 25 -svn:wc:ra_dav:version-url -V 91 -/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/bluetooth/hci_core.h -END -l2cap.h -K 25 -svn:wc:ra_dav:version-url -V 88 -/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/bluetooth/l2cap.h -END -hci.h -K 25 -svn:wc:ra_dav:version-url -V 86 -/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/bluetooth/hci.h -END -rfcomm.h -K 25 -svn:wc:ra_dav:version-url -V 89 -/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/bluetooth/rfcomm.h -END -sco.h -K 25 -svn:wc:ra_dav:version-url -V 86 -/repos/tudos/!svn/ver/174/trunk/l4/pkg/dde/linux26/contrib/include/net/bluetooth/sco.h -END -bluetooth.h -K 25 -svn:wc:ra_dav:version-url -V 92 -/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/bluetooth/bluetooth.h -END diff --git a/libdde_linux26/contrib/include/net/bluetooth/.svn/entries b/libdde_linux26/contrib/include/net/bluetooth/.svn/entries deleted file mode 100644 index 73ef225e..00000000 --- a/libdde_linux26/contrib/include/net/bluetooth/.svn/entries +++ /dev/null @@ -1,232 +0,0 @@ -9 - -dir -465 -http://svn.tudos.org/repos/tudos/trunk/l4/pkg/dde/linux26/contrib/include/net/bluetooth -http://svn.tudos.org/repos/tudos - - - -2009-05-20T14:32:55.606606Z -455 -l4check - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -a704ac0b-3a55-4d43-a2a9-7be6f07c34fb - -hci_core.h -file - - - - -2009-11-15T17:14:50.000000Z -24611db8d259a8d85b7b7f24502cbbd9 -2009-05-20T14:32:55.606606Z -455 -l4check - - - - - - - - - - - - - - - - - - - - - -17301 - -l2cap.h -file - - - - -2009-11-15T17:14:50.000000Z -b8c89f84208979032b087282344e9373 -2009-05-20T14:32:55.606606Z -455 -l4check - - - - - - - - - - - - - - - - - - - - - -5828 - -hci.h -file - - - - -2009-11-15T17:14:50.000000Z -0c18627acea37169f9e586175f46822e -2009-05-20T14:32:55.606606Z -455 -l4check - - - - - - - - - - - - - - - - - - - - - -23287 - -rfcomm.h -file - - - - -2009-11-15T17:14:50.000000Z -ee3f12a875888744cfa4bbc33cf25d20 -2009-05-20T14:32:55.606606Z -455 -l4check - - - - - - - - - - - - - - - - - - - - - -8956 - -sco.h -file - - - - -2009-11-15T17:14:50.000000Z -3c4b9c54834068302433566c7b4b95db -2007-09-08T19:44:13.897747Z -174 -l4check - - - - - - - - - - - - - - - - - - - - - -2088 - -bluetooth.h -file - - - - -2009-11-15T17:14:50.000000Z -978e6df504945b39dae94945415af6b3 -2009-05-20T14:32:55.606606Z -455 -l4check - - - - - - - - - - - - - - - - - - - - - -4963 - diff --git a/libdde_linux26/contrib/include/net/bluetooth/.svn/format b/libdde_linux26/contrib/include/net/bluetooth/.svn/format deleted file mode 100644 index ec635144..00000000 --- a/libdde_linux26/contrib/include/net/bluetooth/.svn/format +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/bluetooth.h.svn-base b/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/bluetooth.h.svn-base deleted file mode 100644 index a04f8463..00000000 --- a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/bluetooth.h.svn-base +++ /dev/null @@ -1,181 +0,0 @@ -/* - BlueZ - Bluetooth protocol stack for Linux - Copyright (C) 2000-2001 Qualcomm Incorporated - - Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License version 2 as - published by the Free Software Foundation; - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. - IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY - CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, - COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS - SOFTWARE IS DISCLAIMED. -*/ - -#ifndef __BLUETOOTH_H -#define __BLUETOOTH_H - -#include <asm/types.h> -#include <asm/byteorder.h> -#include <linux/list.h> -#include <linux/poll.h> -#include <net/sock.h> - -#ifndef AF_BLUETOOTH -#define AF_BLUETOOTH 31 -#define PF_BLUETOOTH AF_BLUETOOTH -#endif - -/* Reserv for core and drivers use */ -#define BT_SKB_RESERVE 8 - -#define BTPROTO_L2CAP 0 -#define BTPROTO_HCI 1 -#define BTPROTO_SCO 2 -#define BTPROTO_RFCOMM 3 -#define BTPROTO_BNEP 4 -#define BTPROTO_CMTP 5 -#define BTPROTO_HIDP 6 -#define BTPROTO_AVDTP 7 - -#define SOL_HCI 0 -#define SOL_L2CAP 6 -#define SOL_SCO 17 -#define SOL_RFCOMM 18 - -#define BT_INFO(fmt, arg...) printk(KERN_INFO "Bluetooth: " fmt "\n" , ## arg) -#define BT_ERR(fmt, arg...) printk(KERN_ERR "%s: " fmt "\n" , __func__ , ## arg) -#define BT_DBG(fmt, arg...) pr_debug("%s: " fmt "\n" , __func__ , ## arg) - -/* Connection and socket states */ -enum { - BT_CONNECTED = 1, /* Equal to TCP_ESTABLISHED to make net code happy */ - BT_OPEN, - BT_BOUND, - BT_LISTEN, - BT_CONNECT, - BT_CONNECT2, - BT_CONFIG, - BT_DISCONN, - BT_CLOSED -}; - -/* Endianness conversions */ -#define htobs(a) __cpu_to_le16(a) -#define htobl(a) __cpu_to_le32(a) -#define btohs(a) __le16_to_cpu(a) -#define btohl(a) __le32_to_cpu(a) - -/* BD Address */ -typedef struct { - __u8 b[6]; -} __attribute__((packed)) bdaddr_t; - -#define BDADDR_ANY (&(bdaddr_t) {{0, 0, 0, 0, 0, 0}}) -#define BDADDR_LOCAL (&(bdaddr_t) {{0, 0, 0, 0xff, 0xff, 0xff}}) - -/* Copy, swap, convert BD Address */ -static inline int bacmp(bdaddr_t *ba1, bdaddr_t *ba2) -{ - return memcmp(ba1, ba2, sizeof(bdaddr_t)); -} -static inline void bacpy(bdaddr_t *dst, bdaddr_t *src) -{ - memcpy(dst, src, sizeof(bdaddr_t)); -} - -void baswap(bdaddr_t *dst, bdaddr_t *src); -char *batostr(bdaddr_t *ba); -bdaddr_t *strtoba(char *str); - -/* Common socket structures and functions */ - -#define bt_sk(__sk) ((struct bt_sock *) __sk) - -struct bt_sock { - struct sock sk; - bdaddr_t src; - bdaddr_t dst; - struct list_head accept_q; - struct sock *parent; -}; - -struct bt_sock_list { - struct hlist_head head; - rwlock_t lock; -}; - -int bt_sock_register(int proto, struct net_proto_family *ops); -int bt_sock_unregister(int proto); -void bt_sock_link(struct bt_sock_list *l, struct sock *s); -void bt_sock_unlink(struct bt_sock_list *l, struct sock *s); -int bt_sock_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg, size_t len, int flags); -uint bt_sock_poll(struct file * file, struct socket *sock, poll_table *wait); -int bt_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg); -int bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo); - -void bt_accept_enqueue(struct sock *parent, struct sock *sk); -void bt_accept_unlink(struct sock *sk); -struct sock *bt_accept_dequeue(struct sock *parent, struct socket *newsock); - -/* Skb helpers */ -struct bt_skb_cb { - __u8 pkt_type; - __u8 incoming; -}; -#define bt_cb(skb) ((struct bt_skb_cb *)(skb->cb)) - -static inline struct sk_buff *bt_skb_alloc(unsigned int len, gfp_t how) -{ - struct sk_buff *skb; - - if ((skb = alloc_skb(len + BT_SKB_RESERVE, how))) { - skb_reserve(skb, BT_SKB_RESERVE); - bt_cb(skb)->incoming = 0; - } - return skb; -} - -static inline struct sk_buff *bt_skb_send_alloc(struct sock *sk, unsigned long len, - int nb, int *err) -{ - struct sk_buff *skb; - - if ((skb = sock_alloc_send_skb(sk, len + BT_SKB_RESERVE, nb, err))) { - skb_reserve(skb, BT_SKB_RESERVE); - bt_cb(skb)->incoming = 0; - } - - return skb; -} - -static inline int skb_frags_no(struct sk_buff *skb) -{ - register struct sk_buff *frag = skb_shinfo(skb)->frag_list; - register int n = 1; - - for (; frag; frag=frag->next, n++); - return n; -} - -int bt_err(__u16 code); - -extern int hci_sock_init(void); -extern void hci_sock_cleanup(void); - -extern int bt_sysfs_init(void); -extern void bt_sysfs_cleanup(void); - -extern struct class *bt_class; - -#endif /* __BLUETOOTH_H */ diff --git a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/hci.h.svn-base b/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/hci.h.svn-base deleted file mode 100644 index 3645139e..00000000 --- a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/hci.h.svn-base +++ /dev/null @@ -1,1023 +0,0 @@ -/* - BlueZ - Bluetooth protocol stack for Linux - Copyright (C) 2000-2001 Qualcomm Incorporated - - Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License version 2 as - published by the Free Software Foundation; - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. - IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY - CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, - COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS - SOFTWARE IS DISCLAIMED. -*/ - -#ifndef __HCI_H -#define __HCI_H - -#define HCI_MAX_ACL_SIZE 1024 -#define HCI_MAX_SCO_SIZE 255 -#define HCI_MAX_EVENT_SIZE 260 -#define HCI_MAX_FRAME_SIZE (HCI_MAX_ACL_SIZE + 4) - -/* HCI dev events */ -#define HCI_DEV_REG 1 -#define HCI_DEV_UNREG 2 -#define HCI_DEV_UP 3 -#define HCI_DEV_DOWN 4 -#define HCI_DEV_SUSPEND 5 -#define HCI_DEV_RESUME 6 - -/* HCI notify events */ -#define HCI_NOTIFY_CONN_ADD 1 -#define HCI_NOTIFY_CONN_DEL 2 -#define HCI_NOTIFY_VOICE_SETTING 3 - -/* HCI device types */ -#define HCI_VIRTUAL 0 -#define HCI_USB 1 -#define HCI_PCCARD 2 -#define HCI_UART 3 -#define HCI_RS232 4 -#define HCI_PCI 5 -#define HCI_SDIO 6 - -/* HCI device quirks */ -enum { - HCI_QUIRK_NO_RESET, - HCI_QUIRK_RAW_DEVICE, - HCI_QUIRK_FIXUP_BUFFER_SIZE -}; - -/* HCI device flags */ -enum { - HCI_UP, - HCI_INIT, - HCI_RUNNING, - - HCI_PSCAN, - HCI_ISCAN, - HCI_AUTH, - HCI_ENCRYPT, - HCI_INQUIRY, - - HCI_RAW, -}; - -/* HCI ioctl defines */ -#define HCIDEVUP _IOW('H', 201, int) -#define HCIDEVDOWN _IOW('H', 202, int) -#define HCIDEVRESET _IOW('H', 203, int) -#define HCIDEVRESTAT _IOW('H', 204, int) - -#define HCIGETDEVLIST _IOR('H', 210, int) -#define HCIGETDEVINFO _IOR('H', 211, int) -#define HCIGETCONNLIST _IOR('H', 212, int) -#define HCIGETCONNINFO _IOR('H', 213, int) -#define HCIGETAUTHINFO _IOR('H', 215, int) - -#define HCISETRAW _IOW('H', 220, int) -#define HCISETSCAN _IOW('H', 221, int) -#define HCISETAUTH _IOW('H', 222, int) -#define HCISETENCRYPT _IOW('H', 223, int) -#define HCISETPTYPE _IOW('H', 224, int) -#define HCISETLINKPOL _IOW('H', 225, int) -#define HCISETLINKMODE _IOW('H', 226, int) -#define HCISETACLMTU _IOW('H', 227, int) -#define HCISETSCOMTU _IOW('H', 228, int) - -#define HCIINQUIRY _IOR('H', 240, int) - -/* HCI timeouts */ -#define HCI_CONNECT_TIMEOUT (40000) /* 40 seconds */ -#define HCI_DISCONN_TIMEOUT (2000) /* 2 seconds */ -#define HCI_IDLE_TIMEOUT (6000) /* 6 seconds */ -#define HCI_INIT_TIMEOUT (10000) /* 10 seconds */ - -/* HCI data types */ -#define HCI_COMMAND_PKT 0x01 -#define HCI_ACLDATA_PKT 0x02 -#define HCI_SCODATA_PKT 0x03 -#define HCI_EVENT_PKT 0x04 -#define HCI_VENDOR_PKT 0xff - -/* HCI packet types */ -#define HCI_DM1 0x0008 -#define HCI_DM3 0x0400 -#define HCI_DM5 0x4000 -#define HCI_DH1 0x0010 -#define HCI_DH3 0x0800 -#define HCI_DH5 0x8000 - -#define HCI_HV1 0x0020 -#define HCI_HV2 0x0040 -#define HCI_HV3 0x0080 - -#define SCO_PTYPE_MASK (HCI_HV1 | HCI_HV2 | HCI_HV3) -#define ACL_PTYPE_MASK (~SCO_PTYPE_MASK) - -/* eSCO packet types */ -#define ESCO_HV1 0x0001 -#define ESCO_HV2 0x0002 -#define ESCO_HV3 0x0004 -#define ESCO_EV3 0x0008 -#define ESCO_EV4 0x0010 -#define ESCO_EV5 0x0020 - -#define SCO_ESCO_MASK (ESCO_HV1 | ESCO_HV2 | ESCO_HV3) - -/* ACL flags */ -#define ACL_CONT 0x01 -#define ACL_START 0x02 -#define ACL_ACTIVE_BCAST 0x04 -#define ACL_PICO_BCAST 0x08 - -/* Baseband links */ -#define SCO_LINK 0x00 -#define ACL_LINK 0x01 -#define ESCO_LINK 0x02 - -/* LMP features */ -#define LMP_3SLOT 0x01 -#define LMP_5SLOT 0x02 -#define LMP_ENCRYPT 0x04 -#define LMP_SOFFSET 0x08 -#define LMP_TACCURACY 0x10 -#define LMP_RSWITCH 0x20 -#define LMP_HOLD 0x40 -#define LMP_SNIFF 0x80 - -#define LMP_PARK 0x01 -#define LMP_RSSI 0x02 -#define LMP_QUALITY 0x04 -#define LMP_SCO 0x08 -#define LMP_HV2 0x10 -#define LMP_HV3 0x20 -#define LMP_ULAW 0x40 -#define LMP_ALAW 0x80 - -#define LMP_CVSD 0x01 -#define LMP_PSCHEME 0x02 -#define LMP_PCONTROL 0x04 - -#define LMP_ESCO 0x80 - -#define LMP_EV4 0x01 -#define LMP_EV5 0x02 - -#define LMP_SNIFF_SUBR 0x02 - -#define LMP_SIMPLE_PAIR 0x08 - -/* Connection modes */ -#define HCI_CM_ACTIVE 0x0000 -#define HCI_CM_HOLD 0x0001 -#define HCI_CM_SNIFF 0x0002 -#define HCI_CM_PARK 0x0003 - -/* Link policies */ -#define HCI_LP_RSWITCH 0x0001 -#define HCI_LP_HOLD 0x0002 -#define HCI_LP_SNIFF 0x0004 -#define HCI_LP_PARK 0x0008 - -/* Link modes */ -#define HCI_LM_ACCEPT 0x8000 -#define HCI_LM_MASTER 0x0001 -#define HCI_LM_AUTH 0x0002 -#define HCI_LM_ENCRYPT 0x0004 -#define HCI_LM_TRUSTED 0x0008 -#define HCI_LM_RELIABLE 0x0010 -#define HCI_LM_SECURE 0x0020 - -/* Authentication types */ -#define HCI_AT_NO_BONDING 0x00 -#define HCI_AT_NO_BONDING_MITM 0x01 -#define HCI_AT_DEDICATED_BONDING 0x02 -#define HCI_AT_DEDICATED_BONDING_MITM 0x03 -#define HCI_AT_GENERAL_BONDING 0x04 -#define HCI_AT_GENERAL_BONDING_MITM 0x05 - -/* ----- HCI Commands ---- */ -#define HCI_OP_INQUIRY 0x0401 -struct hci_cp_inquiry { - __u8 lap[3]; - __u8 length; - __u8 num_rsp; -} __attribute__ ((packed)); - -#define HCI_OP_INQUIRY_CANCEL 0x0402 - -#define HCI_OP_EXIT_PERIODIC_INQ 0x0404 - -#define HCI_OP_CREATE_CONN 0x0405 -struct hci_cp_create_conn { - bdaddr_t bdaddr; - __le16 pkt_type; - __u8 pscan_rep_mode; - __u8 pscan_mode; - __le16 clock_offset; - __u8 role_switch; -} __attribute__ ((packed)); - -#define HCI_OP_DISCONNECT 0x0406 -struct hci_cp_disconnect { - __le16 handle; - __u8 reason; -} __attribute__ ((packed)); - -#define HCI_OP_ADD_SCO 0x0407 -struct hci_cp_add_sco { - __le16 handle; - __le16 pkt_type; -} __attribute__ ((packed)); - -#define HCI_OP_CREATE_CONN_CANCEL 0x0408 -struct hci_cp_create_conn_cancel { - bdaddr_t bdaddr; -} __attribute__ ((packed)); - -#define HCI_OP_ACCEPT_CONN_REQ 0x0409 -struct hci_cp_accept_conn_req { - bdaddr_t bdaddr; - __u8 role; -} __attribute__ ((packed)); - -#define HCI_OP_REJECT_CONN_REQ 0x040a -struct hci_cp_reject_conn_req { - bdaddr_t bdaddr; - __u8 reason; -} __attribute__ ((packed)); - -#define HCI_OP_LINK_KEY_REPLY 0x040b -struct hci_cp_link_key_reply { - bdaddr_t bdaddr; - __u8 link_key[16]; -} __attribute__ ((packed)); - -#define HCI_OP_LINK_KEY_NEG_REPLY 0x040c -struct hci_cp_link_key_neg_reply { - bdaddr_t bdaddr; -} __attribute__ ((packed)); - -#define HCI_OP_PIN_CODE_REPLY 0x040d -struct hci_cp_pin_code_reply { - bdaddr_t bdaddr; - __u8 pin_len; - __u8 pin_code[16]; -} __attribute__ ((packed)); - -#define HCI_OP_PIN_CODE_NEG_REPLY 0x040e -struct hci_cp_pin_code_neg_reply { - bdaddr_t bdaddr; -} __attribute__ ((packed)); - -#define HCI_OP_CHANGE_CONN_PTYPE 0x040f -struct hci_cp_change_conn_ptype { - __le16 handle; - __le16 pkt_type; -} __attribute__ ((packed)); - -#define HCI_OP_AUTH_REQUESTED 0x0411 -struct hci_cp_auth_requested { - __le16 handle; -} __attribute__ ((packed)); - -#define HCI_OP_SET_CONN_ENCRYPT 0x0413 -struct hci_cp_set_conn_encrypt { - __le16 handle; - __u8 encrypt; -} __attribute__ ((packed)); - -#define HCI_OP_CHANGE_CONN_LINK_KEY 0x0415 -struct hci_cp_change_conn_link_key { - __le16 handle; -} __attribute__ ((packed)); - -#define HCI_OP_REMOTE_NAME_REQ 0x0419 -struct hci_cp_remote_name_req { - bdaddr_t bdaddr; - __u8 pscan_rep_mode; - __u8 pscan_mode; - __le16 clock_offset; -} __attribute__ ((packed)); - -#define HCI_OP_REMOTE_NAME_REQ_CANCEL 0x041a -struct hci_cp_remote_name_req_cancel { - bdaddr_t bdaddr; -} __attribute__ ((packed)); - -#define HCI_OP_READ_REMOTE_FEATURES 0x041b -struct hci_cp_read_remote_features { - __le16 handle; -} __attribute__ ((packed)); - -#define HCI_OP_READ_REMOTE_EXT_FEATURES 0x041c -struct hci_cp_read_remote_ext_features { - __le16 handle; - __u8 page; -} __attribute__ ((packed)); - -#define HCI_OP_READ_REMOTE_VERSION 0x041d -struct hci_cp_read_remote_version { - __le16 handle; -} __attribute__ ((packed)); - -#define HCI_OP_SETUP_SYNC_CONN 0x0428 -struct hci_cp_setup_sync_conn { - __le16 handle; - __le32 tx_bandwidth; - __le32 rx_bandwidth; - __le16 max_latency; - __le16 voice_setting; - __u8 retrans_effort; - __le16 pkt_type; -} __attribute__ ((packed)); - -#define HCI_OP_ACCEPT_SYNC_CONN_REQ 0x0429 -struct hci_cp_accept_sync_conn_req { - bdaddr_t bdaddr; - __le32 tx_bandwidth; - __le32 rx_bandwidth; - __le16 max_latency; - __le16 content_format; - __u8 retrans_effort; - __le16 pkt_type; -} __attribute__ ((packed)); - -#define HCI_OP_REJECT_SYNC_CONN_REQ 0x042a -struct hci_cp_reject_sync_conn_req { - bdaddr_t bdaddr; - __u8 reason; -} __attribute__ ((packed)); - -#define HCI_OP_SNIFF_MODE 0x0803 -struct hci_cp_sniff_mode { - __le16 handle; - __le16 max_interval; - __le16 min_interval; - __le16 attempt; - __le16 timeout; -} __attribute__ ((packed)); - -#define HCI_OP_EXIT_SNIFF_MODE 0x0804 -struct hci_cp_exit_sniff_mode { - __le16 handle; -} __attribute__ ((packed)); - -#define HCI_OP_ROLE_DISCOVERY 0x0809 -struct hci_cp_role_discovery { - __le16 handle; -} __attribute__ ((packed)); -struct hci_rp_role_discovery { - __u8 status; - __le16 handle; - __u8 role; -} __attribute__ ((packed)); - -#define HCI_OP_SWITCH_ROLE 0x080b -struct hci_cp_switch_role { - bdaddr_t bdaddr; - __u8 role; -} __attribute__ ((packed)); - -#define HCI_OP_READ_LINK_POLICY 0x080c -struct hci_cp_read_link_policy { - __le16 handle; -} __attribute__ ((packed)); -struct hci_rp_read_link_policy { - __u8 status; - __le16 handle; - __le16 policy; -} __attribute__ ((packed)); - -#define HCI_OP_WRITE_LINK_POLICY 0x080d -struct hci_cp_write_link_policy { - __le16 handle; - __le16 policy; -} __attribute__ ((packed)); -struct hci_rp_write_link_policy { - __u8 status; - __le16 handle; -} __attribute__ ((packed)); - -#define HCI_OP_READ_DEF_LINK_POLICY 0x080e -struct hci_rp_read_def_link_policy { - __u8 status; - __le16 policy; -} __attribute__ ((packed)); - -#define HCI_OP_WRITE_DEF_LINK_POLICY 0x080f -struct hci_cp_write_def_link_policy { - __le16 policy; -} __attribute__ ((packed)); - -#define HCI_OP_SNIFF_SUBRATE 0x0811 -struct hci_cp_sniff_subrate { - __le16 handle; - __le16 max_latency; - __le16 min_remote_timeout; - __le16 min_local_timeout; -} __attribute__ ((packed)); - -#define HCI_OP_SET_EVENT_MASK 0x0c01 -struct hci_cp_set_event_mask { - __u8 mask[8]; -} __attribute__ ((packed)); - -#define HCI_OP_RESET 0x0c03 - -#define HCI_OP_SET_EVENT_FLT 0x0c05 -struct hci_cp_set_event_flt { - __u8 flt_type; - __u8 cond_type; - __u8 condition[0]; -} __attribute__ ((packed)); - -/* Filter types */ -#define HCI_FLT_CLEAR_ALL 0x00 -#define HCI_FLT_INQ_RESULT 0x01 -#define HCI_FLT_CONN_SETUP 0x02 - -/* CONN_SETUP Condition types */ -#define HCI_CONN_SETUP_ALLOW_ALL 0x00 -#define HCI_CONN_SETUP_ALLOW_CLASS 0x01 -#define HCI_CONN_SETUP_ALLOW_BDADDR 0x02 - -/* CONN_SETUP Conditions */ -#define HCI_CONN_SETUP_AUTO_OFF 0x01 -#define HCI_CONN_SETUP_AUTO_ON 0x02 - -#define HCI_OP_WRITE_LOCAL_NAME 0x0c13 -struct hci_cp_write_local_name { - __u8 name[248]; -} __attribute__ ((packed)); - -#define HCI_OP_READ_LOCAL_NAME 0x0c14 -struct hci_rp_read_local_name { - __u8 status; - __u8 name[248]; -} __attribute__ ((packed)); - -#define HCI_OP_WRITE_CA_TIMEOUT 0x0c16 - -#define HCI_OP_WRITE_PG_TIMEOUT 0x0c18 - -#define HCI_OP_WRITE_SCAN_ENABLE 0x0c1a - #define SCAN_DISABLED 0x00 - #define SCAN_INQUIRY 0x01 - #define SCAN_PAGE 0x02 - -#define HCI_OP_READ_AUTH_ENABLE 0x0c1f - -#define HCI_OP_WRITE_AUTH_ENABLE 0x0c20 - #define AUTH_DISABLED 0x00 - #define AUTH_ENABLED 0x01 - -#define HCI_OP_READ_ENCRYPT_MODE 0x0c21 - -#define HCI_OP_WRITE_ENCRYPT_MODE 0x0c22 - #define ENCRYPT_DISABLED 0x00 - #define ENCRYPT_P2P 0x01 - #define ENCRYPT_BOTH 0x02 - -#define HCI_OP_READ_CLASS_OF_DEV 0x0c23 -struct hci_rp_read_class_of_dev { - __u8 status; - __u8 dev_class[3]; -} __attribute__ ((packed)); - -#define HCI_OP_WRITE_CLASS_OF_DEV 0x0c24 -struct hci_cp_write_class_of_dev { - __u8 dev_class[3]; -} __attribute__ ((packed)); - -#define HCI_OP_READ_VOICE_SETTING 0x0c25 -struct hci_rp_read_voice_setting { - __u8 status; - __le16 voice_setting; -} __attribute__ ((packed)); - -#define HCI_OP_WRITE_VOICE_SETTING 0x0c26 -struct hci_cp_write_voice_setting { - __le16 voice_setting; -} __attribute__ ((packed)); - -#define HCI_OP_HOST_BUFFER_SIZE 0x0c33 -struct hci_cp_host_buffer_size { - __le16 acl_mtu; - __u8 sco_mtu; - __le16 acl_max_pkt; - __le16 sco_max_pkt; -} __attribute__ ((packed)); - -#define HCI_OP_READ_SSP_MODE 0x0c55 -struct hci_rp_read_ssp_mode { - __u8 status; - __u8 mode; -} __attribute__ ((packed)); - -#define HCI_OP_WRITE_SSP_MODE 0x0c56 -struct hci_cp_write_ssp_mode { - __u8 mode; -} __attribute__ ((packed)); - -#define HCI_OP_READ_LOCAL_VERSION 0x1001 -struct hci_rp_read_local_version { - __u8 status; - __u8 hci_ver; - __le16 hci_rev; - __u8 lmp_ver; - __le16 manufacturer; - __le16 lmp_subver; -} __attribute__ ((packed)); - -#define HCI_OP_READ_LOCAL_COMMANDS 0x1002 -struct hci_rp_read_local_commands { - __u8 status; - __u8 commands[64]; -} __attribute__ ((packed)); - -#define HCI_OP_READ_LOCAL_FEATURES 0x1003 -struct hci_rp_read_local_features { - __u8 status; - __u8 features[8]; -} __attribute__ ((packed)); - -#define HCI_OP_READ_LOCAL_EXT_FEATURES 0x1004 -struct hci_rp_read_local_ext_features { - __u8 status; - __u8 page; - __u8 max_page; - __u8 features[8]; -} __attribute__ ((packed)); - -#define HCI_OP_READ_BUFFER_SIZE 0x1005 -struct hci_rp_read_buffer_size { - __u8 status; - __le16 acl_mtu; - __u8 sco_mtu; - __le16 acl_max_pkt; - __le16 sco_max_pkt; -} __attribute__ ((packed)); - -#define HCI_OP_READ_BD_ADDR 0x1009 -struct hci_rp_read_bd_addr { - __u8 status; - bdaddr_t bdaddr; -} __attribute__ ((packed)); - -/* ---- HCI Events ---- */ -#define HCI_EV_INQUIRY_COMPLETE 0x01 - -#define HCI_EV_INQUIRY_RESULT 0x02 -struct inquiry_info { - bdaddr_t bdaddr; - __u8 pscan_rep_mode; - __u8 pscan_period_mode; - __u8 pscan_mode; - __u8 dev_class[3]; - __le16 clock_offset; -} __attribute__ ((packed)); - -#define HCI_EV_CONN_COMPLETE 0x03 -struct hci_ev_conn_complete { - __u8 status; - __le16 handle; - bdaddr_t bdaddr; - __u8 link_type; - __u8 encr_mode; -} __attribute__ ((packed)); - -#define HCI_EV_CONN_REQUEST 0x04 -struct hci_ev_conn_request { - bdaddr_t bdaddr; - __u8 dev_class[3]; - __u8 link_type; -} __attribute__ ((packed)); - -#define HCI_EV_DISCONN_COMPLETE 0x05 -struct hci_ev_disconn_complete { - __u8 status; - __le16 handle; - __u8 reason; -} __attribute__ ((packed)); - -#define HCI_EV_AUTH_COMPLETE 0x06 -struct hci_ev_auth_complete { - __u8 status; - __le16 handle; -} __attribute__ ((packed)); - -#define HCI_EV_REMOTE_NAME 0x07 -struct hci_ev_remote_name { - __u8 status; - bdaddr_t bdaddr; - __u8 name[248]; -} __attribute__ ((packed)); - -#define HCI_EV_ENCRYPT_CHANGE 0x08 -struct hci_ev_encrypt_change { - __u8 status; - __le16 handle; - __u8 encrypt; -} __attribute__ ((packed)); - -#define HCI_EV_CHANGE_LINK_KEY_COMPLETE 0x09 -struct hci_ev_change_link_key_complete { - __u8 status; - __le16 handle; -} __attribute__ ((packed)); - -#define HCI_EV_REMOTE_FEATURES 0x0b -struct hci_ev_remote_features { - __u8 status; - __le16 handle; - __u8 features[8]; -} __attribute__ ((packed)); - -#define HCI_EV_REMOTE_VERSION 0x0c -struct hci_ev_remote_version { - __u8 status; - __le16 handle; - __u8 lmp_ver; - __le16 manufacturer; - __le16 lmp_subver; -} __attribute__ ((packed)); - -#define HCI_EV_QOS_SETUP_COMPLETE 0x0d -struct hci_qos { - __u8 service_type; - __u32 token_rate; - __u32 peak_bandwidth; - __u32 latency; - __u32 delay_variation; -} __attribute__ ((packed)); -struct hci_ev_qos_setup_complete { - __u8 status; - __le16 handle; - struct hci_qos qos; -} __attribute__ ((packed)); - -#define HCI_EV_CMD_COMPLETE 0x0e -struct hci_ev_cmd_complete { - __u8 ncmd; - __le16 opcode; -} __attribute__ ((packed)); - -#define HCI_EV_CMD_STATUS 0x0f -struct hci_ev_cmd_status { - __u8 status; - __u8 ncmd; - __le16 opcode; -} __attribute__ ((packed)); - -#define HCI_EV_ROLE_CHANGE 0x12 -struct hci_ev_role_change { - __u8 status; - bdaddr_t bdaddr; - __u8 role; -} __attribute__ ((packed)); - -#define HCI_EV_NUM_COMP_PKTS 0x13 -struct hci_ev_num_comp_pkts { - __u8 num_hndl; - /* variable length part */ -} __attribute__ ((packed)); - -#define HCI_EV_MODE_CHANGE 0x14 -struct hci_ev_mode_change { - __u8 status; - __le16 handle; - __u8 mode; - __le16 interval; -} __attribute__ ((packed)); - -#define HCI_EV_PIN_CODE_REQ 0x16 -struct hci_ev_pin_code_req { - bdaddr_t bdaddr; -} __attribute__ ((packed)); - -#define HCI_EV_LINK_KEY_REQ 0x17 -struct hci_ev_link_key_req { - bdaddr_t bdaddr; -} __attribute__ ((packed)); - -#define HCI_EV_LINK_KEY_NOTIFY 0x18 -struct hci_ev_link_key_notify { - bdaddr_t bdaddr; - __u8 link_key[16]; - __u8 key_type; -} __attribute__ ((packed)); - -#define HCI_EV_CLOCK_OFFSET 0x1c -struct hci_ev_clock_offset { - __u8 status; - __le16 handle; - __le16 clock_offset; -} __attribute__ ((packed)); - -#define HCI_EV_PKT_TYPE_CHANGE 0x1d -struct hci_ev_pkt_type_change { - __u8 status; - __le16 handle; - __le16 pkt_type; -} __attribute__ ((packed)); - -#define HCI_EV_PSCAN_REP_MODE 0x20 -struct hci_ev_pscan_rep_mode { - bdaddr_t bdaddr; - __u8 pscan_rep_mode; -} __attribute__ ((packed)); - -#define HCI_EV_INQUIRY_RESULT_WITH_RSSI 0x22 -struct inquiry_info_with_rssi { - bdaddr_t bdaddr; - __u8 pscan_rep_mode; - __u8 pscan_period_mode; - __u8 dev_class[3]; - __le16 clock_offset; - __s8 rssi; -} __attribute__ ((packed)); -struct inquiry_info_with_rssi_and_pscan_mode { - bdaddr_t bdaddr; - __u8 pscan_rep_mode; - __u8 pscan_period_mode; - __u8 pscan_mode; - __u8 dev_class[3]; - __le16 clock_offset; - __s8 rssi; -} __attribute__ ((packed)); - -#define HCI_EV_REMOTE_EXT_FEATURES 0x23 -struct hci_ev_remote_ext_features { - __u8 status; - __le16 handle; - __u8 page; - __u8 max_page; - __u8 features[8]; -} __attribute__ ((packed)); - -#define HCI_EV_SYNC_CONN_COMPLETE 0x2c -struct hci_ev_sync_conn_complete { - __u8 status; - __le16 handle; - bdaddr_t bdaddr; - __u8 link_type; - __u8 tx_interval; - __u8 retrans_window; - __le16 rx_pkt_len; - __le16 tx_pkt_len; - __u8 air_mode; -} __attribute__ ((packed)); - -#define HCI_EV_SYNC_CONN_CHANGED 0x2d -struct hci_ev_sync_conn_changed { - __u8 status; - __le16 handle; - __u8 tx_interval; - __u8 retrans_window; - __le16 rx_pkt_len; - __le16 tx_pkt_len; -} __attribute__ ((packed)); - -#define HCI_EV_SNIFF_SUBRATE 0x2e -struct hci_ev_sniff_subrate { - __u8 status; - __le16 handle; - __le16 max_tx_latency; - __le16 max_rx_latency; - __le16 max_remote_timeout; - __le16 max_local_timeout; -} __attribute__ ((packed)); - -#define HCI_EV_EXTENDED_INQUIRY_RESULT 0x2f -struct extended_inquiry_info { - bdaddr_t bdaddr; - __u8 pscan_rep_mode; - __u8 pscan_period_mode; - __u8 dev_class[3]; - __le16 clock_offset; - __s8 rssi; - __u8 data[240]; -} __attribute__ ((packed)); - -#define HCI_EV_IO_CAPA_REQUEST 0x31 -struct hci_ev_io_capa_request { - bdaddr_t bdaddr; -} __attribute__ ((packed)); - -#define HCI_EV_SIMPLE_PAIR_COMPLETE 0x36 -struct hci_ev_simple_pair_complete { - __u8 status; - bdaddr_t bdaddr; -} __attribute__ ((packed)); - -#define HCI_EV_REMOTE_HOST_FEATURES 0x3d -struct hci_ev_remote_host_features { - bdaddr_t bdaddr; - __u8 features[8]; -} __attribute__ ((packed)); - -/* Internal events generated by Bluetooth stack */ -#define HCI_EV_STACK_INTERNAL 0xfd -struct hci_ev_stack_internal { - __u16 type; - __u8 data[0]; -} __attribute__ ((packed)); - -#define HCI_EV_SI_DEVICE 0x01 -struct hci_ev_si_device { - __u16 event; - __u16 dev_id; -} __attribute__ ((packed)); - -#define HCI_EV_SI_SECURITY 0x02 -struct hci_ev_si_security { - __u16 event; - __u16 proto; - __u16 subproto; - __u8 incoming; -} __attribute__ ((packed)); - -/* ---- HCI Packet structures ---- */ -#define HCI_COMMAND_HDR_SIZE 3 -#define HCI_EVENT_HDR_SIZE 2 -#define HCI_ACL_HDR_SIZE 4 -#define HCI_SCO_HDR_SIZE 3 - -struct hci_command_hdr { - __le16 opcode; /* OCF & OGF */ - __u8 plen; -} __attribute__ ((packed)); - -struct hci_event_hdr { - __u8 evt; - __u8 plen; -} __attribute__ ((packed)); - -struct hci_acl_hdr { - __le16 handle; /* Handle & Flags(PB, BC) */ - __le16 dlen; -} __attribute__ ((packed)); - -struct hci_sco_hdr { - __le16 handle; - __u8 dlen; -} __attribute__ ((packed)); - -#ifdef __KERNEL__ -#include <linux/skbuff.h> -static inline struct hci_event_hdr *hci_event_hdr(const struct sk_buff *skb) -{ - return (struct hci_event_hdr *) skb->data; -} - -static inline struct hci_acl_hdr *hci_acl_hdr(const struct sk_buff *skb) -{ - return (struct hci_acl_hdr *) skb->data; -} - -static inline struct hci_sco_hdr *hci_sco_hdr(const struct sk_buff *skb) -{ - return (struct hci_sco_hdr *) skb->data; -} -#endif - -/* Command opcode pack/unpack */ -#define hci_opcode_pack(ogf, ocf) (__u16) ((ocf & 0x03ff)|(ogf << 10)) -#define hci_opcode_ogf(op) (op >> 10) -#define hci_opcode_ocf(op) (op & 0x03ff) - -/* ACL handle and flags pack/unpack */ -#define hci_handle_pack(h, f) (__u16) ((h & 0x0fff)|(f << 12)) -#define hci_handle(h) (h & 0x0fff) -#define hci_flags(h) (h >> 12) - -/* ---- HCI Sockets ---- */ - -/* Socket options */ -#define HCI_DATA_DIR 1 -#define HCI_FILTER 2 -#define HCI_TIME_STAMP 3 - -/* CMSG flags */ -#define HCI_CMSG_DIR 0x0001 -#define HCI_CMSG_TSTAMP 0x0002 - -struct sockaddr_hci { - sa_family_t hci_family; - unsigned short hci_dev; -}; -#define HCI_DEV_NONE 0xffff - -struct hci_filter { - unsigned long type_mask; - unsigned long event_mask[2]; - __le16 opcode; -}; - -struct hci_ufilter { - __u32 type_mask; - __u32 event_mask[2]; - __le16 opcode; -}; - -#define HCI_FLT_TYPE_BITS 31 -#define HCI_FLT_EVENT_BITS 63 -#define HCI_FLT_OGF_BITS 63 -#define HCI_FLT_OCF_BITS 127 - -/* ---- HCI Ioctl requests structures ---- */ -struct hci_dev_stats { - __u32 err_rx; - __u32 err_tx; - __u32 cmd_tx; - __u32 evt_rx; - __u32 acl_tx; - __u32 acl_rx; - __u32 sco_tx; - __u32 sco_rx; - __u32 byte_rx; - __u32 byte_tx; -}; - -struct hci_dev_info { - __u16 dev_id; - char name[8]; - - bdaddr_t bdaddr; - - __u32 flags; - __u8 type; - - __u8 features[8]; - - __u32 pkt_type; - __u32 link_policy; - __u32 link_mode; - - __u16 acl_mtu; - __u16 acl_pkts; - __u16 sco_mtu; - __u16 sco_pkts; - - struct hci_dev_stats stat; -}; - -struct hci_conn_info { - __u16 handle; - bdaddr_t bdaddr; - __u8 type; - __u8 out; - __u16 state; - __u32 link_mode; -}; - -struct hci_dev_req { - __u16 dev_id; - __u32 dev_opt; -}; - -struct hci_dev_list_req { - __u16 dev_num; - struct hci_dev_req dev_req[0]; /* hci_dev_req structures */ -}; - -struct hci_conn_list_req { - __u16 dev_id; - __u16 conn_num; - struct hci_conn_info conn_info[0]; -}; - -struct hci_conn_info_req { - bdaddr_t bdaddr; - __u8 type; - struct hci_conn_info conn_info[0]; -}; - -struct hci_auth_info_req { - bdaddr_t bdaddr; - __u8 type; -}; - -struct hci_inquiry_req { - __u16 dev_id; - __u16 flags; - __u8 lap[3]; - __u8 length; - __u8 num_rsp; -}; -#define IREQ_CACHE_FLUSH 0x0001 - -#endif /* __HCI_H */ diff --git a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/hci_core.h.svn-base b/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/hci_core.h.svn-base deleted file mode 100644 index 46a43b72..00000000 --- a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/hci_core.h.svn-base +++ /dev/null @@ -1,673 +0,0 @@ -/* - BlueZ - Bluetooth protocol stack for Linux - Copyright (C) 2000-2001 Qualcomm Incorporated - - Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License version 2 as - published by the Free Software Foundation; - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. - IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY - CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, - COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS - SOFTWARE IS DISCLAIMED. -*/ - -#ifndef __HCI_CORE_H -#define __HCI_CORE_H - -#include <net/bluetooth/hci.h> - -/* HCI upper protocols */ -#define HCI_PROTO_L2CAP 0 -#define HCI_PROTO_SCO 1 - -/* HCI Core structures */ -struct inquiry_data { - bdaddr_t bdaddr; - __u8 pscan_rep_mode; - __u8 pscan_period_mode; - __u8 pscan_mode; - __u8 dev_class[3]; - __le16 clock_offset; - __s8 rssi; - __u8 ssp_mode; -}; - -struct inquiry_entry { - struct inquiry_entry *next; - __u32 timestamp; - struct inquiry_data data; -}; - -struct inquiry_cache { - spinlock_t lock; - __u32 timestamp; - struct inquiry_entry *list; -}; - -struct hci_conn_hash { - struct list_head list; - spinlock_t lock; - unsigned int acl_num; - unsigned int sco_num; -}; - -struct hci_dev { - struct list_head list; - spinlock_t lock; - atomic_t refcnt; - - char name[8]; - unsigned long flags; - __u16 id; - __u8 type; - bdaddr_t bdaddr; - __u8 dev_name[248]; - __u8 dev_class[3]; - __u8 features[8]; - __u8 commands[64]; - __u8 ssp_mode; - __u8 hci_ver; - __u16 hci_rev; - __u16 manufacturer; - __u16 voice_setting; - - __u16 pkt_type; - __u16 esco_type; - __u16 link_policy; - __u16 link_mode; - - __u32 idle_timeout; - __u16 sniff_min_interval; - __u16 sniff_max_interval; - - unsigned long quirks; - - atomic_t cmd_cnt; - unsigned int acl_cnt; - unsigned int sco_cnt; - - unsigned int acl_mtu; - unsigned int sco_mtu; - unsigned int acl_pkts; - unsigned int sco_pkts; - - unsigned long cmd_last_tx; - unsigned long acl_last_tx; - unsigned long sco_last_tx; - - struct tasklet_struct cmd_task; - struct tasklet_struct rx_task; - struct tasklet_struct tx_task; - - struct sk_buff_head rx_q; - struct sk_buff_head raw_q; - struct sk_buff_head cmd_q; - - struct sk_buff *sent_cmd; - struct sk_buff *reassembly[3]; - - struct semaphore req_lock; - wait_queue_head_t req_wait_q; - __u32 req_status; - __u32 req_result; - - struct inquiry_cache inq_cache; - struct hci_conn_hash conn_hash; - - struct hci_dev_stats stat; - - struct sk_buff_head driver_init; - - void *driver_data; - void *core_data; - - atomic_t promisc; - - struct device *parent; - struct device dev; - - struct module *owner; - - int (*open)(struct hci_dev *hdev); - int (*close)(struct hci_dev *hdev); - int (*flush)(struct hci_dev *hdev); - int (*send)(struct sk_buff *skb); - void (*destruct)(struct hci_dev *hdev); - void (*notify)(struct hci_dev *hdev, unsigned int evt); - int (*ioctl)(struct hci_dev *hdev, unsigned int cmd, unsigned long arg); -}; - -struct hci_conn { - struct list_head list; - - atomic_t refcnt; - spinlock_t lock; - - bdaddr_t dst; - __u16 handle; - __u16 state; - __u8 mode; - __u8 type; - __u8 out; - __u8 attempt; - __u8 dev_class[3]; - __u8 features[8]; - __u8 ssp_mode; - __u16 interval; - __u16 pkt_type; - __u16 link_policy; - __u32 link_mode; - __u8 auth_type; - __u8 power_save; - unsigned long pend; - - unsigned int sent; - - struct sk_buff_head data_q; - - struct timer_list disc_timer; - struct timer_list idle_timer; - - struct work_struct work; - - struct device dev; - - struct hci_dev *hdev; - void *l2cap_data; - void *sco_data; - void *priv; - - struct hci_conn *link; -}; - -extern struct hci_proto *hci_proto[]; -extern struct list_head hci_dev_list; -extern struct list_head hci_cb_list; -extern rwlock_t hci_dev_list_lock; -extern rwlock_t hci_cb_list_lock; - -/* ----- Inquiry cache ----- */ -#define INQUIRY_CACHE_AGE_MAX (HZ*30) // 30 seconds -#define INQUIRY_ENTRY_AGE_MAX (HZ*60) // 60 seconds - -#define inquiry_cache_lock(c) spin_lock(&c->lock) -#define inquiry_cache_unlock(c) spin_unlock(&c->lock) -#define inquiry_cache_lock_bh(c) spin_lock_bh(&c->lock) -#define inquiry_cache_unlock_bh(c) spin_unlock_bh(&c->lock) - -static inline void inquiry_cache_init(struct hci_dev *hdev) -{ - struct inquiry_cache *c = &hdev->inq_cache; - spin_lock_init(&c->lock); - c->list = NULL; -} - -static inline int inquiry_cache_empty(struct hci_dev *hdev) -{ - struct inquiry_cache *c = &hdev->inq_cache; - return (c->list == NULL); -} - -static inline long inquiry_cache_age(struct hci_dev *hdev) -{ - struct inquiry_cache *c = &hdev->inq_cache; - return jiffies - c->timestamp; -} - -static inline long inquiry_entry_age(struct inquiry_entry *e) -{ - return jiffies - e->timestamp; -} - -struct inquiry_entry *hci_inquiry_cache_lookup(struct hci_dev *hdev, bdaddr_t *bdaddr); -void hci_inquiry_cache_update(struct hci_dev *hdev, struct inquiry_data *data); - -/* ----- HCI Connections ----- */ -enum { - HCI_CONN_AUTH_PEND, - HCI_CONN_ENCRYPT_PEND, - HCI_CONN_RSWITCH_PEND, - HCI_CONN_MODE_CHANGE_PEND, -}; - -static inline void hci_conn_hash_init(struct hci_dev *hdev) -{ - struct hci_conn_hash *h = &hdev->conn_hash; - INIT_LIST_HEAD(&h->list); - spin_lock_init(&h->lock); - h->acl_num = 0; - h->sco_num = 0; -} - -static inline void hci_conn_hash_add(struct hci_dev *hdev, struct hci_conn *c) -{ - struct hci_conn_hash *h = &hdev->conn_hash; - list_add(&c->list, &h->list); - if (c->type == ACL_LINK) - h->acl_num++; - else - h->sco_num++; -} - -static inline void hci_conn_hash_del(struct hci_dev *hdev, struct hci_conn *c) -{ - struct hci_conn_hash *h = &hdev->conn_hash; - list_del(&c->list); - if (c->type == ACL_LINK) - h->acl_num--; - else - h->sco_num--; -} - -static inline struct hci_conn *hci_conn_hash_lookup_handle(struct hci_dev *hdev, - __u16 handle) -{ - struct hci_conn_hash *h = &hdev->conn_hash; - struct list_head *p; - struct hci_conn *c; - - list_for_each(p, &h->list) { - c = list_entry(p, struct hci_conn, list); - if (c->handle == handle) - return c; - } - return NULL; -} - -static inline struct hci_conn *hci_conn_hash_lookup_ba(struct hci_dev *hdev, - __u8 type, bdaddr_t *ba) -{ - struct hci_conn_hash *h = &hdev->conn_hash; - struct list_head *p; - struct hci_conn *c; - - list_for_each(p, &h->list) { - c = list_entry(p, struct hci_conn, list); - if (c->type == type && !bacmp(&c->dst, ba)) - return c; - } - return NULL; -} - -static inline struct hci_conn *hci_conn_hash_lookup_state(struct hci_dev *hdev, - __u8 type, __u16 state) -{ - struct hci_conn_hash *h = &hdev->conn_hash; - struct list_head *p; - struct hci_conn *c; - - list_for_each(p, &h->list) { - c = list_entry(p, struct hci_conn, list); - if (c->type == type && c->state == state) - return c; - } - return NULL; -} - -void hci_acl_connect(struct hci_conn *conn); -void hci_acl_disconn(struct hci_conn *conn, __u8 reason); -void hci_add_sco(struct hci_conn *conn, __u16 handle); -void hci_setup_sync(struct hci_conn *conn, __u16 handle); - -struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst); -int hci_conn_del(struct hci_conn *conn); -void hci_conn_hash_flush(struct hci_dev *hdev); -void hci_conn_check_pending(struct hci_dev *hdev); - -struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8 auth_type); -int hci_conn_check_link_mode(struct hci_conn *conn); -int hci_conn_auth(struct hci_conn *conn); -int hci_conn_encrypt(struct hci_conn *conn); -int hci_conn_change_link_key(struct hci_conn *conn); -int hci_conn_switch_role(struct hci_conn *conn, uint8_t role); - -void hci_conn_enter_active_mode(struct hci_conn *conn); -void hci_conn_enter_sniff_mode(struct hci_conn *conn); - -static inline void hci_conn_hold(struct hci_conn *conn) -{ - atomic_inc(&conn->refcnt); - del_timer(&conn->disc_timer); -} - -static inline void hci_conn_put(struct hci_conn *conn) -{ - if (atomic_dec_and_test(&conn->refcnt)) { - unsigned long timeo; - if (conn->type == ACL_LINK) { - del_timer(&conn->idle_timer); - if (conn->state == BT_CONNECTED) { - timeo = msecs_to_jiffies(HCI_DISCONN_TIMEOUT); - if (!conn->out) - timeo *= 5; - } else - timeo = msecs_to_jiffies(10); - } else - timeo = msecs_to_jiffies(10); - mod_timer(&conn->disc_timer, jiffies + timeo); - } -} - -/* ----- HCI tasks ----- */ -static inline void hci_sched_cmd(struct hci_dev *hdev) -{ - tasklet_schedule(&hdev->cmd_task); -} - -static inline void hci_sched_rx(struct hci_dev *hdev) -{ - tasklet_schedule(&hdev->rx_task); -} - -static inline void hci_sched_tx(struct hci_dev *hdev) -{ - tasklet_schedule(&hdev->tx_task); -} - -/* ----- HCI Devices ----- */ -static inline void __hci_dev_put(struct hci_dev *d) -{ - if (atomic_dec_and_test(&d->refcnt)) - d->destruct(d); -} - -static inline void hci_dev_put(struct hci_dev *d) -{ - __hci_dev_put(d); - module_put(d->owner); -} - -static inline struct hci_dev *__hci_dev_hold(struct hci_dev *d) -{ - atomic_inc(&d->refcnt); - return d; -} - -static inline struct hci_dev *hci_dev_hold(struct hci_dev *d) -{ - if (try_module_get(d->owner)) - return __hci_dev_hold(d); - return NULL; -} - -#define hci_dev_lock(d) spin_lock(&d->lock) -#define hci_dev_unlock(d) spin_unlock(&d->lock) -#define hci_dev_lock_bh(d) spin_lock_bh(&d->lock) -#define hci_dev_unlock_bh(d) spin_unlock_bh(&d->lock) - -struct hci_dev *hci_dev_get(int index); -struct hci_dev *hci_get_route(bdaddr_t *src, bdaddr_t *dst); - -struct hci_dev *hci_alloc_dev(void); -void hci_free_dev(struct hci_dev *hdev); -int hci_register_dev(struct hci_dev *hdev); -int hci_unregister_dev(struct hci_dev *hdev); -int hci_suspend_dev(struct hci_dev *hdev); -int hci_resume_dev(struct hci_dev *hdev); -int hci_dev_open(__u16 dev); -int hci_dev_close(__u16 dev); -int hci_dev_reset(__u16 dev); -int hci_dev_reset_stat(__u16 dev); -int hci_dev_cmd(unsigned int cmd, void __user *arg); -int hci_get_dev_list(void __user *arg); -int hci_get_dev_info(void __user *arg); -int hci_get_conn_list(void __user *arg); -int hci_get_conn_info(struct hci_dev *hdev, void __user *arg); -int hci_get_auth_info(struct hci_dev *hdev, void __user *arg); -int hci_inquiry(void __user *arg); - -void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb); - -/* Receive frame from HCI drivers */ -static inline int hci_recv_frame(struct sk_buff *skb) -{ - struct hci_dev *hdev = (struct hci_dev *) skb->dev; - if (!hdev || (!test_bit(HCI_UP, &hdev->flags) - && !test_bit(HCI_INIT, &hdev->flags))) { - kfree_skb(skb); - return -ENXIO; - } - - /* Incomming skb */ - bt_cb(skb)->incoming = 1; - - /* Time stamp */ - __net_timestamp(skb); - - /* Queue frame for rx task */ - skb_queue_tail(&hdev->rx_q, skb); - hci_sched_rx(hdev); - return 0; -} - -int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count); - -int hci_register_sysfs(struct hci_dev *hdev); -void hci_unregister_sysfs(struct hci_dev *hdev); -void hci_conn_add_sysfs(struct hci_conn *conn); -void hci_conn_del_sysfs(struct hci_conn *conn); - -#define SET_HCIDEV_DEV(hdev, pdev) ((hdev)->parent = (pdev)) - -/* ----- LMP capabilities ----- */ -#define lmp_rswitch_capable(dev) ((dev)->features[0] & LMP_RSWITCH) -#define lmp_encrypt_capable(dev) ((dev)->features[0] & LMP_ENCRYPT) -#define lmp_sniff_capable(dev) ((dev)->features[0] & LMP_SNIFF) -#define lmp_sniffsubr_capable(dev) ((dev)->features[5] & LMP_SNIFF_SUBR) -#define lmp_esco_capable(dev) ((dev)->features[3] & LMP_ESCO) -#define lmp_ssp_capable(dev) ((dev)->features[6] & LMP_SIMPLE_PAIR) - -/* ----- HCI protocols ----- */ -struct hci_proto { - char *name; - unsigned int id; - unsigned long flags; - - void *priv; - - int (*connect_ind) (struct hci_dev *hdev, bdaddr_t *bdaddr, __u8 type); - int (*connect_cfm) (struct hci_conn *conn, __u8 status); - int (*disconn_ind) (struct hci_conn *conn, __u8 reason); - int (*recv_acldata) (struct hci_conn *conn, struct sk_buff *skb, __u16 flags); - int (*recv_scodata) (struct hci_conn *conn, struct sk_buff *skb); - int (*auth_cfm) (struct hci_conn *conn, __u8 status); - int (*encrypt_cfm) (struct hci_conn *conn, __u8 status, __u8 encrypt); -}; - -static inline int hci_proto_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr, __u8 type) -{ - register struct hci_proto *hp; - int mask = 0; - - hp = hci_proto[HCI_PROTO_L2CAP]; - if (hp && hp->connect_ind) - mask |= hp->connect_ind(hdev, bdaddr, type); - - hp = hci_proto[HCI_PROTO_SCO]; - if (hp && hp->connect_ind) - mask |= hp->connect_ind(hdev, bdaddr, type); - - return mask; -} - -static inline void hci_proto_connect_cfm(struct hci_conn *conn, __u8 status) -{ - register struct hci_proto *hp; - - hp = hci_proto[HCI_PROTO_L2CAP]; - if (hp && hp->connect_cfm) - hp->connect_cfm(conn, status); - - hp = hci_proto[HCI_PROTO_SCO]; - if (hp && hp->connect_cfm) - hp->connect_cfm(conn, status); -} - -static inline void hci_proto_disconn_ind(struct hci_conn *conn, __u8 reason) -{ - register struct hci_proto *hp; - - hp = hci_proto[HCI_PROTO_L2CAP]; - if (hp && hp->disconn_ind) - hp->disconn_ind(conn, reason); - - hp = hci_proto[HCI_PROTO_SCO]; - if (hp && hp->disconn_ind) - hp->disconn_ind(conn, reason); -} - -static inline void hci_proto_auth_cfm(struct hci_conn *conn, __u8 status) -{ - register struct hci_proto *hp; - - hp = hci_proto[HCI_PROTO_L2CAP]; - if (hp && hp->auth_cfm) - hp->auth_cfm(conn, status); - - hp = hci_proto[HCI_PROTO_SCO]; - if (hp && hp->auth_cfm) - hp->auth_cfm(conn, status); -} - -static inline void hci_proto_encrypt_cfm(struct hci_conn *conn, __u8 status, __u8 encrypt) -{ - register struct hci_proto *hp; - - hp = hci_proto[HCI_PROTO_L2CAP]; - if (hp && hp->encrypt_cfm) - hp->encrypt_cfm(conn, status, encrypt); - - hp = hci_proto[HCI_PROTO_SCO]; - if (hp && hp->encrypt_cfm) - hp->encrypt_cfm(conn, status, encrypt); -} - -int hci_register_proto(struct hci_proto *hproto); -int hci_unregister_proto(struct hci_proto *hproto); - -/* ----- HCI callbacks ----- */ -struct hci_cb { - struct list_head list; - - char *name; - - void (*auth_cfm) (struct hci_conn *conn, __u8 status); - void (*encrypt_cfm) (struct hci_conn *conn, __u8 status, __u8 encrypt); - void (*key_change_cfm) (struct hci_conn *conn, __u8 status); - void (*role_switch_cfm) (struct hci_conn *conn, __u8 status, __u8 role); -}; - -static inline void hci_auth_cfm(struct hci_conn *conn, __u8 status) -{ - struct list_head *p; - - hci_proto_auth_cfm(conn, status); - - read_lock_bh(&hci_cb_list_lock); - list_for_each(p, &hci_cb_list) { - struct hci_cb *cb = list_entry(p, struct hci_cb, list); - if (cb->auth_cfm) - cb->auth_cfm(conn, status); - } - read_unlock_bh(&hci_cb_list_lock); -} - -static inline void hci_encrypt_cfm(struct hci_conn *conn, __u8 status, __u8 encrypt) -{ - struct list_head *p; - - hci_proto_encrypt_cfm(conn, status, encrypt); - - read_lock_bh(&hci_cb_list_lock); - list_for_each(p, &hci_cb_list) { - struct hci_cb *cb = list_entry(p, struct hci_cb, list); - if (cb->encrypt_cfm) - cb->encrypt_cfm(conn, status, encrypt); - } - read_unlock_bh(&hci_cb_list_lock); -} - -static inline void hci_key_change_cfm(struct hci_conn *conn, __u8 status) -{ - struct list_head *p; - - read_lock_bh(&hci_cb_list_lock); - list_for_each(p, &hci_cb_list) { - struct hci_cb *cb = list_entry(p, struct hci_cb, list); - if (cb->key_change_cfm) - cb->key_change_cfm(conn, status); - } - read_unlock_bh(&hci_cb_list_lock); -} - -static inline void hci_role_switch_cfm(struct hci_conn *conn, __u8 status, __u8 role) -{ - struct list_head *p; - - read_lock_bh(&hci_cb_list_lock); - list_for_each(p, &hci_cb_list) { - struct hci_cb *cb = list_entry(p, struct hci_cb, list); - if (cb->role_switch_cfm) - cb->role_switch_cfm(conn, status, role); - } - read_unlock_bh(&hci_cb_list_lock); -} - -int hci_register_cb(struct hci_cb *hcb); -int hci_unregister_cb(struct hci_cb *hcb); - -int hci_register_notifier(struct notifier_block *nb); -int hci_unregister_notifier(struct notifier_block *nb); - -int hci_send_cmd(struct hci_dev *hdev, __u16 opcode, __u32 plen, void *param); -int hci_send_acl(struct hci_conn *conn, struct sk_buff *skb, __u16 flags); -int hci_send_sco(struct hci_conn *conn, struct sk_buff *skb); - -void *hci_sent_cmd_data(struct hci_dev *hdev, __u16 opcode); - -void hci_si_event(struct hci_dev *hdev, int type, int dlen, void *data); - -/* ----- HCI Sockets ----- */ -void hci_send_to_sock(struct hci_dev *hdev, struct sk_buff *skb); - -/* HCI info for socket */ -#define hci_pi(sk) ((struct hci_pinfo *) sk) - -struct hci_pinfo { - struct bt_sock bt; - struct hci_dev *hdev; - struct hci_filter filter; - __u32 cmsg_mask; -}; - -/* HCI security filter */ -#define HCI_SFLT_MAX_OGF 5 - -struct hci_sec_filter { - __u32 type_mask; - __u32 event_mask[2]; - __u32 ocf_mask[HCI_SFLT_MAX_OGF + 1][4]; -}; - -/* ----- HCI requests ----- */ -#define HCI_REQ_DONE 0 -#define HCI_REQ_PEND 1 -#define HCI_REQ_CANCELED 2 - -#define hci_req_lock(d) down(&d->req_lock) -#define hci_req_unlock(d) up(&d->req_lock) - -void hci_req_complete(struct hci_dev *hdev, int result); - -#endif /* __HCI_CORE_H */ diff --git a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/l2cap.h.svn-base b/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/l2cap.h.svn-base deleted file mode 100644 index 73e115bc..00000000 --- a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/l2cap.h.svn-base +++ /dev/null @@ -1,265 +0,0 @@ -/* - BlueZ - Bluetooth protocol stack for Linux - Copyright (C) 2000-2001 Qualcomm Incorporated - - Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License version 2 as - published by the Free Software Foundation; - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. - IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY - CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, - COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS - SOFTWARE IS DISCLAIMED. -*/ - -#ifndef __L2CAP_H -#define __L2CAP_H - -/* L2CAP defaults */ -#define L2CAP_DEFAULT_MTU 672 -#define L2CAP_DEFAULT_FLUSH_TO 0xFFFF - -#define L2CAP_CONN_TIMEOUT (40000) /* 40 seconds */ -#define L2CAP_INFO_TIMEOUT (4000) /* 4 seconds */ - -/* L2CAP socket address */ -struct sockaddr_l2 { - sa_family_t l2_family; - __le16 l2_psm; - bdaddr_t l2_bdaddr; -}; - -/* L2CAP socket options */ -#define L2CAP_OPTIONS 0x01 -struct l2cap_options { - __u16 omtu; - __u16 imtu; - __u16 flush_to; - __u8 mode; -}; - -#define L2CAP_CONNINFO 0x02 -struct l2cap_conninfo { - __u16 hci_handle; - __u8 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 */ -struct l2cap_hdr { - __le16 len; - __le16 cid; -} __attribute__ ((packed)); -#define L2CAP_HDR_SIZE 4 - -struct l2cap_cmd_hdr { - __u8 code; - __u8 ident; - __le16 len; -} __attribute__ ((packed)); -#define L2CAP_CMD_HDR_SIZE 4 - -struct l2cap_cmd_rej { - __le16 reason; -} __attribute__ ((packed)); - -struct l2cap_conn_req { - __le16 psm; - __le16 scid; -} __attribute__ ((packed)); - -struct l2cap_conn_rsp { - __le16 dcid; - __le16 scid; - __le16 result; - __le16 status; -} __attribute__ ((packed)); - -/* 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 - -struct l2cap_conf_req { - __le16 dcid; - __le16 flags; - __u8 data[0]; -} __attribute__ ((packed)); - -struct l2cap_conf_rsp { - __le16 scid; - __le16 flags; - __le16 result; - __u8 data[0]; -} __attribute__ ((packed)); - -#define L2CAP_CONF_SUCCESS 0x0000 -#define L2CAP_CONF_UNACCEPT 0x0001 -#define L2CAP_CONF_REJECT 0x0002 -#define L2CAP_CONF_UNKNOWN 0x0003 - -struct l2cap_conf_opt { - __u8 type; - __u8 len; - __u8 val[0]; -} __attribute__ ((packed)); -#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_MAX_SIZE 22 - -struct l2cap_conf_rfc { - __u8 mode; - __u8 txwin_size; - __u8 max_transmit; - __le16 retrans_timeout; - __le16 monitor_timeout; - __le16 max_pdu_size; -} __attribute__ ((packed)); - -#define L2CAP_MODE_BASIC 0x00 -#define L2CAP_MODE_RETRANS 0x01 -#define L2CAP_MODE_FLOWCTL 0x02 - -struct l2cap_disconn_req { - __le16 dcid; - __le16 scid; -} __attribute__ ((packed)); - -struct l2cap_disconn_rsp { - __le16 dcid; - __le16 scid; -} __attribute__ ((packed)); - -struct l2cap_info_req { - __le16 type; -} __attribute__ ((packed)); - -struct l2cap_info_rsp { - __le16 type; - __le16 result; - __u8 data[0]; -} __attribute__ ((packed)); - -/* 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 - -/* ----- L2CAP connections ----- */ -struct l2cap_chan_list { - struct sock *head; - rwlock_t lock; - long num; -}; - -struct l2cap_conn { - struct hci_conn *hcon; - - bdaddr_t *dst; - bdaddr_t *src; - - unsigned int mtu; - - __u32 feat_mask; - - __u8 info_state; - __u8 info_ident; - - struct timer_list info_timer; - - spinlock_t lock; - - struct sk_buff *rx_skb; - __u32 rx_len; - __u8 rx_ident; - __u8 tx_ident; - - struct l2cap_chan_list chan_list; -}; - -#define L2CAP_INFO_CL_MTU_REQ_SENT 0x01 -#define L2CAP_INFO_FEAT_MASK_REQ_SENT 0x02 - -/* ----- L2CAP channel and socket info ----- */ -#define l2cap_pi(sk) ((struct l2cap_pinfo *) sk) - -struct l2cap_pinfo { - struct bt_sock bt; - __le16 psm; - __u16 dcid; - __u16 scid; - - __u16 imtu; - __u16 omtu; - __u16 flush_to; - - __u32 link_mode; - - __u8 conf_req[64]; - __u8 conf_len; - __u8 conf_state; - __u8 conf_retry; - - __u8 ident; - - __le16 sport; - - struct l2cap_conn *conn; - struct sock *next_c; - struct sock *prev_c; -}; - -#define L2CAP_CONF_REQ_SENT 0x01 -#define L2CAP_CONF_INPUT_DONE 0x02 -#define L2CAP_CONF_OUTPUT_DONE 0x04 - -#define L2CAP_CONF_MAX_RETRIES 2 - -void l2cap_load(void); - -#endif /* __L2CAP_H */ diff --git a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/rfcomm.h.svn-base b/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/rfcomm.h.svn-base deleted file mode 100644 index 4dc8d92a..00000000 --- a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/rfcomm.h.svn-base +++ /dev/null @@ -1,357 +0,0 @@ -/* - RFCOMM implementation for Linux Bluetooth stack (BlueZ). - Copyright (C) 2002 Maxim Krasnyansky <maxk@qualcomm.com> - Copyright (C) 2002 Marcel Holtmann <marcel@holtmann.org> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License version 2 as - published by the Free Software Foundation; - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. - IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY - CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, - COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS - SOFTWARE IS DISCLAIMED. -*/ - -#ifndef __RFCOMM_H -#define __RFCOMM_H - -#define RFCOMM_PSM 3 - -#define RFCOMM_CONN_TIMEOUT (HZ * 30) -#define RFCOMM_DISC_TIMEOUT (HZ * 20) -#define RFCOMM_AUTH_TIMEOUT (HZ * 25) - -#define RFCOMM_DEFAULT_MTU 127 -#define RFCOMM_DEFAULT_CREDITS 7 - -#define RFCOMM_MAX_L2CAP_MTU 1013 -#define RFCOMM_MAX_CREDITS 40 - -#define RFCOMM_SKB_HEAD_RESERVE 8 -#define RFCOMM_SKB_TAIL_RESERVE 2 -#define RFCOMM_SKB_RESERVE (RFCOMM_SKB_HEAD_RESERVE + RFCOMM_SKB_TAIL_RESERVE) - -#define RFCOMM_SABM 0x2f -#define RFCOMM_DISC 0x43 -#define RFCOMM_UA 0x63 -#define RFCOMM_DM 0x0f -#define RFCOMM_UIH 0xef - -#define RFCOMM_TEST 0x08 -#define RFCOMM_FCON 0x28 -#define RFCOMM_FCOFF 0x18 -#define RFCOMM_MSC 0x38 -#define RFCOMM_RPN 0x24 -#define RFCOMM_RLS 0x14 -#define RFCOMM_PN 0x20 -#define RFCOMM_NSC 0x04 - -#define RFCOMM_V24_FC 0x02 -#define RFCOMM_V24_RTC 0x04 -#define RFCOMM_V24_RTR 0x08 -#define RFCOMM_V24_IC 0x40 -#define RFCOMM_V24_DV 0x80 - -#define RFCOMM_RPN_BR_2400 0x0 -#define RFCOMM_RPN_BR_4800 0x1 -#define RFCOMM_RPN_BR_7200 0x2 -#define RFCOMM_RPN_BR_9600 0x3 -#define RFCOMM_RPN_BR_19200 0x4 -#define RFCOMM_RPN_BR_38400 0x5 -#define RFCOMM_RPN_BR_57600 0x6 -#define RFCOMM_RPN_BR_115200 0x7 -#define RFCOMM_RPN_BR_230400 0x8 - -#define RFCOMM_RPN_DATA_5 0x0 -#define RFCOMM_RPN_DATA_6 0x1 -#define RFCOMM_RPN_DATA_7 0x2 -#define RFCOMM_RPN_DATA_8 0x3 - -#define RFCOMM_RPN_STOP_1 0 -#define RFCOMM_RPN_STOP_15 1 - -#define RFCOMM_RPN_PARITY_NONE 0x0 -#define RFCOMM_RPN_PARITY_ODD 0x1 -#define RFCOMM_RPN_PARITY_EVEN 0x3 -#define RFCOMM_RPN_PARITY_MARK 0x5 -#define RFCOMM_RPN_PARITY_SPACE 0x7 - -#define RFCOMM_RPN_FLOW_NONE 0x00 - -#define RFCOMM_RPN_XON_CHAR 0x11 -#define RFCOMM_RPN_XOFF_CHAR 0x13 - -#define RFCOMM_RPN_PM_BITRATE 0x0001 -#define RFCOMM_RPN_PM_DATA 0x0002 -#define RFCOMM_RPN_PM_STOP 0x0004 -#define RFCOMM_RPN_PM_PARITY 0x0008 -#define RFCOMM_RPN_PM_PARITY_TYPE 0x0010 -#define RFCOMM_RPN_PM_XON 0x0020 -#define RFCOMM_RPN_PM_XOFF 0x0040 -#define RFCOMM_RPN_PM_FLOW 0x3F00 - -#define RFCOMM_RPN_PM_ALL 0x3F7F - -struct rfcomm_hdr { - u8 addr; - u8 ctrl; - u8 len; // Actual size can be 2 bytes -} __attribute__ ((packed)); - -struct rfcomm_cmd { - u8 addr; - u8 ctrl; - u8 len; - u8 fcs; -} __attribute__ ((packed)); - -struct rfcomm_mcc { - u8 type; - u8 len; -} __attribute__ ((packed)); - -struct rfcomm_pn { - u8 dlci; - u8 flow_ctrl; - u8 priority; - u8 ack_timer; - __le16 mtu; - u8 max_retrans; - u8 credits; -} __attribute__ ((packed)); - -struct rfcomm_rpn { - u8 dlci; - u8 bit_rate; - u8 line_settings; - u8 flow_ctrl; - u8 xon_char; - u8 xoff_char; - __le16 param_mask; -} __attribute__ ((packed)); - -struct rfcomm_rls { - u8 dlci; - u8 status; -} __attribute__ ((packed)); - -struct rfcomm_msc { - u8 dlci; - u8 v24_sig; -} __attribute__ ((packed)); - -/* ---- Core structures, flags etc ---- */ - -struct rfcomm_session { - struct list_head list; - struct socket *sock; - unsigned long state; - unsigned long flags; - atomic_t refcnt; - int initiator; - - /* Default DLC parameters */ - int cfc; - uint mtu; - - struct list_head dlcs; -}; - -struct rfcomm_dlc { - struct list_head list; - struct rfcomm_session *session; - struct sk_buff_head tx_queue; - struct timer_list timer; - - spinlock_t lock; - unsigned long state; - unsigned long flags; - atomic_t refcnt; - u8 dlci; - u8 addr; - u8 priority; - u8 v24_sig; - u8 remote_v24_sig; - u8 mscex; - u8 out; - - u32 link_mode; - - uint mtu; - uint cfc; - uint rx_credits; - uint tx_credits; - - void *owner; - - void (*data_ready)(struct rfcomm_dlc *d, struct sk_buff *skb); - void (*state_change)(struct rfcomm_dlc *d, int err); - void (*modem_status)(struct rfcomm_dlc *d, u8 v24_sig); -}; - -/* DLC and session flags */ -#define RFCOMM_RX_THROTTLED 0 -#define RFCOMM_TX_THROTTLED 1 -#define RFCOMM_TIMED_OUT 2 -#define RFCOMM_MSC_PENDING 3 -#define RFCOMM_AUTH_PENDING 4 -#define RFCOMM_AUTH_ACCEPT 5 -#define RFCOMM_AUTH_REJECT 6 - -/* Scheduling flags and events */ -#define RFCOMM_SCHED_STATE 0 -#define RFCOMM_SCHED_RX 1 -#define RFCOMM_SCHED_TX 2 -#define RFCOMM_SCHED_TIMEO 3 -#define RFCOMM_SCHED_AUTH 4 -#define RFCOMM_SCHED_WAKEUP 31 - -/* MSC exchange flags */ -#define RFCOMM_MSCEX_TX 1 -#define RFCOMM_MSCEX_RX 2 -#define RFCOMM_MSCEX_OK (RFCOMM_MSCEX_TX + RFCOMM_MSCEX_RX) - -/* CFC states */ -#define RFCOMM_CFC_UNKNOWN -1 -#define RFCOMM_CFC_DISABLED 0 -#define RFCOMM_CFC_ENABLED RFCOMM_MAX_CREDITS - -/* ---- RFCOMM SEND RPN ---- */ -int rfcomm_send_rpn(struct rfcomm_session *s, int cr, u8 dlci, - u8 bit_rate, u8 data_bits, u8 stop_bits, - u8 parity, u8 flow_ctrl_settings, - u8 xon_char, u8 xoff_char, u16 param_mask); - -/* ---- RFCOMM DLCs (channels) ---- */ -struct rfcomm_dlc *rfcomm_dlc_alloc(gfp_t prio); -void rfcomm_dlc_free(struct rfcomm_dlc *d); -int rfcomm_dlc_open(struct rfcomm_dlc *d, bdaddr_t *src, bdaddr_t *dst, u8 channel); -int rfcomm_dlc_close(struct rfcomm_dlc *d, int reason); -int rfcomm_dlc_send(struct rfcomm_dlc *d, struct sk_buff *skb); -int rfcomm_dlc_set_modem_status(struct rfcomm_dlc *d, u8 v24_sig); -int rfcomm_dlc_get_modem_status(struct rfcomm_dlc *d, u8 *v24_sig); - -#define rfcomm_dlc_lock(d) spin_lock(&d->lock) -#define rfcomm_dlc_unlock(d) spin_unlock(&d->lock) - -static inline void rfcomm_dlc_hold(struct rfcomm_dlc *d) -{ - atomic_inc(&d->refcnt); -} - -static inline void rfcomm_dlc_put(struct rfcomm_dlc *d) -{ - if (atomic_dec_and_test(&d->refcnt)) - rfcomm_dlc_free(d); -} - -extern void __rfcomm_dlc_throttle(struct rfcomm_dlc *d); -extern void __rfcomm_dlc_unthrottle(struct rfcomm_dlc *d); - -static inline void rfcomm_dlc_throttle(struct rfcomm_dlc *d) -{ - if (!test_and_set_bit(RFCOMM_RX_THROTTLED, &d->flags)) - __rfcomm_dlc_throttle(d); -} - -static inline void rfcomm_dlc_unthrottle(struct rfcomm_dlc *d) -{ - if (test_and_clear_bit(RFCOMM_RX_THROTTLED, &d->flags)) - __rfcomm_dlc_unthrottle(d); -} - -/* ---- RFCOMM sessions ---- */ -void rfcomm_session_getaddr(struct rfcomm_session *s, bdaddr_t *src, bdaddr_t *dst); - -static inline void rfcomm_session_hold(struct rfcomm_session *s) -{ - atomic_inc(&s->refcnt); -} - -/* ---- RFCOMM sockets ---- */ -struct sockaddr_rc { - sa_family_t rc_family; - bdaddr_t rc_bdaddr; - u8 rc_channel; -}; - -#define RFCOMM_CONNINFO 0x02 -struct rfcomm_conninfo { - __u16 hci_handle; - __u8 dev_class[3]; -}; - -#define RFCOMM_LM 0x03 -#define RFCOMM_LM_MASTER 0x0001 -#define RFCOMM_LM_AUTH 0x0002 -#define RFCOMM_LM_ENCRYPT 0x0004 -#define RFCOMM_LM_TRUSTED 0x0008 -#define RFCOMM_LM_RELIABLE 0x0010 -#define RFCOMM_LM_SECURE 0x0020 - -#define rfcomm_pi(sk) ((struct rfcomm_pinfo *) sk) - -struct rfcomm_pinfo { - struct bt_sock bt; - struct rfcomm_dlc *dlc; - u8 channel; - u32 link_mode; -}; - -int rfcomm_init_sockets(void); -void rfcomm_cleanup_sockets(void); - -int rfcomm_connect_ind(struct rfcomm_session *s, u8 channel, struct rfcomm_dlc **d); - -/* ---- RFCOMM TTY ---- */ -#define RFCOMM_MAX_DEV 256 - -#define RFCOMMCREATEDEV _IOW('R', 200, int) -#define RFCOMMRELEASEDEV _IOW('R', 201, int) -#define RFCOMMGETDEVLIST _IOR('R', 210, int) -#define RFCOMMGETDEVINFO _IOR('R', 211, int) -#define RFCOMMSTEALDLC _IOW('R', 220, int) - -#define RFCOMM_REUSE_DLC 0 -#define RFCOMM_RELEASE_ONHUP 1 -#define RFCOMM_HANGUP_NOW 2 -#define RFCOMM_TTY_ATTACHED 3 -#define RFCOMM_TTY_RELEASED 4 - -struct rfcomm_dev_req { - s16 dev_id; - u32 flags; - bdaddr_t src; - bdaddr_t dst; - u8 channel; - -}; - -struct rfcomm_dev_info { - s16 id; - u32 flags; - u16 state; - bdaddr_t src; - bdaddr_t dst; - u8 channel; -}; - -struct rfcomm_dev_list_req { - u16 dev_num; - struct rfcomm_dev_info dev_info[0]; -}; - -int rfcomm_dev_ioctl(struct sock *sk, unsigned int cmd, void __user *arg); -int rfcomm_init_ttys(void); -void rfcomm_cleanup_ttys(void); - -#endif /* __RFCOMM_H */ diff --git a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/sco.h.svn-base b/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/sco.h.svn-base deleted file mode 100644 index e28a2a77..00000000 --- a/libdde_linux26/contrib/include/net/bluetooth/.svn/text-base/sco.h.svn-base +++ /dev/null @@ -1,79 +0,0 @@ -/* - BlueZ - Bluetooth protocol stack for Linux - Copyright (C) 2000-2001 Qualcomm Incorporated - - Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License version 2 as - published by the Free Software Foundation; - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. - IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY - CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, - COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS - SOFTWARE IS DISCLAIMED. -*/ - -#ifndef __SCO_H -#define __SCO_H - -/* SCO defaults */ -#define SCO_DEFAULT_MTU 500 -#define SCO_DEFAULT_FLUSH_TO 0xFFFF - -#define SCO_CONN_TIMEOUT (HZ * 40) -#define SCO_DISCONN_TIMEOUT (HZ * 2) -#define SCO_CONN_IDLE_TIMEOUT (HZ * 60) - -/* SCO socket address */ -struct sockaddr_sco { - sa_family_t sco_family; - bdaddr_t sco_bdaddr; -}; - -/* SCO socket options */ -#define SCO_OPTIONS 0x01 -struct sco_options { - __u16 mtu; -}; - -#define SCO_CONNINFO 0x02 -struct sco_conninfo { - __u16 hci_handle; - __u8 dev_class[3]; -}; - -/* ---- SCO connections ---- */ -struct sco_conn { - struct hci_conn *hcon; - - bdaddr_t *dst; - bdaddr_t *src; - - spinlock_t lock; - struct sock *sk; - - unsigned int mtu; -}; - -#define sco_conn_lock(c) spin_lock(&c->lock); -#define sco_conn_unlock(c) spin_unlock(&c->lock); - -/* ----- SCO socket info ----- */ -#define sco_pi(sk) ((struct sco_pinfo *) sk) - -struct sco_pinfo { - struct bt_sock bt; - __u32 flags; - struct sco_conn *conn; -}; - -#endif /* __SCO_H */ |
