123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- /*
- 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_SOCK_H
- #define __HCI_SOCK_H
- /* 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;
- unsigned short hci_channel;
- };
- #define HCI_DEV_NONE 0xffff
- #define HCI_CHANNEL_RAW 0
- #define HCI_CHANNEL_USER 1
- #define HCI_CHANNEL_MONITOR 2
- #define HCI_CHANNEL_CONTROL 3
- #define HCI_CHANNEL_LOGGING 4
- 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
- /* 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 HCIBLOCKADDR _IOW('H', 230, int)
- #define HCIUNBLOCKADDR _IOW('H', 231, int)
- #define HCIINQUIRY _IOR('H', 240, int)
- /* 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_SOCK_H */
|