diff options
Diffstat (limited to 'include/bluetooth_le_ll.h')
-rw-r--r-- | include/bluetooth_le_ll.h | 136 |
1 files changed, 66 insertions, 70 deletions
diff --git a/include/bluetooth_le_ll.h b/include/bluetooth_le_ll.h index 9f540102da..d17aec8a57 100644 --- a/include/bluetooth_le_ll.h +++ b/include/bluetooth_le_ll.h @@ -1,4 +1,4 @@ -/* Copyright 2016 The Chromium OS Authors. All rights reserved. +/* Copyright 2016 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -17,33 +17,30 @@ enum ll_state_t { TEST_TX, }; -#define LL_ADV_INTERVAL_UNIT_US 625 -#define LL_ADV_TIMEOUT_UNIT_US 1000000 +#define LL_ADV_INTERVAL_UNIT_US 625 +#define LL_ADV_TIMEOUT_UNIT_US 1000000 -#define LL_ADV_DIRECT_INTERVAL_US 3750 /* 3.75 ms */ -#define LL_ADV_DIRECT_TIMEOUT_US 1280000 /* 1.28 s */ +#define LL_ADV_DIRECT_INTERVAL_US 3750 /* 3.75 ms */ +#define LL_ADV_DIRECT_TIMEOUT_US 1280000 /* 1.28 s */ -#define LL_MAX_DATA_PACKET_LENGTH 27 -#define LL_MAX_DATA_PACKETS 4 +#define LL_MAX_DATA_PACKET_LENGTH 27 +#define LL_MAX_DATA_PACKETS 4 /* BTLE Spec 4.0: Vol 6, Part B, Section 4.5.3 */ -#define TRANSMIT_WINDOW_OFFSET_CONSTANT 1250 +#define TRANSMIT_WINDOW_OFFSET_CONSTANT 1250 -#define LL_MAX_BUFFER_SIZE (LL_MAX_DATA_PACKET_LENGTH * LL_MAX_DATA_PACKETS) +#define LL_MAX_BUFFER_SIZE (LL_MAX_DATA_PACKET_LENGTH * LL_MAX_DATA_PACKETS) -#define LL_SUPPORTED_FEATURES (HCI_LE_FTR_ENCRYPTION | \ - HCI_LE_FTR_CONNECTION_PARAMETERS_REQUEST | \ - HCI_LE_FTR_EXTENDED_REJECT_INDICATION | \ - HCI_LE_FTR_SLAVE_INITIATED_FEATURES_EXCHANGE) +#define LL_SUPPORTED_FEATURES \ + (HCI_LE_FTR_ENCRYPTION | HCI_LE_FTR_CONNECTION_PARAMETERS_REQUEST | \ + HCI_LE_FTR_EXTENDED_REJECT_INDICATION | \ + HCI_LE_FTR_SLAVE_INITIATED_FEATURES_EXCHANGE) -#define LL_SUPPORTED_STATES (HCI_LE_STATE_NONCON_ADV | \ - HCI_LE_STATE_SCANNABLE_ADV | \ - HCI_LE_STATE_CONNECTABLE_ADV | \ - HCI_LE_STATE_DIRECT_ADV | \ - HCI_LE_STATE_PASSIVE_SCAN | \ - HCI_LE_STATE_ACTIVE_SCAN | \ - HCI_LE_STATE_INITIATE | \ - HCI_LE_STATE_SLAVE) +#define LL_SUPPORTED_STATES \ + (HCI_LE_STATE_NONCON_ADV | HCI_LE_STATE_SCANNABLE_ADV | \ + HCI_LE_STATE_CONNECTABLE_ADV | HCI_LE_STATE_DIRECT_ADV | \ + HCI_LE_STATE_PASSIVE_SCAN | HCI_LE_STATE_ACTIVE_SCAN | \ + HCI_LE_STATE_INITIATE | HCI_LE_STATE_SLAVE) /* * 4.6.1 LE Encryption @@ -60,64 +57,63 @@ enum ll_state_t { */ /*Link Layer Control PDU Opcodes */ -#define LL_CONNECTION_UPDATE_REQ 0x00 -#define LL_CHANNEL_MAP_REQ 0x01 -#define LL_TERMINATE_IND 0x02 -#define LL_ENC_REQ 0x03 -#define LL_ENC_RSP 0x04 -#define LL_START_ENC_REQ 0x05 -#define LL_START_ENC_RSP 0x06 -#define LL_UNKNOWN_RSP 0x07 -#define LL_FEATURE_REQ 0x08 -#define LL_FEATURE_RSP 0x09 -#define LL_PAUSE_ENC_REQ 0x0A -#define LL_PAUSE_ENC_RSP 0x0B -#define LL_VERSION_IND 0x0C -#define LL_REJECT_IND 0x0D -#define LL_SLAVE_FEATURE_REQ 0x0E -#define LL_CONNECTION_PARAM_REQ 0x0F -#define LL_CONNECTION_PARAM_RSP 0x10 -#define LL_REJECT_IND_EXT 0x11 -#define LL_PING_REQ 0x12 -#define LL_PING_RSP 0x13 +#define LL_CONNECTION_UPDATE_REQ 0x00 +#define LL_CHANNEL_MAP_REQ 0x01 +#define LL_TERMINATE_IND 0x02 +#define LL_ENC_REQ 0x03 +#define LL_ENC_RSP 0x04 +#define LL_START_ENC_REQ 0x05 +#define LL_START_ENC_RSP 0x06 +#define LL_UNKNOWN_RSP 0x07 +#define LL_FEATURE_REQ 0x08 +#define LL_FEATURE_RSP 0x09 +#define LL_PAUSE_ENC_REQ 0x0A +#define LL_PAUSE_ENC_RSP 0x0B +#define LL_VERSION_IND 0x0C +#define LL_REJECT_IND 0x0D +#define LL_SLAVE_FEATURE_REQ 0x0E +#define LL_CONNECTION_PARAM_REQ 0x0F +#define LL_CONNECTION_PARAM_RSP 0x10 +#define LL_REJECT_IND_EXT 0x11 +#define LL_PING_REQ 0x12 +#define LL_PING_RSP 0x13 /* BLE 4.1 Vol 6 2.3.3.1 Connection information */ -#define CONNECT_REQ_INITA_LEN 6 -#define CONNECT_REQ_ADVA_LEN 6 -#define CONNECT_REQ_ACCESS_ADDR_LEN 4 -#define CONNECT_REQ_CRC_INIT_VAL_LEN 3 -#define CONNECT_REQ_WIN_SIZE_LEN 1 -#define CONNECT_REQ_WIN_OFFSET_LEN 2 -#define CONNECT_REQ_INTERVAL_LEN 2 -#define CONNECT_REQ_LATENCY_LEN 2 -#define CONNECT_REQ_TIMEOUT_LEN 2 -#define CONNECT_REQ_CHANNEL_MAP_LEN 5 -#define CONNECT_REQ_HOP_INCREMENT_AND_SCA_LEN 1 +#define CONNECT_REQ_INITA_LEN 6 +#define CONNECT_REQ_ADVA_LEN 6 +#define CONNECT_REQ_ACCESS_ADDR_LEN 4 +#define CONNECT_REQ_CRC_INIT_VAL_LEN 3 +#define CONNECT_REQ_WIN_SIZE_LEN 1 +#define CONNECT_REQ_WIN_OFFSET_LEN 2 +#define CONNECT_REQ_INTERVAL_LEN 2 +#define CONNECT_REQ_LATENCY_LEN 2 +#define CONNECT_REQ_TIMEOUT_LEN 2 +#define CONNECT_REQ_CHANNEL_MAP_LEN 5 +#define CONNECT_REQ_HOP_INCREMENT_AND_SCA_LEN 1 struct ble_connection_params { - uint8_t init_a[CONNECT_REQ_INITA_LEN]; - uint8_t adv_a[CONNECT_REQ_ADVA_LEN]; - uint32_t access_addr; - uint32_t crc_init_val; - uint8_t win_size; - uint16_t win_offset; - uint16_t interval; - uint16_t latency; - uint16_t timeout; - uint64_t channel_map; - uint8_t hop_increment; - uint8_t sleep_clock_accuracy; - uint32_t transmitWindowOffset; - uint32_t transmitWindowSize; - uint32_t connInterval; - uint16_t connLatency; - uint32_t connSupervisionTimeout; + uint8_t init_a[CONNECT_REQ_INITA_LEN]; + uint8_t adv_a[CONNECT_REQ_ADVA_LEN]; + uint32_t access_addr; + uint32_t crc_init_val; + uint8_t win_size; + uint16_t win_offset; + uint16_t interval; + uint16_t latency; + uint16_t timeout; + uint64_t channel_map; + uint8_t hop_increment; + uint8_t sleep_clock_accuracy; + uint32_t transmitWindowOffset; + uint32_t transmitWindowSize; + uint32_t connInterval; + uint16_t connLatency; + uint32_t connSupervisionTimeout; }; uint8_t ll_reset(void); uint8_t ll_set_tx_power(uint8_t *params); - /* LE Information */ uint8_t ll_read_buffer_size(uint8_t *return_params); uint8_t ll_read_local_supported_features(uint8_t *return_params); |