36 #include "hci_event.h" 39 extern uint8 hciTaskID;
40 extern uint8 hciTestTaskID;
41 extern uint8 hciGapTaskID;
42 extern uint8 hciL2capTaskID;
43 extern uint8 hciSmpTaskID;
52 #define HCI_ASSERT(condition) HAL_ASSERT(condition) 69 #define HCI_TX_PROCESS_EVENT 0x0001 70 #define HCI_TEST_UART_SEND_EVENT 0x0002 71 #define HCI_BDADDR_UPDATED_EVENT 0x4000 74 #define HCI_CTRL_TO_HOST_EVENT 0x01 75 #define HCI_HOST_TO_CTRL_CMD_EVENT 0x02 76 #define HCI_HOST_TO_CTRL_DATA_EVENT 0x03 78 #define HCI_BDADDR_LEN 6 81 #define HCI_MAX_CMD_PKT_SIZE 0xFF 82 #define HCI_MAX_DATA_PKT_SIZE 0xFFFF 85 #define HCI_DATA_MAX_DATA_LENGTH 27 93 #define HCI_CMD_MIN_LENGTH 4 101 #define HCI_EVENT_MIN_LENGTH 3 109 #define HCI_EXT_GAP_ADV_EVENT_MIN_LENGTH 9 117 #define HCI_DATA_MIN_LENGTH 5 119 #define HCI_MAX_NUM_CONNECTIONS 0x03 121 #define HCI_TX_DATA_ANY_CONNECTION 0xFF 124 #define HCI_CMD_PACKET 0x01 125 #define HCI_ACL_DATA_PACKET 0x02 126 #define HCI_SCO_DATA_PACKET 0x03 127 #define HCI_EVENT_PACKET 0x04 128 #define HCI_EXTENDED_EVENT_PACKET 0x05 129 #define HCI_EXTENDED_CMD_PACKET 0x09 133 #define HCI_PARSER_STATE_PKT_TYPE 0 134 #define HCI_CMD_PARSER_STATE_OPCODE 1 135 #define HCI_CMD_PARSER_STATE_LENGTH 2 136 #define HCI_CMD_PARSER_STATE_DATA 3 137 #define HCI_DATA_PARSER_STATE_HANDLE 4 138 #define HCI_DATA_PARSER_STATE_LENGTH 5 139 #define HCI_DATA_PARSER_STATE_DATA 6 142 #define HCI_OPCODE_CSG_LINK_LAYER 0 143 #define HCI_OPCODE_CSG_CSG_L2CAP 1 144 #define HCI_OPCODE_CSG_CSG_ATT 2 145 #define HCI_OPCODE_CSG_CSG_GATT 3 146 #define HCI_OPCODE_CSG_CSG_GAP 4 147 #define HCI_OPCODE_CSG_CSG_SM 5 148 #define HCI_OPCODE_CSG_CSG_Reserved 6 149 #define HCI_OPCODE_CSG_CSG_USER_PROFILE 7 152 #define VENDOR_SPECIFIC_OGF 0x3F 162 #define HCI_DISCONNECT 0x0406 163 #define HCI_READ_REMOTE_VERSION_INFO 0x041D 167 #define HCI_SET_EVENT_MASK 0x0C01 168 #define HCI_RESET 0x0C03 169 #define HCI_READ_TRANSMIT_POWER 0x0C2D 170 #define HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL 0x0C31 172 #define HCI_HOST_BUFFER_SIZE 0x0C33 173 #define HCI_HOST_NUM_COMPLETED_PACKETS 0x0C35 175 #define HCI_SET_EVENT_MASK_PAGE_2 0x0C63 176 #define HCI_READ_AUTH_PAYLOAD_TIMEOUT 0x0C7B 177 #define HCI_WRITE_AUTH_PAYLOAD_TIMEOUT 0x0C7C 180 #define HCI_READ_LOCAL_VERSION_INFO 0x1001 181 #define HCI_READ_LOCAL_SUPPORTED_COMMANDS 0x1002 182 #define HCI_READ_LOCAL_SUPPORTED_FEATURES 0x1003 183 #define HCI_READ_BDADDR 0x1009 186 #define HCI_READ_RSSI 0x1405 190 #define HCI_LE_SET_EVENT_MASK 0x2001 191 #define HCI_LE_READ_BUFFER_SIZE 0x2002 192 #define HCI_LE_READ_LOCAL_SUPPORTED_FEATURES 0x2003 193 #define HCI_LE_SET_RANDOM_ADDR 0x2005 195 #define HCI_LE_SET_ADV_PARAM 0x2006 196 #define HCI_LE_READ_ADV_CHANNEL_TX_POWER 0x2007 197 #define HCI_LE_SET_ADV_DATA 0x2008 198 #define HCI_LE_SET_SCAN_RSP_DATA 0x2009 199 #define HCI_LE_SET_ADV_ENABLE 0x200A 200 #define HCI_LE_SET_SCAN_PARAM 0x200B 201 #define HCI_LE_SET_SCAN_ENABLE 0x200C 202 #define HCI_LE_CREATE_CONNECTION 0x200D 203 #define HCI_LE_CREATE_CONNECTION_CANCEL 0x200E 204 #define HCI_LE_READ_WHITE_LIST_SIZE 0x200F 206 #define HCI_LE_CLEAR_WHITE_LIST 0x2010 207 #define HCI_LE_ADD_WHITE_LIST 0x2011 208 #define HCI_LE_REMOVE_WHITE_LIST 0x2012 209 #define HCI_LE_CONNECTION_UPDATE 0x2013 211 #define HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION 0x2014 213 #define HCI_LE_READ_CHANNEL_MAP 0x2015 214 #define HCI_LE_READ_REMOTE_USED_FEATURES 0x2016 215 #define HCI_LE_ENCRYPT 0x2017 216 #define HCI_LE_RAND 0x2018 217 #define HCI_LE_START_ENCRYPTION 0x2019 219 #define HCI_LE_LTK_REQ_REPLY 0x201A 220 #define HCI_LE_LTK_REQ_NEG_REPLY 0x201B 221 #define HCI_LE_READ_SUPPORTED_STATES 0x201C 223 #define HCI_LE_RECEIVER_TEST 0x201D 224 #define HCI_LE_TRANSMITTER_TEST 0x201E 225 #define HCI_LE_TEST_END 0x201F 227 #define HCI_LE_REMOTE_CONN_PARAM_REQ_REPLY 0x2020 229 #define HCI_LE_REMOTE_CONN_PARAM_REQ_NEG_REPLY 0x2021 232 #define HCI_LE_SET_DATA_LENGTH 0x2022 233 #define HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH 0x2023 234 #define HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH 0x2024 235 #define HCI_LE_READ_LOCAL_P256_PUBLIC_KEY 0x2025 237 #define HCI_LE_GENERATE_DHKEY 0x2026 238 #define HCI_LE_ADD_DEVICE_TO_RESOLVING_LIST 0x2027 240 #define HCI_LE_REMOVE_DEVICE_FROM_RESOLVING_LIST 0x2028 241 #define HCI_LE_CLEAR_RESOLVING_LIST 0x2029 242 #define HCI_LE_READ_RESOLVING_LIST_SIZE 0x202A 243 #define HCI_LE_READ_PEER_RESOLVABLE_ADDRESS 0x202B 244 #define HCI_LE_READ_LOCAL_RESOLVABLE_ADDRESS 0x202C 245 #define HCI_LE_SET_ADDRESS_RESOLUTION_ENABLE 0x202D 247 #define HCI_LE_SET_RESOLVABLE_PRIVATE_ADDRESS_TIMEOUT 0x202E 249 #define HCI_LE_READ_MAX_DATA_LENGTH 0x202F 250 #define HCI_LE_SET_PRIVACY_MODE 0x204E 252 #define HCI_LE_READ_PHY 0x2030 253 #define HCI_LE_SET_DEFAULT_PHY 0x2031 254 #define HCI_LE_SET_PHY 0x2032 255 #define HCI_LE_ENHANCED_RECEIVER_TEST 0x2033 256 #define HCI_LE_ENHANCED_TRANSMITTER_TEST 0x2034 257 #define HCI_LE_READ_TX_POWER 0x204B 258 #define HCI_LE_READ_RF_PATH_COMPENSATION 0x204C 259 #define HCI_LE_WRITE_RF_PATH_COMPENSATION 0x204D 261 #define HCI_LE_SET_ADV_SET_RANDOM_ADDRESS 0x2035 262 #define HCI_LE_SET_EXT_ADV_PARAMETERS 0x2036 263 #define HCI_LE_SET_EXT_ADV_DATA 0x2037 264 #define HCI_LE_SET_EXT_SCAN_RESPONSE_DATA 0x2038 265 #define HCI_LE_SET_EXT_ADV_ENABLE 0x2039 266 #define HCI_LE_READ_MAX_ADV_DATA_LENGTH 0x203A 267 #define HCI_LE_READ_NUM_SUPPORTED_ADV_SETS 0x203B 268 #define HCI_LE_REMOVE_ADV_SET 0x203C 269 #define HCI_LE_CLEAR_ADV_SETS 0x203D 270 #define HCI_LE_SET_PERIODIC_ADV_PARAMETERS 0x203E 271 #define HCI_LE_SET_PERIODIC_ADV_DATA 0x203F 272 #define HCI_LE_SET_PERIODIC_ADV_ENABLE 0x2040 273 #define HCI_LE_SET_EXT_SCAN_PARAMETERS 0x2041 274 #define HCI_LE_SET_EXT_SCAN_ENABLE 0x2042 275 #define HCI_LE_EXT_CREATE_CONN 0x2043 276 #define HCI_LE_PERIODIC_ADV_CREATE_SYNC 0x2044 277 #define HCI_LE_PERIODIC_ADV_CREATE_SYNC_CANCEL 0x2045 278 #define HCI_LE_PERIODIC_ADV_TERMINATE_SYNC 0x2046 279 #define HCI_LE_ADD_DEVICE_TO_PERIODIC_ADV_LIST 0x2047 280 #define HCI_LE_REMOVE_DEVICE_FROM_PERIODIC_ADV_LIST 0x2048 281 #define HCI_LE_CLEAR_PERIODIC_ADV_LIST 0x2049 282 #define HCI_LE_READ_PERIODIC_ADV_LIST_SIZE 0x204A 287 #define HCI_LE_ENHANCED_CTE_RECEIVER_TEST 0x204F 288 #define HCI_LE_ENHANCED_CTE_TRANSMITTER_TEST 0x2050 289 #define HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_PARAMS 0x2051 290 #define HCI_LE_SET_CONNECTIONLESS_CTE_TRANSMIT_ENABLE 0x2052 291 #define HCI_LE_SET_CONNECTIONLESS_IQ_SAMPLING_ENABLE 0x2053 292 #define HCI_LE_SET_CONNECTION_CTE_RECEIVE_PARAMS 0x2054 293 #define HCI_LE_SET_CONNECTION_CTE_TRANSMIT_PARAMS 0x2055 294 #define HCI_LE_SET_CONNECTION_CTE_REQUEST_ENABLE 0x2056 295 #define HCI_LE_SET_CONNECTION_CTE_RESPONSE_ENABLE 0x2057 296 #define HCI_LE_READ_ANTENNA_INFORMATION 0x2058 297 #define HCI_LE_SET_PERIODIC_ADV_RECEIVE_ENABLE 0x2059 302 #define HCI_EXT_SET_RX_GAIN 0xFC00 303 #define HCI_EXT_SET_TX_POWER 0xFC01 304 #define HCI_EXT_ONE_PKT_PER_EVT 0xFC02 305 #define HCI_EXT_CLK_DIVIDE_ON_HALT 0xFC03 307 #define HCI_EXT_DECLARE_NV_USAGE 0xFC04 308 #define HCI_EXT_DECRYPT 0xFC05 310 #define HCI_EXT_SET_LOCAL_SUPPORTED_FEATURES 0xFC06 311 #define HCI_EXT_SET_FAST_TX_RESP_TIME 0xFC07 312 #define HCI_EXT_MODEM_TEST_TX 0xFC08 313 #define HCI_EXT_MODEM_HOP_TEST_TX 0xFC09 314 #define HCI_EXT_MODEM_TEST_RX 0xFC0A 315 #define HCI_EXT_END_MODEM_TEST 0xFC0B 316 #define HCI_EXT_SET_BDADDR 0xFC0C 318 #define HCI_EXT_SET_SCA 0xFC0D 320 #define HCI_EXT_ENABLE_PTM 0xFC0E 321 #define HCI_EXT_SET_FREQ_TUNE 0xFC0F 322 #define HCI_EXT_SAVE_FREQ_TUNE 0xFC10 323 #define HCI_EXT_SET_MAX_DTM_TX_POWER 0xFC11 324 #define HCI_EXT_MAP_PM_IO_PORT 0xFC12 326 #define HCI_EXT_DISCONNECT_IMMED 0xFC13 328 #define HCI_EXT_PER 0xFC14 329 #define HCI_EXT_PER_BY_CHAN 0xFC15 330 #define HCI_EXT_EXTEND_RF_RANGE 0xFC16 332 #define HCI_EXT_HALT_DURING_RF 0xFC19 335 #define HCI_EXT_OVERRIDE_SL 0xFC1A 337 #define HCI_EXT_BUILD_REVISION 0xFC1B 338 #define HCI_EXT_DELAY_SLEEP 0xFC1C 340 #define HCI_EXT_RESET_SYSTEM 0xFC1D 342 #define HCI_EXT_OVERLAPPED_PROCESSING 0xFC1E 344 #define HCI_EXT_NUM_COMPLETED_PKTS_LIMIT 0xFC1F 346 #define HCI_EXT_GET_CONNECTION_INFO 0xFC20 348 #define HCI_EXT_SET_MAX_DATA_LENGTH 0xFC21 350 #define HCI_EXT_SET_DTM_TX_PKT_CNT 0xFC24 351 #define HCI_EXT_READ_RAND_ADDR 0xFC25 353 #define HCI_EXT_ENHANCED_MODEM_TEST_TX 0xFC27 355 #define HCI_EXT_ENHANCED_MODEM_HOP_TEST_TX 0xFC28 356 #define HCI_EXT_ENHANCED_MODEM_TEST_RX 0xFC29 358 #define HCI_EXT_SET_PIN_OUTPUT 0xFC2A 359 #define HCI_EXT_SET_LOCATIONING_ACCURACY 0xFC2B 360 #define HCI_EXT_GET_ACTIVE_CONNECTION_INFO 0xFC2C 361 #define HCI_EXT_COEX_ENABLE 0xFC2E 363 #define HCI_EXT_LL_TEST_MODE 0xFC70 365 #define HCI_EXT_LE_SET_EXT_ADV_DATA 0xFC71 366 #define HCI_EXT_LE_SET_EXT_SCAN_RESPONSE_DATA 0xFC72 367 #define HCI_EXT_LE_SET_EXT_VIRTUAL_ADV_ADDRESS 0xFC73 368 #define HCI_EXT_SET_SCAN_CHAN 0xFC74 369 #define HCI_EXT_SET_QOS_PARAMETERS 0xFC75 370 #define HCI_EXT_SET_QOS_DEFAULT_PARAMETERS 0xFC76 371 #define HCI_LE_MAKE_DISCOVERABLE_DONE 0xFC77 372 #define HCI_LE_END_DISCOVERABLE_DONE 0xFC78 373 #define HCI_EXT_SET_HOST_DEFAULT_CHANNEL_CLASSIFICATION 0xFC79 374 #define HCI_EXT_SET_HOST_CONNECTION_CHANNEL_CLASSIFICATION 0xFC7A 383 #define HCI_DISCONNECTION_COMPLETE_EVENT_CODE 0x05 384 #define HCI_ENCRYPTION_CHANGE_EVENT_CODE 0x08 385 #define HCI_READ_REMOTE_INFO_COMPLETE_EVENT_CODE 0x0C 386 #define HCI_COMMAND_COMPLETE_EVENT_CODE 0x0E 387 #define HCI_COMMAND_STATUS_EVENT_CODE 0x0F 388 #define HCI_BLE_HARDWARE_ERROR_EVENT_CODE 0x10 389 #define HCI_NUM_OF_COMPLETED_PACKETS_EVENT_CODE 0x13 390 #define HCI_DATA_BUFFER_OVERFLOW_EVENT 0x1A 391 #define HCI_KEY_REFRESH_COMPLETE_EVENT_CODE 0x30 392 #define HCI_APTO_EXPIRED_EVENT_CODE 0x57 395 #define HCI_LE_EVENT_CODE 0x3E 398 #define HCI_BLE_CONNECTION_COMPLETE_EVENT 0x01 399 #define HCI_BLE_ADV_REPORT_EVENT 0x02 400 #define HCI_BLE_CONN_UPDATE_COMPLETE_EVENT 0x03 401 #define HCI_BLE_READ_REMOTE_FEATURE_COMPLETE_EVENT 0x04 402 #define HCI_BLE_LTK_REQUESTED_EVENT 0x05 404 #define HCI_BLE_REMOTE_CONN_PARAM_REQUEST_EVENT 0x06 406 #define HCI_BLE_DATA_LENGTH_CHANGE_EVENT 0x07 407 #define HCI_BLE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE_EVENT 0x08 408 #define HCI_BLE_GENERATE_DHKEY_COMPLETE_EVENT 0x09 409 #define HCI_BLE_ENHANCED_CONNECTION_COMPLETE_EVENT 0x0A 410 #define HCI_BLE_DIRECT_ADVERTISING_REPORT_EVENT 0x0B 412 #define HCI_BLE_PHY_UPDATE_COMPLETE_EVENT 0x0C 414 #define HCI_BLE_EXTENDED_ADV_REPORT_EVENT 0x0D 415 #define HCI_BLE_PERIODIC_ADV_SYNCH_ESTABLISHED_EVENT 0x0E 416 #define HCI_BLE_PERIODIC_ADV_REPORT_EVENT 0x0F 417 #define HCI_BLE_PERIODIC_ADV_SYNCH_LOST_EVENT 0x10 418 #define HCI_BLE_SCAN_TIMEOUT_EVENT 0x11 419 #define HCI_BLE_ADV_SET_TERMINATED_EVENT 0x12 420 #define HCI_BLE_SCAN_REQUEST_RECEIVED_EVENT 0x13 421 #define HCI_BLE_CHANNEL_SELECTION_ALGORITHM_EVENT 0x14 422 #define HCI_BLE_CONNECTIONLESS_IQ_REPORT_EVENT 0x15 423 #define HCI_BLE_CONNECTION_IQ_REPORT_EVENT 0x16 424 #define HCI_BLE_CTE_REQUEST_FAILED_EVENT 0x17 426 #define HCI_BLE_BLE_LOG_STRINGS_MAX 0x17 427 extern char *BLEEventCode_BleLogStrings[];
430 #define HCI_BLE_SCAN_REQ_REPORT_EVENT 0x80 431 #define HCI_BLE_EXT_CONNECTION_IQ_REPORT_EVENT 0x81 432 #define HCI_BLE_CHANNEL_MAP_UPDATE_EVENT 0x82 433 #define HCI_BLE_CONN_UPDATE_REJECT_EVENT 0x83 434 #define HCI_BLE_EXT_CONNECTIONLESS_IQ_REPORT_EVENT 0x84 436 #define HCI_TEST_EVENT_CODE 0xFE 437 #define HCI_VE_EVENT_CODE 0xFF 440 #define HCI_EXT_SET_RX_GAIN_EVENT 0x0400 441 #define HCI_EXT_SET_TX_POWER_EVENT 0x0401 442 #define HCI_EXT_ONE_PKT_PER_EVT_EVENT 0x0402 443 #define HCI_EXT_CLK_DIVIDE_ON_HALT_EVENT 0x0403 445 #define HCI_EXT_DECLARE_NV_USAGE_EVENT 0x0404 446 #define HCI_EXT_DECRYPT_EVENT 0x0405 448 #define HCI_EXT_SET_LOCAL_SUPPORTED_FEATURES_EVENT 0x0406 449 #define HCI_EXT_SET_FAST_TX_RESP_TIME_EVENT 0x0407 450 #define HCI_EXT_MODEM_TEST_TX_EVENT 0x0408 451 #define HCI_EXT_MODEM_HOP_TEST_TX_EVENT 0x0409 452 #define HCI_EXT_MODEM_TEST_RX_EVENT 0x040A 453 #define HCI_EXT_END_MODEM_TEST_EVENT 0x040B 454 #define HCI_EXT_SET_BDADDR_EVENT 0x040C 456 #define HCI_EXT_SET_SCA_EVENT 0x040D 458 #define HCI_EXT_ENABLE_PTM_EVENT 0x040E 459 #define HCI_EXT_SET_FREQ_TUNE_EVENT 0x040F 460 #define HCI_EXT_SAVE_FREQ_TUNE_EVENT 0x0410 461 #define HCI_EXT_SET_MAX_DTM_TX_POWER_EVENT 0x0411 462 #define HCI_EXT_MAP_PM_IO_PORT_EVENT 0x0412 464 #define HCI_EXT_DISCONNECT_IMMED_EVENT 0x0413 466 #define HCI_EXT_PER_EVENT 0x0414 467 #define HCI_EXT_PER_BY_CHAN_EVENT 0x0415 468 #define HCI_EXT_EXTEND_RF_RANGE_EVENT 0x0416 470 #define HCI_EXT_HALT_DURING_RF_EVENT 0x0419 473 #define HCI_EXT_OVERRIDE_SL_EVENT 0x041A 474 #define HCI_EXT_BUILD_REVISION_EVENT 0x041B 476 #define HCI_EXT_DELAY_SLEEP_EVENT 0x041C 478 #define HCI_EXT_RESET_SYSTEM_EVENT 0x041D 480 #define HCI_EXT_OVERLAPPED_PROCESSING_EVENT 0x041E 482 #define HCI_EXT_NUM_COMPLETED_PKTS_LIMIT_EVENT 0x041F 484 #define HCI_EXT_GET_CONNECTION_INFO_EVENT 0x0420 486 #define HCI_EXT_SET_MAX_DATA_LENGTH_EVENT 0x0421 488 #define HCI_EXT_SET_DTM_TX_PKT_CNT_EVENT 0x0424 489 #define HCI_EXT_READ_RAND_ADDR_EVENT 0x0425 491 #define HCI_EXT_LE_ADV_EVENT 0x0425 493 #define HCI_EXT_LE_SCAN_EVENT 0x0426 495 #define HCI_EXT_ENHANCED_MODEM_TEST_TX_EVENT 0x0427 496 #define HCI_EXT_ENHANCED_MODEM_HOP_TEST_TX_EVENT 0x0428 497 #define HCI_EXT_ENHANCED_MODEM_TEST_RX_EVENT 0x0429 499 #define HCI_EXT_SET_PIN_OUTPUT_EVENT 0x042A 500 #define HCI_EXT_SET_LOCATIONING_ACCURACY_EVENT 0x042B 501 #define HCI_EXT_GET_ACTIVE_CONNECTION_INFO_EVENT 0x042C 502 #define HCI_EXT_SET_VIRTUAL_ADV_ADDRESS_EVENT 0x042D 503 #define HCI_EXT_COEX_ENABLE_EVENT 0x042E 504 #define HCI_EXT_SET_HOST_DEF_CHANNEL_CLASSIFICATION_EVENT 0x042F 505 #define HCI_EXT_SET_HOST_CONN_CHANNEL_CLASSIFICATION_EVENT 0x0430 509 #define HCI_EXT_LL_TEST_MODE_EVENT 0x0470 513 #define NO_FEATURES_ENABLED 0x00 514 #define PEER_PARAM_REJECT_ENABLED 0x01 530 extern uint8 hciVsEvtMask;
545 extern void HCI_Init( uint8 taskID );
558 extern void HCI_ParamUpdateRjctEvtRegister();
569 extern void HCI_TL_getCmdResponderID( uint8 taskID );
582 extern uint16 HCI_ProcessEvent( uint8 task_id,
This API allows the software components in the Z-Stack to be written independently of the specifics o...