summaryrefslogtreecommitdiff
path: root/include/btle_hci2.h
diff options
context:
space:
mode:
authorMyles Watson <mylesgw@chromium.org>2015-01-27 12:15:58 -0800
committerchrome-bot <chrome-bot@chromium.org>2016-07-22 20:37:17 -0700
commit698777d4e3c1ec4d60dd9b731e3e2f8bd1ed5373 (patch)
tree957d396f2253df723e4115ec23f846fc2655595a /include/btle_hci2.h
parente819881b8c191603b7861cb98ebbbf5e6172da5a (diff)
downloadchrome-ec-698777d4e3c1ec4d60dd9b731e3e2f8bd1ed5373.tar.gz
include: Add HCI include files from NewBlue
Copied with permission from Dmitry Grinberg, the original author. Add HCI_SUCCESS, some minor fixes. BUG=None BRANCH=None TEST=None Change-Id: Ia4f6f0d092674fca1297e94a16edbc14399d2c63 Signed-off-by: Myles Watson <mylesgw@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/362348 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Levi Oliver <levio@google.com>
Diffstat (limited to 'include/btle_hci2.h')
-rw-r--r--include/btle_hci2.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/include/btle_hci2.h b/include/btle_hci2.h
new file mode 100644
index 0000000000..0b30a0dc48
--- /dev/null
+++ b/include/btle_hci2.h
@@ -0,0 +1,55 @@
+/* Copyright 2016 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/*
+ * Copied from NewBlue hci.c with permission from Dmitry Grinberg, the original
+ * author.
+ */
+
+#include "btle_hci_int.h"
+
+struct hciCmdHdr {
+ uint16_t opcode;
+ uint8_t paramLen;
+} __packed;
+#define CMD_MAKE_OPCODE(ogf, ocf) ((((uint16_t)((ogf) & 0x3f)) << 10) | ((ocf) & 0x03ff))
+#define CMD_GET_OGF(opcode) (((opcode) >> 10) & 0x3f)
+#define CMD_GET_OCF(opcode) ((opcode) & 0x03ff)
+
+
+struct hciAclHdr {
+ uint16_t hdr;
+ uint16_t len;
+} __packed;
+#define ACL_HDR_MASK_CONN_ID 0x0FFF
+#define ACL_HDR_MASK_PB 0x3000
+#define ACL_HDR_MASK_BC 0xC000
+#define ACL_HDR_PB_FIRST_NONAUTO 0x0000
+#define ACL_HDR_PB_CONTINUED 0x1000
+#define ACL_HDR_PB_FIRST_AUTO 0x2000
+#define ACL_HDR_PB_COMPLETE 0x3000
+
+struct hciScoHdr {
+ uint16_t hdr;
+ uint8_t len;
+} __packed;
+#define SCO_HDR_MASK_CONN_ID 0x0FFF
+#define SCO_HDR_MASK_STATUS 0x3000
+#define SCO_STATUS_ALL_OK 0x0000
+#define SCO_STATUS_UNKNOWN 0x1000
+#define SCO_STATUS_NO_DATA 0x2000
+#define SCO_STATUS_SOME_DATA 0x3000
+
+struct hciEvtHdr {
+ uint8_t code;
+ uint8_t len;
+} __packed;
+
+
+void hci_cmd(uint8_t *hciCmdbuf);
+void hci_acl_to_host(uint8_t *data, uint16_t hdr, uint16_t len);
+void hci_acl_from_host(uint8_t *hciAclbuf);
+void hci_event(uint8_t event_code, uint8_t len, uint8_t *params);
+