diff options
author | Myles Watson <mylesgw@chromium.org> | 2015-01-27 12:15:58 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-07-22 20:37:17 -0700 |
commit | 698777d4e3c1ec4d60dd9b731e3e2f8bd1ed5373 (patch) | |
tree | 957d396f2253df723e4115ec23f846fc2655595a /include/btle_hci2.h | |
parent | e819881b8c191603b7861cb98ebbbf5e6172da5a (diff) | |
download | chrome-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.h | 55 |
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); + |