Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / include / net / bluetooth / hci_sock.h
diff --git a/kernel/include/net/bluetooth/hci_sock.h b/kernel/include/net/bluetooth/hci_sock.h
new file mode 100644 (file)
index 0000000..9a46d66
--- /dev/null
@@ -0,0 +1,175 @@
+/*
+   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
+
+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 */