4986 lines
136 KiB
C
4986 lines
136 KiB
C
#ifndef CO_HCI_H_
|
||
#define CO_HCI_H_
|
||
|
||
/**
|
||
****************************************************************************************
|
||
* @addtogroup COMMON Common SW Block
|
||
* @{
|
||
****************************************************************************************
|
||
*/
|
||
|
||
|
||
/*
|
||
* INCLUDE FILES
|
||
****************************************************************************************
|
||
*/
|
||
#include <stdbool.h> // standard boolean definitions
|
||
#include <stddef.h> // standard definitions
|
||
#include <stdint.h> // standard integer definitions
|
||
|
||
#include "rwip_config.h" // IP configuration
|
||
|
||
#include "compiler.h" // compiler definitions
|
||
#include "hci_api.h"
|
||
|
||
/*
|
||
* DEFINES
|
||
****************************************************************************************
|
||
*/
|
||
|
||
|
||
/******************************************************************************************/
|
||
/* ------------------------- H4TL DEFINITIONS Part IV.A -----------------------------*/
|
||
/******************************************************************************************/
|
||
|
||
///HCI Transport Header length - change if different transport
|
||
#define HCI_TRANSPORT_HDR_LEN 0x01
|
||
|
||
///UART header: command message type
|
||
#define HCI_CMD_MSG_TYPE 0x01
|
||
|
||
///UART header: ACL data message type
|
||
#define HCI_ACL_MSG_TYPE 0x02
|
||
|
||
///UART header: Synchronous data message type
|
||
#define HCI_SYNC_MSG_TYPE 0x03
|
||
|
||
///UART header: event message type
|
||
#define HCI_EVT_MSG_TYPE 0x04
|
||
|
||
///UART header: event message type
|
||
#define HCI_TCI_MSG_TYPE 0xFF
|
||
|
||
/******************************************************************************************/
|
||
/* ------------------------- HCI DEFINITIONS Part II.E -----------------------------*/
|
||
/******************************************************************************************/
|
||
|
||
///HCI Command Opcode byte length
|
||
#define HCI_CMD_OPCODE_LEN (0x02)
|
||
|
||
///HCI Event code byte length
|
||
#define HCI_EVT_CODE_LEN (0x01)
|
||
|
||
///HCI Command/Event parameter length field byte length
|
||
#define HCI_CMDEVT_PARLEN_LEN (0x01)
|
||
|
||
///HCI Command header length
|
||
#define HCI_CMD_HDR_LEN (HCI_CMD_OPCODE_LEN + HCI_CMDEVT_PARLEN_LEN)
|
||
|
||
///HCI Event header length
|
||
#define HCI_EVT_HDR_LEN (HCI_EVT_CODE_LEN + HCI_CMDEVT_PARLEN_LEN)
|
||
|
||
/// HCI ACL header: handle and flags decoding
|
||
enum hci_acl_hdr_fields
|
||
{
|
||
|
||
/// bits[00:11]: Connection handle
|
||
HCI_ACL_HDR_HDL_LSB = (0),
|
||
HCI_ACL_HDR_HDL_MASK = (0x0FFF),
|
||
/// bits[12:13]: Packet boundary flag
|
||
HCI_ACL_HDR_PB_FLAG_LSB = (12),
|
||
HCI_ACL_HDR_PB_FLAG_MASK = (0x3000),
|
||
/// bits[14:15]: Broadcast flag
|
||
HCI_ACL_HDR_BC_FLAG_LSB = (14),
|
||
HCI_ACL_HDR_BC_FLAG_MASK = (0xC000),
|
||
|
||
/// Packet boundary and Broadcast flags
|
||
HCI_ACL_HDR_DATA_FLAG_LSB = (12),
|
||
HCI_ACL_HDR_DATA_FLAG_MASK = (0xF000),
|
||
};
|
||
|
||
#define HCI_ACL_HDR_HDL_FLAGS_POS (0)
|
||
#define HCI_ACL_HDR_HDL_FLAGS_LEN (2)
|
||
/// HCI ACL header: data length field length
|
||
#define HCI_ACL_HDR_DATA_LEN_POS (HCI_ACL_HDR_HDL_FLAGS_LEN)
|
||
#define HCI_ACL_HDR_DATA_LEN_LEN (2)
|
||
|
||
///HCI ACL data packet header length
|
||
#define HCI_ACL_HDR_LEN (HCI_ACL_HDR_HDL_FLAGS_LEN + HCI_ACL_HDR_DATA_LEN_LEN)
|
||
|
||
/// HCI Synchronous header: handle and flags decoding
|
||
#define HCI_SYNC_HDR_HDL_FLAGS_POS (0)
|
||
#define HCI_SYNC_HDR_HDL_FLAGS_LEN (2)
|
||
#define HCI_SYNC_HDR_HDL_POS (0)
|
||
#define HCI_SYNC_HDR_HDL_MASK (0x0FFF)
|
||
#define HCI_SYNC_HDR_PSF_FLAG_POS (12)
|
||
#define HCI_SYNC_HDR_PSF_FLAG_MASK (0x3000)
|
||
#define HCI_SYNC_HDR_RES_FLAG_POS (14)
|
||
#define HCI_SYNC_HDR_RES_FLAG_MASK (0xC000)
|
||
#define HCI_SYNC_HDR_DATA_FLAG_POS (12)
|
||
#define HCI_SYNC_HDR_DATA_FLAG_MASK (0xF000)
|
||
|
||
/// HCI Synchronous header: data length field length
|
||
#define HCI_SYNC_HDR_DATA_LEN_POS (HCI_SYNC_HDR_HDL_FLAGS_LEN)
|
||
#define HCI_SYNC_HDR_DATA_LEN_LEN (1)
|
||
#define HCI_SYNC_MAX_DATA_SIZE (255)
|
||
|
||
///HCI sync data packet header length
|
||
#define HCI_SYNC_HDR_LEN (HCI_SYNC_HDR_HDL_FLAGS_LEN + HCI_SYNC_HDR_DATA_LEN_LEN)
|
||
|
||
///HCI Command Complete Event minimum parameter length: 1(nb_pk)+2(opcode)
|
||
#define HCI_CCEVT_HDR_PARLEN (0x03)
|
||
|
||
///HCI Command Complete Event header length:1(code)+1(len)+1(pk)+2(opcode)
|
||
#define HCI_CCEVT_HDR_LEN (HCI_EVT_HDR_LEN + HCI_CCEVT_HDR_PARLEN)
|
||
|
||
///HCI Basic Command Complete Event packet length
|
||
#define HCI_CCEVT_BASIC_LEN (HCI_CCEVT_HDR_LEN + 1)
|
||
|
||
///HCI Command Status Event parameter length - constant
|
||
#define HCI_CSEVT_PARLEN (0x04)
|
||
|
||
///HCI Command Status Event length:1(code)+1(len)+1(st)+1(pk)+2(opcode)
|
||
#define HCI_CSEVT_LEN (HCI_EVT_HDR_LEN + HCI_CSEVT_PARLEN)
|
||
|
||
///HCI Reset Command parameter length
|
||
#define HCI_RESET_CMD_PARLEN 0
|
||
|
||
/// Default return parameter length for HCI Command Complete Event
|
||
#define HCI_CCEVT_BASIC_RETPAR_LEN 1
|
||
|
||
/// Max HCI commands param size
|
||
#define HCI_MAX_CMD_PARAM_SIZE 255
|
||
|
||
/// Macro to extract OCF from OPCODE
|
||
#define HCI_OP2OCF(opcode) ((opcode) & 0x03FF)
|
||
|
||
/// Macro to extract OGF from OPCODE
|
||
#define HCI_OP2OGF(opcode) ((opcode) >> 10 & 0x003F)
|
||
|
||
/// Macro to create OPCODE from OGF and OCF
|
||
#define HCI_OPCODE(ocf, ogf) (((ogf) << 10) | ocf)
|
||
|
||
/// Maximum length of HCI advertising data fragments
|
||
#define HCI_ADV_DATA_FRAG_MAX_LEN 252
|
||
|
||
|
||
/**************************************************************************************
|
||
************** HCI COMMANDS ****************
|
||
**************************************************************************************/
|
||
|
||
///HCI enumeration of possible Command OGF values.
|
||
enum
|
||
{
|
||
///HCI Link Control Commands Group OGF code
|
||
LK_CNTL_OGF = 0x01,
|
||
///HCI Link Policy Commands Group OGF code
|
||
LK_POL_OGF,
|
||
///HCI Controller and Baseband Commands Group OGF code
|
||
CNTLR_BB_OGF,
|
||
///HCI Information Parameters Commands Group OGF code
|
||
INFO_PAR_OGF,
|
||
///HCI Status Commands Group OGF code
|
||
STAT_PAR_OGF,
|
||
///HCI Test Commands Group OGF code
|
||
TEST_OGF,
|
||
///HCI Low Energy Commands Group OGF code
|
||
LE_CNTLR_OGF=0x08,
|
||
///HCI Vendor Specific Group OGF code
|
||
VS_OGF = 0x3F,
|
||
MAX_OGF
|
||
};
|
||
|
||
|
||
///Commands Opcodes: OGF(6b) | OCF(10b)
|
||
/* Some Abbreviation used in names:
|
||
* - LK = Link Key
|
||
* - RD = Read
|
||
* - WR = Write
|
||
* - REM = Remote
|
||
* - STG = Settings
|
||
* - CON = Connection
|
||
* - CHG = Change
|
||
* - DFT = Default
|
||
* - PER = Periodic
|
||
*/
|
||
|
||
///HCI enumeration of possible Command OP Codes.
|
||
enum hci_opcode
|
||
{
|
||
HCI_NO_OPERATION_CMD_OPCODE = 0x0000,
|
||
|
||
//Link Control Commands
|
||
HCI_INQ_CMD_OPCODE = 0x0401,
|
||
HCI_INQ_CANCEL_CMD_OPCODE = 0x0402,
|
||
HCI_PER_INQ_MODE_CMD_OPCODE = 0x0403,
|
||
HCI_EXIT_PER_INQ_MODE_CMD_OPCODE = 0x0404,
|
||
HCI_CREATE_CON_CMD_OPCODE = 0x0405,
|
||
HCI_DISCONNECT_CMD_OPCODE = 0x0406,
|
||
HCI_CREATE_CON_CANCEL_CMD_OPCODE = 0x0408,
|
||
HCI_ACCEPT_CON_REQ_CMD_OPCODE = 0x0409,
|
||
HCI_REJECT_CON_REQ_CMD_OPCODE = 0x040A,
|
||
HCI_LK_REQ_REPLY_CMD_OPCODE = 0x040B,
|
||
HCI_LK_REQ_NEG_REPLY_CMD_OPCODE = 0x040C,
|
||
HCI_PIN_CODE_REQ_REPLY_CMD_OPCODE = 0x040D,
|
||
HCI_PIN_CODE_REQ_NEG_REPLY_CMD_OPCODE = 0x040E,
|
||
HCI_CHG_CON_PKT_TYPE_CMD_OPCODE = 0x040F,
|
||
HCI_AUTH_REQ_CMD_OPCODE = 0x0411,
|
||
HCI_SET_CON_ENC_CMD_OPCODE = 0x0413,
|
||
HCI_CHG_CON_LK_CMD_OPCODE = 0x0415,
|
||
HCI_MASTER_LK_CMD_OPCODE = 0x0417,
|
||
HCI_REM_NAME_REQ_CMD_OPCODE = 0x0419,
|
||
HCI_REM_NAME_REQ_CANCEL_CMD_OPCODE = 0x041A,
|
||
HCI_RD_REM_SUPP_FEATS_CMD_OPCODE = 0x041B,
|
||
HCI_RD_REM_EXT_FEATS_CMD_OPCODE = 0x041C,
|
||
HCI_RD_REM_VER_INFO_CMD_OPCODE = 0x041D,
|
||
HCI_RD_CLK_OFF_CMD_OPCODE = 0x041F,
|
||
HCI_RD_LMP_HDL_CMD_OPCODE = 0x0420,
|
||
HCI_SETUP_SYNC_CON_CMD_OPCODE = 0x0428,
|
||
HCI_ACCEPT_SYNC_CON_REQ_CMD_OPCODE = 0x0429,
|
||
HCI_REJECT_SYNC_CON_REQ_CMD_OPCODE = 0x042A,
|
||
HCI_IO_CAP_REQ_REPLY_CMD_OPCODE = 0x042B,
|
||
HCI_USER_CFM_REQ_REPLY_CMD_OPCODE = 0x042C,
|
||
HCI_USER_CFM_REQ_NEG_REPLY_CMD_OPCODE = 0x042D,
|
||
HCI_USER_PASSKEY_REQ_REPLY_CMD_OPCODE = 0x042E,
|
||
HCI_USER_PASSKEY_REQ_NEG_REPLY_CMD_OPCODE = 0x042F,
|
||
HCI_REM_OOB_DATA_REQ_REPLY_CMD_OPCODE = 0x0430,
|
||
HCI_REM_OOB_DATA_REQ_NEG_REPLY_CMD_OPCODE = 0x0433,
|
||
HCI_IO_CAP_REQ_NEG_REPLY_CMD_OPCODE = 0x0434,
|
||
HCI_ENH_SETUP_SYNC_CON_CMD_OPCODE = 0x043D,
|
||
HCI_ENH_ACCEPT_SYNC_CON_CMD_OPCODE = 0x043E,
|
||
HCI_TRUNC_PAGE_CMD_OPCODE = 0x043F,
|
||
HCI_TRUNC_PAGE_CAN_CMD_OPCODE = 0x0440,
|
||
HCI_SET_CON_SLV_BCST_CMD_OPCODE = 0x0441,
|
||
HCI_SET_CON_SLV_BCST_REC_CMD_OPCODE = 0x0442,
|
||
HCI_START_SYNC_TRAIN_CMD_OPCODE = 0x0443,
|
||
HCI_REC_SYNC_TRAIN_CMD_OPCODE = 0x0444,
|
||
HCI_REM_OOB_EXT_DATA_REQ_REPLY_CMD_OPCODE = 0x0445,
|
||
|
||
//Link Policy Commands
|
||
HCI_HOLD_MODE_CMD_OPCODE = 0x0801,
|
||
HCI_SNIFF_MODE_CMD_OPCODE = 0x0803,
|
||
HCI_EXIT_SNIFF_MODE_CMD_OPCODE = 0x0804,
|
||
HCI_PARK_STATE_CMD_OPCODE = 0x0805,
|
||
HCI_EXIT_PARK_STATE_CMD_OPCODE = 0x0806,
|
||
HCI_QOS_SETUP_CMD_OPCODE = 0x0807,
|
||
HCI_ROLE_DISCOVERY_CMD_OPCODE = 0x0809,
|
||
HCI_SWITCH_ROLE_CMD_OPCODE = 0x080B,
|
||
HCI_RD_LINK_POL_STG_CMD_OPCODE = 0x080C,
|
||
HCI_WR_LINK_POL_STG_CMD_OPCODE = 0x080D,
|
||
HCI_RD_DFT_LINK_POL_STG_CMD_OPCODE = 0x080E,
|
||
HCI_WR_DFT_LINK_POL_STG_CMD_OPCODE = 0x080F,
|
||
HCI_FLOW_SPEC_CMD_OPCODE = 0x0810,
|
||
HCI_SNIFF_SUB_CMD_OPCODE = 0x0811,
|
||
|
||
//Controller and Baseband Commands
|
||
HCI_SET_EVT_MASK_CMD_OPCODE = 0x0C01,
|
||
HCI_RESET_CMD_OPCODE = 0x0C03,
|
||
HCI_SET_EVT_FILTER_CMD_OPCODE = 0x0C05,
|
||
HCI_FLUSH_CMD_OPCODE = 0x0C08,
|
||
HCI_RD_PIN_TYPE_CMD_OPCODE = 0x0C09,
|
||
HCI_WR_PIN_TYPE_CMD_OPCODE = 0x0C0A,
|
||
HCI_CREATE_NEW_UNIT_KEY_CMD_OPCODE = 0x0C0B,
|
||
HCI_RD_STORED_LK_CMD_OPCODE = 0x0C0D,
|
||
HCI_WR_STORED_LK_CMD_OPCODE = 0x0C11,
|
||
HCI_DEL_STORED_LK_CMD_OPCODE = 0x0C12,
|
||
HCI_WR_LOCAL_NAME_CMD_OPCODE = 0x0C13,
|
||
HCI_RD_LOCAL_NAME_CMD_OPCODE = 0x0C14,
|
||
HCI_RD_CON_ACCEPT_TO_CMD_OPCODE = 0x0C15,
|
||
HCI_WR_CON_ACCEPT_TO_CMD_OPCODE = 0x0C16,
|
||
HCI_RD_PAGE_TO_CMD_OPCODE = 0x0C17,
|
||
HCI_WR_PAGE_TO_CMD_OPCODE = 0x0C18,
|
||
HCI_RD_SCAN_EN_CMD_OPCODE = 0x0C19,
|
||
HCI_WR_SCAN_EN_CMD_OPCODE = 0x0C1A,
|
||
HCI_RD_PAGE_SCAN_ACT_CMD_OPCODE = 0x0C1B,
|
||
HCI_WR_PAGE_SCAN_ACT_CMD_OPCODE = 0x0C1C,
|
||
HCI_RD_INQ_SCAN_ACT_CMD_OPCODE = 0x0C1D,
|
||
HCI_WR_INQ_SCAN_ACT_CMD_OPCODE = 0x0C1E,
|
||
HCI_RD_AUTH_EN_CMD_OPCODE = 0x0C1F,
|
||
HCI_WR_AUTH_EN_CMD_OPCODE = 0x0C20,
|
||
HCI_RD_CLASS_OF_DEV_CMD_OPCODE = 0x0C23,
|
||
HCI_WR_CLASS_OF_DEV_CMD_OPCODE = 0x0C24,
|
||
HCI_RD_VOICE_STG_CMD_OPCODE = 0x0C25,
|
||
HCI_WR_VOICE_STG_CMD_OPCODE = 0x0C26,
|
||
HCI_RD_AUTO_FLUSH_TO_CMD_OPCODE = 0x0C27,
|
||
HCI_WR_AUTO_FLUSH_TO_CMD_OPCODE = 0x0C28,
|
||
HCI_RD_NB_BDCST_RETX_CMD_OPCODE = 0x0C29,
|
||
HCI_WR_NB_BDCST_RETX_CMD_OPCODE = 0x0C2A,
|
||
HCI_RD_HOLD_MODE_ACTIVITY_CMD_OPCODE = 0x0C2B,
|
||
HCI_WR_HOLD_MODE_ACTIVITY_CMD_OPCODE = 0x0C2C,
|
||
HCI_RD_TX_PWR_LVL_CMD_OPCODE = 0x0C2D,
|
||
HCI_RD_SYNC_FLOW_CTRL_EN_CMD_OPCODE = 0x0C2E,
|
||
HCI_WR_SYNC_FLOW_CTRL_EN_CMD_OPCODE = 0x0C2F,
|
||
HCI_SET_CTRL_TO_HOST_FLOW_CTRL_CMD_OPCODE = 0x0C31,
|
||
HCI_HOST_BUF_SIZE_CMD_OPCODE = 0x0C33,
|
||
HCI_HOST_NB_CMP_PKTS_CMD_OPCODE = 0x0C35,
|
||
HCI_RD_LINK_SUPV_TO_CMD_OPCODE = 0x0C36,
|
||
HCI_WR_LINK_SUPV_TO_CMD_OPCODE = 0x0C37,
|
||
HCI_RD_NB_SUPP_IAC_CMD_OPCODE = 0x0C38,
|
||
HCI_RD_CURR_IAC_LAP_CMD_OPCODE = 0x0C39,
|
||
HCI_WR_CURR_IAC_LAP_CMD_OPCODE = 0x0C3A,
|
||
HCI_SET_AFH_HOST_CH_CLASS_CMD_OPCODE = 0x0C3F,
|
||
HCI_RD_INQ_SCAN_TYPE_CMD_OPCODE = 0x0C42,
|
||
HCI_WR_INQ_SCAN_TYPE_CMD_OPCODE = 0x0C43,
|
||
HCI_RD_INQ_MODE_CMD_OPCODE = 0x0C44,
|
||
HCI_WR_INQ_MODE_CMD_OPCODE = 0x0C45,
|
||
HCI_RD_PAGE_SCAN_TYPE_CMD_OPCODE = 0x0C46,
|
||
HCI_WR_PAGE_SCAN_TYPE_CMD_OPCODE = 0x0C47,
|
||
HCI_RD_AFH_CH_ASSESS_MODE_CMD_OPCODE = 0x0C48,
|
||
HCI_WR_AFH_CH_ASSESS_MODE_CMD_OPCODE = 0x0C49,
|
||
HCI_RD_EXT_INQ_RSP_CMD_OPCODE = 0x0C51,
|
||
HCI_WR_EXT_INQ_RSP_CMD_OPCODE = 0x0C52,
|
||
HCI_REFRESH_ENC_KEY_CMD_OPCODE = 0x0C53,
|
||
HCI_RD_SP_MODE_CMD_OPCODE = 0x0C55,
|
||
HCI_WR_SP_MODE_CMD_OPCODE = 0x0C56,
|
||
HCI_RD_LOC_OOB_DATA_CMD_OPCODE = 0x0C57,
|
||
HCI_RD_INQ_RSP_TX_PWR_LVL_CMD_OPCODE = 0x0C58,
|
||
HCI_WR_INQ_TX_PWR_LVL_CMD_OPCODE = 0x0C59,
|
||
HCI_RD_DFT_ERR_DATA_REP_CMD_OPCODE = 0x0C5A,
|
||
HCI_WR_DFT_ERR_DATA_REP_CMD_OPCODE = 0x0C5B,
|
||
HCI_ENH_FLUSH_CMD_OPCODE = 0x0C5F,
|
||
HCI_SEND_KEYPRESS_NOTIF_CMD_OPCODE = 0x0C60,
|
||
HCI_SET_EVT_MASK_PAGE_2_CMD_OPCODE = 0x0C63,
|
||
HCI_RD_FLOW_CNTL_MODE_CMD_OPCODE = 0x0C66,
|
||
HCI_WR_FLOW_CNTL_MODE_CMD_OPCODE = 0x0C67,
|
||
HCI_RD_ENH_TX_PWR_LVL_CMD_OPCODE = 0x0C68,
|
||
HCI_RD_LE_HOST_SUPP_CMD_OPCODE = 0x0C6C,
|
||
HCI_WR_LE_HOST_SUPP_CMD_OPCODE = 0x0C6D,
|
||
HCI_SET_MWS_CHANNEL_PARAMS_CMD_OPCODE = 0x0C6E,
|
||
HCI_SET_EXTERNAL_FRAME_CONFIG_CMD_OPCODE = 0x0C6F,
|
||
HCI_SET_MWS_SIGNALING_CMD_OPCODE = 0x0C70,
|
||
HCI_SET_MWS_TRANSPORT_LAYER_CMD_OPCODE = 0x0C71,
|
||
HCI_SET_MWS_SCAN_FREQ_TABLE_CMD_OPCODE = 0x0C72,
|
||
HCI_SET_MWS_PATTERN_CONFIG_CMD_OPCODE = 0x0C73,
|
||
HCI_SET_RES_LT_ADDR_CMD_OPCODE = 0x0C74,
|
||
HCI_DEL_RES_LT_ADDR_CMD_OPCODE = 0x0C75,
|
||
HCI_SET_CON_SLV_BCST_DATA_CMD_OPCODE = 0x0C76,
|
||
HCI_RD_SYNC_TRAIN_PARAM_CMD_OPCODE = 0x0C77,
|
||
HCI_WR_SYNC_TRAIN_PARAM_CMD_OPCODE = 0x0C78,
|
||
HCI_RD_SEC_CON_HOST_SUPP_CMD_OPCODE = 0x0C79,
|
||
HCI_WR_SEC_CON_HOST_SUPP_CMD_OPCODE = 0x0C7A,
|
||
HCI_RD_AUTH_PAYL_TO_CMD_OPCODE = 0x0C7B,
|
||
HCI_WR_AUTH_PAYL_TO_CMD_OPCODE = 0x0C7C,
|
||
HCI_RD_LOC_OOB_EXT_DATA_CMD_OPCODE = 0x0C7D,
|
||
HCI_RD_EXT_PAGE_TO_CMD_OPCODE = 0x0C7E,
|
||
HCI_WR_EXT_PAGE_TO_CMD_OPCODE = 0x0C7F,
|
||
HCI_RD_EXT_INQ_LEN_CMD_OPCODE = 0x0C80,
|
||
HCI_WR_EXT_INQ_LEN_CMD_OPCODE = 0x0C81,
|
||
|
||
//Info Params
|
||
HCI_RD_LOCAL_VER_INFO_CMD_OPCODE = 0x1001,
|
||
HCI_RD_LOCAL_SUPP_CMDS_CMD_OPCODE = 0x1002,
|
||
HCI_RD_LOCAL_SUPP_FEATS_CMD_OPCODE = 0x1003,
|
||
HCI_RD_LOCAL_EXT_FEATS_CMD_OPCODE = 0x1004,
|
||
HCI_RD_BUFF_SIZE_CMD_OPCODE = 0x1005,
|
||
HCI_RD_BD_ADDR_CMD_OPCODE = 0x1009,
|
||
HCI_RD_LOCAL_SUPP_CODECS_CMD_OPCODE = 0x100B,
|
||
|
||
//Status Params
|
||
HCI_RD_FAIL_CONTACT_CNT_CMD_OPCODE = 0x1401,
|
||
HCI_RST_FAIL_CONTACT_CNT_CMD_OPCODE = 0x1402,
|
||
HCI_RD_LINK_QUAL_CMD_OPCODE = 0x1403,
|
||
HCI_RD_RSSI_CMD_OPCODE = 0x1405,
|
||
HCI_RD_AFH_CH_MAP_CMD_OPCODE = 0x1406,
|
||
HCI_RD_CLK_CMD_OPCODE = 0x1407,
|
||
HCI_RD_ENC_KEY_SIZE_CMD_OPCODE = 0x1408,
|
||
HCI_GET_MWS_TRANSPORT_LAYER_CONFIG_CMD_OPCODE = 0x140C,
|
||
|
||
//Testing Commands
|
||
HCI_RD_LOOPBACK_MODE_CMD_OPCODE = 0x1801,
|
||
HCI_WR_LOOPBACK_MODE_CMD_OPCODE = 0x1802,
|
||
HCI_EN_DUT_MODE_CMD_OPCODE = 0x1803,
|
||
HCI_WR_SP_DBG_MODE_CMD_OPCODE = 0x1804,
|
||
|
||
/// LE Commands Opcodes
|
||
HCI_LE_SET_EVT_MASK_CMD_OPCODE = 0x2001,
|
||
HCI_LE_RD_BUFF_SIZE_CMD_OPCODE = 0x2002,
|
||
HCI_LE_RD_LOCAL_SUPP_FEATS_CMD_OPCODE = 0x2003,
|
||
HCI_LE_SET_RAND_ADDR_CMD_OPCODE = 0x2005,
|
||
HCI_LE_SET_ADV_PARAM_CMD_OPCODE = 0x2006,
|
||
HCI_LE_RD_ADV_CHNL_TX_PW_CMD_OPCODE = 0x2007,
|
||
HCI_LE_SET_ADV_DATA_CMD_OPCODE = 0x2008,
|
||
HCI_LE_SET_SCAN_RSP_DATA_CMD_OPCODE = 0x2009,
|
||
HCI_LE_SET_ADV_EN_CMD_OPCODE = 0x200A,
|
||
HCI_LE_SET_SCAN_PARAM_CMD_OPCODE = 0x200B,
|
||
HCI_LE_SET_SCAN_EN_CMD_OPCODE = 0x200C,
|
||
HCI_LE_CREATE_CON_CMD_OPCODE = 0x200D,
|
||
HCI_LE_CREATE_CON_CANCEL_CMD_OPCODE = 0x200E,
|
||
HCI_LE_RD_WLST_SIZE_CMD_OPCODE = 0x200F,
|
||
HCI_LE_CLEAR_WLST_CMD_OPCODE = 0x2010,
|
||
HCI_LE_ADD_DEV_TO_WLST_CMD_OPCODE = 0x2011,
|
||
HCI_LE_RMV_DEV_FROM_WLST_CMD_OPCODE = 0x2012,
|
||
HCI_LE_CON_UPDATE_CMD_OPCODE = 0x2013,
|
||
HCI_LE_SET_HOST_CH_CLASS_CMD_OPCODE = 0x2014,
|
||
HCI_LE_RD_CHNL_MAP_CMD_OPCODE = 0x2015,
|
||
HCI_LE_RD_REM_FEATS_CMD_OPCODE = 0x2016,
|
||
HCI_LE_ENC_CMD_OPCODE = 0x2017,
|
||
HCI_LE_RAND_CMD_OPCODE = 0x2018,
|
||
HCI_LE_START_ENC_CMD_OPCODE = 0x2019,
|
||
HCI_LE_LTK_REQ_REPLY_CMD_OPCODE = 0x201A,
|
||
HCI_LE_LTK_REQ_NEG_REPLY_CMD_OPCODE = 0x201B,
|
||
HCI_LE_RD_SUPP_STATES_CMD_OPCODE = 0x201C,
|
||
HCI_LE_RX_TEST_CMD_OPCODE = 0x201D,
|
||
HCI_LE_TX_TEST_CMD_OPCODE = 0x201E,
|
||
HCI_LE_TEST_END_CMD_OPCODE = 0x201F,
|
||
HCI_LE_REM_CON_PARAM_REQ_REPLY_CMD_OPCODE = 0x2020,
|
||
HCI_LE_REM_CON_PARAM_REQ_NEG_REPLY_CMD_OPCODE = 0x2021,
|
||
HCI_LE_SET_DATA_LEN_CMD_OPCODE = 0x2022,
|
||
HCI_LE_RD_SUGGTED_DFT_DATA_LEN_CMD_OPCODE = 0x2023,
|
||
HCI_LE_WR_SUGGTED_DFT_DATA_LEN_CMD_OPCODE = 0x2024,
|
||
HCI_LE_RD_LOC_P256_PUB_KEY_CMD_OPCODE = 0x2025,
|
||
HCI_LE_GEN_DHKEY_CMD_OPCODE = 0x2026,
|
||
HCI_LE_ADD_DEV_TO_RSLV_LIST_CMD_OPCODE = 0x2027,
|
||
HCI_LE_RMV_DEV_FROM_RSLV_LIST_CMD_OPCODE = 0x2028,
|
||
HCI_LE_CLEAR_RSLV_LIST_CMD_OPCODE = 0x2029,
|
||
HCI_LE_RD_RSLV_LIST_SIZE_CMD_OPCODE = 0x202A,
|
||
HCI_LE_RD_PEER_RSLV_ADDR_CMD_OPCODE = 0x202B,
|
||
HCI_LE_RD_LOC_RSLV_ADDR_CMD_OPCODE = 0x202C,
|
||
HCI_LE_SET_ADDR_RESOL_EN_CMD_OPCODE = 0x202D,
|
||
HCI_LE_SET_RSLV_PRIV_ADDR_TO_CMD_OPCODE = 0x202E,
|
||
HCI_LE_RD_MAX_DATA_LEN_CMD_OPCODE = 0x202F,
|
||
HCI_LE_RD_PHY_CMD_OPCODE = 0x2030,
|
||
HCI_LE_SET_DFT_PHY_CMD_OPCODE = 0x2031,
|
||
HCI_LE_SET_PHY_CMD_OPCODE = 0x2032,
|
||
HCI_LE_ENH_RX_TEST_CMD_OPCODE = 0x2033,
|
||
HCI_LE_ENH_TX_TEST_CMD_OPCODE = 0x2034,
|
||
HCI_LE_SET_ADV_SET_RAND_ADDR_CMD_OPCODE = 0x2035,
|
||
HCI_LE_SET_EXT_ADV_PARAM_CMD_OPCODE = 0x2036,
|
||
HCI_LE_SET_EXT_ADV_DATA_CMD_OPCODE = 0x2037,
|
||
HCI_LE_SET_EXT_SCAN_RSP_DATA_CMD_OPCODE = 0x2038,
|
||
HCI_LE_SET_EXT_ADV_EN_CMD_OPCODE = 0x2039,
|
||
HCI_LE_RD_MAX_ADV_DATA_LEN_CMD_OPCODE = 0x203A,
|
||
HCI_LE_RD_NB_SUPP_ADV_SETS_CMD_OPCODE = 0x203B,
|
||
HCI_LE_RMV_ADV_SET_CMD_OPCODE = 0x203C,
|
||
HCI_LE_CLEAR_ADV_SETS_CMD_OPCODE = 0x203D,
|
||
HCI_LE_SET_PER_ADV_PARAM_CMD_OPCODE = 0x203E,
|
||
HCI_LE_SET_PER_ADV_DATA_CMD_OPCODE = 0x203F,
|
||
HCI_LE_SET_PER_ADV_EN_CMD_OPCODE = 0x2040,
|
||
HCI_LE_SET_EXT_SCAN_PARAM_CMD_OPCODE = 0x2041,
|
||
HCI_LE_SET_EXT_SCAN_EN_CMD_OPCODE = 0x2042,
|
||
HCI_LE_EXT_CREATE_CON_CMD_OPCODE = 0x2043,
|
||
HCI_LE_PER_ADV_CREATE_SYNC_CMD_OPCODE = 0x2044,
|
||
HCI_LE_PER_ADV_CREATE_SYNC_CANCEL_CMD_OPCODE = 0x2045,
|
||
HCI_LE_PER_ADV_TERM_SYNC_CMD_OPCODE = 0x2046,
|
||
HCI_LE_ADD_DEV_TO_PER_ADV_LIST_CMD_OPCODE = 0x2047,
|
||
HCI_LE_RMV_DEV_FROM_PER_ADV_LIST_CMD_OPCODE = 0x2048,
|
||
HCI_LE_CLEAR_PER_ADV_LIST_CMD_OPCODE = 0x2049,
|
||
HCI_LE_RD_PER_ADV_LIST_SIZE_CMD_OPCODE = 0x204A,
|
||
HCI_LE_RD_TX_PWR_CMD_OPCODE = 0x204B,
|
||
HCI_LE_RD_RF_PATH_COMP_CMD_OPCODE = 0x204C,
|
||
HCI_LE_WR_RF_PATH_COMP_CMD_OPCODE = 0x204D,
|
||
HCI_LE_SET_PRIV_MODE_CMD_OPCODE = 0x204E,
|
||
HCI_LE_SET_MIN_NUM_USED_CHAN_CMD_OPCODE = 0x204F,
|
||
|
||
///Debug commands - OGF = 0x3F (spec)
|
||
HCI_DBG_RD_MEM_CMD_OPCODE = 0xFC01,
|
||
HCI_DBG_WR_MEM_CMD_OPCODE = 0xFC02,
|
||
HCI_DBG_DEL_PAR_CMD_OPCODE = 0xFC03,
|
||
HCI_DBG_ID_FLASH_CMD_OPCODE = 0xFC05,
|
||
HCI_DBG_ER_FLASH_CMD_OPCODE = 0xFC06,
|
||
HCI_DBG_WR_FLASH_CMD_OPCODE = 0xFC07,
|
||
HCI_DBG_RD_FLASH_CMD_OPCODE = 0xFC08,
|
||
HCI_DBG_RD_PAR_CMD_OPCODE = 0xFC09,
|
||
HCI_DBG_WR_PAR_CMD_OPCODE = 0xFC0A,
|
||
HCI_DBG_WLAN_COEX_CMD_OPCODE = 0xFC0B,
|
||
HCI_DBG_WLAN_COEXTST_SCEN_CMD_OPCODE = 0xFC0D,
|
||
HCI_DBG_BT_SEND_LMP_CMD_OPCODE = 0xFC0E,
|
||
HCI_DBG_RD_KE_STATS_CMD_OPCODE = 0xFC10,
|
||
HCI_DBG_PLF_RESET_CMD_OPCODE = 0xFC11,
|
||
HCI_DBG_RD_MEM_INFO_CMD_OPCODE = 0xFC12,
|
||
HCI_DBG_HW_REG_RD_CMD_OPCODE = 0xFC30,
|
||
HCI_DBG_HW_REG_WR_CMD_OPCODE = 0xFC31,
|
||
HCI_DBG_SET_BD_ADDR_CMD_OPCODE = 0xFC32,
|
||
HCI_DBG_SET_TYPE_PUB_CMD_OPCODE = 0xFC33,
|
||
HCI_DBG_SET_TYPE_RAND_CMD_OPCODE = 0xFC34,
|
||
HCI_DBG_SET_CRC_CMD_OPCODE = 0xFC35,
|
||
HCI_DBG_LLCP_DISCARD_CMD_OPCODE = 0xFC36,
|
||
HCI_DBG_RESET_RX_CNT_CMD_OPCODE = 0xFC37,
|
||
HCI_DBG_RESET_TX_CNT_CMD_OPCODE = 0xFC38,
|
||
HCI_DBG_RF_REG_RD_CMD_OPCODE = 0xFC39,
|
||
HCI_DBG_RF_REG_WR_CMD_OPCODE = 0xFC3A,
|
||
HCI_DBG_SET_TX_PW_CMD_OPCODE = 0xFC3B,
|
||
HCI_DBG_RF_SWITCH_CLK_CMD_OPCODE = 0xFC3C,
|
||
HCI_DBG_RF_WR_DATA_TX_CMD_OPCODE = 0xFC3D,
|
||
HCI_DBG_RF_RD_DATA_RX_CMD_OPCODE = 0xFC3E,
|
||
HCI_DBG_RF_CNTL_TX_CMD_OPCODE = 0xFC3F,
|
||
HCI_DBG_RF_SYNC_P_CNTL_CMD_OPCODE = 0xFC40,
|
||
HCI_TESTER_SET_LE_PARAMS_CMD_OPCODE = 0xFC40,
|
||
HCI_DBG_WR_DLE_DFT_VALUE_CMD_OPCODE = 0xFC41,
|
||
#if (BLE_EMB_PRESENT)
|
||
#if (BLE_TESTER)
|
||
HCI_DBG_BLE_TST_LLCP_PT_EN_CMD_OPCODE = 0xFC42,
|
||
HCI_DBG_BLE_TST_SEND_LLCP_CMD_OPCODE = 0xFC43,
|
||
#endif // (BLE_TESTER)
|
||
#if (BLE_AUDIO)
|
||
HCI_DBG_AUDIO_CONFIGURE_CMD_OPCODE = 0xFC50,
|
||
HCI_DBG_AUDIO_SET_MODE_CMD_OPCODE = 0xFC51,
|
||
HCI_DBG_AUDIO_RESET_CMD_OPCODE = 0xFC52,
|
||
HCI_DBG_AUDIO_SET_POINTER_CMD_OPCODE = 0xFC53,
|
||
HCI_DBG_AUDIO_ALLOCATE_CMD_OPCODE = 0xFC54,
|
||
HCI_DBG_AUDIO_GET_VX_CH_CMD_OPCODE = 0xFC55,
|
||
#endif
|
||
#endif // (BLE_EMB_PRESENT)
|
||
|
||
#if (RW_DEBUG && BT_EMB_PRESENT)
|
||
HCI_DBG_BT_DISCARD_LMP_EN_CMD_OPCODE = 0xFC44,
|
||
#endif //RW_DEBUG && BT_EMB_PRESENT
|
||
|
||
HCI_DBG_MWS_COEX_CMD_OPCODE = 0xFC45,
|
||
HCI_DBG_MWS_COEXTST_SCEN_CMD_OPCODE = 0xFC46,
|
||
|
||
#if CRYPTO_UT
|
||
HCI_DBG_TEST_CRYPTO_FUNC_CMD_OPCODE = 0xFC60,
|
||
#endif //CRYPTO_UT
|
||
};
|
||
|
||
/**************************************************************************************
|
||
************** HCI EVENTS ****************
|
||
**************************************************************************************/
|
||
|
||
///Event Codes
|
||
enum hci_evt_code
|
||
{
|
||
HCI_INQ_CMP_EVT_CODE = 0x01,
|
||
HCI_INQ_RES_EVT_CODE = 0x02,
|
||
HCI_CON_CMP_EVT_CODE = 0x03,
|
||
HCI_CON_REQ_EVT_CODE = 0x04,
|
||
HCI_DISC_CMP_EVT_CODE = 0x05,
|
||
HCI_AUTH_CMP_EVT_CODE = 0x06,
|
||
HCI_REM_NAME_REQ_CMP_EVT_CODE = 0x07,
|
||
HCI_ENC_CHG_EVT_CODE = 0x08,
|
||
HCI_CHG_CON_LK_CMP_EVT_CODE = 0x09,
|
||
HCI_MASTER_LK_CMP_EVT_CODE = 0x0A,
|
||
HCI_RD_REM_SUPP_FEATS_CMP_EVT_CODE = 0x0B,
|
||
HCI_RD_REM_VER_INFO_CMP_EVT_CODE = 0x0C,
|
||
HCI_QOS_SETUP_CMP_EVT_CODE = 0x0D,
|
||
HCI_CMD_CMP_EVT_CODE = 0x0E,
|
||
HCI_CMD_STATUS_EVT_CODE = 0x0F,
|
||
HCI_HW_ERR_EVT_CODE = 0x10,
|
||
HCI_FLUSH_OCCURRED_EVT_CODE = 0x11,
|
||
HCI_ROLE_CHG_EVT_CODE = 0x12,
|
||
HCI_NB_CMP_PKTS_EVT_CODE = 0x13,
|
||
HCI_MODE_CHG_EVT_CODE = 0x14,
|
||
HCI_RETURN_LINK_KEYS_EVT_CODE = 0x15,
|
||
HCI_PIN_CODE_REQ_EVT_CODE = 0x16,
|
||
HCI_LK_REQ_EVT_CODE = 0x17,
|
||
HCI_LK_NOTIF_EVT_CODE = 0x18,
|
||
HCI_DATA_BUF_OVFLW_EVT_CODE = 0x1A,
|
||
HCI_MAX_SLOT_CHG_EVT_CODE = 0x1B,
|
||
HCI_RD_CLK_OFF_CMP_EVT_CODE = 0x1C,
|
||
HCI_CON_PKT_TYPE_CHG_EVT_CODE = 0x1D,
|
||
HCI_QOS_VIOL_EVT_CODE = 0x1E,
|
||
HCI_PAGE_SCAN_REPET_MODE_CHG_EVT_CODE = 0x20,
|
||
HCI_FLOW_SPEC_CMP_EVT_CODE = 0x21,
|
||
HCI_INQ_RES_WITH_RSSI_EVT_CODE = 0x22,
|
||
HCI_RD_REM_EXT_FEATS_CMP_EVT_CODE = 0x23,
|
||
HCI_SYNC_CON_CMP_EVT_CODE = 0x2C,
|
||
HCI_SYNC_CON_CHG_EVT_CODE = 0x2D,
|
||
HCI_SNIFF_SUB_EVT_CODE = 0x2E,
|
||
HCI_EXT_INQ_RES_EVT_CODE = 0x2F,
|
||
HCI_ENC_KEY_REFRESH_CMP_EVT_CODE = 0x30,
|
||
HCI_IO_CAP_REQ_EVT_CODE = 0x31,
|
||
HCI_IO_CAP_RSP_EVT_CODE = 0x32,
|
||
HCI_USER_CFM_REQ_EVT_CODE = 0x33,
|
||
HCI_USER_PASSKEY_REQ_EVT_CODE = 0x34,
|
||
HCI_REM_OOB_DATA_REQ_EVT_CODE = 0x35,
|
||
HCI_SP_CMP_EVT_CODE = 0x36,
|
||
HCI_LINK_SUPV_TO_CHG_EVT_CODE = 0x38,
|
||
HCI_ENH_FLUSH_CMP_EVT_CODE = 0x39,
|
||
HCI_USER_PASSKEY_NOTIF_EVT_CODE = 0x3B,
|
||
HCI_KEYPRESS_NOTIF_EVT_CODE = 0x3C,
|
||
HCI_REM_HOST_SUPP_FEATS_NOTIF_EVT_CODE = 0x3D,
|
||
HCI_LE_META_EVT_CODE = 0x3E,
|
||
HCI_MAX_EVT_MSK_PAGE_1_CODE = 0x40,
|
||
HCI_SYNC_TRAIN_CMP_EVT_CODE = 0x4F,
|
||
HCI_SYNC_TRAIN_REC_EVT_CODE = 0x50,
|
||
HCI_CON_SLV_BCST_REC_EVT_CODE = 0x51,
|
||
HCI_CON_SLV_BCST_TO_EVT_CODE = 0x52,
|
||
HCI_TRUNC_PAGE_CMP_EVT_CODE = 0x53,
|
||
HCI_SLV_PAGE_RSP_TO_EVT_CODE = 0x54,
|
||
HCI_CON_SLV_BCST_CH_MAP_CHG_EVT_CODE = 0x55,
|
||
HCI_AUTH_PAYL_TO_EXP_EVT_CODE = 0x57,
|
||
HCI_MAX_EVT_MSK_PAGE_2_CODE = 0x58,
|
||
HCI_DBG_META_EVT_CODE = 0xFF,
|
||
|
||
/// LE Events Subcodes
|
||
HCI_LE_CON_CMP_EVT_SUBCODE = 0x01,
|
||
HCI_LE_ADV_REPORT_EVT_SUBCODE = 0x02,
|
||
HCI_LE_CON_UPDATE_CMP_EVT_SUBCODE = 0x03,
|
||
HCI_LE_RD_REM_FEATS_CMP_EVT_SUBCODE = 0x04,
|
||
HCI_LE_LTK_REQUEST_EVT_SUBCODE = 0x05,
|
||
HCI_LE_REM_CON_PARAM_REQ_EVT_SUBCODE = 0x06,
|
||
HCI_LE_DATA_LEN_CHG_EVT_SUBCODE = 0x07,
|
||
HCI_LE_RD_LOC_P256_PUB_KEY_CMP_EVT_SUBCODE = 0x08,
|
||
HCI_LE_GEN_DHKEY_CMP_EVT_SUBCODE = 0x09,
|
||
HCI_LE_ENH_CON_CMP_EVT_SUBCODE = 0x0A,
|
||
HCI_LE_DIR_ADV_REP_EVT_SUBCODE = 0x0B,
|
||
HCI_LE_PHY_UPD_CMP_EVT_SUBCODE = 0x0C,
|
||
HCI_LE_EXT_ADV_REPORT_EVT_SUBCODE = 0x0D,
|
||
HCI_LE_PERIODIC_ADV_SYNC_EST_EVT_SUBCODE = 0x0E,
|
||
HCI_LE_PERIODIC_ADV_REPORT_EVT_SUBCODE = 0x0F,
|
||
HCI_LE_PERIODIC_ADV_SYNC_LOST_EVT_SUBCODE = 0x10,
|
||
HCI_LE_SCAN_TIMEOUT_EVT_SUBCODE = 0x11,
|
||
HCI_LE_ADV_SET_TERMINATED_EVT_SUBCODE = 0x12,
|
||
HCI_LE_SCAN_REQ_RCVD_EVT_SUBCODE = 0x13,
|
||
HCI_LE_CH_SEL_ALGO_EVT_SUBCODE = 0x14,
|
||
|
||
/// DBG Events Subcodes
|
||
#if (BLE_EMB_PRESENT && BLE_TESTER)
|
||
HCI_DBG_BLE_TST_LLCP_RECV_EVT_SUBCODE = 0x01,
|
||
#endif // (BLE_EMB_PRESENT && BLE_TESTER)
|
||
#if (RW_DEBUG)
|
||
HCI_DBG_ASSERT_ERR_EVT_SUBCODE = 0x02,
|
||
#endif //(RW_DEBUG)
|
||
};
|
||
|
||
/// Event mask page enum
|
||
enum hci_evt_mask_page
|
||
{
|
||
/// page 0
|
||
HCI_PAGE_0,
|
||
/// page 1
|
||
HCI_PAGE_1,
|
||
/// page 2
|
||
HCI_PAGE_2,
|
||
/// Default
|
||
HCI_PAGE_DFT,
|
||
/// LE event
|
||
HCI_PAGE_LE,
|
||
};
|
||
|
||
/// HCI ACL data RX packet structure
|
||
struct hci_ble_acl_data_rx
|
||
{
|
||
/// bits[00:11]: Connection handle
|
||
/// bits[12:13]: Packet boundary flag
|
||
/// bits[14:15]: Broadcast flag
|
||
uint16_t conhdl_pb_bc_flag;
|
||
/// length of the data
|
||
uint16_t length;
|
||
/// Memory Pointer address
|
||
uint32_t buf_ptr;
|
||
/// Private buffer
|
||
void *hcibuffer;
|
||
};
|
||
|
||
/// HCI ACL data TX packet structure
|
||
struct hci_ble_acl_data_tx
|
||
{
|
||
/// bits[00:11]: Connection handle
|
||
/// bits[12:13]: Packet boundary flag
|
||
/// bits[14:15]: Broadcast flag
|
||
uint16_t conhdl_pb_bc_flag;
|
||
/// length of the data
|
||
uint16_t length;
|
||
/// Memory Pointer address
|
||
uint32_t buf_ptr;
|
||
};
|
||
|
||
#if (BT_EMB_PRESENT)
|
||
/// HCI ACL data packet structure
|
||
struct hci_bt_acl_data_tx
|
||
{
|
||
/// Buffer element
|
||
struct bt_em_acl_buf_elt* buf_elt;
|
||
};
|
||
|
||
/// HCI ACL data Rx packet structure
|
||
struct hci_bt_acl_data_rx
|
||
{
|
||
/// EM buffer pointer
|
||
uint16_t buf_ptr;
|
||
/// Data length + Data Flags (PBF + BF)
|
||
uint16_t data_len_flags;
|
||
};
|
||
|
||
/// HCI Synchronous data packet structure
|
||
struct hci_bt_sync_data_tx
|
||
{
|
||
/// Buffer element
|
||
struct bt_em_sync_buf_elt* buf_elt;
|
||
};
|
||
|
||
/// HCI Synchronous data Rx packet structure
|
||
struct hci_bt_sync_data_rx
|
||
{
|
||
/// EM buffer pointer
|
||
uint16_t buf_ptr;
|
||
/// Data length
|
||
uint8_t data_len;
|
||
/// Packet status flag
|
||
uint8_t packet_status_flag;
|
||
/// Synchronous link identifier
|
||
uint8_t sync_link_id;
|
||
};
|
||
#endif // (BT_EMB_PRESENT)
|
||
|
||
|
||
/*
|
||
* HCI COMMANDS PARAMETERS (to classify)
|
||
****************************************************************************************
|
||
*/
|
||
|
||
/// HCI basic command structure with connection handle
|
||
struct hci_basic_conhdl_cmd
|
||
{
|
||
/// connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI basic command structure with BD address
|
||
struct hci_basic_bd_addr_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
};
|
||
|
||
/// HCI Accept connection request command structure
|
||
struct hci_accept_con_req_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Page Scan Repetition Mode
|
||
uint8_t role;
|
||
};
|
||
|
||
/// HCI Accept synchronous connection request command structure
|
||
struct hci_accept_sync_con_req_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Transmit bandwidth
|
||
uint32_t tx_bw;
|
||
///Receive bandwidth
|
||
uint32_t rx_bw;
|
||
///Max latency
|
||
uint16_t max_lat;
|
||
///Voice settings
|
||
uint16_t vx_set;
|
||
///Retransmission effort
|
||
uint8_t retx_eff;
|
||
///Packet type
|
||
uint16_t pkt_type ;
|
||
};
|
||
|
||
/// HCI Enhanced Accept synchronous connection request command structure
|
||
struct hci_enh_accept_sync_con_cmd
|
||
{
|
||
|
||
struct bd_addr bd_addr; // BD address
|
||
uint32_t tx_bw; // Transmit Bandwidth (in B/sec)
|
||
uint32_t rx_bw; // Receive Bandwidth (in B/sec)
|
||
uint8_t tx_cod_fmt[5]; // Transmit Coding Format
|
||
uint8_t rx_cod_fmt[5]; // Receive Coding Format
|
||
uint16_t tx_cod_fr_sz; // Transmit Codec Frame Size (in B)
|
||
uint16_t rx_cod_fr_sz; // Receive Codec Frame Size (in B)
|
||
uint32_t in_bw; // Input Bandwidth (in B/sec)
|
||
uint32_t out_bw; // Output Bandwidth (in B/sec)
|
||
uint8_t in_cod_fmt[5]; // Input Coding Format
|
||
uint8_t out_cod_fmt[5]; // Output Coding Format
|
||
uint16_t in_cod_data_sz; // Input Coded Data Size (in bits)
|
||
uint16_t out_cod_data_sz; // Output Coded Data Size (in bits)
|
||
uint8_t in_data_fmt; // Input PCM Data Format
|
||
uint8_t out_data_fmt; // Output PCM Data Format
|
||
uint8_t in_msb_pos; // Input PCM Sample Payload MSB Position (in bits)
|
||
uint8_t out_msb_pos; // Output PCM Sample Payload MSB Position (in bits)
|
||
uint8_t in_data_path; // Input Data Path
|
||
uint8_t out_data_path; // Output Data Path
|
||
uint8_t in_tr_unit_sz; // Input Transport Unit Size (in bits)
|
||
uint8_t out_tr_unit_sz; // Output Transport Unit Size (in bits)
|
||
uint16_t max_lat; // Max Latency (in ms)
|
||
uint16_t packet_type; // Packet Type
|
||
uint8_t retx_eff; // Retransmission Effort
|
||
|
||
|
||
};
|
||
|
||
/// HCI reject connection request command structure
|
||
struct hci_reject_con_req_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Reason
|
||
uint8_t reason;
|
||
};
|
||
|
||
/// HCI reject synchronous connection request command structure
|
||
struct hci_reject_sync_con_req_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Reason
|
||
uint8_t reason;
|
||
};
|
||
|
||
/// HCI link key request reply command structure
|
||
struct hci_lk_req_reply_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Key
|
||
struct ltk key;
|
||
};
|
||
|
||
/// HCI link key request reply command structure
|
||
struct hci_pin_code_req_reply_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Pin code length
|
||
uint8_t pin_len;
|
||
///Key
|
||
struct pin_code pin;
|
||
};
|
||
|
||
/// HCI switch role command structure
|
||
struct hci_switch_role_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Read all flag
|
||
uint8_t role;
|
||
};
|
||
|
||
/// HCI flow specification command parameters structure
|
||
struct hci_flow_spec_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Flags
|
||
uint8_t flags;
|
||
///Flow direction
|
||
uint8_t flow_dir;
|
||
///Service type
|
||
uint8_t serv_type;
|
||
///Token rate
|
||
uint32_t tk_rate;
|
||
///Token buffer size
|
||
uint32_t tk_buf_sz;
|
||
///Peak bandwidth
|
||
uint32_t pk_bw;
|
||
///Access latency
|
||
uint32_t acc_lat;
|
||
};
|
||
|
||
/// HCI enhanced flush command parameters structure
|
||
struct hci_enh_flush_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Packet Type
|
||
uint8_t pkt_type;
|
||
};
|
||
|
||
/// HCI command complete event structure for the read auto flush TO command
|
||
struct hci_rd_auto_flush_to_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Flush timeout
|
||
uint16_t flush_to;
|
||
};
|
||
|
||
/// HCI write flush timeout command parameters structure
|
||
struct hci_wr_auto_flush_to_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Flush timeout
|
||
uint16_t flush_to;
|
||
};
|
||
|
||
/// HCI change connection packet type command parameters structure
|
||
struct hci_chg_con_pkt_type_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Packet type
|
||
uint16_t pkt_type;
|
||
};
|
||
|
||
/// HCI read link policy settings command parameters structure
|
||
struct hci_rd_link_pol_stg_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Link policy
|
||
uint16_t lnk_policy;
|
||
};
|
||
|
||
/// HCI read link policy settings command parameters structure
|
||
struct hci_wr_link_pol_stg_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Link policy
|
||
uint16_t lnk_policy;
|
||
};
|
||
|
||
/// HCI sniff mode request command parameters structure
|
||
struct hci_sniff_mode_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Sniff max interval
|
||
uint16_t max_int;
|
||
///Sniff min interval
|
||
uint16_t min_int;
|
||
///Sniff attempt
|
||
uint16_t attempt;
|
||
///Sniff timeout
|
||
uint16_t timeout;
|
||
};
|
||
|
||
/// HCI sniff subrating mode request command parameters structure
|
||
struct hci_sniff_sub_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Sniff max latency
|
||
uint16_t max_lat;
|
||
///Minimun remote TO
|
||
uint16_t min_rem_to;
|
||
///Minimun local TO
|
||
uint16_t min_loc_to;
|
||
};
|
||
|
||
/// HCI role discovery complete event parameters structure
|
||
struct hci_role_discovery_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Role
|
||
uint8_t role;
|
||
|
||
};
|
||
|
||
/// HCI read failed contact counter command parameters structure
|
||
struct hci_rd_fail_contact_cnt_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Fail contact counter
|
||
uint16_t fail_cnt;
|
||
};
|
||
|
||
/// HCI read link quality complete event parameters structure
|
||
struct hci_rd_link_qual_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Quality type
|
||
uint8_t quality;
|
||
};
|
||
|
||
/// HCI read afh channel map complete event parameters structure
|
||
struct hci_rd_afh_ch_map_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
/// AFH mode
|
||
uint8_t afh_mode;
|
||
/// AFH channel map
|
||
struct chnl_map afh_map;
|
||
};
|
||
|
||
/// HCI read lmp handle complete event parameters structure
|
||
struct hci_rd_lmp_hdl_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///lmp handle
|
||
uint8_t lmp_hdl;
|
||
///rsvd
|
||
uint32_t rsvd;
|
||
};
|
||
|
||
/// HCI read remote extended features command parameters structure
|
||
struct hci_rd_rem_ext_feats_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///page number
|
||
uint8_t pg_nb;
|
||
};
|
||
|
||
/// HCI read encryption key size complete event parameters structure
|
||
struct hci_rd_enc_key_size_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Key size
|
||
uint8_t key_sz;
|
||
};
|
||
|
||
/// HCI read enhanced transmit power command parameters structure
|
||
struct hci_rd_enh_tx_pwr_lvl_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Type
|
||
uint8_t type;
|
||
};
|
||
|
||
/// HCI read enhanced transmit power complete event parameters structure
|
||
struct hci_rd_enh_tx_pwr_lvl_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Transmit power GFSK
|
||
uint8_t pw_gfsk;
|
||
///Transmit power DQPSK
|
||
uint8_t pw_dqpsk;
|
||
///Transmit power 8DPSK
|
||
uint8_t pw_8dpsk;
|
||
};
|
||
|
||
|
||
/*
|
||
* HCI LINK CONTROL COMMANDS PARAMETERS
|
||
****************************************************************************************
|
||
*/
|
||
|
||
/// Format of the message of the Group: LINK_CONTROL_COMMANDS
|
||
/// HCI Inquiry command parameters structure
|
||
struct hci_inq_cmd
|
||
{
|
||
///Lap
|
||
struct lap lap;
|
||
///Inquiry Length
|
||
uint8_t inq_len;
|
||
///Number of response
|
||
uint8_t nb_rsp;
|
||
};
|
||
struct hci_per_inq_mode_cmd
|
||
{
|
||
///Maximum period length
|
||
uint16_t max_per_len;
|
||
///Minimum period length
|
||
uint16_t min_per_len;
|
||
///lap
|
||
struct lap lap;
|
||
///Inquiry length
|
||
uint8_t inq_len;
|
||
///Number of response
|
||
uint8_t nb_rsp;
|
||
};
|
||
struct hci_create_con_cmd
|
||
{
|
||
/// BdAddr
|
||
struct bd_addr bd_addr;
|
||
/// Packet Type
|
||
uint16_t pkt_type;
|
||
/// Page Scan Repetition Mode
|
||
uint8_t page_scan_rep_mode;
|
||
/// Reserved
|
||
uint8_t rsvd;
|
||
/**
|
||
* Clock Offset
|
||
*
|
||
* Bits 14-0 : Bits 16-2 of CLKNslave-CLK
|
||
* Bit 15 : Clock_Offset_Valid_Flag
|
||
* Invalid Clock Offset = 0
|
||
* Valid Clock Offset = 1
|
||
*/
|
||
uint16_t clk_off;
|
||
/// Allow Switch
|
||
uint8_t switch_en;
|
||
};
|
||
|
||
/// HCI disconnect command structure
|
||
struct hci_disconnect_cmd
|
||
{
|
||
/// connection handle
|
||
uint16_t conhdl;
|
||
/// reason
|
||
uint8_t reason;
|
||
};
|
||
|
||
/// HCI master link key command structure
|
||
struct hci_master_lk_cmd
|
||
{
|
||
///Key flag
|
||
uint8_t key_flag;
|
||
};
|
||
|
||
/// HCI authentication request command parameters structure
|
||
struct hci_set_con_enc_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Encryption mode
|
||
uint8_t enc_en;
|
||
};
|
||
|
||
struct hci_rem_name_req_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Page Scan Repetition Mode
|
||
uint8_t page_scan_rep_mode;
|
||
///Reserved
|
||
uint8_t rsvd;
|
||
/**
|
||
* Clock Offset
|
||
*
|
||
* Bits 14-0 : Bits 16-2 of CLKNslave-CLK
|
||
* Bit 15 : Clock_Offset_Valid_Flag
|
||
* Invalid Clock Offset = 0
|
||
* Valid Clock Offset = 1
|
||
*/
|
||
uint16_t clk_off;
|
||
};
|
||
|
||
/// HCI remote name request complete event structure
|
||
struct hci_rem_name_req_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// BD Addr
|
||
struct bd_addr bd_addr;
|
||
/// Name
|
||
struct device_name name;
|
||
};
|
||
|
||
/// HCI setup synchronous connection command structure
|
||
struct hci_setup_sync_con_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Transmit bandwidth
|
||
uint32_t tx_bw;
|
||
///Receive bandwidth
|
||
uint32_t rx_bw;
|
||
///Max latency
|
||
uint16_t max_lat;
|
||
///Voice setting
|
||
uint16_t vx_set;
|
||
///Retransmission effort
|
||
uint8_t retx_eff;
|
||
///Packet type
|
||
uint16_t pkt_type;
|
||
};
|
||
|
||
/// HCI setup synchronous connection command structure
|
||
struct hci_enh_setup_sync_con_cmd
|
||
{
|
||
uint16_t conhdl; // Connection Handle
|
||
uint32_t tx_bw; // Transmit Bandwidth (in B/sec)
|
||
uint32_t rx_bw; // Receive Bandwidth (in B/sec)
|
||
uint8_t tx_cod_fmt[5]; // Transmit Coding Format
|
||
uint8_t rx_cod_fmt[5]; // Receive Coding Format
|
||
uint16_t tx_cod_fr_sz; // Transmit Codec Frame Size (in B)
|
||
uint16_t rx_cod_fr_sz; // Receive Codec Frame Size (in B)
|
||
uint32_t in_bw; // Input Bandwidth (in B/sec)
|
||
uint32_t out_bw; // Output Bandwidth (in B/sec)
|
||
uint8_t in_cod_fmt[5]; // Input Coding Format
|
||
uint8_t out_cod_fmt[5]; // Output Coding Format
|
||
uint16_t in_cod_data_sz; // Input Coded Data Size (in bits)
|
||
uint16_t out_cod_data_sz; // Output Coded Data Size (in bits)
|
||
uint8_t in_data_fmt; // Input PCM Data Format
|
||
uint8_t out_data_fmt; // Output PCM Data Format
|
||
uint8_t in_msb_pos; // Input PCM Sample Payload MSB Position (in bits)
|
||
uint8_t out_msb_pos; // Output PCM Sample Payload MSB Position (in bits)
|
||
uint8_t in_data_path; // Input Data Path
|
||
uint8_t out_data_path; // Output Data Path
|
||
uint8_t in_tr_unit_sz; // Input Transport Unit Size (in bits)
|
||
uint8_t out_tr_unit_sz; // Output Transport Unit Size (in bits)
|
||
uint16_t max_lat; // Max Latency (in ms)
|
||
uint16_t packet_type; // Packet Type
|
||
uint8_t retx_eff; // Retransmission Effort
|
||
};
|
||
|
||
/// HCI io capability request reply command structure
|
||
struct hci_io_cap_req_reply_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///IO capability
|
||
uint8_t io_capa;
|
||
///OOB data present
|
||
uint8_t oob_data_pres;
|
||
///Authentication requirements
|
||
uint8_t auth_req;
|
||
|
||
};
|
||
|
||
/// HCI io capability request negative reply command structure
|
||
struct hci_io_cap_req_neg_reply_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Reason
|
||
uint8_t reason;
|
||
};
|
||
|
||
/// HCI user pass key request reply command structure
|
||
struct hci_user_passkey_req_reply_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Numeric value
|
||
uint32_t num_val;
|
||
};
|
||
|
||
/// HCI remote oob data request reply command structure
|
||
struct hci_rem_oob_data_req_reply_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///hash part
|
||
struct hash oob_c;
|
||
///random part
|
||
struct randomizer oob_r;
|
||
};
|
||
|
||
/// HCI send key press notification command structure
|
||
struct hci_send_keypress_notif_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Notification type
|
||
uint8_t notif_type;
|
||
};
|
||
|
||
/// HCI truncated page command structure
|
||
struct hci_trunc_page_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
/// Page Scan Repetition Mode
|
||
uint8_t page_scan_rep_mode;
|
||
/**
|
||
* Clock Offset
|
||
*
|
||
* Bits 14-0 : Bits 16-2 of CLKNslave-CLK
|
||
* Bit 15 : Clock_Offset_Valid_Flag
|
||
* Invalid Clock Offset = 0
|
||
* Valid Clock Offset = 1
|
||
*/
|
||
uint16_t clk_off;
|
||
};
|
||
|
||
/// HCI truncated page cancel command structure
|
||
struct hci_trunc_page_can_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
};
|
||
|
||
/// HCI set connectionless slave broadcast command structure
|
||
struct hci_set_con_slv_bcst_cmd
|
||
{
|
||
/// Enable
|
||
uint8_t enable;
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
/// LPO_Allowed
|
||
uint8_t lpo_allowed;
|
||
/// Packet_Type
|
||
uint16_t packet_type;
|
||
/// Interval_Min (in slots)
|
||
uint16_t interval_min;
|
||
/// Interval_Max (in slots)
|
||
uint16_t interval_max;
|
||
/// CSB_supervisionTO (in slots)
|
||
uint16_t csb_supv_to;
|
||
};
|
||
|
||
/// HCI set connectionless slave broadcast command complete event structure
|
||
struct hci_set_con_slv_bcst_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
/// Interval (in slots)
|
||
uint16_t interval;
|
||
};
|
||
|
||
/// HCI set connectionless slave broadcast receive command structure
|
||
struct hci_set_con_slv_bcst_rec_cmd
|
||
{
|
||
/// Enable
|
||
uint8_t enable;
|
||
/// BD_ADDR
|
||
struct bd_addr bd_addr;
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
/// Interval (in slots)
|
||
uint16_t interval;
|
||
/// Clock_Offset (28 bits) - (CLKNslave <20> CLK) modulo 2^28
|
||
uint32_t clock_offset;
|
||
/// Next_Connectionless_Slave_Broadcast_Clock (28 bits)
|
||
uint32_t next_csb_clock;
|
||
/// CSB_supervisionTO (in slots)
|
||
uint16_t csb_supv_to;
|
||
/// Remote_Timing_Accuracy (in ppm)
|
||
uint8_t remote_timing_accuracy;
|
||
/// Skip
|
||
uint8_t skip;
|
||
/// Packet_Type
|
||
uint16_t packet_type;
|
||
/// AFH_Channel_Map
|
||
struct chnl_map afh_ch_map;
|
||
};
|
||
|
||
/// HCI set connectionless slave broadcast receive command complete event structure
|
||
struct hci_set_con_slv_bcst_rec_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// BD_ADDR
|
||
struct bd_addr bd_addr;
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
};
|
||
|
||
/// HCI Receive Synchronization Train command structure
|
||
struct hci_rec_sync_train_cmd
|
||
{
|
||
/// BD_ADDR
|
||
struct bd_addr bd_addr;
|
||
/// Synchronization_scanTO (in slots)
|
||
uint16_t sync_scan_to;
|
||
/// Sync_Scan_Window (in slots)
|
||
uint16_t sync_scan_win;
|
||
/// Sync_Scan_Interval (in slots)
|
||
uint16_t sync_scan_int;
|
||
};
|
||
|
||
/// HCI remote oob extended data request reply command structure
|
||
struct hci_rem_oob_ext_data_req_reply_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///hash part
|
||
struct hash oob_c_192;
|
||
///random part
|
||
struct randomizer oob_r_192;
|
||
///hash part
|
||
struct hash oob_c_256;
|
||
///random part
|
||
struct randomizer oob_r_256;
|
||
};
|
||
|
||
|
||
struct hci_le_generate_dh_key_cmd
|
||
{
|
||
uint8_t public_key[64];
|
||
};
|
||
/*
|
||
* HCI LINK POLICY COMMANDS PARAMETERS
|
||
****************************************************************************************
|
||
*/
|
||
|
||
/// HCI setup quality of service command structure
|
||
struct hci_qos_setup_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Flags
|
||
uint8_t flags;
|
||
///Service type
|
||
uint8_t serv_type;
|
||
///Token rate
|
||
uint32_t tok_rate;
|
||
///Peak bandwidth
|
||
uint32_t pk_bw;
|
||
///Latency
|
||
uint32_t lat;
|
||
///Delay variation
|
||
uint32_t del_var;
|
||
};
|
||
|
||
/// HCI command complete event structure for read default link policy command structure
|
||
struct hci_rd_dft_link_pol_stg_cmd_cmp_evt
|
||
{
|
||
///Status of the command reception
|
||
uint8_t status;
|
||
///Link policy
|
||
uint16_t link_pol_stg;
|
||
};
|
||
|
||
struct hci_wr_dft_link_pol_stg_cmd
|
||
{
|
||
///Link policy
|
||
uint16_t link_pol_stg;
|
||
};
|
||
|
||
/*
|
||
* HCI CONTROL & BASEBAND COMMANDS PARAMETERS
|
||
****************************************************************************************
|
||
*/
|
||
|
||
/// HCI set event mask command structure
|
||
struct hci_set_evt_mask_cmd
|
||
{
|
||
///Event Mask
|
||
struct evt_mask event_mask;
|
||
};
|
||
|
||
/// HCI set event filter command structure
|
||
struct hci_set_evt_filter_cmd
|
||
{
|
||
/// Filter type
|
||
uint8_t filter_type;
|
||
|
||
/// Filters
|
||
union hci_filter
|
||
{
|
||
uint8_t clear_all_filter_reserved;
|
||
|
||
/// Inquiry Result Filter
|
||
struct inq_res_filter
|
||
{
|
||
/// Filter Condition type
|
||
uint8_t cond_type;
|
||
|
||
/// Filter conditions
|
||
union hci_inq_filter_cond
|
||
{
|
||
/// Reserved value (Inquiry Result Filter - condition type 0x00 has no condition)
|
||
uint8_t cond_0_reserved;
|
||
|
||
/// Inquiry Result Filter Condition - condition type 0x01
|
||
struct inq_res_filter_cond_1
|
||
{
|
||
/// Class_of_Device
|
||
struct devclass class_of_dev;
|
||
/// Class_of_Device_Mask
|
||
struct devclass class_of_dev_msk;
|
||
} cond_1;
|
||
|
||
/// Inquiry Result Filter Condition - condition type 0x02
|
||
struct inq_res_filter_cond_2
|
||
{
|
||
/// BD Address
|
||
struct bd_addr bd_addr;
|
||
} cond_2;
|
||
} cond;
|
||
} inq_res;
|
||
|
||
/// Connection Setup Filter
|
||
struct con_set_filter
|
||
{
|
||
/// Filter Condition type
|
||
uint8_t cond_type;
|
||
|
||
/// Filter conditions
|
||
union hci_con_filter_cond
|
||
{
|
||
/// Connection Setup Filter Condition - condition type 0x00
|
||
struct con_set_filter_cond_0
|
||
{
|
||
/// Auto_Accept_Flag
|
||
uint8_t auto_accept;
|
||
} cond_0;
|
||
|
||
/// Connection Setup Filter Condition - condition type 0x01
|
||
struct con_set_filter_cond_1
|
||
{
|
||
/// Class_of_Device
|
||
struct devclass class_of_dev;
|
||
/// Class_of_Device_Mask
|
||
struct devclass class_of_dev_msk;
|
||
/// Auto_Accept_Flag
|
||
uint8_t auto_accept;
|
||
} cond_1;
|
||
|
||
/// Connection Setup Filter Condition - condition type 0x02
|
||
struct con_set_filter_cond_2
|
||
{
|
||
/// BD Address
|
||
struct bd_addr bd_addr;
|
||
/// Auto_Accept_Flag
|
||
uint8_t auto_accept;
|
||
} cond_2;
|
||
} cond;
|
||
|
||
} con_set;
|
||
|
||
} filter;
|
||
};
|
||
|
||
/// HCI command completed event structure for the flush command
|
||
struct hci_flush_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI command complete event structure for the Read pin type command
|
||
struct hci_rd_pin_type_cmd_cmp_evt
|
||
{
|
||
///Status of the command
|
||
uint8_t status;
|
||
///PIN type
|
||
uint8_t pin_type;
|
||
};
|
||
|
||
struct hci_wr_pin_type_cmd
|
||
{
|
||
///PIN type
|
||
uint8_t pin_type;
|
||
};
|
||
|
||
struct hci_rd_stored_lk_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Read all flag
|
||
uint8_t rd_all_flag;
|
||
};
|
||
|
||
/// HCI command complete event structure for read stored link key command
|
||
struct hci_rd_stored_lk_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Maximum number of key
|
||
uint16_t num_key_max;
|
||
///Read number of key
|
||
uint16_t num_key_rd;
|
||
};
|
||
|
||
#if BT_EMB_PRESENT
|
||
struct hci_wr_stored_lk_cmd
|
||
{
|
||
/// Number of key to write
|
||
uint8_t num_key_wr;
|
||
|
||
/// BD Address + Key table
|
||
struct bd_addr_plus_key link_keys[HCI_MAX_CMD_PARAM_SIZE / sizeof(struct bd_addr_plus_key)];
|
||
};
|
||
#endif //BT_EMB_PRESENT
|
||
|
||
/// HCI command complete event structure for write stored link key command
|
||
struct hci_wr_stored_lk_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///number of key written
|
||
uint8_t num_key_wr;
|
||
};
|
||
|
||
struct hci_del_stored_lk_cmd
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Delete all flag
|
||
uint8_t del_all_flag;
|
||
};
|
||
|
||
/// HCI command complete event structure for delete stored link key command
|
||
struct hci_del_stored_lk_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Read number of key
|
||
uint16_t num_key_del;
|
||
};
|
||
|
||
struct hci_wr_local_name_cmd
|
||
{
|
||
///Name
|
||
struct device_name name;
|
||
};
|
||
|
||
/// HCI command complete event structure for the read local name command
|
||
struct hci_rd_local_name_cmd_cmp_evt
|
||
{
|
||
///Status of the command
|
||
uint8_t status;
|
||
///Name
|
||
uint8_t name[BD_NAME_SIZE];
|
||
};
|
||
|
||
/// HCI command complete event structure for the Read connection accept to command
|
||
struct hci_rd_con_accept_to_cmd_cmp_evt
|
||
{
|
||
///Status of the command
|
||
uint8_t status;
|
||
/// Connection accept timeout (in slots)
|
||
uint16_t con_acc_to;
|
||
};
|
||
|
||
struct hci_wr_con_accept_to_cmd
|
||
{
|
||
/// Connection accept timeout (in slots)
|
||
uint16_t con_acc_to;
|
||
};
|
||
|
||
/// HCI command complete event structure for the Read page to command
|
||
struct hci_rd_page_to_cmd_cmp_evt
|
||
{
|
||
///Status of the command
|
||
uint8_t status;
|
||
/// Page timeout (in slots)
|
||
uint16_t page_to;
|
||
};
|
||
|
||
struct hci_wr_page_to_cmd
|
||
{
|
||
/// Page timeout (in slots)
|
||
uint16_t page_to;
|
||
};
|
||
|
||
/// HCI command complete event structure for the Read scan enable command
|
||
struct hci_rd_scan_en_cmd_cmp_evt
|
||
{
|
||
///Status of the command
|
||
uint8_t status;
|
||
///Status of the scan enable
|
||
uint8_t scan_en;
|
||
};
|
||
|
||
struct hci_wr_scan_en_cmd
|
||
{
|
||
///Status of the scan enable
|
||
uint8_t scan_en;
|
||
};
|
||
|
||
/// HCI command complete event structure for the Read scan activity command
|
||
struct hci_rd_page_scan_act_cmd_cmp_evt
|
||
{
|
||
///Status of the command
|
||
uint8_t status;
|
||
/// Page scan interval (in slots)
|
||
uint16_t page_scan_intv;
|
||
/// Page scan window (in slots)
|
||
uint16_t page_scan_win;
|
||
};
|
||
|
||
struct hci_wr_page_scan_act_cmd
|
||
{
|
||
/// Page scan interval (in slots)
|
||
uint16_t page_scan_intv;
|
||
/// Page scan window (in slots)
|
||
uint16_t page_scan_win;
|
||
};
|
||
|
||
/// HCI command complete event structure for the Read inquiry scan activity command
|
||
struct hci_rd_inq_scan_act_cmd_cmp_evt
|
||
{
|
||
/// Status of the command
|
||
uint8_t status;
|
||
/// Inquiry scan interval (in slots)
|
||
uint16_t inq_scan_intv;
|
||
/// Inquiry scan window (in slots)
|
||
uint16_t inq_scan_win;
|
||
};
|
||
|
||
struct hci_wr_inq_scan_act_cmd
|
||
{
|
||
/// Inquiry scan interval (in slots)
|
||
uint16_t inq_scan_intv;
|
||
/// Inquiry scan window (in slots)
|
||
uint16_t inq_scan_win;
|
||
};
|
||
|
||
/// HCI command complete event structure for the Read authentication command
|
||
struct hci_rd_auth_en_cmd_cmp_evt
|
||
{
|
||
///Status of the command
|
||
uint8_t status;
|
||
///Value of the authentication
|
||
uint8_t auth_en;
|
||
};
|
||
|
||
struct hci_wr_auth_en_cmd
|
||
{
|
||
///Value of the authentication
|
||
uint8_t auth_en;
|
||
};
|
||
|
||
/// HCI command complete event structure for the read class of device command
|
||
struct hci_rd_class_of_dev_cmd_cmp_evt
|
||
{
|
||
///Status of the command
|
||
uint8_t status;
|
||
///Class of device
|
||
struct devclass class_of_dev;
|
||
};
|
||
|
||
struct hci_wr_class_of_dev_cmd
|
||
{
|
||
///Class of device
|
||
struct devclass class_of_dev;
|
||
};
|
||
|
||
/// HCI read voice settings complete event
|
||
struct hci_rd_voice_stg_cmd_cmp_evt
|
||
{
|
||
///Status of the command reception
|
||
uint8_t status;
|
||
/// Voice setting
|
||
uint16_t voice_stg;
|
||
};
|
||
|
||
struct hci_wr_voice_stg_cmd
|
||
{
|
||
/// voice setting
|
||
uint16_t voice_stg;
|
||
};
|
||
|
||
/// HCI command complete event structure for read number of broadcast retrans command
|
||
struct hci_rd_nb_bdcst_retx_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Read number of broadcast retransmission
|
||
uint8_t num_bcst_ret;
|
||
};
|
||
|
||
struct hci_wr_nb_bdcst_retx_cmd
|
||
{
|
||
///Read number of broadcast retransmission
|
||
uint8_t num_bcst_ret;
|
||
};
|
||
|
||
/// HCI command complete event structure for the Read Synchronous Flow Control command
|
||
struct hci_rd_sync_flow_ctrl_en_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Synchronous flow control enable
|
||
uint8_t sync_flow_ctrl_en;
|
||
};
|
||
|
||
struct hci_wr_sync_flow_ctrl_en_cmd
|
||
{
|
||
/// Synchronous Flow Control enable
|
||
uint8_t sync_flow_ctrl_en;
|
||
};
|
||
|
||
///HCI set controller to host flow control command
|
||
struct hci_set_ctrl_to_host_flow_ctrl_cmd
|
||
{
|
||
///Flow control enable for controller
|
||
uint8_t flow_cntl;
|
||
};
|
||
|
||
///HCI host buffer size command
|
||
struct hci_host_buf_size_cmd
|
||
{
|
||
///Host ACL packet length
|
||
uint16_t acl_pkt_len;
|
||
///Host synchronous packet length
|
||
uint8_t sync_pkt_len;
|
||
///Host Total number of ACL packets allowed
|
||
uint16_t nb_acl_pkts;
|
||
///Host total number of synchronous packets allowed
|
||
uint16_t nb_sync_pkts;
|
||
};
|
||
|
||
#if BT_EMB_PRESENT
|
||
///HCI host number of completed packets command
|
||
struct hci_host_nb_cmp_pkts_cmd
|
||
{
|
||
///Number of handles for which the completed packets number is given
|
||
uint8_t nb_of_hdl;
|
||
///Array of connection handles
|
||
uint16_t con_hdl[MAX_NB_ACTIVE_ACL];
|
||
///Array of number of completed packets values for connection handles.
|
||
uint16_t nb_comp_pkt[MAX_NB_ACTIVE_ACL];
|
||
};
|
||
#elif BLE_EMB_PRESENT || BLE_HOST_PRESENT
|
||
///HCI host number of completed packets command
|
||
struct hci_host_nb_cmp_pkts_cmd
|
||
{
|
||
///Number of handles for which the completed packets number is given
|
||
uint8_t nb_of_hdl;
|
||
///Array of connection handles
|
||
uint16_t con_hdl[BLE_CONNECTION_MAX+1]; // ensure that at least 1 element is present
|
||
///Array of number of completed packets values for connection handles.
|
||
uint16_t nb_comp_pkt[BLE_CONNECTION_MAX+1]; // ensure that at least 1 element is present
|
||
};
|
||
#endif //BLE_EMB_PRESENT || BLE_HOST_PRESENT
|
||
|
||
/// HCI read link supervision timeout command parameters structure
|
||
struct hci_rd_link_supv_to_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Link supervision timeout
|
||
uint16_t lsto_val;
|
||
};
|
||
|
||
/// HCI write link supervision timeout command parameters structure
|
||
struct hci_wr_link_supv_to_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Link supervision timeout
|
||
uint16_t lsto_val;
|
||
};
|
||
|
||
/// HCI command complete event structure for the nb of supported IAC command
|
||
struct hci_rd_nb_supp_iac_cmd_cmp_evt
|
||
{
|
||
///Status of the command
|
||
uint8_t status;
|
||
///nb_of iac
|
||
uint8_t nb_iac;
|
||
};
|
||
|
||
/// HCI command complete event structure for read current IAC LAP command
|
||
struct hci_rd_curr_iac_lap_cmd_cmp_evt
|
||
{
|
||
///Status of the command
|
||
uint8_t status;
|
||
///nb of current iac
|
||
uint8_t nb_curr_iac;
|
||
///lap
|
||
struct lap iac_lap;
|
||
};
|
||
|
||
/// HCI write current IAC LAP command structure
|
||
struct hci_wr_curr_iac_lap_cmd
|
||
{
|
||
/// Number of current iac laps
|
||
uint8_t nb_curr_iac;
|
||
///lap
|
||
struct lap iac_lap[(HCI_MAX_CMD_PARAM_SIZE / BD_ADDR_LAP_LEN) - 1];
|
||
};
|
||
|
||
struct hci_set_afh_host_ch_class_cmd
|
||
{
|
||
///AFH channel map
|
||
struct chnl_map afh_ch;
|
||
};
|
||
|
||
/// HCI command complete event structure for write inquiry scan type command structure
|
||
struct hci_rd_inq_scan_type_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
/// Inquiry scan type
|
||
uint8_t inq_scan_type;
|
||
};
|
||
|
||
struct hci_wr_inq_scan_type_cmd
|
||
{
|
||
/// Inquiry scan type
|
||
uint8_t inq_scan_type;
|
||
};
|
||
|
||
/// HCI command complete event structure for read inquiry mode command structure
|
||
struct hci_rd_inq_mode_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
/// Inquiry mode
|
||
uint8_t inq_mode;
|
||
};
|
||
|
||
struct hci_wr_inq_mode_cmd
|
||
{
|
||
/// Inquiry mode
|
||
uint8_t inq_mode;
|
||
};
|
||
|
||
/// HCI command complete event structure for write page scan type command structure
|
||
struct hci_rd_page_scan_type_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
/// Page scan type
|
||
uint8_t page_scan_type;
|
||
};
|
||
|
||
struct hci_wr_page_scan_type_cmd
|
||
{
|
||
/// Page scan type
|
||
uint8_t page_scan_type;
|
||
};
|
||
|
||
/// HCI command complete event structure for read assessment mode command structure
|
||
struct hci_rd_afh_ch_assess_mode_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///AFH channel assessment mode
|
||
uint8_t afh_ch_ass_mode;
|
||
};
|
||
|
||
struct hci_wr_afh_ch_assess_mode_cmd
|
||
{
|
||
///AFH channel assessment mode
|
||
uint8_t afh_ch_ass_mode;
|
||
};
|
||
|
||
/// HCI command complete event structure for remote name request cancel command
|
||
struct hci_rd_ext_inq_rsp_cmd_cmp_evt
|
||
{
|
||
///status
|
||
uint8_t status;
|
||
///FEC required
|
||
uint8_t fec_req;
|
||
///Extended inquiry response
|
||
struct eir eir;
|
||
};
|
||
|
||
struct hci_wr_ext_inq_rsp_cmd
|
||
{
|
||
///FEC required
|
||
uint8_t fec_req;
|
||
///Extended inquiry response
|
||
struct eir eir;
|
||
};
|
||
|
||
/// HCI command complete event structure for remote name request cancel command
|
||
struct hci_rd_sp_mode_cmd_cmp_evt
|
||
{
|
||
///status
|
||
uint8_t status;
|
||
///Simple pairing mode
|
||
uint8_t sp_mode;
|
||
};
|
||
|
||
struct hci_wr_sp_mode_cmd
|
||
{
|
||
///Simple pairing mode
|
||
uint8_t sp_mode;
|
||
};
|
||
|
||
/// HCI command complete event structure for read oob data command
|
||
struct hci_rd_loc_oob_data_cmd_cmp_evt
|
||
{
|
||
///status
|
||
uint8_t status;
|
||
///hash part
|
||
struct hash oob_c;
|
||
///random part
|
||
struct randomizer oob_r;
|
||
};
|
||
|
||
/// HCI command complete event structure for read inquiry response transmit power command
|
||
struct hci_rd_inq_rsp_tx_pwr_lvl_cmd_cmp_evt
|
||
{
|
||
///status
|
||
uint8_t status;
|
||
///TX power
|
||
uint8_t tx_pwr;
|
||
};
|
||
|
||
struct hci_wr_inq_tx_pwr_lvl_cmd
|
||
{
|
||
///TX power
|
||
int8_t tx_pwr;
|
||
};
|
||
|
||
/// HCI command complete event structure for read erroneous data reporting command
|
||
struct hci_rd_dft_err_data_rep_cmd_cmp_evt
|
||
{
|
||
///status
|
||
uint8_t status;
|
||
///Erroneous data reporting
|
||
uint8_t err_data_rep;
|
||
};
|
||
|
||
struct hci_wr_dft_err_data_rep_cmd
|
||
{
|
||
///Erroneous data reporting
|
||
uint8_t err_data_rep;
|
||
};
|
||
|
||
/// HCI read LE Host Supported complete event
|
||
struct hci_rd_le_host_supp_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
///LE_Supported_Host
|
||
uint8_t le_supported_host;
|
||
///Simultaneous_LE_Host
|
||
uint8_t simultaneous_le_host;
|
||
};
|
||
|
||
/// HCI write LE Host Supported command
|
||
struct hci_wr_le_host_supp_cmd
|
||
{
|
||
///LE_Supported_Host
|
||
uint8_t le_supported_host;
|
||
///Simultaneous_LE_Host
|
||
uint8_t simultaneous_le_host;
|
||
};
|
||
|
||
/// HCI Set MWS Channel Parameters command
|
||
struct hci_set_mws_channel_params_cmd
|
||
{
|
||
///MWS_Channel_Enable
|
||
uint8_t mws_channel_enable;
|
||
///MWS_RX_Center_Frequency
|
||
uint16_t mws_rx_center_frequency;
|
||
///MWS_TX_Center_Frequency
|
||
uint16_t mws_tx_center_frequency;
|
||
///MWS_RX_Channel_Bandwidth
|
||
uint16_t mws_rx_channel_bandwidth;
|
||
///MWS_TX_Channel_Bandwidth
|
||
uint16_t mws_tx_channel_bandwidth;
|
||
///MWS_Channel_Type
|
||
uint8_t mws_channel_type;
|
||
};
|
||
|
||
/// HCI Set External Frame Configuration command
|
||
struct hci_set_external_frame_config_cmd
|
||
{
|
||
/// Ext_Frame_Duration
|
||
uint16_t ext_fr_duration;
|
||
/// Ext_Frame_Sync_Assert_Offset
|
||
int16_t ext_fr_sync_assert_offset;
|
||
/// Ext_Frame_Sync_Assert_Jitter
|
||
uint16_t ext_fr_sync_assert_jitter;
|
||
/// Ext_Frame_Num_Periods
|
||
uint8_t ext_fr_num_periods;
|
||
/// Period_Duration[i]
|
||
uint16_t period_duration[__ARRAY_EMPTY];
|
||
/// Period_Type[i]
|
||
//uint8_t period_type[__ARRAY_EMPTY];
|
||
};
|
||
|
||
/// HCI Set MWS Signaling command
|
||
struct hci_set_mws_signaling_cmd
|
||
{
|
||
///MWS_RX_Assert_Offset
|
||
int16_t mws_rx_assert_offset;
|
||
///MWS_RX_Assert_Jitter
|
||
uint16_t mws_rx_assert_jitter;
|
||
///MWS_RX_Deassert_Offset
|
||
int16_t mws_rx_deassert_offset;
|
||
///MWS_RX_Deassert_Jitter
|
||
uint16_t mws_rx_deassert_jitter;
|
||
///MWS_TX_Assert_Offset
|
||
int16_t mws_tx_assert_offset;
|
||
///MWS_TX_Assert_Jitter
|
||
uint16_t mws_tx_assert_jitter;
|
||
///MWS_TX_Deassert_Offset
|
||
int16_t mws_tx_deassert_offset;
|
||
///MWS_TX_Deassert_Jitter
|
||
uint16_t mws_tx_deassert_jitter;
|
||
///MWS_Pattern_Assert_Offset
|
||
int16_t mws_pattern_assert_offset;
|
||
///MWS_Pattern_Assert_Jitter
|
||
uint16_t mws_pattern_assert_jitter;
|
||
///MWS_Inactivity_Duration_Assert_Offset
|
||
int16_t mws_inactivity_duration_assert_offset;
|
||
///MWS_Inactivity_Duration_Assert_Jitter
|
||
uint16_t mws_inactivity_duration_assert_jitter;
|
||
///MWS_Scan_Frequency_Assert_Offset
|
||
int16_t mws_scan_frequency_assert_offset;
|
||
///MWS_Scan_Frequency_Assert_Jitter
|
||
uint16_t mws_scan_frequency_assert_jitter;
|
||
///MWS_Priority_Assert_Offset_Request
|
||
uint16_t mws_priority_assert_offset_request;
|
||
};
|
||
|
||
/// HCI Set MWS Signaling command complete event
|
||
struct hci_set_mws_signaling_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
///Bluetooth_Rx_Priority_Assert_Offset
|
||
int16_t bt_rx_prio_assert_offset;
|
||
///Bluetooth_Rx_Priority_Assert_Jitter
|
||
uint16_t bt_rx_prio_assert_jitter;
|
||
///Bluetooth_Rx_Priority_Deassert_Offset
|
||
int16_t bt_rx_prio_deassert_offset;
|
||
///Bluetooth_Rx_Priority_Deassert_Jitter
|
||
uint16_t bt_rx_prio_deassert_jitter;
|
||
///802_Rx_Priority_Assert_Offset
|
||
int16_t _802_rx_prio_assert_offset;
|
||
///802_Rx_Priority_Assert_Jitter
|
||
uint16_t _802_rx_prio_assert_jitter;
|
||
///802_Rx_Priority_Deassert_Offset
|
||
int16_t _802_rx_prio_deasssert_offset;
|
||
///802_Rx_Priority_Deassert_Jitter
|
||
uint16_t _802_rx_prio_deassert_jitter;
|
||
///Bluetooth_Tx_On_Assert_Offset
|
||
int16_t bt_tx_on_assert_offset;
|
||
///Bluetooth_Tx_On_Assert_Jitter
|
||
uint16_t bt_tx_on_assert_jitter;
|
||
///Bluetooth_Tx_On_Deassert_Offset
|
||
int16_t bt_tx_on_deassert_offset;
|
||
///Bluetooth_Tx_On_Deassert_Jitter
|
||
uint16_t bt_tx_on_deassert_jitter;
|
||
///802_Tx_On_Assert_Offset
|
||
int16_t _802_tx_on_assert_offset;
|
||
///802_Tx_On_Assert_Jitter
|
||
uint16_t _802_tx_on_assert_jitter;
|
||
///802_Tx_On_Deassert_Offset
|
||
int16_t _802_tx_on_deassert_offset;
|
||
///802_Tx_On_Deassert_Jitter
|
||
uint16_t _802_tx_on_deassert_jitter;
|
||
};
|
||
|
||
/// HCI Set MWS Transport Layer command
|
||
struct hci_set_mws_transport_layer_cmd
|
||
{
|
||
///Transport_Layer
|
||
uint8_t transport_layer;
|
||
///To_MWS_Baud_Rate
|
||
uint32_t to_mws_baud_rate;
|
||
///From_MWS_Baud_Rate
|
||
uint32_t from_mws_baud_rate;
|
||
};
|
||
|
||
/// HCI Set MWS Scan Frequency Table command
|
||
struct hci_set_mws_scan_freq_table_cmd
|
||
{
|
||
///Num_Scan_Frequencies
|
||
uint8_t num_scan_frequencies;
|
||
///Scan_Frequency_Low[i]
|
||
uint16_t scan_frequency_low[1/*__ARRAY_EMPTY*/];
|
||
///Scan_Frequency_High[i]
|
||
uint16_t scan_frequency_high[1/*__ARRAY_EMPTY*/];
|
||
};
|
||
|
||
/// HCI Set MWS Pattern Configuration command
|
||
struct hci_set_mws_pattern_config_cmd
|
||
{
|
||
///MWS_PATTERN_Index
|
||
uint8_t mws_pattern_index;
|
||
///MWS_PATTERN_NumIntervals
|
||
uint8_t mws_pattern_num_intervals;
|
||
///MWS_PATTERN_IntervalDuration[i]
|
||
uint16_t mws_pattern_interval_duration[1/*__ARRAY_EMPTY*/];
|
||
///MWS_PATTERN_IntervalType[i]
|
||
uint8_t mws_pattern_interval_type[1/*__ARRAY_EMPTY*/];
|
||
};
|
||
|
||
/// Hci Get MWS Transport Layer Configuration command complete event
|
||
struct hci_get_mws_transport_layer_config_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
///Num_Transports
|
||
uint8_t num_transports;
|
||
///Transport_Layer[i]
|
||
uint8_t transport_layer[1/*__ARRAY_EMPTY*/];
|
||
///Num_Baud_Rates[i]
|
||
uint8_t num_baud_rates[1/*__ARRAY_EMPTY*/];
|
||
///To_MWS_Baud_Rate[k]
|
||
uint32_t to_mws_baud_rate[1/*__ARRAY_EMPTY*/];
|
||
///From_MWS_Baud_Rate[k]
|
||
uint32_t from_mws_baud_rate[1/*__ARRAY_EMPTY*/];
|
||
};
|
||
|
||
/// HCI read Secure Connections Host Support complete event
|
||
struct hci_rd_sec_con_host_supp_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
/// Secure Connections Host Support
|
||
uint8_t sec_con_host_supp;
|
||
};
|
||
|
||
/// HCI write Secure Connections Host Support command
|
||
struct hci_wr_sec_con_host_supp_cmd
|
||
{
|
||
/// Secure Connections Host Support
|
||
uint8_t sec_con_host_supp;
|
||
};
|
||
|
||
/// HCI Set Reserved LT_ADDR command
|
||
struct hci_set_res_lt_addr_cmd
|
||
{
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
};
|
||
|
||
/// HCI Set Reserved LT_ADDR command complete event
|
||
struct hci_set_res_lt_addr_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
};
|
||
|
||
/// HCI Delete Reserved LT_ADDR command
|
||
struct hci_del_res_lt_addr_cmd
|
||
{
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
};
|
||
|
||
/// HCI Delete Reserved LT_ADDR command complete event
|
||
struct hci_del_res_lt_addr_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
};
|
||
|
||
/// HCI Set Connectionless Slave Broadcast Data command
|
||
struct hci_set_con_slv_bcst_data_cmd
|
||
{
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
/// Fragment
|
||
uint8_t fragment;
|
||
/// Data_Length (in bytes)
|
||
uint8_t data_length;
|
||
/// Data
|
||
uint8_t data[__ARRAY_EMPTY];
|
||
};
|
||
|
||
/// HCI Set Connectionless Slave Broadcast Data command complete event
|
||
struct hci_set_con_slv_bcst_data_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
};
|
||
|
||
/// HCI Read Synchronization Train Parameters command complete event
|
||
struct hci_rd_sync_train_param_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// Sync_Train_Interval (in slots)
|
||
uint16_t sync_train_int;
|
||
/// synchronization_trainTO (in slots)
|
||
uint32_t sync_train_to;
|
||
/// Service_Data
|
||
uint8_t service_data;
|
||
};
|
||
|
||
/// HCI Write Synchronization Train Parameters command
|
||
struct hci_wr_sync_train_param_cmd
|
||
{
|
||
/// Interval_Min (in slots)
|
||
uint16_t int_min;
|
||
/// Interval_Max (in slots)
|
||
uint16_t int_max;
|
||
/// synchronization_trainTO (in slots)
|
||
uint32_t sync_train_to;
|
||
/// Service_Data
|
||
uint8_t service_data;
|
||
};
|
||
|
||
/// HCI Write Synchronization Train Parameters command complete event
|
||
struct hci_wr_sync_train_param_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// Sync_Train_Interval (in slots)
|
||
uint16_t sync_train_int;
|
||
};
|
||
|
||
// HCI Synchronization Train Complete event
|
||
struct hci_sync_train_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
};
|
||
|
||
/// HCI read authenticated payload timeout command
|
||
struct hci_rd_auth_payl_to_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI command complete event structure for the Read Authenticated Payload Timeout Command
|
||
struct hci_rd_auth_payl_to_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Authenticated payload timeout
|
||
uint16_t auth_payl_to;
|
||
};
|
||
|
||
/// HCI command complete event structure for read oob extended data command
|
||
struct hci_rd_loc_oob_ext_data_cmd_cmp_evt
|
||
{
|
||
///status
|
||
uint8_t status;
|
||
///hash part
|
||
struct hash oob_c_192;
|
||
///random part
|
||
struct randomizer oob_r_192;
|
||
///hash part
|
||
struct hash oob_c_256;
|
||
///random part
|
||
struct randomizer oob_r_256;
|
||
};
|
||
|
||
/// HCI read Extended Page Timeout CC event
|
||
struct hci_rd_ext_page_to_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/**
|
||
* Extended Page Timeout measured in Number of Baseband slots. Interval Length = N * 0.625 msec (1 Baseband slot)
|
||
* Range for N: 0x0000 (default) - 0xFFFF
|
||
* Time Range: 0 - 40.9 Seconds
|
||
*/
|
||
uint16_t ext_page_to;
|
||
};
|
||
|
||
/// HCI write Extended Page Timeout
|
||
struct hci_wr_ext_page_to_cmd
|
||
{
|
||
/**
|
||
* Extended Page Timeout measured in Number of Baseband slots. Interval Length = N * 0.625 msec (1 Baseband slot)
|
||
* Range for N: 0x0000 (default) - 0xFFFF
|
||
* Time Range: 0 - 40.9 Seconds
|
||
*/
|
||
uint16_t ext_page_to;
|
||
};
|
||
|
||
/// HCI read Extended Inquiry Length CC event
|
||
struct hci_rd_ext_inq_len_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// Extended Inquiry Length
|
||
uint16_t ext_inq_len;
|
||
};
|
||
|
||
/// HCI write Extended Inquiry Length
|
||
struct hci_wr_ext_inq_len_cmd
|
||
{
|
||
/// Extended Inquiry Length
|
||
uint16_t ext_inq_len;
|
||
};
|
||
|
||
/*
|
||
* HCI INFORMATIONAL PARAMETERS COMMANDS PARAMETERS
|
||
****************************************************************************************
|
||
*/
|
||
|
||
///HCI command complete event structure for read local version information
|
||
struct hci_rd_local_ver_info_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///HCI version number
|
||
uint8_t hci_ver;
|
||
///HCI revision number
|
||
uint16_t hci_rev;
|
||
///LMP version
|
||
uint8_t lmp_ver;
|
||
///manufacturer name
|
||
uint16_t manuf_name;
|
||
///LMP Subversion
|
||
uint16_t lmp_subver;
|
||
};
|
||
|
||
///HCI command complete event structure for read local supported commands
|
||
struct hci_rd_local_supp_cmds_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Supported Commands structure
|
||
struct supp_cmds local_cmds;
|
||
};
|
||
|
||
/// HCI command complete event structure for read local supported features command
|
||
struct hci_rd_local_supp_feats_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Local supported features
|
||
struct features feats;
|
||
};
|
||
|
||
struct hci_rd_local_ext_feats_cmd
|
||
{
|
||
///Page number
|
||
uint8_t page_nb;
|
||
};
|
||
|
||
/// HCI command complete event structure for read local extended features command
|
||
struct hci_rd_local_ext_feats_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Page number
|
||
uint8_t page_nb;
|
||
///Maximum page number
|
||
uint8_t page_nb_max;
|
||
///Extended LMP features
|
||
struct features ext_feats;
|
||
};
|
||
|
||
///HCI command complete event structure for the Read Buffer Size Command
|
||
struct hci_rd_buff_size_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///ACL data packet length controller can receive from host
|
||
uint16_t hc_data_pk_len;
|
||
///Synchronous data packet length controller can receive from host
|
||
uint8_t hc_sync_pk_len;
|
||
///Total number of ACL data packets controller can receive from host
|
||
uint16_t hc_tot_nb_data_pkts;
|
||
///Total number of synchronous data packets controller can receive from host
|
||
uint16_t hc_tot_nb_sync_pkts;
|
||
};
|
||
|
||
///HCI command complete event structure for read bd address
|
||
struct hci_rd_bd_addr_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///BD address
|
||
struct bd_addr local_addr;
|
||
};
|
||
|
||
/// HCI command complete event structure for read local supported codecs
|
||
struct hci_rd_local_supp_codecs_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
uint8_t nb_supp_codecs;
|
||
uint8_t nb_supp_vendor_specific_codecs;
|
||
|
||
// ///Supported Codecs structure
|
||
// struct supp_codecs local_codecs;
|
||
};
|
||
|
||
/*
|
||
* HCI STATUS PARAMETERS COMMANDS PARAMETERS
|
||
****************************************************************************************
|
||
*/
|
||
|
||
/// HCI command complete event structure for read rssi
|
||
struct hci_rd_rssi_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///RSSI value
|
||
uint8_t rssi;
|
||
};
|
||
|
||
struct hci_rd_clk_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Which clock
|
||
uint8_t clk_type;
|
||
};
|
||
|
||
/// HCI read clock command structure
|
||
struct hci_rd_clk_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///clock
|
||
uint32_t clk;
|
||
///Accuracy
|
||
uint16_t clk_acc;
|
||
};
|
||
|
||
|
||
/*
|
||
* HCI TESTING COMMANDS PARAMETERS
|
||
****************************************************************************************
|
||
*/
|
||
|
||
/// HCI command complete event structure for read loop back mode command
|
||
struct hci_rd_loopback_mode_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Local supported features
|
||
uint8_t lb_mode;
|
||
};
|
||
|
||
struct hci_wr_loopback_mode_cmd
|
||
{
|
||
///Local supported features
|
||
uint8_t lb_mode;
|
||
};
|
||
struct hci_wr_sp_dbg_mode_cmd
|
||
{
|
||
///Simple pairing mode
|
||
uint8_t sp_mode;
|
||
};
|
||
|
||
|
||
/// * TCI Event subcodes
|
||
enum tci_evt_subcode
|
||
{
|
||
TCI_LMP_TX_EVENT = 0x22,
|
||
TCI_LMP_RX_EVENT = 0x23,
|
||
TCI_LC_TX_EVENT = 0x24,
|
||
TCI_LC_RX_EVENT = 0x25,
|
||
TCI_BB_TX_EVENT = 0x26,
|
||
TCI_BB_RX_EVENT = 0x27,
|
||
TCI_HW_ERROR_EVENT = 0x28,
|
||
TCI_RADIO_EVENT = 0x30,
|
||
TCI_INTERRUPT_EVENT = 0x40,
|
||
};
|
||
|
||
/// LMP direction
|
||
#define TCI_LMP_DIR_TX 0
|
||
#define TCI_LMP_DIR_RX 1
|
||
|
||
/// HCI tci lmp exchange event structure
|
||
struct hci_tci_lmp_evt
|
||
{
|
||
///code
|
||
uint8_t tci_code;
|
||
///length
|
||
uint8_t evt_len;
|
||
///subcode
|
||
uint8_t subcode;
|
||
///evt direction
|
||
uint8_t direction;
|
||
///lmp evt body
|
||
uint8_t body[17];
|
||
};
|
||
|
||
/*
|
||
* HCI LE CONTROLLER COMMANDS PARAMETERS
|
||
****************************************************************************************
|
||
*/
|
||
|
||
///HCI LE Set Event Mask Command parameters structure
|
||
struct hci_le_set_evt_mask_cmd
|
||
{
|
||
///LE Event Mask
|
||
struct evt_mask le_mask;
|
||
};
|
||
|
||
///HCI LE Set Random Address Command parameters structure
|
||
struct hci_le_set_rand_addr_cmd
|
||
{
|
||
///Random address to set
|
||
struct bd_addr rand_addr;
|
||
};
|
||
|
||
///HCI LE Set Advertising Parameters Command parameters structure
|
||
struct hci_le_set_adv_param_cmd
|
||
{
|
||
///Minimum interval for advertising
|
||
uint16_t adv_intv_min;
|
||
///Maximum interval for advertising
|
||
uint16_t adv_intv_max;
|
||
///Advertising type
|
||
uint8_t adv_type;
|
||
///Own address type: public=0 / random=1 / rpa_or_pub=2 / rpa_or_rnd=3
|
||
uint8_t own_addr_type;
|
||
///Peer address type: public=0 / random=1
|
||
uint8_t peer_addr_type;
|
||
///Peer Bluetooth device address
|
||
struct bd_addr peer_addr;
|
||
///Advertising channel map
|
||
uint8_t adv_chnl_map;
|
||
///Advertising filter policy
|
||
uint8_t adv_filt_policy;
|
||
};
|
||
|
||
///HCI LE Set Advertising Data Command parameters structure
|
||
struct hci_le_set_adv_data_cmd
|
||
{
|
||
///Advertising data length
|
||
uint8_t adv_data_len;
|
||
///Advertising data - maximum 31 bytes
|
||
struct adv_data data;
|
||
};
|
||
|
||
///HCI LE Set Scan Response Data Command parameters structure
|
||
struct hci_le_set_scan_rsp_data_cmd
|
||
{
|
||
///Scan response data length
|
||
uint8_t scan_rsp_data_len;
|
||
///Scan response data - maximum 31 bytes
|
||
struct scan_rsp_data data;
|
||
};
|
||
|
||
///HCI LE Set Advertise Enable Command parameters structure
|
||
struct hci_le_set_adv_en_cmd
|
||
{
|
||
///Advertising enable - 0=disabled, 1=enabled
|
||
uint8_t adv_en;
|
||
};
|
||
|
||
///HCI LE Set Scan Parameters Command parameters structure
|
||
struct hci_le_set_scan_param_cmd
|
||
{
|
||
///Scan type - 0=passive / 1=active
|
||
uint8_t scan_type;
|
||
///Scan interval
|
||
uint16_t scan_intv;
|
||
///Scan window size
|
||
uint16_t scan_window;
|
||
///Own address type - public=0 / random=1 / rpa_or_pub=2 / rpa_or_rnd=3
|
||
uint8_t own_addr_type;
|
||
///Scan filter policy
|
||
uint8_t scan_filt_policy;
|
||
};
|
||
|
||
///HCI LE Set Scan Enable Command parameters structure
|
||
struct hci_le_set_scan_en_cmd
|
||
{
|
||
///Scan enable - 0=disabled, 1=enabled
|
||
uint8_t scan_en;
|
||
///Enable for duplicates filtering - 0 =disabled/ 1=enabled
|
||
uint8_t filter_duplic_en;
|
||
};
|
||
|
||
///HCI LE Create Connection Command parameters structure
|
||
struct hci_le_create_con_cmd
|
||
{
|
||
///Scan interval (N * 0.625 ms)
|
||
uint16_t scan_intv;
|
||
///Scan window size (N * 0.625 ms)
|
||
uint16_t scan_window;
|
||
///Initiator filter policy
|
||
uint8_t init_filt_policy;
|
||
///Peer address type - public=0 / random=1 / rpa_or_pub=2 / rpa_or_rnd=3
|
||
uint8_t peer_addr_type;
|
||
///Peer BD address
|
||
struct bd_addr peer_addr;
|
||
///Own address type - public=0 / random=1 / rpa_or_pub=2 / rpa_or_rnd=3
|
||
uint8_t own_addr_type;
|
||
///Minimum of connection interval (N * 1.25 ms)
|
||
uint16_t con_intv_min;
|
||
///Maximum of connection interval (N * 1.25 ms)
|
||
uint16_t con_intv_max;
|
||
///Connection latency
|
||
uint16_t con_latency;
|
||
///Link supervision timeout
|
||
uint16_t superv_to;
|
||
///Minimum CE length (N * 0.625 ms)
|
||
uint16_t ce_len_min;
|
||
///Maximum CE length (N * 0.625 ms)
|
||
uint16_t ce_len_max;
|
||
};
|
||
|
||
///HCI LE Add Device to White List Command parameters structure
|
||
struct hci_le_add_dev_to_wlst_cmd
|
||
{
|
||
///Type of address of the device to be added to the White List - 0=public/1=random
|
||
uint8_t dev_addr_type;
|
||
///Address of device to be added to White List
|
||
struct bd_addr dev_addr;
|
||
};
|
||
|
||
///HCI LE Remove Device from White List Command parameters structure
|
||
struct hci_le_rmv_dev_from_wlst_cmd
|
||
{
|
||
///Type of address of the device to be removed from the White List - 0=public/1=random
|
||
uint8_t dev_addr_type;
|
||
///Address of device to be removed from White List
|
||
struct bd_addr dev_addr;
|
||
};
|
||
|
||
///HCI LE Set Extended Scan Paramaters Command parameters structure
|
||
struct hci_le_set_ext_scan_param_cmd
|
||
{
|
||
///Own address type public/random/rpa
|
||
uint8_t own_addr_type;
|
||
///Scanning filter policy
|
||
uint8_t scan_filt_policy;
|
||
///Indicates the PHY(s) on which the advertising packets should be received
|
||
uint8_t scan_phys;
|
||
///Paramaters for PHY(s)
|
||
struct scan_phy_param
|
||
{
|
||
///Scaning Type: passive/active
|
||
uint8_t scan_type;
|
||
///Scan interval (slots)
|
||
uint16_t scan_intv;
|
||
///Scan window size (slots)
|
||
uint16_t scan_window;
|
||
} phy[MAX_SCAN_PHYS];
|
||
};
|
||
|
||
///HCI LE Set Extended Scan Enable Command parameters structure
|
||
struct hci_le_set_ext_scan_en_cmd
|
||
{
|
||
///Scan enable - 0=disabled, 1=enabled
|
||
uint8_t scan_en;
|
||
///Filter duplicates - 0=disabled, 1=enabled, 2=enabled & reset each scan period
|
||
uint8_t filter_duplic_en;
|
||
///Scan duration (Time=N*10ms)
|
||
uint16_t duration;
|
||
///Scan period (Time=N*1.28sec)
|
||
uint16_t period;
|
||
};
|
||
|
||
///HCI LE Extended Create Connection Command parameters strucuture
|
||
struct hci_le_ext_create_con_cmd
|
||
{
|
||
///Initiator filter policy
|
||
uint8_t init_filter_policy;
|
||
///Own address type public/random/rpa
|
||
uint8_t own_addr_type;
|
||
///Peer address type public/random/rpa
|
||
uint8_t peer_addr_type;
|
||
///Peer address
|
||
struct bd_addr peer_addr;
|
||
///Indicates the PHY(s) on which the advertising packets should be received
|
||
uint8_t init_phys;
|
||
///Paramaters for PHY(s)
|
||
struct init_phy_param
|
||
{
|
||
///Scan interval (N * 0.625 ms)
|
||
uint16_t scan_interval;
|
||
///Scan window size (N * 0.625 ms)
|
||
uint16_t scan_window;
|
||
///Minimum of connection interval (N * 1.25 ms)
|
||
uint16_t con_intv_min;
|
||
///Maximum of connection interval (N * 1.25 ms)
|
||
uint16_t con_intv_max;
|
||
///Connection latency
|
||
uint16_t con_latency;
|
||
///Link supervision timeout
|
||
uint16_t superv_to;
|
||
///Minimum CE length (N * 0.625 ms)
|
||
uint16_t ce_len_min;
|
||
///Maximum CE length (N * 0.625 ms)
|
||
uint16_t ce_len_max;
|
||
} phy[MAX_INIT_PHYS];
|
||
};
|
||
|
||
///HCI LE Periodic Advertising Create Sync Command parameters strucutre
|
||
struct hci_le_per_adv_create_sync_cmd
|
||
{
|
||
///Filter policy
|
||
uint8_t filter_policy;
|
||
///Advertising SID
|
||
uint8_t adv_sid;
|
||
///Advertising address type
|
||
uint8_t adv_addr_type;
|
||
///Advertiser address
|
||
struct bd_addr adv_addr;
|
||
///max Skip after receive
|
||
uint16_t skip;
|
||
///Sync timeout (Time=N*10ms)
|
||
uint16_t sync_to;
|
||
};
|
||
|
||
///HCI LE Periodic Advertising Terminate Sync Command parameters structure
|
||
struct hci_le_per_adv_term_sync_cmd
|
||
{
|
||
///Sync handle
|
||
uint16_t sync_handle;
|
||
};
|
||
|
||
///HCI LE Add Device to Periodic Advertiser List Command parameters structure
|
||
struct hci_le_add_dev_to_per_adv_list_cmd
|
||
{
|
||
///Advertiser address type
|
||
uint8_t adv_addr_type;
|
||
///Advertiser address
|
||
struct bd_addr adv_addr;
|
||
///Advertising SID
|
||
uint8_t adv_sid;
|
||
};
|
||
|
||
///HCI LE Remove Device from Periodic Advertiser List Command parameters structure
|
||
struct hci_le_rmv_dev_from_per_adv_list_cmd
|
||
{
|
||
///Advertiser address type
|
||
uint8_t adv_addr_type;
|
||
///Advertiser address
|
||
struct bd_addr adv_addr;
|
||
///Advertising SID
|
||
uint8_t adv_sid;
|
||
};
|
||
|
||
///HCI LE Set Privacy Mode Command parameters structure
|
||
struct hci_le_set_priv_mode_cmd
|
||
{
|
||
///Peer identity address type
|
||
uint8_t peer_addr_type;
|
||
///Peer identity address
|
||
struct bd_addr peer_addr;
|
||
///Privacy mode
|
||
uint8_t priv_mode;
|
||
};
|
||
|
||
///HCI LE Set Host Channel Classification Command parameters structure
|
||
struct hci_le_set_host_ch_class_cmd
|
||
{
|
||
///Channel map
|
||
struct le_chnl_map chmap;
|
||
};
|
||
|
||
|
||
///HCI LE Receiver Test Command parameters structure
|
||
struct hci_le_rx_test_cmd
|
||
{
|
||
///RX frequency for Rx test
|
||
uint8_t rx_freq;
|
||
};
|
||
|
||
///HCI LE Transmitter Test Command parameters structure
|
||
struct hci_le_tx_test_cmd
|
||
{
|
||
///TX frequency for Tx test
|
||
uint8_t tx_freq;
|
||
///TX test data length
|
||
uint8_t test_data_len;
|
||
///TX test payload type - see enum
|
||
uint8_t pk_payload_type;
|
||
};
|
||
|
||
///HCI LE Encrypt Command parameters structure
|
||
struct hci_le_enc_cmd
|
||
{
|
||
///Long term key structure
|
||
struct ltk key;
|
||
///Pointer to buffer with plain data to encrypt - 16 bytes
|
||
uint8_t plain_data[16];
|
||
};
|
||
|
||
/// HCI LE Connection Update Command parameters structure
|
||
struct hci_le_con_update_cmd
|
||
{
|
||
///Connection Handle
|
||
uint16_t conhdl;
|
||
///Minimum of connection interval (units of 1.25 ms)
|
||
uint16_t con_intv_min;
|
||
///Maximum of connection interval (units of 1.25 ms)
|
||
uint16_t con_intv_max;
|
||
///Connection latency (units of connection event)
|
||
uint16_t con_latency;
|
||
///Link supervision timeout (units of 10 ms)
|
||
uint16_t superv_to;
|
||
///Minimum of CE length (units of 0.625 ms)
|
||
uint16_t ce_len_min;
|
||
///Maximum of CE length (units of 0.625 ms)
|
||
uint16_t ce_len_max;
|
||
};
|
||
|
||
/// HCI LE Start Encryption Command parameters structure
|
||
struct hci_le_start_enc_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Random number - 8B
|
||
struct rand_nb nb;
|
||
///Encryption Diversifier
|
||
uint16_t enc_div;
|
||
///Long term key
|
||
struct ltk ltk;
|
||
};
|
||
|
||
/// HCI long term key request reply command parameters structure
|
||
struct hci_le_ltk_req_reply_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Long term key
|
||
struct ltk ltk;
|
||
};
|
||
|
||
/// HCI long term key request negative reply command parameters structure
|
||
struct hci_le_ltk_req_neg_reply_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI LE remote connection parameter request reply command parameters structure
|
||
struct hci_le_rem_con_param_req_reply_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Interval_Min
|
||
uint16_t interval_min;
|
||
///Interval_Max
|
||
uint16_t interval_max;
|
||
///Latency
|
||
uint16_t latency;
|
||
///Timeout
|
||
uint16_t timeout;
|
||
///Minimum_CE_Length
|
||
uint16_t min_ce_len;
|
||
///Maximum_CE_Length
|
||
uint16_t max_ce_len;
|
||
};
|
||
|
||
/// HCI LE remote connection parameter request negative reply command parameters structure
|
||
struct hci_le_rem_con_param_req_neg_reply_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Reason
|
||
uint8_t reason;
|
||
};
|
||
|
||
|
||
/// HCI LE Set Data Length Command parameters structure
|
||
struct hci_le_set_data_len_cmd
|
||
{
|
||
///Connection Handle
|
||
uint16_t conhdl;
|
||
///Preferred maximum number of payload octets that the local Controller should include
|
||
///in a single Link Layer Data Channel PDU.
|
||
uint16_t tx_octets;
|
||
///Preferred maximum number of microseconds that the local Controller should use to transmit
|
||
///a single Link Layer Data Channel PDU
|
||
uint16_t tx_time;
|
||
};
|
||
|
||
/// HCI LE Read Suggested Default Data Length Command
|
||
struct hci_le_wr_suggted_dft_data_len_cmd
|
||
{
|
||
///Suggested value for the Controller's maximum transmitted number of payload octets to be used
|
||
uint16_t suggted_max_tx_octets;
|
||
///Suggested value for the Controller's maximum packet transmission time to be used
|
||
uint16_t suggted_max_tx_time;
|
||
};
|
||
|
||
/// HCI LE Add Device to Resolving List Command
|
||
struct hci_le_add_dev_to_rslv_list_cmd
|
||
{
|
||
/// Peer Identity Address Type
|
||
uint8_t peer_id_addr_type;
|
||
/// Peer Identity Address
|
||
struct bd_addr peer_id_addr;
|
||
/// Peer IRK
|
||
struct irk peer_irk;
|
||
/// Local IRK
|
||
struct irk local_irk;
|
||
};
|
||
|
||
/// HCI LE Remove Device From Resolving List Command
|
||
struct hci_le_rmv_dev_from_rslv_list_cmd
|
||
{
|
||
/// Peer Identity Address Type
|
||
uint8_t peer_id_addr_type;
|
||
/// Peer Identity Address
|
||
struct bd_addr peer_id_addr;
|
||
};
|
||
|
||
/// HCI LE Read Peer Resolvable Address Command
|
||
struct hci_le_rd_peer_rslv_addr_cmd
|
||
{
|
||
/// Peer Identity Address Type
|
||
uint8_t peer_id_addr_type;
|
||
/// Peer Identity Address
|
||
struct bd_addr peer_id_addr;
|
||
};
|
||
|
||
/// HCI LE Read Local Resolvable Address Command
|
||
struct hci_le_rd_loc_rslv_addr_cmd
|
||
{
|
||
/// Peer Identity Address Type
|
||
uint8_t peer_id_addr_type;
|
||
/// Peer Identity Address
|
||
struct bd_addr peer_id_addr;
|
||
};
|
||
|
||
/// HCI LE Set Address Resolution Enable Command
|
||
struct hci_le_set_addr_resol_en_cmd
|
||
{
|
||
/// Address Resolution Enable
|
||
uint8_t enable;
|
||
};
|
||
|
||
/// HCI LE Set Resolvable Private Address Timeout Command
|
||
struct hci_le_set_rslv_priv_addr_to_cmd
|
||
{
|
||
/// RPA Timeout
|
||
uint16_t rpa_timeout;
|
||
};
|
||
|
||
/*
|
||
* HCI EVENTS PARAMETERS
|
||
****************************************************************************************
|
||
*/
|
||
|
||
/// HCI inquiry complete event structure
|
||
struct hci_inq_cmp_evt
|
||
{
|
||
///Status of the procedure
|
||
uint8_t status;
|
||
};
|
||
|
||
|
||
/// HCI Inquiry result event structure (with only 1 result)
|
||
struct hci_inq_res_evt
|
||
{
|
||
|
||
///Number of response
|
||
uint8_t nb_rsp;
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Page Scan Repetition Mode
|
||
uint8_t page_scan_rep_mode;
|
||
///Reserved
|
||
uint8_t reserved1;
|
||
///Reserved
|
||
uint8_t reserved2;
|
||
///class of device
|
||
struct devclass class_of_dev;
|
||
///Clock Offset
|
||
uint16_t clk_off;
|
||
|
||
};
|
||
|
||
/// HCI Inquiry result with rssi event structure (with only 1 result)
|
||
struct hci_inq_res_with_rssi_evt
|
||
{
|
||
///Number of response
|
||
uint8_t nb_rsp;
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Page Scan Repetition Mode
|
||
uint8_t page_scan_rep_mode;
|
||
///Reserved
|
||
uint8_t reserved1;
|
||
///class of device
|
||
struct devclass class_of_dev;
|
||
///Clock Offset
|
||
uint16_t clk_off;
|
||
///Rssi
|
||
uint8_t rssi;
|
||
|
||
};
|
||
|
||
/// HCI Extended inquiry result indication structure (with only 1 result)
|
||
struct hci_ext_inq_res_evt
|
||
{
|
||
///Number of response
|
||
uint8_t nb_rsp;
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Page Scan Repetition Mode
|
||
uint8_t page_scan_rep_mode;
|
||
///Reserved
|
||
uint8_t reserved1;
|
||
///class of device
|
||
struct devclass class_of_dev;
|
||
///Clock Offset
|
||
uint16_t clk_off;
|
||
///RSSi
|
||
uint8_t rssi;
|
||
///Extended inquiry response data
|
||
struct eir eir;
|
||
};
|
||
|
||
/// HCI disconnect complete event structure
|
||
struct hci_disc_cmp_evt
|
||
{
|
||
///Status of received command
|
||
uint8_t status;
|
||
///Connection Handle
|
||
uint16_t conhdl;
|
||
///Reason for disconnection
|
||
uint8_t reason;
|
||
};
|
||
|
||
/// HCI basic command complete event structure
|
||
struct hci_basic_cmd_cmp_evt
|
||
{
|
||
///Status of the command reception
|
||
uint8_t status;
|
||
};
|
||
|
||
/// HCI basic command complete event structure with connection handle
|
||
struct hci_basic_conhdl_cmd_cmp_evt
|
||
{
|
||
/// status
|
||
uint8_t status;
|
||
/// connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI basic command complete event structure with BD address
|
||
struct hci_basic_bd_addr_cmd_cmp_evt
|
||
{
|
||
///status
|
||
uint8_t status;
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
};
|
||
|
||
/// HCI basic event structure with status and BD address
|
||
struct hci_basic_stat_bd_addr_evt
|
||
{
|
||
///status
|
||
uint8_t status;
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
};
|
||
|
||
/// HCI basic event including a connection handle as parameter
|
||
struct hci_basic_conhdl_evt
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI complete event with status only.
|
||
struct hci_cmd_stat_event
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
};
|
||
|
||
/// HCI number of packet complete event structure
|
||
struct hci_nb_cmp_pkts_evt
|
||
{
|
||
/// number of handles
|
||
uint8_t nb_of_hdl;
|
||
/// connection handle
|
||
uint16_t conhdl[1];
|
||
/// number of completed packets
|
||
uint16_t nb_comp_pkt[1];
|
||
};
|
||
|
||
/// HCI data buffer overflow event structure
|
||
struct hci_data_buf_ovflw_evt
|
||
{
|
||
///Link type
|
||
uint8_t link_type;
|
||
};
|
||
|
||
/// HCI Hardware Error Event parameters structure
|
||
struct hci_hw_err_evt
|
||
{
|
||
/// HW error code
|
||
uint8_t hw_code;
|
||
};
|
||
|
||
/// HCI encryption change event structure
|
||
struct hci_enc_change_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Encryption enabled information
|
||
uint8_t enc_stat;
|
||
};
|
||
|
||
/// HCI encryption key refresh complete event structure
|
||
struct hci_enc_key_ref_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI Authenticated Payload Timeout Expired Event structure
|
||
struct hci_auth_payl_to_exp_evt
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI command complete event structure for create connection
|
||
struct hci_con_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Bluetooth Device address
|
||
struct bd_addr bd_addr;
|
||
///Link type
|
||
uint8_t link_type;
|
||
///Encryption state
|
||
uint8_t enc_en;
|
||
};
|
||
|
||
/// HCI command complete event structure for qos setup
|
||
struct hci_qos_setup_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Flags
|
||
uint8_t flags;
|
||
///Service type
|
||
uint8_t serv_type;
|
||
///Token rate
|
||
uint32_t tok_rate;
|
||
///Peak bandwidth
|
||
uint32_t pk_bw;
|
||
///Latency
|
||
uint32_t lat;
|
||
///Delay variation
|
||
uint32_t del_var;
|
||
};
|
||
|
||
/// HCI flow specification complete event parameters structure
|
||
struct hci_flow_spec_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Flags
|
||
uint8_t flags;
|
||
///Flow direction
|
||
uint8_t flow_dir;
|
||
///Service type
|
||
uint8_t serv_type;
|
||
///Token rate
|
||
uint32_t tk_rate;
|
||
///Token buffer size
|
||
uint32_t tk_buf_sz;
|
||
///Peak bandwidth
|
||
uint32_t pk_bw;
|
||
///Access latency
|
||
uint32_t acc_lat;
|
||
};
|
||
|
||
/// HCI role change event parameters structure
|
||
struct hci_role_chg_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
///BD address
|
||
struct bd_addr bd_addr;
|
||
///New role
|
||
uint8_t new_role;
|
||
};
|
||
|
||
/// HCI complete event structure for the read clock offset command
|
||
struct hci_rd_clk_off_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Clock offset
|
||
uint16_t clk_off_val;
|
||
};
|
||
|
||
/// HCI event structure for the flush occurred event
|
||
struct hci_flush_occurred_evt
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI max slot change event structure
|
||
struct hci_max_slot_chg_evt
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Max slot
|
||
uint8_t max_slot;
|
||
};
|
||
|
||
/// HCI sniff subrating event parameters structure
|
||
struct hci_sniff_sub_evt
|
||
{
|
||
///Status.
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Maximum transmit latency
|
||
uint16_t max_lat_tx;
|
||
///Maximum receive latency
|
||
uint16_t max_lat_rx;
|
||
///Minimum remote TO
|
||
uint16_t min_rem_to;
|
||
///Minimum local TO
|
||
uint16_t min_loc_to;
|
||
};
|
||
|
||
/// HCI read remote extended features complete event parameters structure
|
||
struct hci_rd_rem_ext_feats_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///page number
|
||
uint8_t pg_nb;
|
||
///page number max
|
||
uint8_t pg_nb_max;
|
||
///ext LMP features
|
||
struct features ext_feats;
|
||
};
|
||
|
||
/// HCI read remote extended features complete event parameters structure
|
||
struct hci_rem_host_supp_feats_notif_evt
|
||
{
|
||
///BD address
|
||
struct bd_addr bd_addr;
|
||
///ext lmp features
|
||
struct features ext_feats;
|
||
};
|
||
|
||
/// HCI command complete event structure for the read remote supported features command
|
||
struct hci_rd_rem_supp_feats_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Remote features
|
||
struct features rem_feats;
|
||
};
|
||
|
||
/// HCI command complete event structure for the read remote information version command
|
||
struct hci_rd_rem_ver_info_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///LMP version
|
||
uint8_t vers;
|
||
///Manufacturer name
|
||
uint16_t compid;
|
||
///LMP subversion
|
||
uint16_t subvers;
|
||
};
|
||
|
||
/// HCI encryption change event structure
|
||
struct hci_enc_chg_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Encryption enabled information
|
||
uint8_t enc_stat;
|
||
};
|
||
|
||
/// HCI mode change event structure
|
||
struct hci_mode_chg_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Current mode
|
||
uint8_t cur_mode;
|
||
/// Interval
|
||
uint16_t interv;
|
||
};
|
||
|
||
/// HCI simple pairing complete event structure
|
||
struct hci_sp_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Bluetooth Device address
|
||
struct bd_addr bd_addr;
|
||
};
|
||
|
||
/// HCI Authentication complete event structure
|
||
struct hci_auth_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI change connection link key complete event structure
|
||
struct hci_chg_con_lk_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI encryption key refresh complete event structure
|
||
struct hci_enc_key_refresh_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI master link key complete event structure
|
||
struct hci_master_lk_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Key flag
|
||
uint8_t key_flag;
|
||
};
|
||
/// HCI synchronous link connection complete event structure
|
||
struct hci_sync_con_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///BD address
|
||
struct bd_addr bd_addr;
|
||
///Link type
|
||
uint8_t lk_type;
|
||
///Transmit interval
|
||
uint8_t tx_int;
|
||
///Retransmission window
|
||
uint8_t ret_win;
|
||
///rx packet length
|
||
uint16_t rx_pkt_len;
|
||
///tx packet length
|
||
uint16_t tx_pkt_len;
|
||
///Air mode
|
||
uint8_t air_mode;
|
||
|
||
};
|
||
|
||
/// HCI synchronous connection change event structure
|
||
struct hci_sync_con_chg_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Synchronous Connection handle
|
||
uint16_t sync_conhdl;
|
||
///Transmit interval
|
||
uint8_t tx_int;
|
||
///Retransmission window
|
||
uint8_t ret_win;
|
||
///rx packet length
|
||
uint16_t rx_pkt_len;
|
||
///tx packet length
|
||
uint16_t tx_pkt_len;
|
||
};
|
||
|
||
/// HCI connection packet type change event structure
|
||
struct hci_con_pkt_type_chg_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Synchronous Connection handle
|
||
uint16_t sync_conhdl;
|
||
///Synchronous packet type
|
||
uint16_t pkt_type;
|
||
};
|
||
|
||
/// HCI link supervision timeout change event structure
|
||
struct hci_link_supv_to_chg_evt
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Link supervision timeout
|
||
uint16_t lsto_val;
|
||
};
|
||
|
||
/// HCI link key request event structure
|
||
struct hci_lk_req_evt
|
||
{
|
||
///BD address
|
||
struct bd_addr bd_addr;
|
||
};
|
||
|
||
/// HCI encryption key refresh event structure
|
||
struct hci_enc_key_refresh_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI connection request event structure
|
||
struct hci_con_req_evt
|
||
{
|
||
///BD address
|
||
struct bd_addr bd_addr;
|
||
///Class of device
|
||
struct devclass classofdev;
|
||
///link type
|
||
uint8_t lk_type;
|
||
};
|
||
|
||
/// HCI quality of service violation event structure
|
||
struct hci_qos_viol_evt
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI io capability response event structure
|
||
struct hci_io_cap_rsp_evt
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///IO capability
|
||
uint8_t io_capa;
|
||
///OOB data present
|
||
uint8_t oob_data_pres;
|
||
///Authentication requirements
|
||
uint8_t auth_req;
|
||
|
||
};
|
||
|
||
/// HCI IO capability response event structure
|
||
struct hci_io_cap_req_evt
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
};
|
||
|
||
/// HCI Return link keys event structure
|
||
struct hci_return_link_keys_evt
|
||
{
|
||
///Number of Keys
|
||
uint8_t num_keys;
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Key
|
||
struct ltk key;
|
||
};
|
||
|
||
/// HCI pin code request event structure
|
||
struct hci_pin_code_req_evt
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
};
|
||
|
||
/// HCI user passkey request event structure
|
||
struct hci_user_passkey_req_evt
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
};
|
||
|
||
/// HCI user passkey notification event structure
|
||
struct hci_user_passkey_notif_evt
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Passkey
|
||
uint32_t passkey;
|
||
};
|
||
|
||
/// HCI remote OOB data request event structure
|
||
struct hci_rem_oob_data_req_evt
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
};
|
||
|
||
/// HCI user confirmation request event structure
|
||
struct hci_user_cfm_req_evt
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Passkey
|
||
uint32_t passkey;
|
||
};
|
||
|
||
/// HCI keypress notification event structure
|
||
struct hci_keypress_notif_evt
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///type
|
||
uint8_t type;
|
||
};
|
||
|
||
/// HCI link key notification event structure
|
||
struct hci_lk_notif_evt
|
||
{
|
||
///BdAddr
|
||
struct bd_addr bd_addr;
|
||
///Key
|
||
struct ltk key;
|
||
///type
|
||
uint8_t key_type;
|
||
};
|
||
|
||
|
||
/*
|
||
* HCI LE META EVENTS PARAMETERS
|
||
****************************************************************************************
|
||
*/
|
||
|
||
|
||
// LE event structures
|
||
|
||
/// HCI command complete event structure for the Read Local Supported Features
|
||
struct hci_le_rd_local_supp_feats_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Local LE supported features
|
||
struct le_features feats;
|
||
};
|
||
|
||
/// HCI command complete event structure for the Read Advertising Channel Tx Power Command
|
||
struct hci_rd_adv_chnl_tx_pw_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Advertising channel Tx power level
|
||
int8_t adv_tx_pw_lvl;
|
||
};
|
||
|
||
///HCI command complete event structure for the Read White List Size Command
|
||
struct hci_le_rd_wlst_size_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///White List size
|
||
uint8_t wlst_size;
|
||
};
|
||
|
||
///HCI command complete event structure for the Read Buffer Size Command
|
||
struct hci_le_rd_buff_size_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///ACL data packet length that can be sent from host to controller
|
||
uint16_t hc_data_pk_len;
|
||
///Total number of ACL data packets that can be sent from host to controller.
|
||
uint8_t hc_tot_nb_data_pkts;
|
||
};
|
||
|
||
///HCI command complete event structure for LE Rand Command
|
||
struct hci_le_rand_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Random number
|
||
struct rand_nb nb;
|
||
};
|
||
|
||
///HCI command complete event structure for Read Supported States Command
|
||
struct hci_rd_supp_states_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///LE supported states response
|
||
struct le_states states;
|
||
};
|
||
|
||
///HCI command complete event structure for Read Transmit Power Command
|
||
struct hci_rd_tx_pwr_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
/// Minimum transmit power
|
||
uint8_t min_tx_pwr;
|
||
/// Maximum transmit power
|
||
uint8_t max_tx_pwr;
|
||
};
|
||
|
||
///HCI command complete event structure for Test End
|
||
struct hci_test_end_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Number of RX packets - null if TX test was the ended one
|
||
uint16_t nb_packet_received;
|
||
};
|
||
|
||
///HCI LE Encrypt complete event structure
|
||
struct hci_le_enc_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Encrypted data to return to command source.
|
||
uint8_t encrypted_data[ENC_DATA_LEN];
|
||
};
|
||
|
||
#if BLE_EMB_PRESENT || BLE_HOST_PRESENT
|
||
///HCI LE advertising report event structure
|
||
struct hci_le_adv_report_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Number of advertising reports in this event
|
||
uint8_t nb_reports;
|
||
///Advertising reports structures array
|
||
struct adv_report adv_rep[BLE_ADV_REPORTS_MAX];
|
||
};
|
||
|
||
///HCI LE extended advertising report event structure
|
||
struct hci_le_ext_adv_report_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Number of advertising reports in this event
|
||
uint8_t nb_reports;
|
||
///Paramaters for each report
|
||
struct ext_adv_report adv_rep[BLE_ADV_REPORTS_MAX];
|
||
};
|
||
|
||
///HCI LE periodic advertising sync established event structure
|
||
struct hci_le_per_adv_sync_est_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
/// Status of the advertising sync
|
||
uint8_t status;
|
||
/// Sync Handle to be used
|
||
uint16_t sync_handle;
|
||
/// Advertising SID
|
||
uint8_t adv_sid;
|
||
///Advertising address type: public/random
|
||
uint8_t adv_addr_type;
|
||
///Advertising address value
|
||
struct bd_addr adv_addr;
|
||
/// Advertiser PHY
|
||
uint8_t phy;
|
||
/// Advertising interval (Time=N*1.25ms)
|
||
uint16_t interval;
|
||
/// Advertiser clock accuracy
|
||
uint8_t adv_ca;
|
||
};
|
||
|
||
///HCI LE periodic advertising report event structure
|
||
struct hci_le_per_adv_report_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
/// Sync Handle to be used
|
||
uint16_t sync_handle;
|
||
/// Tx Power
|
||
uint8_t tx_power;
|
||
/// RSSI
|
||
uint8_t rssi;
|
||
/// Data Status
|
||
uint8_t status;
|
||
///Data length in advertising packet
|
||
uint8_t data_len;
|
||
///Data of advertising packet
|
||
uint8_t data[PER_ADV_DATA_MAX_LEN];
|
||
///Unused
|
||
uint8_t unused;
|
||
};
|
||
|
||
///HCI LE periodic advertising sync lost event structure
|
||
struct hci_le_per_adv_sync_lost_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
/// Sync Handle to be used
|
||
uint16_t sync_handle;
|
||
};
|
||
|
||
///HCI LE scan timeout event structure
|
||
struct hci_le_scan_timeout_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
};
|
||
|
||
#endif //BLE_EMB_PRESENT || BLE_HOST_PRESENT
|
||
|
||
/// HCI command complete event structure for Read Channel Map Command
|
||
struct hci_le_rd_chnl_map_cmd_cmp_evt
|
||
{
|
||
///Status of command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Channel map
|
||
struct le_chnl_map ch_map;
|
||
};
|
||
|
||
/// HCI command complete event structure for Long Term Key Request Reply Command
|
||
struct hci_le_ltk_req_reply_cmd_cmp_evt
|
||
{
|
||
///Status of command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI command complete event structure for Long Term Key Request Negative Reply Command
|
||
struct hci_le_ltk_req_neg_reply_cmd_cmp_evt
|
||
{
|
||
///Status of command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI command complete event structure for LE Read Suggested Default Data Length Command
|
||
struct hci_le_rd_suggted_dft_data_len_cmd_cmp_evt
|
||
{
|
||
///Status of command reception
|
||
uint8_t status;
|
||
///Host's suggested value for the Controller's maximum transmitted number of payload octets
|
||
uint16_t suggted_max_tx_octets;
|
||
///Host's suggested value for the Controller's maximum packet transmission time
|
||
uint16_t suggted_max_tx_time;
|
||
};
|
||
/// HCI command complete event structure for LE Read Maximum Data Length Command
|
||
struct hci_le_rd_max_data_len_cmd_cmp_evt
|
||
{
|
||
///Status of command reception
|
||
uint8_t status;
|
||
///Maximum number of payload octets that the local Controller supports for transmission
|
||
uint16_t suppted_max_tx_octets;
|
||
///Maximum time, in microseconds, that the local Controller supports for transmission
|
||
uint16_t suppted_max_tx_time;
|
||
///Maximum number of payload octets that the local Controller supports for reception
|
||
uint16_t suppted_max_rx_octets;
|
||
///Maximum time, in microseconds, that the local Controller supports for reception
|
||
uint16_t suppted_max_rx_time;
|
||
};
|
||
|
||
/// HCI LE Read Peer Resolvable Address Command Complete Event
|
||
struct hci_le_rd_peer_rslv_addr_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
/// Peer Resolvable Address
|
||
struct bd_addr peer_rslv_addr;
|
||
};
|
||
|
||
/// HCI LE Read Local Resolvable Address Command Complete Event
|
||
struct hci_le_rd_loc_rslv_addr_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
/// Local Resolvable Address
|
||
struct bd_addr loc_rslv_addr;
|
||
};
|
||
|
||
/// HCI LE Read Resolving List Size Command Complete Event
|
||
struct hci_le_rd_rslv_list_size_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
/// Resolving List Size
|
||
uint8_t size;
|
||
};
|
||
|
||
|
||
/// HCI write authenticated payload timeout command
|
||
struct hci_wr_auth_payl_to_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Authenticated payload timeout (N*10ms)
|
||
uint16_t auth_payl_to;
|
||
};
|
||
|
||
/// HCI command complete event structure for the Write Authenticated Payload Timeout Command
|
||
struct hci_wr_auth_payl_to_cmd_cmp_evt
|
||
{
|
||
/// Status of the command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI command complete event structure for HCI LE Connection Update Command
|
||
struct hci_le_con_update_cmp_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Status of received command
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Connection interval value
|
||
uint16_t con_interval;
|
||
///Connection latency value
|
||
uint16_t con_latency;
|
||
///Supervision timeout
|
||
uint16_t sup_to;
|
||
};
|
||
|
||
/// HCI command complete event structure for create connection
|
||
struct hci_le_con_cmp_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Status of received command
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Device role - 0=Master/ 1=Slave
|
||
uint8_t role;
|
||
///Peer address type - 0=public/1=random
|
||
uint8_t peer_addr_type;
|
||
///Peer address
|
||
struct bd_addr peer_addr;
|
||
///Connection interval
|
||
uint16_t con_interval;
|
||
///Connection latency
|
||
uint16_t con_latency;
|
||
///Link supervision timeout
|
||
uint16_t sup_to;
|
||
///Master clock accuracy
|
||
uint8_t clk_accuracy;
|
||
};
|
||
|
||
/// HCI LE read remote used feature command parameters structure
|
||
struct hci_le_rd_rem_feats_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI command complete event structure for HCI LE read remote feature Command
|
||
struct hci_le_rd_rem_feats_cmd_cmp_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Status of received command
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Le Features
|
||
struct le_features le_feats;
|
||
};
|
||
|
||
/// HCI command structure for the read transmit power level command
|
||
struct hci_rd_tx_pwr_lvl_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Power Level type: current or maximum
|
||
uint8_t type;
|
||
};
|
||
|
||
/// HCI command complete event structure for the read transmit power level command
|
||
struct hci_rd_tx_pwr_lvl_cmd_cmp_evt
|
||
{
|
||
///Status for command reception
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Value of TX power level
|
||
uint8_t tx_pow_lvl;
|
||
};
|
||
|
||
/// HCI read remote information version command parameters structure
|
||
struct hci_rd_rem_ver_info_cmd
|
||
{
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI LE remote connection parameter request event
|
||
struct hci_le_rem_con_param_req_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Interval_Min
|
||
uint16_t interval_min;
|
||
///Interval_Max
|
||
uint16_t interval_max;
|
||
///Latency
|
||
uint16_t latency;
|
||
///Timeout
|
||
uint16_t timeout;
|
||
};
|
||
|
||
|
||
/// HCI command complete event structure for enhance create connection
|
||
struct hci_le_enh_con_cmp_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Status of received command
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Device role - 0=Master/ 1=Slave
|
||
uint8_t role;
|
||
///Peer address type - 0=public/1=random
|
||
uint8_t peer_addr_type;
|
||
///Peer address
|
||
struct bd_addr peer_addr;
|
||
///Local Resolvable Private Address
|
||
struct bd_addr loc_rslv_priv_addr;
|
||
///Peer Resolvable Private Address
|
||
struct bd_addr peer_rslv_priv_addr;
|
||
///Connection interval
|
||
uint16_t con_interval;
|
||
///Connection latency
|
||
uint16_t con_latency;
|
||
///Link supervision timeout
|
||
uint16_t sup_to;
|
||
///Master clock accuracy
|
||
uint8_t clk_accuracy;
|
||
};
|
||
|
||
|
||
struct hci_generate_dhkey_cmp_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Status of received command
|
||
uint8_t status;
|
||
/// The 32 byte Diffie Helman Key
|
||
uint8_t dh_key[32];
|
||
};
|
||
|
||
|
||
struct hci_rd_local_p256_public_key_cmp_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Status of received command
|
||
uint8_t status;
|
||
/// The 32 byte Diffie Helman Key
|
||
uint8_t public_key[64];
|
||
|
||
};
|
||
|
||
#if BLE_EMB_PRESENT || BLE_HOST_PRESENT
|
||
/// HCI LE Direct Advertising Report Event
|
||
struct hci_le_dir_adv_rep_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Number of reports
|
||
uint8_t nb_reports;
|
||
///Direct Advertising reports structures array
|
||
struct dir_adv_report adv_rep[BLE_ADV_REPORTS_MAX];
|
||
};
|
||
#endif //BLE_EMB_PRESENT || BLE_HOST_PRESENT
|
||
|
||
/// HCI command complete event structure for HCI LE read remote used feature Command
|
||
struct hci_le_ltk_request_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///Random number
|
||
struct rand_nb rand;
|
||
///Encryption diversifier
|
||
uint16_t ediv;
|
||
};
|
||
|
||
/// HCI LE META event LE Data Length Change Event
|
||
struct hci_le_data_len_chg_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///The maximum number of payload octets in TX
|
||
uint16_t max_tx_octets;
|
||
///The maximum time that the local Controller will take to TX
|
||
uint16_t max_tx_time;
|
||
///The maximum number of payload octets in RX
|
||
uint16_t max_rx_octets;
|
||
///The maximum time that the local Controller will take to RX
|
||
uint16_t max_rx_time;
|
||
};
|
||
|
||
|
||
/// HCI Synchronization Train Received Event
|
||
struct hci_sync_train_rec_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// BD_ADDR
|
||
struct bd_addr bd_addr;
|
||
/// Clock_Offset (28 bits) - (CLKNslave - CLK) modulo 2^28
|
||
uint32_t clock_offset;
|
||
/// AFH_Channel_Map
|
||
struct chnl_map afh_ch_map;
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
/// Next_Broadcast_Instant (28 bits)
|
||
uint32_t next_bcst_instant;
|
||
/// Connectionless_Slave_Broadcast_Interval (in slots)
|
||
uint16_t csb_int;
|
||
/// Service_Data
|
||
uint8_t service_data;
|
||
};
|
||
|
||
/// HCI Connectionless Slave Broadcast Receive Event
|
||
struct hci_con_slv_bcst_rec_evt
|
||
{
|
||
/// BD_ADDR
|
||
struct bd_addr bd_addr;
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
/// CLK (28 bits)
|
||
uint32_t clk;
|
||
/// Offset (28 bits) - (CLKNslave - CLK) modulo 2^28
|
||
uint32_t offset;
|
||
/// Receive Status
|
||
uint8_t receive_status;
|
||
/// Fragment
|
||
uint8_t fragment;
|
||
/// Data_Length (in bytes)
|
||
uint8_t data_length;
|
||
/// Data
|
||
uint8_t data[__ARRAY_EMPTY];
|
||
};
|
||
|
||
/// HCI Connectionless Slave Broadcast Timeout Event
|
||
struct hci_con_slv_bcst_to_evt
|
||
{
|
||
/// BD_ADDR
|
||
struct bd_addr bd_addr;
|
||
/// LT_ADDR
|
||
uint8_t lt_addr;
|
||
};
|
||
|
||
/// HCI Connectionless Slave Broadcast Channel Map Change Event
|
||
struct hci_con_slv_bcst_ch_map_chg_evt
|
||
{
|
||
/// Channel_Map
|
||
struct chnl_map ch_map;
|
||
};
|
||
|
||
|
||
struct hci_le_generate_dhkey_cmp_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
uint8_t status;
|
||
uint8_t dh_key[32];
|
||
};
|
||
|
||
struct hci_le_generate_p256_public_key_cmp_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
uint8_t status;
|
||
t_public_key public_key;
|
||
};
|
||
|
||
/*
|
||
* HCI VENDOR SPECIFIC COMMANDS PARAMETERS
|
||
****************************************************************************************
|
||
*/
|
||
|
||
/// Buffer structure
|
||
struct buffer_tag
|
||
{
|
||
/// length of buffer
|
||
uint8_t length;
|
||
/// data of 128 bytes length
|
||
uint8_t data[128];
|
||
};
|
||
|
||
/// Common structure for Command Complete Event of HCI Debug Read Memory/Flash/Param complete event parameters - vendor specific
|
||
struct hci_dbg_basic_rd_data_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
///buffer structure to return
|
||
struct buffer_tag buf;
|
||
};
|
||
|
||
///HCI Debug read memory variable command parameters - vendor specific
|
||
struct hci_dbg_rd_mem_cmd
|
||
{
|
||
///Start address to read
|
||
uint32_t start_addr;
|
||
///Access size
|
||
uint8_t type;
|
||
///Length to read
|
||
uint8_t length;
|
||
};
|
||
|
||
///HCI Debug write memory variable command parameters - vendor specific
|
||
struct hci_dbg_wr_mem_cmd
|
||
{
|
||
///Start address to read
|
||
uint32_t start_addr;
|
||
///Access size
|
||
uint8_t type;
|
||
///buffer structure to return
|
||
struct buffer_tag buf;
|
||
};
|
||
|
||
///HCI Debug delete parameter command parameters - vendor specific
|
||
struct hci_dbg_del_param_cmd
|
||
{
|
||
///Parameter tag
|
||
uint16_t param_tag;
|
||
};
|
||
|
||
///HCI Debug erase flash command parameters - vendor specific
|
||
struct hci_dbg_er_flash_cmd
|
||
{
|
||
///Flash type
|
||
uint8_t flashtype;
|
||
///Start offset address
|
||
uint32_t startoffset;
|
||
///Size to erase
|
||
uint32_t size;
|
||
};
|
||
|
||
///HCI Debug write flash command parameters - vendor specific
|
||
struct hci_dbg_wr_flash_cmd
|
||
{
|
||
///Flash type
|
||
uint8_t flashtype;
|
||
///Start offset address
|
||
uint32_t startoffset;
|
||
///buffer structure
|
||
struct buffer_tag buf;
|
||
};
|
||
|
||
///HCI Debug read flash command parameters - vendor specific
|
||
struct hci_dbg_rd_flash_cmd
|
||
{
|
||
///Flash type
|
||
uint8_t flashtype;
|
||
///Start offset address
|
||
uint32_t startoffset;
|
||
///Size to read
|
||
uint8_t size;
|
||
};
|
||
|
||
///HCI Debug read parameter command parameters - vendor specific
|
||
struct hci_dbg_rd_par_cmd
|
||
{
|
||
///Parameter tag
|
||
uint16_t param_tag;
|
||
};
|
||
|
||
///HCI Debug read parameters command parameters - vendor specific
|
||
struct hci_dbg_wr_par_cmd
|
||
{
|
||
///Parameter tag
|
||
uint16_t param_tag;
|
||
///Structure buffer
|
||
struct buffer_tag buf;
|
||
};
|
||
|
||
#if CRYPTO_UT
|
||
struct hci_dbg_test_crypto_func_cmd
|
||
{
|
||
/// Id of Function to be tested
|
||
uint8_t function;
|
||
/// Structure buffer
|
||
struct buffer_tag buf;
|
||
};
|
||
#endif //CRYPTO_UT
|
||
|
||
///HCI Debug Read Kernel Statistics complete event parameters - vendor specific
|
||
struct hci_dbg_rd_ke_stats_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
///Max message sent
|
||
uint8_t max_msg_sent;
|
||
///Max message saved
|
||
uint8_t max_msg_saved;
|
||
///Max timer used
|
||
uint8_t max_timer_used;
|
||
///Max heap used
|
||
uint16_t max_heap_used;
|
||
///Max stack used
|
||
uint16_t max_stack_used;
|
||
};
|
||
|
||
|
||
/// HCI Debug Read information about memory usage. - vendor specific
|
||
struct hci_dbg_rd_mem_info_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
/// memory size currently used into each heaps.
|
||
uint16_t mem_used[KE_MEM_BLOCK_MAX];
|
||
/// peak of memory usage measured
|
||
uint32_t max_mem_used;
|
||
};
|
||
|
||
///HCI Debug identify Flash command complete event parameters - vendor specific
|
||
struct hci_dbg_id_flash_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
///Flash identity
|
||
uint8_t flash_id;
|
||
};
|
||
|
||
///HCI Debug RF Register read command
|
||
struct hci_dbg_rf_reg_rd_cmd
|
||
{
|
||
/// register address
|
||
uint16_t addr;
|
||
};
|
||
|
||
///HCI Debug RF Register read command complete event
|
||
struct hci_dbg_rf_reg_rd_cmd_cmp_evt
|
||
{
|
||
/// status
|
||
uint8_t status;
|
||
/// register address
|
||
uint16_t addr;
|
||
/// register value
|
||
uint32_t value;
|
||
};
|
||
|
||
///HCI Debug RF Register write command
|
||
struct hci_dbg_rf_reg_wr_cmd
|
||
{
|
||
/// register address
|
||
uint16_t addr;
|
||
/// register value
|
||
uint32_t value;
|
||
};
|
||
|
||
///HCI Debug RF Register write command complete event
|
||
struct hci_dbg_rf_reg_wr_cmd_cmp_evt
|
||
{
|
||
/// status
|
||
uint8_t status;
|
||
/// address
|
||
uint16_t addr;
|
||
};
|
||
|
||
///HCI Debug platform reset command parameters - vendor specific
|
||
struct hci_dbg_plf_reset_cmd
|
||
{
|
||
/// reason
|
||
uint8_t reason;
|
||
};
|
||
|
||
#if (RW_DEBUG && BT_EMB_PRESENT)
|
||
/// Discard LMP Packets
|
||
struct hci_dbg_bt_send_lmp_cmd
|
||
{
|
||
/// Connection handle
|
||
uint16_t conhdl;
|
||
///buffer structure to return
|
||
struct buffer_tag buf;
|
||
};
|
||
|
||
/// Discard LMP Packets
|
||
struct hci_dbg_bt_discard_lmp_en_cmd
|
||
{
|
||
/// Connection handle
|
||
uint16_t conhdl;
|
||
/// Enable/Disable LMP discard (0: disable / 1: enable)
|
||
uint8_t enable;
|
||
};
|
||
#endif //(RW_DEBUG && BT_EMB_PRESENT)
|
||
|
||
#if (RW_WLAN_COEX)
|
||
///HCI Debug wlan coexistence command parameters - vendor specific
|
||
struct hci_dbg_wlan_coex_cmd
|
||
{
|
||
/// State
|
||
uint8_t state;
|
||
};
|
||
#if (RW_WLAN_COEX_TEST)
|
||
///HCI Debug wlan coexistence test scenario command parameters - vendor specific
|
||
struct hci_dbg_wlan_coextst_scen_cmd
|
||
{
|
||
/// Scenario
|
||
uint32_t scenario;
|
||
};
|
||
#endif //RW_WLAN_COEX_TEST
|
||
#endif //RW_WLAN_COEX
|
||
|
||
#if (RW_MWS_COEX)
|
||
///HCI Debug mws coexistence command parameters - vendor specific
|
||
struct hci_dbg_mws_coex_cmd
|
||
{
|
||
/// State
|
||
uint8_t state;
|
||
};
|
||
#if (RW_MWS_COEX_TEST)
|
||
///HCI Debug mws coexistence test scenario command parameters - vendor specific
|
||
struct hci_dbg_mws_coextst_scen_cmd
|
||
{
|
||
/// Scenario
|
||
uint32_t scenario;
|
||
};
|
||
#endif //RW_MWS_COEX_TEST
|
||
#endif //RW_MWS_COEX
|
||
|
||
///HCI Debug HW Register Read command parameters - vendor specific
|
||
struct hci_dbg_hw_reg_rd_cmd
|
||
{
|
||
/// register address
|
||
uint16_t reg_addr;
|
||
};
|
||
|
||
///HCI Debug HW Register write command parameters - vendor specific
|
||
struct hci_dbg_hw_reg_wr_cmd
|
||
{
|
||
/// register address
|
||
uint16_t reg_addr;
|
||
/// extra parameter
|
||
uint16_t reserved;
|
||
/// register value
|
||
uint32_t reg_value;
|
||
};
|
||
|
||
///HCI Debug HW Register Read Complete event parameters - vendor specific
|
||
struct hci_dbg_hw_reg_rd_cmd_cmp_evt
|
||
{
|
||
/// status
|
||
uint8_t status;
|
||
/// register address
|
||
uint16_t reg_addr;
|
||
/// register value
|
||
uint32_t reg_value;
|
||
};
|
||
|
||
///HCI Debug HW Register Write Complete event parameters - vendor specific
|
||
struct hci_dbg_hw_reg_wr_cmd_cmp_evt
|
||
{
|
||
/// status
|
||
uint8_t status;
|
||
/// register address
|
||
uint16_t reg_addr;
|
||
};
|
||
|
||
///HCI Debug write DLE default value command parameters - vendor specific
|
||
struct hci_dbg_wr_dle_dft_value_cmd
|
||
{
|
||
/// Max transmit packet size supported
|
||
uint16_t suppted_max_tx_octets;
|
||
/// Max transmit packet time supported
|
||
uint16_t suppted_max_tx_time;
|
||
/// Max receive packet size supported
|
||
uint16_t suppted_max_rx_octets;
|
||
/// Max receive packet time supported
|
||
uint16_t suppted_max_rx_time;
|
||
|
||
};
|
||
|
||
#if (BLE_EMB_PRESENT || BLE_HOST_PRESENT)
|
||
///HCI Debug bd address write command parameters - vendor specific
|
||
struct hci_dbg_set_bd_addr_cmd
|
||
{
|
||
///bd address to set
|
||
struct bd_addr addr;
|
||
};
|
||
|
||
///HCI Debug crc write command parameters - vendor specific
|
||
struct hci_dbg_set_crc_cmd
|
||
{
|
||
/// Handle pointing to the connection for which CRC has to be modified
|
||
uint16_t conhdl;
|
||
/// CRC to set
|
||
struct crc_init crc;
|
||
};
|
||
|
||
///HCI Debug LLC discard command parameters - vendor specific
|
||
struct hci_dbg_llcp_discard_cmd
|
||
{
|
||
/// Handle pointing to the connection for which LLCP commands have to be discarded
|
||
uint16_t conhdl;
|
||
/// Flag indicating if the discarding has to be enabled or disabled
|
||
uint8_t enable;
|
||
};
|
||
|
||
///HCI Debug reset RX counter command parameters - vendor specific
|
||
struct hci_dbg_reset_rx_cnt_cmd
|
||
{
|
||
/// Handle pointing to the connection for which the counter have to be reseted
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
///HCI Debug reset TX counter command parameters - vendor specific
|
||
struct hci_dbg_reset_tx_cnt_cmd
|
||
{
|
||
/// Handle pointing to the connection for which the counter have to be reseted
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
///HCI Debug Set TX Power Level Command parameters
|
||
struct hci_dbg_set_tx_pw_cmd
|
||
{
|
||
/// Connection handle
|
||
uint16_t conhdl;
|
||
/// Power level
|
||
uint8_t pw_lvl;
|
||
};
|
||
|
||
///HCI Debug configure audio command parameters - vendor specific
|
||
|
||
struct hci_dbg_audio_configure_audio_cmd
|
||
{
|
||
/// Voice channel to be updated
|
||
uint8_t voice_channel;
|
||
/// Configure transmitter size in bytes
|
||
uint8_t tx_size;
|
||
/// Configure receiver size in bytes
|
||
uint8_t rx_size;
|
||
/// Configure transmitter rate
|
||
uint8_t tx_rate;
|
||
/// Configure receiver rate
|
||
uint8_t rx_rate;
|
||
/// Configure number of retransmission
|
||
uint8_t nb_retx;
|
||
/// Audio link priority
|
||
uint8_t priority;
|
||
/// Encryption mode
|
||
uint8_t mode;
|
||
/// Channel and mute configuration (@see enum audio_cfg)
|
||
uint8_t chan_mute_cfg;
|
||
/// Mute Pattern
|
||
uint8_t mute_pattern;
|
||
};
|
||
|
||
struct hci_dbg_audio_set_pointer_cmd
|
||
{
|
||
/// Voice channel to be updated
|
||
uint8_t voice_channel;
|
||
/// Rx or Tx selection
|
||
uint8_t rx_tx_select;
|
||
/// Tog to be updated
|
||
uint8_t tog;
|
||
/// Exchange memory pointer
|
||
uint16_t em_ptr;
|
||
};
|
||
///HCI Debug set audio mode command parameters - vendor specific
|
||
struct hci_audio_set_mode_cmd
|
||
{
|
||
/// Voice channel to be updated
|
||
uint8_t voice_channel;
|
||
/// Mode
|
||
uint8_t mode;
|
||
};
|
||
|
||
///HCI Debug set audio mode command parameters - vendor specific
|
||
struct hci_dbg_audio_reset_cmd
|
||
{
|
||
/// Voice channel to be updated
|
||
uint8_t voice_channel;
|
||
};
|
||
|
||
///HCI Debug set audio mode command parameters - vendor specific
|
||
struct hci_dbg_audio_allocate_cmd
|
||
{
|
||
/// Connection handle
|
||
uint16_t conhdl;
|
||
/// Audio mode
|
||
uint8_t mode;
|
||
};
|
||
|
||
///HCI Debug set audio mode command parameters - vendor specific
|
||
struct hci_dbg_audio_get_vx_ch_cmd
|
||
{
|
||
/// Connection handle
|
||
uint16_t conhdl;
|
||
};
|
||
///HCI Tester set LE parameters
|
||
struct hci_tester_set_le_params_cmd
|
||
{
|
||
/// Connection handle
|
||
uint16_t conhdl;
|
||
/// Tester features
|
||
uint8_t tester_feats;
|
||
/// Preferred periodicity
|
||
uint8_t pref_period;
|
||
/// Offset0
|
||
uint16_t offset0;
|
||
/// Offset1
|
||
uint16_t offset1;
|
||
/// Offset2
|
||
uint16_t offset2;
|
||
/// Offset3
|
||
uint16_t offset3;
|
||
/// Offset4
|
||
uint16_t offset4;
|
||
/// Offset5
|
||
uint16_t offset5;
|
||
};
|
||
|
||
/// HCI BLE Tester: enable LLCP pass through mechanism
|
||
struct hci_dbg_ble_tst_llcp_pt_en_cmd
|
||
{
|
||
/// Connection handle
|
||
uint16_t conhdl;
|
||
/// Enable or not LLCP pass through mechanism
|
||
uint8_t enable;
|
||
};
|
||
|
||
/// HCI BLE Tester: send an LLCP PDU
|
||
struct hci_dbg_ble_tst_send_llcp_cmd
|
||
{
|
||
/// Connection handle
|
||
uint16_t conhdl;
|
||
/// length of LLCP PDU
|
||
uint8_t length;
|
||
/// LLCP PDU data
|
||
uint8_t data[26];
|
||
};
|
||
|
||
|
||
/// HCI DBG Meta Event trigg when LLCP message received with LLCP pass through mechanism
|
||
struct hci_dbg_ble_tst_llcp_recv_evt
|
||
{
|
||
///DBG Subevent code
|
||
uint8_t subcode;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
/// length of LLCP message
|
||
uint8_t length;
|
||
/// LLCP data
|
||
uint8_t data[26];
|
||
};
|
||
|
||
#endif //BLE_EMB_PRESENT || BLE_HOST_PRESENT
|
||
|
||
#if (RW_DEBUG)
|
||
/// HCI DBG Meta Event indicating a SW assertion error
|
||
struct hci_dbg_assert_err_evt
|
||
{
|
||
///DBG Subevent code
|
||
uint8_t subcode;
|
||
/// Line number
|
||
uint32_t line;
|
||
/// Param0
|
||
uint32_t param0;
|
||
/// Param1
|
||
uint32_t param1;
|
||
/// File name
|
||
uint8_t file[__ARRAY_EMPTY];
|
||
};
|
||
#endif //(RW_DEBUG)
|
||
|
||
/// HCI LE Read PHY command
|
||
struct hci_le_rd_phy_cmd
|
||
{
|
||
/// Connection Handle
|
||
uint16_t conhdl;
|
||
};
|
||
|
||
/// HCI LE Set Default PHY Command
|
||
struct hci_le_set_dft_phy_cmd
|
||
{
|
||
/// Preferred PHYS selection
|
||
uint8_t all_phys;
|
||
/// Preferred PHYS for TX
|
||
uint8_t tx_phys;
|
||
/// Preferred PHYS for RX
|
||
uint8_t rx_phys;
|
||
};
|
||
|
||
/// HCI LE Set PHY Command
|
||
struct hci_le_set_phy_cmd
|
||
{
|
||
/// Connection Handle
|
||
uint16_t conhdl;
|
||
/// Preferred PHYS selection
|
||
uint8_t all_phys;
|
||
/// Preferred PHYS for TX
|
||
uint8_t tx_phys;
|
||
/// Preferred PHYS for RX
|
||
uint8_t rx_phys;
|
||
/// PHY options
|
||
uint16_t phy_opt;
|
||
};
|
||
|
||
/// HCI LE Set Extended Advertising Parameters Command Complete Event
|
||
struct hci_le_set_ext_adv_param_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// Selected Tx power
|
||
uint8_t sel_tx_pwr;
|
||
};
|
||
|
||
/// HCI LE Enhanced Receiver Test Command
|
||
struct hci_le_enh_rx_test_cmd
|
||
{
|
||
/// Reception channel value
|
||
uint8_t channel;
|
||
/// Reception PHY rate
|
||
uint8_t phys;
|
||
/// Modulation index
|
||
uint8_t modulation_idx;
|
||
};
|
||
|
||
/// HCI LE Enhanced Transmitter Test Command
|
||
struct hci_le_enh_tx_test_cmd
|
||
{
|
||
/// Transmit channel value
|
||
uint8_t channel;
|
||
/// Length of the data to be transmitted in a packet
|
||
uint8_t payload_length;
|
||
/// Type of the data contained in a packet
|
||
uint8_t payload_type;
|
||
/// Transmit PHY rate
|
||
uint8_t phys;
|
||
};
|
||
|
||
///HCI LE Set Advertising Set Random Address Command parameters structure
|
||
struct hci_le_set_adv_set_rand_addr_cmd
|
||
{
|
||
/// Advertising handle
|
||
uint8_t adv_hdl;
|
||
/// Advertising random address
|
||
struct bd_addr rand_addr;
|
||
};
|
||
|
||
///HCI LE Set Extended Advertising Parameters Command parameters structure
|
||
struct hci_le_set_ext_adv_param_cmd
|
||
{
|
||
/// Advertising handle
|
||
uint8_t adv_hdl;
|
||
/// Advertising event properties
|
||
uint16_t adv_evt_properties;
|
||
/// Primary advertising minimum interval
|
||
uint8_t prim_adv_intv_min[3];
|
||
/// Primary advertising maximum interval
|
||
uint8_t prim_adv_intv_max[3];
|
||
/// Primary advertising channel map
|
||
uint8_t prim_adv_chnl_map;
|
||
/// Own address type: public=0 / random=1 / rpa_or_pub=2 / rpa_or_rnd=3
|
||
uint8_t own_addr_type;
|
||
/// Peer address type: public=0 / random=1
|
||
uint8_t peer_addr_type;
|
||
/// Peer Bluetooth device address
|
||
struct bd_addr peer_addr;
|
||
/// Advertising filter policy
|
||
uint8_t adv_filt_policy;
|
||
/// Advertising Tx power
|
||
int8_t adv_tx_pwr;
|
||
/// Primary advertising PHY
|
||
uint8_t prim_adv_phy;
|
||
/// Secondary advertising max skip
|
||
uint8_t sec_adv_max_skip;
|
||
/// Secondary advertising PHY
|
||
uint8_t sec_adv_phy;
|
||
/// Advertising SID
|
||
uint8_t adv_sid;
|
||
/// Scan request notification enable
|
||
uint8_t scan_req_notif_en;
|
||
};
|
||
|
||
///HCI LE Set Extended Advertising Data Command parameters structure
|
||
struct hci_le_set_ext_adv_data_cmd
|
||
{
|
||
/// Advertising handle
|
||
uint8_t adv_hdl;
|
||
/**
|
||
* Operation
|
||
* 0x00 Intermediate fragment of fragmented extended advertising data
|
||
* 0x01 First fragment of fragmented extended advertising data
|
||
* 0x02 Last fragment of fragmented extended advertising data
|
||
* 0x03 Complete extended advertising data
|
||
* 0x04 [ID7300_r06] Unchanged data (just update the Advertising DID)
|
||
* All other values Reserved for future use
|
||
*/
|
||
uint8_t operation;
|
||
/**
|
||
* Fragment preference
|
||
* 0x00 The Controller may fragment all Host advertising data
|
||
* 0x01 The Controller should not fragment nor minimize fragmentation of Host advertising data
|
||
* All other values Reserved for future use
|
||
*/
|
||
uint8_t frag_pref;
|
||
/// Advertising Data Length (0-252 bytes)
|
||
uint8_t data_len;
|
||
/// Advertising data
|
||
uint8_t data[__ARRAY_EMPTY];
|
||
};
|
||
|
||
///HCI LE Set Extended Scan Response Data Command parameters structure
|
||
struct hci_le_set_ext_scan_rsp_data_cmd
|
||
{
|
||
/// Advertising handle
|
||
uint8_t adv_hdl;
|
||
/**
|
||
* Operation
|
||
* 0x00 Intermediate fragment of fragmented extended advertising data
|
||
* 0x01 First fragment of fragmented extended advertising data
|
||
* 0x02 Last fragment of fragmented extended advertising data
|
||
* 0x03 Complete extended advertising data
|
||
* 0x04 [ID7300_r06] Unchanged data (just update the Advertising DID)
|
||
* All other values Reserved for future use
|
||
*/
|
||
uint8_t operation;
|
||
/**
|
||
* Fragment preference
|
||
* 0x00 The Controller may fragment all Host advertising data
|
||
* 0x01 The Controller should not fragment nor minimize fragmentation of Host advertising data
|
||
* All other values Reserved for future use
|
||
*/
|
||
uint8_t frag_pref;
|
||
/// Scan Response Data Length (0-252 bytes)
|
||
uint8_t data_len;
|
||
/// Advertising data
|
||
uint8_t data[__ARRAY_EMPTY];
|
||
};
|
||
|
||
///HCI LE Set Extended Advertising Enbale Command parameters structure
|
||
struct hci_le_set_ext_adv_en_cmd
|
||
{
|
||
/// Enable
|
||
uint8_t enable;
|
||
/// Number of sets (1 - 0x3F)
|
||
uint8_t nb_sets;
|
||
/// Advertising handle
|
||
uint8_t adv_hdl[BLE_ACTIVITY_MAX];
|
||
/// Duration (N * 10 ms), 0x0000 No advertising duration. Advertising to continue until the Host disables it.
|
||
uint16_t duration[BLE_ACTIVITY_MAX];
|
||
/// Maximum number of extended advertising events
|
||
uint8_t max_ext_adv_evt[BLE_ACTIVITY_MAX];
|
||
};
|
||
|
||
///HCI LE Read Maximum Advertising Data Length Command complete event
|
||
struct hci_le_rd_max_adv_data_len_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// Maximum advertising data length
|
||
uint16_t max_adv_data_len;
|
||
};
|
||
|
||
///HCI LE Remove Advertising Set Command parameters structure
|
||
struct hci_le_rem_adv_set_cmd
|
||
{
|
||
/// Advertising handle
|
||
uint8_t adv_hdl;
|
||
};
|
||
|
||
///HCI LE Read Number of Supported Advertising Sets Command complete event
|
||
struct hci_le_rd_nb_supp_adv_sets_cmd_cmp_evt
|
||
{
|
||
/// Status
|
||
uint8_t status;
|
||
/// Number of supported advertising sets
|
||
uint8_t nb_supp_adv_sets;
|
||
};
|
||
|
||
///HCI LE Set Periodic Advertising Parameters Command parameters structure
|
||
struct hci_le_set_per_adv_param_cmd
|
||
{
|
||
/// Advertising handle
|
||
uint8_t adv_hdl;
|
||
/// Minimum advertising interval for periodic advertising
|
||
uint16_t adv_intv_min;
|
||
/// Maximum advertising interval for periodic advertising
|
||
uint16_t adv_intv_max;
|
||
/// Advertising properties
|
||
uint16_t adv_prop;
|
||
};
|
||
|
||
///HCI LE Set Periodic Advertising Data Command parameters structure
|
||
struct hci_le_set_per_adv_data_cmd
|
||
{
|
||
/// Advertising handle
|
||
uint8_t adv_hdl;
|
||
/**
|
||
* Operation
|
||
* 0x00 Intermediate fragment of fragmented periodic advertising data
|
||
* 0x01 First fragment of fragmented periodic advertising data
|
||
* 0x02 Last fragment of fragmented periodic advertising data
|
||
* 0x03 Complete periodic advertising data
|
||
* All other values Reserved for future use
|
||
*/
|
||
uint8_t operation;
|
||
/// Advertising Data Length (0-252 bytes)
|
||
uint8_t data_len;
|
||
/// Advertising data
|
||
uint8_t data[__ARRAY_EMPTY];
|
||
};
|
||
|
||
///HCI LE Set Periodic Advertising Enable Command parameters structure
|
||
struct hci_le_set_per_adv_en_cmd
|
||
{
|
||
/// Enable
|
||
uint8_t enable;
|
||
/// Advertising handle
|
||
uint8_t adv_hdl;
|
||
};
|
||
|
||
///HCI LE Advertising Set Terminated event
|
||
struct hci_le_adv_set_term_evt
|
||
{
|
||
/// LE Subevent code
|
||
uint8_t subcode;
|
||
/// Status
|
||
uint8_t status;
|
||
/// Advertising handle
|
||
uint8_t adv_hdl;
|
||
/// Connection handle
|
||
uint16_t conhdl;
|
||
/// Num_Completed_Extended_Advertising_Events
|
||
uint8_t nb_cmp_ext_adv_evt;
|
||
};
|
||
|
||
///HCI LE Scan Request Received event
|
||
struct hci_le_scan_req_rcvd_evt
|
||
{
|
||
/// LE Subevent code
|
||
uint8_t subcode;
|
||
/// Advertising handle
|
||
uint8_t adv_hdl;
|
||
/// Scanner address type: public=0 / random=1 / rpa_or_pub=2 / rpa_or_rnd=3
|
||
uint8_t scan_addr_type;
|
||
/// Scanner address
|
||
struct bd_addr scan_addr;
|
||
};
|
||
|
||
///HCI LE Read Periodic Advertiser List Size Command complete event
|
||
struct hci_le_rd_per_adv_list_size_cmd_cmp_evt
|
||
{
|
||
///Status
|
||
uint8_t status;
|
||
/// Periodic Advertiser List Size
|
||
uint8_t size;
|
||
};
|
||
|
||
///HCI LE Channel Selection Algorithm event
|
||
struct hci_le_ch_sel_algo_evt
|
||
{
|
||
/// LE Subevent code
|
||
uint8_t subcode;
|
||
/// Connection handle
|
||
uint16_t conhdl;
|
||
/// Channel selection algorithm
|
||
uint8_t ch_sel_algo;
|
||
};
|
||
|
||
/// HCI LE read PHY Command complete event
|
||
struct hci_le_rd_phy_cmd_cmp_evt
|
||
{
|
||
///Status of received command
|
||
uint8_t status;
|
||
/// Connection Handle
|
||
uint16_t conhdl;
|
||
/// Current configured PHY for TX
|
||
uint8_t tx_phy;
|
||
/// Current configured PHY for RX
|
||
uint8_t rx_phy;
|
||
};
|
||
|
||
/// HCI command complete event structure for HCI LE PHY Update Command
|
||
struct hci_le_phy_update_cmp_evt
|
||
{
|
||
///LE Subevent code
|
||
uint8_t subcode;
|
||
///Status of received command
|
||
uint8_t status;
|
||
///Connection handle
|
||
uint16_t conhdl;
|
||
///TX phy chosen
|
||
uint8_t tx_phy;
|
||
///RX phy chosen
|
||
uint8_t rx_phy;
|
||
};
|
||
|
||
/// @} CO_BT
|
||
#endif // CO_HCI_H_
|