From d02c1c786e0a96493b955adf1e5bd040c93f760a Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Mon, 6 Feb 2017 15:17:11 +0200 Subject: [PATCH] Update IDF, fix SS definition, add custom partitions and debug level selection (#174) * Add build time partitions compilation * Fix wrong definition of SS pin * Add support for core debug level selection * update idf libs --- boards.txt | 66 + cores/esp32/esp32-hal-log.h | 16 +- libraries/WiFi/src/WiFiGeneric.cpp | 2 +- platform.txt | 14 +- tools/esptool.py | 654 +-- tools/gen_esp32part.exe | Bin 0 -> 3337401 bytes tools/gen_esp32part.py | 350 ++ tools/partitions/default.csv | 4 + tools/platformio-build.py | 15 +- tools/sdk/include/bluedroid/aes.h | 162 + tools/sdk/include/bluedroid/alarm.h | 76 + tools/sdk/include/bluedroid/allocator.h | 82 + tools/sdk/include/bluedroid/avct_api.h | 279 ++ tools/sdk/include/bluedroid/avdt_api.h | 985 ++++ tools/sdk/include/bluedroid/avdt_defs.h | 203 + tools/sdk/include/bluedroid/avdtc_api.h | 230 + tools/sdk/include/bluedroid/avrc_api.h | 637 +++ tools/sdk/include/bluedroid/avrc_defs.h | 1360 ++++++ tools/sdk/include/bluedroid/bdaddr.h | 63 + tools/sdk/include/bluedroid/blufi_int.h | 176 + tools/sdk/include/bluedroid/bt_common_types.h | 43 + tools/sdk/include/bluedroid/bt_defs.h | 155 + tools/sdk/include/bluedroid/bt_sdp.h | 111 + tools/sdk/include/bluedroid/bt_target.h | 1801 ++++++++ tools/sdk/include/bluedroid/bt_trace.h | 470 ++ tools/sdk/include/bluedroid/bt_types.h | 789 ++++ tools/sdk/include/bluedroid/bt_vendor_lib.h | 362 ++ tools/sdk/include/bluedroid/bta_api.h | 2399 ++++++++++ tools/sdk/include/bluedroid/bta_dm_ci.h | 80 + tools/sdk/include/bluedroid/bta_dm_co.h | 273 ++ tools/sdk/include/bluedroid/bta_gatt_api.h | 1416 ++++++ tools/sdk/include/bluedroid/bta_gattc_ci.h | 117 + tools/sdk/include/bluedroid/bta_gattc_co.h | 114 + tools/sdk/include/bluedroid/bta_gattc_int.h | 525 +++ tools/sdk/include/bluedroid/bta_gatts_co.h | 81 + tools/sdk/include/bluedroid/bta_gatts_int.h | 256 ++ tools/sdk/include/bluedroid/bta_hh_api.h | 541 +++ tools/sdk/include/bluedroid/bta_hh_co.h | 132 + tools/sdk/include/bluedroid/bta_sdp_api.h | 142 + tools/sdk/include/bluedroid/bta_sys.h | 282 ++ tools/sdk/include/bluedroid/bta_sys_int.h | 101 + tools/sdk/include/bluedroid/btc_blufi_prf.h | 47 + tools/sdk/include/bluedroid/btc_gap_ble.h | 98 + tools/sdk/include/bluedroid/btc_gap_bt.h | 22 + tools/sdk/include/bluedroid/btc_gatt_util.h | 40 + tools/sdk/include/bluedroid/btc_gattc.h | 183 + tools/sdk/include/bluedroid/btc_gatts.h | 152 + tools/sdk/include/bluedroid/btc_main.h | 64 + tools/sdk/include/bluedroid/btc_manage.h | 28 + tools/sdk/include/bluedroid/btc_sdp.h | 129 + tools/sdk/include/bluedroid/btc_task.h | 63 + tools/sdk/include/bluedroid/bte.h | 117 + tools/sdk/include/bluedroid/bte_appl.h | 37 + tools/sdk/include/bluedroid/btm_api.h | 4029 +++++++++++++++++ tools/sdk/include/bluedroid/btm_ble_api.h | 1958 ++++++++ tools/sdk/include/bluedroid/btm_ble_int.h | 476 ++ tools/sdk/include/bluedroid/btm_int.h | 1094 +++++ tools/sdk/include/bluedroid/btu.h | 280 ++ tools/sdk/include/bluedroid/buffer.h | 59 + .../sdk/include/bluedroid/buffer_allocator.h | 25 + tools/sdk/include/bluedroid/button_pro.h | 120 + tools/sdk/include/bluedroid/controller.h | 85 + tools/sdk/include/bluedroid/device_features.h | 29 + tools/sdk/include/bluedroid/dis_api.h | 338 ++ tools/sdk/include/bluedroid/dyn_mem.h | 155 + tools/sdk/include/bluedroid/esp_blufi_api.h | 360 ++ tools/sdk/include/bluedroid/esp_bt_defs.h | 106 + tools/sdk/include/bluedroid/esp_bt_device.h | 38 + tools/sdk/include/bluedroid/esp_bt_main.h | 81 + tools/sdk/include/bluedroid/esp_gap_ble_api.h | 496 ++ tools/sdk/include/bluedroid/esp_gatt_defs.h | 384 ++ tools/sdk/include/bluedroid/esp_gattc_api.h | 607 +++ tools/sdk/include/bluedroid/esp_gatts_api.h | 542 +++ tools/sdk/include/bluedroid/event_mask.h | 30 + tools/sdk/include/bluedroid/fixed_queue.h | 102 + tools/sdk/include/bluedroid/future.h | 52 + tools/sdk/include/bluedroid/gap_api.h | 391 ++ tools/sdk/include/bluedroid/gap_int.h | 154 + tools/sdk/include/bluedroid/gatt_api.h | 1204 +++++ tools/sdk/include/bluedroid/gatt_int.h | 698 +++ tools/sdk/include/bluedroid/gattdefs.h | 124 + tools/sdk/include/bluedroid/gki.h | 132 + tools/sdk/include/bluedroid/gki_common.h | 65 + tools/sdk/include/bluedroid/gki_int.h | 34 + tools/sdk/include/bluedroid/gki_target.h | 244 + tools/sdk/include/bluedroid/hash_functions.h | 33 + tools/sdk/include/bluedroid/hash_map.h | 110 + tools/sdk/include/bluedroid/hci_hal.h | 85 + tools/sdk/include/bluedroid/hci_internals.h | 31 + tools/sdk/include/bluedroid/hci_layer.h | 103 + .../include/bluedroid/hci_packet_factory.h | 48 + .../sdk/include/bluedroid/hci_packet_parser.h | 99 + tools/sdk/include/bluedroid/hcidefs.h | 2605 +++++++++++ tools/sdk/include/bluedroid/hcimsgs.h | 811 ++++ tools/sdk/include/bluedroid/hid_le_prf.h | 265 ++ tools/sdk/include/bluedroid/hiddefs.h | 156 + tools/sdk/include/bluedroid/hidh_api.h | 235 + tools/sdk/include/bluedroid/interop.h | 44 + .../sdk/include/bluedroid/interop_database.h | 50 + tools/sdk/include/bluedroid/l2c_api.h | 1137 +++++ tools/sdk/include/bluedroid/l2c_int.h | 751 +++ tools/sdk/include/bluedroid/l2cap_client.h | 77 + tools/sdk/include/bluedroid/l2cdefs.h | 318 ++ tools/sdk/include/bluedroid/list.h | 110 + tools/sdk/include/bluedroid/osi.h | 26 + tools/sdk/include/bluedroid/osi_arch.h | 45 + tools/sdk/include/bluedroid/p_256_ecc_pp.h | 65 + .../include/bluedroid/p_256_multprecision.h | 62 + .../sdk/include/bluedroid/packet_fragmenter.h | 62 + tools/sdk/include/bluedroid/port_api.h | 657 +++ tools/sdk/include/bluedroid/port_ext.h | 32 + tools/sdk/include/bluedroid/profiles_api.h | 70 + tools/sdk/include/bluedroid/rfcdefs.h | 248 + tools/sdk/include/bluedroid/sdp_api.h | 724 +++ tools/sdk/include/bluedroid/sdpdefs.h | 327 ++ tools/sdk/include/bluedroid/sdpint.h | 314 ++ tools/sdk/include/bluedroid/smp_api.h | 484 ++ tools/sdk/include/bluedroid/smp_int.h | 535 +++ tools/sdk/include/bluedroid/srvc_api.h | 210 + tools/sdk/include/bluedroid/thread.h | 73 + tools/sdk/include/bluedroid/utl.h | 169 + tools/sdk/include/bluedroid/version.h | 31 + tools/sdk/include/bluedroid/wx_airsync_prf.h | 110 + tools/sdk/include/config/sdkconfig.h | 9 + tools/sdk/include/esp32/esp_panic.h | 8 + tools/sdk/include/esp32/soc/ledc_struct.h | 1 + tools/sdk/include/lwip/lwipopts.h | 5 + tools/sdk/include/lwip/port/lwipopts.h | 5 + tools/sdk/include/mbedtls/mbedtls/bignum.h | 788 +++- .../{mbedtls => mbedtls_port}/aes_alt.h | 0 .../sdk/include/mbedtls_port/mbedtls/bignum.h | 78 + .../mbedtls/esp_config.h | 0 .../{mbedtls => mbedtls_port}/sha1_alt.h | 0 .../{mbedtls => mbedtls_port}/sha256_alt.h | 0 .../{mbedtls => mbedtls_port}/sha512_alt.h | 0 tools/sdk/include/openssl/internal/ssl_dbg.h | 208 +- tools/sdk/include/openssl/platform/ssl_opt.h | 30 +- tools/sdk/include/openssl/platform/ssl_pm.h | 5 + tools/sdk/include/openssl/platform/ssl_port.h | 28 +- tools/sdk/include/spi_flash/esp_partition.h | 7 + tools/sdk/include/spi_flash/esp_spi_flash.h | 70 +- tools/sdk/ld/esp32.common.ld | 1 + tools/sdk/lib/libapp_update.a | Bin 36328 -> 36328 bytes tools/sdk/lib/libbootloader_support.a | Bin 109410 -> 109410 bytes tools/sdk/lib/libbt.a | Bin 8489028 -> 8513240 bytes tools/sdk/lib/libcoap.a | Bin 450954 -> 450954 bytes tools/sdk/lib/libcoexist.a | Bin 10618 -> 10618 bytes tools/sdk/lib/libcore.a | Bin 24158 -> 24158 bytes tools/sdk/lib/libcxx.a | Bin 50148 -> 50148 bytes tools/sdk/lib/libdriver.a | Bin 1112222 -> 1113670 bytes tools/sdk/lib/libesp32.a | Bin 448868 -> 480348 bytes tools/sdk/lib/libethernet.a | Bin 99960 -> 99332 bytes tools/sdk/lib/libexpat.a | Bin 1239676 -> 1239676 bytes tools/sdk/lib/libfatfs.a | Bin 296372 -> 296372 bytes tools/sdk/lib/libfreertos.a | Bin 538026 -> 538138 bytes tools/sdk/lib/libjson.a | Bin 208230 -> 208230 bytes tools/sdk/lib/liblog.a | Bin 20986 -> 20986 bytes tools/sdk/lib/liblwip.a | Bin 1871612 -> 1866176 bytes tools/sdk/lib/libmbedtls.a | Bin 3492682 -> 3492682 bytes tools/sdk/lib/libmdns.a | Bin 187286 -> 187286 bytes tools/sdk/lib/libmicro-ecc.a | Bin 154324 -> 154324 bytes tools/sdk/lib/libnet80211.a | Bin 685652 -> 685972 bytes tools/sdk/lib/libnewlib.a | Bin 80846 -> 80846 bytes tools/sdk/lib/libnghttp.a | Bin 1523258 -> 1523258 bytes tools/sdk/lib/libnvs_flash.a | Bin 622360 -> 622360 bytes tools/sdk/lib/libopenssl.a | Bin 274724 -> 269248 bytes tools/sdk/lib/libpp.a | Bin 394630 -> 394110 bytes tools/sdk/lib/libsdmmc.a | Bin 70902 -> 70902 bytes tools/sdk/lib/libspi_flash.a | Bin 106852 -> 114780 bytes tools/sdk/lib/libtcpip_adapter.a | Bin 74910 -> 74910 bytes tools/sdk/lib/libulp.a | Bin 24768 -> 24768 bytes tools/sdk/lib/libvfs.a | Bin 91094 -> 91094 bytes tools/sdk/lib/libwpa.a | Bin 150704 -> 150704 bytes tools/sdk/lib/libwpa2.a | Bin 427230 -> 427230 bytes tools/sdk/lib/libwpa_supplicant.a | Bin 462596 -> 462596 bytes tools/sdk/lib/libwps.a | Bin 337210 -> 337210 bytes tools/sdk/lib/libxtensa-debug-module.a | Bin 12082 -> 12082 bytes variants/esp32/pins_arduino.h | 2 +- variants/esp32thing/pins_arduino.h | 54 + variants/espea32/pins_arduino.h | 2 +- variants/hornbill32dev/pins_arduino.h | 2 +- variants/lolin32/pins_arduino.h | 2 +- variants/nano32/pins_arduino.h | 2 +- variants/node32s/pins_arduino.h | 2 +- variants/quantum/pins_arduino.h | 2 +- 185 files changed, 43166 insertions(+), 493 deletions(-) create mode 100644 tools/gen_esp32part.exe create mode 100755 tools/gen_esp32part.py create mode 100644 tools/partitions/default.csv create mode 100644 tools/sdk/include/bluedroid/aes.h create mode 100644 tools/sdk/include/bluedroid/alarm.h create mode 100644 tools/sdk/include/bluedroid/allocator.h create mode 100755 tools/sdk/include/bluedroid/avct_api.h create mode 100644 tools/sdk/include/bluedroid/avdt_api.h create mode 100755 tools/sdk/include/bluedroid/avdt_defs.h create mode 100755 tools/sdk/include/bluedroid/avdtc_api.h create mode 100644 tools/sdk/include/bluedroid/avrc_api.h create mode 100644 tools/sdk/include/bluedroid/avrc_defs.h create mode 100755 tools/sdk/include/bluedroid/bdaddr.h create mode 100644 tools/sdk/include/bluedroid/blufi_int.h create mode 100755 tools/sdk/include/bluedroid/bt_common_types.h create mode 100644 tools/sdk/include/bluedroid/bt_defs.h create mode 100755 tools/sdk/include/bluedroid/bt_sdp.h create mode 100644 tools/sdk/include/bluedroid/bt_target.h create mode 100644 tools/sdk/include/bluedroid/bt_trace.h create mode 100644 tools/sdk/include/bluedroid/bt_types.h create mode 100644 tools/sdk/include/bluedroid/bt_vendor_lib.h create mode 100644 tools/sdk/include/bluedroid/bta_api.h create mode 100644 tools/sdk/include/bluedroid/bta_dm_ci.h create mode 100644 tools/sdk/include/bluedroid/bta_dm_co.h create mode 100644 tools/sdk/include/bluedroid/bta_gatt_api.h create mode 100644 tools/sdk/include/bluedroid/bta_gattc_ci.h create mode 100644 tools/sdk/include/bluedroid/bta_gattc_co.h create mode 100644 tools/sdk/include/bluedroid/bta_gattc_int.h create mode 100644 tools/sdk/include/bluedroid/bta_gatts_co.h create mode 100644 tools/sdk/include/bluedroid/bta_gatts_int.h create mode 100644 tools/sdk/include/bluedroid/bta_hh_api.h create mode 100644 tools/sdk/include/bluedroid/bta_hh_co.h create mode 100644 tools/sdk/include/bluedroid/bta_sdp_api.h create mode 100644 tools/sdk/include/bluedroid/bta_sys.h create mode 100644 tools/sdk/include/bluedroid/bta_sys_int.h create mode 100644 tools/sdk/include/bluedroid/btc_blufi_prf.h create mode 100644 tools/sdk/include/bluedroid/btc_gap_ble.h create mode 100644 tools/sdk/include/bluedroid/btc_gap_bt.h create mode 100644 tools/sdk/include/bluedroid/btc_gatt_util.h create mode 100644 tools/sdk/include/bluedroid/btc_gattc.h create mode 100644 tools/sdk/include/bluedroid/btc_gatts.h create mode 100644 tools/sdk/include/bluedroid/btc_main.h create mode 100644 tools/sdk/include/bluedroid/btc_manage.h create mode 100644 tools/sdk/include/bluedroid/btc_sdp.h create mode 100644 tools/sdk/include/bluedroid/btc_task.h create mode 100644 tools/sdk/include/bluedroid/bte.h create mode 100755 tools/sdk/include/bluedroid/bte_appl.h create mode 100644 tools/sdk/include/bluedroid/btm_api.h create mode 100644 tools/sdk/include/bluedroid/btm_ble_api.h create mode 100644 tools/sdk/include/bluedroid/btm_ble_int.h create mode 100644 tools/sdk/include/bluedroid/btm_int.h create mode 100644 tools/sdk/include/bluedroid/btu.h create mode 100755 tools/sdk/include/bluedroid/buffer.h create mode 100755 tools/sdk/include/bluedroid/buffer_allocator.h create mode 100644 tools/sdk/include/bluedroid/button_pro.h create mode 100644 tools/sdk/include/bluedroid/controller.h create mode 100644 tools/sdk/include/bluedroid/device_features.h create mode 100644 tools/sdk/include/bluedroid/dis_api.h create mode 100755 tools/sdk/include/bluedroid/dyn_mem.h create mode 100644 tools/sdk/include/bluedroid/esp_blufi_api.h create mode 100644 tools/sdk/include/bluedroid/esp_bt_defs.h create mode 100644 tools/sdk/include/bluedroid/esp_bt_device.h create mode 100644 tools/sdk/include/bluedroid/esp_bt_main.h create mode 100644 tools/sdk/include/bluedroid/esp_gap_ble_api.h create mode 100644 tools/sdk/include/bluedroid/esp_gatt_defs.h create mode 100644 tools/sdk/include/bluedroid/esp_gattc_api.h create mode 100644 tools/sdk/include/bluedroid/esp_gatts_api.h create mode 100644 tools/sdk/include/bluedroid/event_mask.h create mode 100755 tools/sdk/include/bluedroid/fixed_queue.h create mode 100644 tools/sdk/include/bluedroid/future.h create mode 100644 tools/sdk/include/bluedroid/gap_api.h create mode 100644 tools/sdk/include/bluedroid/gap_int.h create mode 100644 tools/sdk/include/bluedroid/gatt_api.h create mode 100644 tools/sdk/include/bluedroid/gatt_int.h create mode 100644 tools/sdk/include/bluedroid/gattdefs.h create mode 100644 tools/sdk/include/bluedroid/gki.h create mode 100644 tools/sdk/include/bluedroid/gki_common.h create mode 100644 tools/sdk/include/bluedroid/gki_int.h create mode 100755 tools/sdk/include/bluedroid/gki_target.h create mode 100755 tools/sdk/include/bluedroid/hash_functions.h create mode 100644 tools/sdk/include/bluedroid/hash_map.h create mode 100644 tools/sdk/include/bluedroid/hci_hal.h create mode 100755 tools/sdk/include/bluedroid/hci_internals.h create mode 100644 tools/sdk/include/bluedroid/hci_layer.h create mode 100644 tools/sdk/include/bluedroid/hci_packet_factory.h create mode 100644 tools/sdk/include/bluedroid/hci_packet_parser.h create mode 100644 tools/sdk/include/bluedroid/hcidefs.h create mode 100644 tools/sdk/include/bluedroid/hcimsgs.h create mode 100644 tools/sdk/include/bluedroid/hid_le_prf.h create mode 100644 tools/sdk/include/bluedroid/hiddefs.h create mode 100644 tools/sdk/include/bluedroid/hidh_api.h create mode 100644 tools/sdk/include/bluedroid/interop.h create mode 100644 tools/sdk/include/bluedroid/interop_database.h create mode 100644 tools/sdk/include/bluedroid/l2c_api.h create mode 100644 tools/sdk/include/bluedroid/l2c_int.h create mode 100644 tools/sdk/include/bluedroid/l2cap_client.h create mode 100644 tools/sdk/include/bluedroid/l2cdefs.h create mode 100755 tools/sdk/include/bluedroid/list.h create mode 100755 tools/sdk/include/bluedroid/osi.h create mode 100755 tools/sdk/include/bluedroid/osi_arch.h create mode 100644 tools/sdk/include/bluedroid/p_256_ecc_pp.h create mode 100644 tools/sdk/include/bluedroid/p_256_multprecision.h create mode 100644 tools/sdk/include/bluedroid/packet_fragmenter.h create mode 100644 tools/sdk/include/bluedroid/port_api.h create mode 100755 tools/sdk/include/bluedroid/port_ext.h create mode 100644 tools/sdk/include/bluedroid/profiles_api.h create mode 100755 tools/sdk/include/bluedroid/rfcdefs.h create mode 100644 tools/sdk/include/bluedroid/sdp_api.h create mode 100755 tools/sdk/include/bluedroid/sdpdefs.h create mode 100644 tools/sdk/include/bluedroid/sdpint.h create mode 100644 tools/sdk/include/bluedroid/smp_api.h create mode 100644 tools/sdk/include/bluedroid/smp_int.h create mode 100644 tools/sdk/include/bluedroid/srvc_api.h create mode 100644 tools/sdk/include/bluedroid/thread.h create mode 100644 tools/sdk/include/bluedroid/utl.h create mode 100644 tools/sdk/include/bluedroid/version.h create mode 100644 tools/sdk/include/bluedroid/wx_airsync_prf.h rename tools/sdk/include/{mbedtls => mbedtls_port}/aes_alt.h (100%) create mode 100644 tools/sdk/include/mbedtls_port/mbedtls/bignum.h rename tools/sdk/include/{mbedtls => mbedtls_port}/mbedtls/esp_config.h (100%) rename tools/sdk/include/{mbedtls => mbedtls_port}/sha1_alt.h (100%) rename tools/sdk/include/{mbedtls => mbedtls_port}/sha256_alt.h (100%) rename tools/sdk/include/{mbedtls => mbedtls_port}/sha512_alt.h (100%) create mode 100644 variants/esp32thing/pins_arduino.h diff --git a/boards.txt b/boards.txt index 56b51a96..d53855a8 100644 --- a/boards.txt +++ b/boards.txt @@ -1,7 +1,9 @@ menu.UploadSpeed=Upload Speed menu.FlashFreq=Flash Frequency +menu.DebugLevel=Core Debug Level ############################################################## + esp32.name=ESP32 Dev Module esp32.upload.tool=esptool @@ -41,7 +43,62 @@ esp32.menu.UploadSpeed.460800.upload.speed=460800 esp32.menu.UploadSpeed.512000.windows=512000 esp32.menu.UploadSpeed.512000.upload.speed=512000 +esp32.menu.DebugLevel.none=None +esp32.menu.DebugLevel.none.build.code_debug=0 +esp32.menu.DebugLevel.error=Error +esp32.menu.DebugLevel.error.build.code_debug=1 +esp32.menu.DebugLevel.warn=Warn +esp32.menu.DebugLevel.warn.build.code_debug=2 +esp32.menu.DebugLevel.info=Info +esp32.menu.DebugLevel.info.build.code_debug=3 +esp32.menu.DebugLevel.debug=Debug +esp32.menu.DebugLevel.debug.build.code_debug=4 +esp32.menu.DebugLevel.verbose=Verbose +esp32.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## + +esp32thing.name=SparkFun ESP32 Thing + +esp32thing.upload.tool=esptool +esp32thing.upload.maximum_size=1044464 +esp32thing.upload.maximum_data_size=294912 +esp32thing.upload.wait_for_upload_port=true + +esp32thing.serial.disableDTR=true +esp32thing.serial.disableRTS=true + +esp32thing.build.mcu=esp32 +esp32thing.build.core=esp32 +esp32thing.build.variant=esp32thing +esp32thing.build.board=ESP32_THING + +esp32thing.build.f_cpu=240000000L +esp32thing.build.flash_mode=dio +esp32thing.build.flash_size=4MB + +esp32thing.menu.FlashFreq.80=80MHz +esp32thing.menu.FlashFreq.80.build.flash_freq=80m +esp32thing.menu.FlashFreq.40=40MHz +esp32thing.menu.FlashFreq.40.build.flash_freq=40m + +esp32thing.menu.UploadSpeed.921600=921600 +esp32thing.menu.UploadSpeed.921600.upload.speed=921600 +esp32thing.menu.UploadSpeed.115200=115200 +esp32thing.menu.UploadSpeed.115200.upload.speed=115200 +esp32thing.menu.UploadSpeed.256000.windows=256000 +esp32thing.menu.UploadSpeed.256000.upload.speed=256000 +esp32thing.menu.UploadSpeed.230400.windows.upload.speed=256000 +esp32thing.menu.UploadSpeed.230400=230400 +esp32thing.menu.UploadSpeed.230400.upload.speed=230400 +esp32thing.menu.UploadSpeed.460800.linux=460800 +esp32thing.menu.UploadSpeed.460800.macosx=460800 +esp32thing.menu.UploadSpeed.460800.upload.speed=460800 +esp32thing.menu.UploadSpeed.512000.windows=512000 +esp32thing.menu.UploadSpeed.512000.upload.speed=512000 + +############################################################## + esp320.name=Electronic SweetPeas - ESP320 esp320.upload.tool=esptool @@ -82,6 +139,7 @@ esp320.menu.UploadSpeed.512000.windows=512000 esp320.menu.UploadSpeed.512000.upload.speed=512000 ############################################################## + nano32.name=Nano32 nano32.upload.tool=esptool @@ -122,6 +180,7 @@ nano32.menu.UploadSpeed.512000.windows=512000 nano32.menu.UploadSpeed.512000.upload.speed=512000 ############################################################## + lolin32.name=WEMOS LoLin32 lolin32.upload.tool=esptool @@ -162,6 +221,7 @@ lolin32.menu.UploadSpeed.512000.windows=512000 lolin32.menu.UploadSpeed.512000.upload.speed=512000 ############################################################## + espea32.name=ESPea32 espea32.upload.tool=esptool @@ -202,6 +262,7 @@ espea32.menu.UploadSpeed.512000.windows=512000 espea32.menu.UploadSpeed.512000.upload.speed=512000 ############################################################## + quantum.name=Noduino Quantum quantum.upload.tool=esptool @@ -242,6 +303,7 @@ quantum.menu.UploadSpeed.512000.windows=512000 quantum.menu.UploadSpeed.512000.upload.speed=512000 ############################################################## + node32s.name=Node32s node32s.upload.tool=esptool @@ -280,7 +342,9 @@ node32s.menu.UploadSpeed.460800.macosx=460800 node32s.menu.UploadSpeed.460800.upload.speed=460800 node32s.menu.UploadSpeed.512000.windows=512000 node32s.menu.UploadSpeed.512000.upload.speed=512000 + ############################################################## + hornbill32dev.name=Hornbill ESP32 Dev hornbill32dev.upload.tool=esptool @@ -318,7 +382,9 @@ hornbill32dev.menu.UploadSpeed.460800.macosx=460800 hornbill32dev.menu.UploadSpeed.460800.upload.speed=460800 hornbill32dev.menu.UploadSpeed.512000.windows=512000 hornbill32dev.menu.UploadSpeed.512000.upload.speed=512000 + ############################################################## + hornbill32minima.name=Hornbill ESP32 Minima hornbill32minima.upload.tool=esptool diff --git a/cores/esp32/esp32-hal-log.h b/cores/esp32/esp32-hal-log.h index bd42b79b..0456fc0f 100644 --- a/cores/esp32/esp32-hal-log.h +++ b/cores/esp32/esp32-hal-log.h @@ -32,6 +32,12 @@ extern "C" #define CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL ARDUHAL_LOG_LEVEL_NONE #endif +#ifndef CORE_DEBUG_LEVEL +#define ARDUHAL_LOG_LEVEL CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL +#else +#define ARDUHAL_LOG_LEVEL CORE_DEBUG_LEVEL +#endif + #ifndef CONFIG_ARDUHAL_LOG_COLORS #define CONFIG_ARDUHAL_LOG_COLORS 0 #endif @@ -71,31 +77,31 @@ int log_printf(const char *fmt, ...); #define ARDUHAL_SHORT_LOG_FORMAT(letter, format) ARDUHAL_LOG_COLOR_ ## letter format ARDUHAL_LOG_RESET_COLOR "\r\n" #define ARDUHAL_LOG_FORMAT(letter, format) ARDUHAL_LOG_COLOR_ ## letter "[" #letter "][%s:%u] %s(): " format ARDUHAL_LOG_RESET_COLOR "\r\n", pathToFileName(__FILE__), __LINE__, __FUNCTION__ -#if CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE #define log_v(format, ...) log_printf(ARDUHAL_LOG_FORMAT(V, format), ##__VA_ARGS__) #else #define log_v(format, ...) #endif -#if CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL >= ARDUHAL_LOG_LEVEL_DEBUG +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_DEBUG #define log_d(format, ...) log_printf(ARDUHAL_LOG_FORMAT(D, format), ##__VA_ARGS__) #else #define log_d(format, ...) #endif -#if CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL >= ARDUHAL_LOG_LEVEL_INFO +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO #define log_i(format, ...) log_printf(ARDUHAL_LOG_FORMAT(I, format), ##__VA_ARGS__) #else #define log_i(format, ...) #endif -#if CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL >= ARDUHAL_LOG_LEVEL_WARN +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_WARN #define log_w(format, ...) log_printf(ARDUHAL_LOG_FORMAT(W, format), ##__VA_ARGS__) #else #define log_w(format, ...) #endif -#if CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL >= ARDUHAL_LOG_LEVEL_ERROR +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_ERROR #define log_e(format, ...) log_printf(ARDUHAL_LOG_FORMAT(E, format), ##__VA_ARGS__) #else #define log_e(format, ...) diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index 1d85f688..b10933cd 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -166,7 +166,7 @@ void WiFiGenericClass::removeEvent(WiFiEventCb cbEvent, system_event_id_t event) * callback for WiFi events * @param arg */ -#if CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL >= ARDUHAL_LOG_LEVEL_DEBUG +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_DEBUG const char * system_event_names[] = { "WIFI_READY", "SCAN_DONE", "STA_START", "STA_STOP", "STA_CONNECTED", "STA_DISCONNECTED", "STA_AUTHMODE_CHANGE", "STA_GOT_IP", "STA_WPS_ER_SUCCESS", "STA_WPS_ER_FAILED", "STA_WPS_ER_TIMEOUT", "STA_WPS_ER_PIN", "AP_START", "AP_STOP", "AP_STACONNECTED", "AP_STADISCONNECTED", "AP_PROBEREQRECVED", "AP_STA_GOT_IP6", "ETH_START", "ETH_STOP", "ETH_CONNECTED", "ETH_DISCONNECTED", "ETH_GOT_IP", "MAX"}; const char * system_event_reasons[] = { "UNSPECIFIED", "AUTH_EXPIRE", "AUTH_LEAVE", "ASSOC_EXPIRE", "ASSOC_TOOMANY", "NOT_AUTHED", "NOT_ASSOCED", "ASSOC_LEAVE", "ASSOC_NOT_AUTHED", "DISASSOC_PWRCAP_BAD", "DISASSOC_SUPCHAN_BAD", "IE_INVALID", "MIC_FAILURE", "4WAY_HANDSHAKE_TIMEOUT", "GROUP_KEY_UPDATE_TIMEOUT", "IE_IN_4WAY_DIFFERS", "GROUP_CIPHER_INVALID", "PAIRWISE_CIPHER_INVALID", "AKMP_INVALID", "UNSUPP_RSN_IE_VERSION", "INVALID_RSN_IE_CAP", "802_1X_AUTH_FAILED", "CIPHER_SUITE_REJECTED", "BEACON_TIMEOUT", "NO_AP_FOUND", "AUTH_FAIL", "ASSOC_FAIL", "HANDSHAKE_TIMEOUT" }; #define reason2str(r) ((r>174)?system_event_reasons[r-174]:system_event_reasons[r-1]) diff --git a/platform.txt b/platform.txt index d112108e..81045758 100644 --- a/platform.txt +++ b/platform.txt @@ -6,6 +6,9 @@ runtime.tools.xtensa-esp32-elf-gcc.path={runtime.platform.path}/tools/xtensa-esp tools.esptool.cmd="{runtime.platform.path}/tools/esptool" tools.esptool.cmd.windows="{runtime.platform.path}/tools/esptool.exe" +tools.gen_esp32part.cmd=python "{runtime.platform.path}/tools/gen_esp32part.py" +tools.gen_esp32part.cmd.windows="{runtime.platform.path}/tools/gen_esp32part.exe" + compiler.warning_flags=-w compiler.warning_flags.none=-w compiler.warning_flags.default= @@ -14,7 +17,7 @@ compiler.warning_flags.all=-Wall -Werror=all -Wextra compiler.path={runtime.tools.xtensa-esp32-elf-gcc.path}/bin/ compiler.sdk.path={runtime.platform.path}/tools/sdk -compiler.cpreprocessor.flags=-DESP_PLATFORM -DMBEDTLS_CONFIG_FILE='"mbedtls/esp_config.h"' -DHAVE_CONFIG_H "-I{compiler.sdk.path}/include/config" "-I{compiler.sdk.path}/include/bt" "-I{compiler.sdk.path}/include/driver" "-I{compiler.sdk.path}/include/esp32" "-I{compiler.sdk.path}/include/ethernet" "-I{compiler.sdk.path}/include/fatfs" "-I{compiler.sdk.path}/include/freertos" "-I{compiler.sdk.path}/include/log" "-I{compiler.sdk.path}/include/mdns" "-I{compiler.sdk.path}/include/vfs" "-I{compiler.sdk.path}/include/ulp" "-I{compiler.sdk.path}/include/newlib" "-I{compiler.sdk.path}/include/nvs_flash" "-I{compiler.sdk.path}/include/spi_flash" "-I{compiler.sdk.path}/include/sdmmc" "-I{compiler.sdk.path}/include/openssl" "-I{compiler.sdk.path}/include/app_update" "-I{compiler.sdk.path}/include/tcpip_adapter" "-I{compiler.sdk.path}/include/xtensa-debug-module" "-I{compiler.sdk.path}/include/newlib" "-I{compiler.sdk.path}/include/coap" "-I{compiler.sdk.path}/include/wpa_supplicant" "-I{compiler.sdk.path}/include/expat" "-I{compiler.sdk.path}/include/json" "-I{compiler.sdk.path}/include/mbedtls" "-I{compiler.sdk.path}/include/nghttp" "-I{compiler.sdk.path}/include/lwip" +compiler.cpreprocessor.flags=-DESP_PLATFORM -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DHAVE_CONFIG_H "-I{compiler.sdk.path}/include/config" "-I{compiler.sdk.path}/include/bluedroid" "-I{compiler.sdk.path}/include/bt" "-I{compiler.sdk.path}/include/driver" "-I{compiler.sdk.path}/include/esp32" "-I{compiler.sdk.path}/include/ethernet" "-I{compiler.sdk.path}/include/fatfs" "-I{compiler.sdk.path}/include/freertos" "-I{compiler.sdk.path}/include/log" "-I{compiler.sdk.path}/include/mdns" "-I{compiler.sdk.path}/include/mbedtls" "-I{compiler.sdk.path}/include/mbedtls_port" "-I{compiler.sdk.path}/include/vfs" "-I{compiler.sdk.path}/include/ulp" "-I{compiler.sdk.path}/include/newlib" "-I{compiler.sdk.path}/include/nvs_flash" "-I{compiler.sdk.path}/include/spi_flash" "-I{compiler.sdk.path}/include/sdmmc" "-I{compiler.sdk.path}/include/openssl" "-I{compiler.sdk.path}/include/app_update" "-I{compiler.sdk.path}/include/tcpip_adapter" "-I{compiler.sdk.path}/include/xtensa-debug-module" "-I{compiler.sdk.path}/include/newlib" "-I{compiler.sdk.path}/include/coap" "-I{compiler.sdk.path}/include/wpa_supplicant" "-I{compiler.sdk.path}/include/expat" "-I{compiler.sdk.path}/include/json" "-I{compiler.sdk.path}/include/nghttp" "-I{compiler.sdk.path}/include/lwip" compiler.c.cmd=xtensa-esp32-elf-gcc compiler.c.flags=-std=gnu99 -Os -g3 -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -Wpointer-arith {compiler.warning_flags} -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -Wno-old-style-declaration -MMD -c @@ -27,7 +30,7 @@ compiler.S.flags=-c -g3 -x assembler-with-cpp -MMD -mlongcalls compiler.c.elf.cmd=xtensa-esp32-elf-gcc compiler.c.elf.flags=-nostdlib "-L{compiler.sdk.path}/lib" "-L{compiler.sdk.path}/ld" -T esp32_out.ld -T esp32.common.ld -T esp32.rom.ld -T esp32.peripherals.ld -u call_user_start_cpu0 -Wl,--gc-sections -Wl,-static -Wl,--undefined=uxTopUsedPriority -compiler.c.elf.libs=-lapp_update -lbootloader_support -lbt -lbtdm_app -lc -lc_nano -lcoap -lcoexist -lcore -lcxx -ldriver -lesp32 -lethernet -lexpat -lfatfs -lfreertos -lhal -ljson -llog -llwip -lm -lmbedtls -lmdns -lmicro-ecc -lnet80211 -lnewlib -lnghttp -lnvs_flash -lopenssl -lphy -lpp -lrtc -lsdmmc -lsmartconfig -lspi_flash -ltcpip_adapter -lulp -lvfs -lwpa -lwpa2 -lwpa_supplicant -lwps -lxtensa-debug-module -lgcc -lstdc++ +compiler.c.elf.libs=-lgcc -lstdc++ -lapp_update -lbootloader_support -lbt -lbtdm_app -lc -lc_nano -lcoap -lcoexist -lcore -lcxx -ldriver -lesp32 -lethernet -lexpat -lfatfs -lfreertos -lhal -ljson -llog -llwip -lm -lmbedtls -lmdns -lmicro-ecc -lnet80211 -lnewlib -lnghttp -lnvs_flash -lopenssl -lphy -lpp -lrtc -lsdmmc -lsmartconfig -lspi_flash -ltcpip_adapter -lulp -lvfs -lwpa -lwpa2 -lwpa_supplicant -lwps -lxtensa-debug-module compiler.as.cmd=xtensa-esp32-elf-as @@ -37,7 +40,8 @@ compiler.ar.flags=cru compiler.size.cmd=xtensa-esp32-elf-size # This can be overriden in boards.txt -build.extra_flags=-DESP32 +build.code_debug=0 +build.extra_flags=-DESP32 -DCORE_DEBUG_LEVEL={build.code_debug} # These can be overridden in platform.local.txt compiler.c.extra_flags= @@ -64,7 +68,7 @@ recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compil recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} -Wl,--start-group {object_files} "{build.path}/arduino.ar" {compiler.c.elf.libs} -Wl,--end-group -Wl,-EL -o "{build.path}/{build.project_name}.elf" ## Create eeprom -recipe.objcopy.eep.pattern= +recipe.objcopy.eep.pattern={tools.gen_esp32part.cmd} -q "{runtime.platform.path}/tools/partitions/default.csv" "{build.path}/{build.project_name}.partitions.bin" ## Create hex recipe.objcopy.hex.pattern={tools.esptool.cmd} --chip esp32 elf2image --flash_mode "{build.flash_mode}" --flash_freq "{build.flash_freq}" --flash_size "{build.flash_size}" -o "{build.path}/{build.project_name}.bin" "{build.path}/{build.project_name}.elf" @@ -83,4 +87,4 @@ recipe.size.regex.data=^(?:\.dram0\.data|\.dram0\.bss)\s+([0-9]+).* tools.esptool.upload.protocol=esp32 tools.esptool.upload.params.verbose= tools.esptool.upload.params.quiet= -tools.esptool.upload.pattern={cmd} --chip esp32 --port "{serial.port}" --baud {upload.speed} write_flash -z --flash_freq {build.flash_freq} --flash_mode {build.flash_mode} --flash_size {build.flash_size} 0x1000 "{runtime.platform.path}/tools/sdk/bin/bootloader.bin" 0x8000 "{runtime.platform.path}/tools/sdk/bin/partitions_singleapp.bin" 0x10000 "{build.path}/{build.project_name}.bin" +tools.esptool.upload.pattern={cmd} --chip esp32 --port "{serial.port}" --baud {upload.speed} --before default_reset --after hard_reset write_flash -z --flash_freq {build.flash_freq} --flash_mode {build.flash_mode} --flash_size {build.flash_size} 0x1000 "{runtime.platform.path}/tools/sdk/bin/bootloader.bin" 0x8000 "{build.path}/{build.project_name}.partitions.bin" 0x10000 "{build.path}/{build.project_name}.bin" diff --git a/tools/esptool.py b/tools/esptool.py index 026d22ca..e311634f 100755 --- a/tools/esptool.py +++ b/tools/esptool.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# NB: Before sending a PR to change the above line to '#!/usr/bin/env python2', please read https://github.com/espressif/esptool/issues/21 # # ESP8266 & ESP32 ROM Bootloader Utility # Copyright (C) 2014-2016 Fredrik Ahlberg, Angus Gratton, Espressif Systems (Shanghai) PTE LTD, other contributors as noted. @@ -17,6 +16,8 @@ # this program; if not, write to the Free Software Foundation, Inc., 51 Franklin # Street, Fifth Floor, Boston, MA 02110-1301 USA. +from __future__ import print_function, division + import argparse import hashlib import inspect @@ -29,7 +30,7 @@ import base64 import zlib import shlex -__version__ = "2.0-dev" +__version__ = "2.0-beta1" MAX_UINT32 = 0xffffffff MAX_UINT24 = 0xffffff @@ -64,6 +65,18 @@ def stub_and_esp32_function_only(func): return check_supported_function(func, lambda o: o.IS_STUB or o.CHIP_NAME == "ESP32") +PYTHON2 = sys.version_info[0] < 3 # True if on pre-Python 3 + +# Function to return nth byte of a bitstring +# Different behaviour on Python 2 vs 3 +if PYTHON2: + def byte(bitstr, index): + return ord(bitstr[index]) +else: + def byte(bitstr, index): + return bitstr[index] + + def esp8266_function_only(func): """ Attribute for a function only supported on ESP8266 """ return check_supported_function(func, lambda o: o.CHIP_NAME == "ESP8266") @@ -172,41 +185,45 @@ class ESPLoader(object): """ detect_port = ESPLoader(port, baud) detect_port.connect(connect_mode) - sys.stdout.write('Detecting chip type... ') + print('Detecting chip type...', end='') + sys.stdout.flush() date_reg = detect_port.read_reg(ESPLoader.UART_DATA_REG_ADDR) for cls in [ESP8266ROM, ESP32ROM]: if date_reg == cls.DATE_REG_VALUE: # don't connect a second time inst = cls(detect_port._port, baud) - print '%s' % inst.CHIP_NAME + print(' %s' % inst.CHIP_NAME) return inst - print '' + print('') raise FatalError("Unexpected UART datecode value 0x%08x. Failed to autodetect chip type." % date_reg) """ Read a SLIP packet from the serial port """ def read(self): - r = self._slip_reader.next() - return r + return next(self._slip_reader) """ Write bytes to the serial port while performing SLIP escaping """ def write(self, packet): - buf = '\xc0' \ - + (packet.replace('\xdb','\xdb\xdd').replace('\xc0','\xdb\xdc')) \ - + '\xc0' + buf = b'\xc0' \ + + (packet.replace(b'\xdb',b'\xdb\xdd').replace(b'\xc0',b'\xdb\xdc')) \ + + b'\xc0' self._port.write(buf) """ Calculate checksum of a blob, as it is defined by the ROM """ @staticmethod def checksum(data, state=ESP_CHECKSUM_MAGIC): for b in data: - state ^= ord(b) + if type(b) is int: # python 2/3 compat + state ^= b + else: + state ^= ord(b) + return state """ Send a request and read the response """ - def command(self, op=None, data="", chk=0, wait_response=True): + def command(self, op=None, data=b"", chk=0, wait_response=True): if op is not None: - pkt = struct.pack('II", *words) - return tuple(ord(b) for b in bitstring[:6]) # trim 2 byte CRC + bitstring = bitstring[:6] # trim 2 byte CRC + try: + return tuple(ord(b) for b in bitstring) # trim 2 byte CRC + except TypeError: # Python 3, bitstring elements are already bytes + return tuple(bitstring) def get_erase_size(self, offset, size): return size @@ -936,7 +966,7 @@ class ImageSegment(object): # pad all ImageSegments to at least 4 bytes length pad_mod = len(data) % 4 if pad_mod != 0: - data += "\x00" * (4 - pad_mod) + data += b"\x00" * (4 - pad_mod) self.data = data self.file_offs = file_offs self.include_in_checksum = True @@ -958,7 +988,7 @@ class ELFSection(ImageSegment): name as well as the common properties of an ImageSegment. """ def __init__(self, name, addr, data): super(ELFSection, self).__init__(addr, data) - self.name = name + self.name = name.decode("utf-8") def __repr__(self): return "%s %s" % (self.name, super(ELFSection, self).__repr__()) @@ -1023,7 +1053,7 @@ class BaseFirmwareImage(object): def append_checksum(self, f, checksum): """ Append ESPLoader checksum to the just-written image """ align_file_position(f, 16) - f.write(struct.pack('B', checksum)) + f.write(struct.pack(b'B', checksum)) def write_common_header(self, f, segments): f.write(struct.pack(' 0: - null = ImageSegment(0, '\x00' * pad_len, f.tell()) + null = ImageSegment(0, b'\x00' * pad_len, f.tell()) checksum = self.save_segment(f, null, checksum) padding_segments += 1 # verify that after the 8 byte header is added, were are at the correct offset relative to the segment's vaddr @@ -1261,7 +1291,10 @@ class ESP32FirmwareImage(BaseFirmwareImage): # kinda hacky: go back to the initial header and write the new segment count # that includes padding segments. Luckily(?) this header is not checksummed f.seek(1) - f.write(chr(len(self.segments) + padding_segments)) + try: + f.write(chr(len(self.segments) + padding_segments)) + except TypeError: # Python 3 + f.write(bytes([len(self.segments) + padding_segments])) class ELFFile(object): @@ -1291,7 +1324,7 @@ class ELFFile(object): except struct.error as e: raise FatalError("Failed to read a valid ELF header from %s: %s" % (self.name, e)) - if ident[0] != '\x7f' or ident[1:4] != 'ELF': + if byte(ident, 0) != 0x7f or ident[1:4] != b'ELF': raise FatalError("%s has invalid ELF magic header" % self.name) if machine != 0x5e: raise FatalError("%s does not appear to be an Xtensa ELF file. e_machine=%04x" % (self.name, machine)) @@ -1304,7 +1337,7 @@ class ELFFile(object): if len(section_header) == 0: raise FatalError("No section header found at offset %04x in ELF file." % section_header_offs) if len(section_header) % LEN_SEC_HEADER != 0: - print 'WARNING: Unexpected ELF section header length %04x is not mod-%02x' % (len(section_header),LEN_SEC_HEADER) + print('WARNING: Unexpected ELF section header length %04x is not mod-%02x' % (len(section_header),LEN_SEC_HEADER)) # walk through the section header and extract all sections section_header_offsets = range(0, len(section_header), LEN_SEC_HEADER) @@ -1320,7 +1353,7 @@ class ELFFile(object): raise FatalError("ELF file has no STRTAB section at shstrndx %d" % shstrndx) _,sec_type,_,sec_size,sec_offs = read_section_header(shstrndx * LEN_SEC_HEADER) if sec_type != ELFFile.SEC_TYPE_STRTAB: - print 'WARNING: ELF file has incorrect STRTAB section type 0x%02x' % sec_type + print('WARNING: ELF file has incorrect STRTAB section type 0x%02x' % sec_type) f.seek(sec_offs) string_table = f.read(sec_size) @@ -1328,7 +1361,7 @@ class ELFFile(object): # string table section, and actual data for each section from the ELF file itself def lookup_string(offs): raw = string_table[offs:] - return raw[:raw.index('\x00')] + return raw[:raw.index(b'\x00')] def read_data(offs,size): f.seek(offs) @@ -1351,25 +1384,29 @@ def slip_reader(port): while True: waiting = port.inWaiting() read_bytes = port.read(1 if waiting == 0 else waiting) - if read_bytes == '': + if read_bytes == b'': raise FatalError("Timed out waiting for packet %s" % ("header" if partial_packet is None else "content")) for b in read_bytes: + + if type(b) is int: + b = bytes([b]) # python 2/3 compat + if partial_packet is None: # waiting for packet header - if b == '\xc0': - partial_packet = "" + if b == b'\xc0': + partial_packet = b"" else: raise FatalError('Invalid head of packet (%r)' % b) elif in_escape: # part-way through escape sequence in_escape = False - if b == '\xdc': - partial_packet += '\xc0' - elif b == '\xdd': - partial_packet += '\xdb' + if b == b'\xdc': + partial_packet += b'\xc0' + elif b == b'\xdd': + partial_packet += b'\xdb' else: - raise FatalError('Invalid SLIP escape (%r%r)' % ('\xdb', b)) - elif b == '\xdb': # start of escape sequence + raise FatalError('Invalid SLIP escape (%r%r)' % (b'\xdb', b)) + elif b == b'\xdb': # start of escape sequence in_escape = True - elif b == '\xc0': # end of packet + elif b == b'\xc0': # end of packet yield partial_packet partial_packet = None else: # normal byte in packet @@ -1385,7 +1422,7 @@ def div_roundup(a, b): equivalent result to int(math.ceil(float(int(a)) / float(int(b))), only without possible floating point accuracy errors. """ - return (int(a) + int(b) - 1) / int(b) + return (int(a) + int(b) - 1) // int(b) def align_file_position(f, size): @@ -1407,13 +1444,23 @@ def flash_size_bytes(size): def hexify(s): - return ''.join('%02X' % ord(c) for c in s) + if not PYTHON2: + return ''.join('%02X' % c for c in s) + else: + return ''.join('%02X' % ord(c) for c in s) def unhexify(hs): - s = '' + s = bytes() + for i in range(0, len(hs) - 1, 2): - s += chr(int(hs[i] + hs[i + 1], 16)) + hex_string = hs[i:i + 2] + + if not PYTHON2: + s += bytes([int(hex_string, 16)]) + else: + s += chr(int(hex_string, 16)) + return s @@ -1431,7 +1478,7 @@ class FatalError(RuntimeError): Return a fatal error object that appends the hex values of 'result' as a string formatted argument. """ - message += " (result was %s)" % ", ".join(hex(ord(x)) for x in result) + message += " (result was %s)" % hexify(result) return FatalError(message) @@ -1441,7 +1488,7 @@ class NotImplementedInROMError(FatalError): is not implemented in the ROM bootloader. """ def __init__(self, bootloader, func): - FatalError.__init__(self, "%s ROM does not support function %s." % (bootloader.CHIP_NAME, func.func_name)) + FatalError.__init__(self, "%s ROM does not support function %s." % (bootloader.CHIP_NAME, func.__name__)) # "Operation" commands, executable at command line. One function each # @@ -1452,9 +1499,9 @@ class NotImplementedInROMError(FatalError): def load_ram(esp, args): image = LoadFirmwareImage(esp, args.filename) - print 'RAM boot...' + print('RAM boot...') for (offset, size, data) in image.segments: - print 'Downloading %d bytes at %08x...' % (size, offset), + print('Downloading %d bytes at %08x...' % (size, offset), end=' ') sys.stdout.flush() esp.mem_begin(size, div_roundup(size, esp.ESP_RAM_BLOCK), esp.ESP_RAM_BLOCK, offset) @@ -1463,31 +1510,32 @@ def load_ram(esp, args): esp.mem_block(data[0:esp.ESP_RAM_BLOCK], seq) data = data[esp.ESP_RAM_BLOCK:] seq += 1 - print 'done!' + print('done!') - print 'All segments done, executing at %08x' % image.entrypoint + print('All segments done, executing at %08x' % image.entrypoint) esp.mem_finish(image.entrypoint) def read_mem(esp, args): - print '0x%08x = 0x%08x' % (args.address, esp.read_reg(args.address)) + print('0x%08x = 0x%08x' % (args.address, esp.read_reg(args.address))) def write_mem(esp, args): esp.write_reg(args.address, args.value, args.mask, 0) - print 'Wrote %08x, mask %08x to %08x' % (args.value, args.mask, args.address) + print('Wrote %08x, mask %08x to %08x' % (args.value, args.mask, args.address)) def dump_mem(esp, args): - f = file(args.filename, 'wb') - for i in xrange(args.size / 4): + f = open(args.filename, 'wb') + for i in range(args.size // 4): d = esp.read_reg(args.address + (i * 4)) - f.write(struct.pack('> 16 args.flash_size = {0x12: '256KB', 0x13: '512KB', 0x14: '1MB', 0x15: '2MB', 0x16: '4MB', 0x17: '8MB', 0x18: '16MB'}.get(size_id) if args.flash_size is None: - print 'Warning: Could not auto-detect Flash size (FlashID=0x%x, SizeID=0x%x), defaulting to 4m' % (flash_id, size_id) - args.flash_size = '4m' + print('Warning: Could not auto-detect Flash size (FlashID=0x%x, SizeID=0x%x), defaulting to 4MB' % (flash_id, size_id)) + args.flash_size = '4MB' else: - print 'Auto-detected Flash size:', args.flash_size + print('Auto-detected Flash size:', args.flash_size) -def write_flash(esp, args): - """Write data to flash - """ +def _get_flash_params(esp, args): + """ Return binary flash parameters (bitstring length 2) for args """ detect_flash_size(esp, args) flash_mode = {'qio':0, 'qout':1, 'dio':2, 'dout': 3}[args.flash_mode] flash_size_freq = esp.parse_flash_size_arg(args.flash_size) flash_size_freq += {'40m':0, '26m':1, '20m':2, '80m': 0xf}[args.flash_freq] - flash_info = struct.pack('BB', flash_mode, flash_size_freq) + return struct.pack(b'BB', flash_mode, flash_size_freq) + + +def _update_image_flash_params(esp, address, flash_params, image): + """ Modify the flash mode & size bytes if this looks like an executable image """ + if address == esp.FLASH_HEADER_OFFSET and (image[0] == '\xe9' or image[0] == 0xE9): # python 2/3 compat: + print('Flash params set to 0x%04x' % struct.unpack(">H", flash_params)) + image = image[0:2] + flash_params + image[4:] + return image + + +def write_flash(esp, args): + flash_params = _get_flash_params(esp, args) + + # set args.compress based on default behaviour: + # -> if either --compress or --no-compress is set, honour that + # -> otherwise, set --compress unless --no-stub is set + if args.compress is None and not args.no_compress: + args.compress = not args.no_stub # verify file sizes fit in flash flash_end = flash_size_bytes(args.flash_size) @@ -1524,11 +1589,9 @@ def write_flash(esp, args): for address, argfile in args.addr_filename: if args.no_stub: - print 'Erasing flash...' + print('Erasing flash...') image = argfile.read() - # Update header with flash parameters - if address == esp.FLASH_HEADER_OFFSET and image[0] == '\xe9': - image = image[0:2] + flash_info + image[4:] + image = _update_image_flash_params(esp, address, flash_params, image) calcmd5 = hashlib.md5(image).hexdigest() uncsize = len(image) if args.compress: @@ -1541,16 +1604,15 @@ def write_flash(esp, args): seq = 0 written = 0 t = time.time() - header_block = None while len(image) > 0: - print '\rWriting at 0x%08x... (%d %%)' % (address + seq * esp.FLASH_WRITE_SIZE, 100 * (seq + 1) / blocks), + print('\rWriting at 0x%08x... (%d %%)' % (address + seq * esp.FLASH_WRITE_SIZE, 100 * (seq + 1) // blocks), end='') sys.stdout.flush() block = image[0:esp.FLASH_WRITE_SIZE] if args.compress: esp.flash_defl_block(block, seq) else: # Pad the last block - block = block + '\xff' * (esp.FLASH_WRITE_SIZE - len(block)) + block = block + b'\xff' * (esp.FLASH_WRITE_SIZE - len(block)) esp.flash_block(block, seq) image = image[esp.FLASH_WRITE_SIZE:] seq += 1 @@ -1560,23 +1622,23 @@ def write_flash(esp, args): if args.compress: if t > 0.0: speed_msg = " (effective %.1f kbit/s)" % (uncsize / t * 8 / 1000) - print '\rWrote %d bytes (%d compressed) at 0x%08x in %.1f seconds%s...' % (uncsize, written, address, t, speed_msg) + print('\rWrote %d bytes (%d compressed) at 0x%08x in %.1f seconds%s...' % (uncsize, written, address, t, speed_msg)) else: if t > 0.0: speed_msg = " (%.1f kbit/s)" % (written / t * 8 / 1000) - print '\rWrote %d bytes at 0x%08x in %.1f seconds%s...' % (written, address, t, speed_msg) + print('\rWrote %d bytes at 0x%08x in %.1f seconds%s...' % (written, address, t, speed_msg)) try: res = esp.flash_md5sum(address, uncsize) if res != calcmd5: - print 'File md5: %s' % calcmd5 - print 'Flash md5: %s' % res - print 'MD5 of 0xFF is %s' % (hashlib.md5(b'\xFF' * uncsize).hexdigest()) + print('File md5: %s' % calcmd5) + print('Flash md5: %s' % res) + print('MD5 of 0xFF is %s' % (hashlib.md5(b'\xFF' * uncsize).hexdigest())) raise FatalError("MD5 of file does not match data in flash!") else: - print 'Hash of data verified.' + print('Hash of data verified.') except NotImplementedInROMError: pass - print '\nLeaving...' + print('\nLeaving...') if esp.IS_STUB: # skip sending flash_finish to ROM loader here, @@ -1588,23 +1650,24 @@ def write_flash(esp, args): esp.flash_finish(False) if args.verify: - print 'Verifying just-written flash...' - verify_flash(esp, args, header_block) + print('Verifying just-written flash...') + print('(This option is deprecated, flash contents are now always read back after flashing.)') + _verify_flash(esp, args) def image_info(args): image = LoadFirmwareImage(args.chip, args.filename) print('Image version: %d' % image.version) - print('Entry point: %08x' % image.entrypoint) if image.entrypoint != 0 else 'Entry point not set' - print '%d segments' % len(image.segments) + print('Entry point: %08x' % image.entrypoint if image.entrypoint != 0 else 'Entry point not set') + print('%d segments' % len(image.segments)) print idx = 0 for seg in image.segments: idx += 1 - print 'Segment %d: %r' % (idx, seg) + print('Segment %d: %r' % (idx, seg)) calc_checksum = image.calculate_checksum() - print 'Checksum: %02x (%s)' % (image.checksum, - 'valid' if image.checksum == calc_checksum else 'invalid - calculated %02x' % calc_checksum) + print('Checksum: %02x (%s)' % (image.checksum, + 'valid' if image.checksum == calc_checksum else 'invalid - calculated %02x' % calc_checksum)) def make_image(args): @@ -1614,7 +1677,7 @@ def make_image(args): if len(args.segfile) != len(args.segaddr): raise FatalError('Number of specified files does not match number of specified addresses') for (seg, addr) in zip(args.segfile, args.segaddr): - data = file(seg, 'rb').read() + data = open(seg, 'rb').read() image.segments.append(ImageSegment(addr, data)) image.entrypoint = args.entrypoint image.save(args.output) @@ -1623,7 +1686,7 @@ def make_image(args): def elf2image(args): e = ELFFile(args.input) if args.chip == 'auto': # Default to ESP8266 for backwards compatibility - print "Creating image for ESP8266..." + print("Creating image for ESP8266...") args.chip == 'esp8266' if args.chip != 'esp32': @@ -1652,27 +1715,27 @@ def read_mac(esp, args): mac = esp.read_mac() def print_mac(label, mac): - print '%s: %s' % (label, ':'.join(map(lambda x: '%02x' % x, mac))) + print('%s: %s' % (label, ':'.join(map(lambda x: '%02x' % x, mac)))) print_mac("MAC", mac) def chip_id(esp, args): chipid = esp.chip_id() - print 'Chip ID: 0x%08x' % chipid + print('Chip ID: 0x%08x' % chipid) def erase_flash(esp, args): - print 'Erasing flash (this may take a while)...' + print('Erasing flash (this may take a while)...') t = time.time() esp.erase_flash() - print 'Chip erase completed successfully in %.1fs' % (time.time() - t) + print('Chip erase completed successfully in %.1fs' % (time.time() - t)) def erase_region(esp, args): - print 'Erasing region (may be slow depending on size)...' + print('Erasing region (may be slow depending on size)...') t = time.time() esp.erase_region(args.address, args.size) - print 'Erase completed successfully in %.1f seconds.' % (time.time() - t) + print('Erase completed successfully in %.1f seconds.' % (time.time() - t)) def run(esp, args): @@ -1681,8 +1744,8 @@ def run(esp, args): def flash_id(esp, args): flash_id = esp.flash_id() - print 'Manufacturer: %02x' % (flash_id & 0xff) - print 'Device: %02x%02x' % ((flash_id >> 8) & 0xff, (flash_id >> 16) & 0xff) + print('Manufacturer: %02x' % (flash_id & 0xff)) + print('Device: %02x%02x' % ((flash_id >> 8) & 0xff, (flash_id >> 16) & 0xff)) def read_flash(esp, args): @@ -1699,57 +1762,69 @@ def read_flash(esp, args): t = time.time() data = esp.read_flash(args.address, args.size, flash_progress) t = time.time() - t - print ('\rRead %d bytes at 0x%x in %.1f seconds (%.1f kbit/s)...' - % (len(data), args.address, t, len(data) / t * 8 / 1000)) - file(args.filename, 'wb').write(data) + print('\rRead %d bytes at 0x%x in %.1f seconds (%.1f kbit/s)...' + % (len(data), args.address, t, len(data) / t * 8 / 1000)) + open(args.filename, 'wb').write(data) def verify_flash(esp, args, flash_params=None): + _verify_flash(esp, args) + + +def _verify_flash(esp, args): differences = False + flash_params = _get_flash_params(esp, args) + for address, argfile in args.addr_filename: image = argfile.read() argfile.seek(0) # rewind in case we need it again - if address == 0 and image[0] == '\xe9' and flash_params is not None: - image = image[0:2] + flash_params + image[4:] + + image = _update_image_flash_params(esp, address, flash_params, image) + image_size = len(image) - print 'Verifying 0x%x (%d) bytes @ 0x%08x in flash against %s...' % (image_size, image_size, address, argfile.name) + print('Verifying 0x%x (%d) bytes @ 0x%08x in flash against %s...' % (image_size, image_size, address, argfile.name)) # Try digest first, only read if there are differences. digest = esp.flash_md5sum(address, image_size) expected_digest = hashlib.md5(image).hexdigest() if digest == expected_digest: - print '-- verify OK (digest matched)' + print('-- verify OK (digest matched)') continue else: differences = True if getattr(args, 'diff', 'no') != 'yes': - print '-- verify FAILED (digest mismatch)' + print('-- verify FAILED (digest mismatch)') continue flash = esp.read_flash(address, image_size) assert flash != image - diff = [i for i in xrange(image_size) if flash[i] != image[i]] - print '-- verify FAILED: %d differences, first @ 0x%08x' % (len(diff), address + diff[0]) + diff = [i for i in range(image_size) if flash[i] != image[i]] + print('-- verify FAILED: %d differences, first @ 0x%08x' % (len(diff), address + diff[0])) for d in diff: - print ' %08x %02x %02x' % (address + d, ord(flash[d]), ord(image[d])) + flash_byte = flash[d] + image_byte = image[d] + if PYTHON2: + flash_byte = ord(flash_byte) + image_byte = ord(image_byte) + print(' %08x %02x %02x' % (address + d, flash_byte, image_byte)) if differences: raise FatalError("Verify failed.") def read_flash_status(esp, args): - print ('Status value: 0x%04x' % esp.read_status(args.bytes)) + print('Status value: 0x%04x' % esp.read_status(args.bytes)) def write_flash_status(esp, args): fmt = "0x%%0%dx" % (args.bytes * 2) args.value = args.value & ((1 << (args.bytes * 8)) - 1) - print (('Initial flash status: ' + fmt) % esp.read_status(args.bytes)) - print (('Setting flash status: ' + fmt) % args.value) + print(('Initial flash status: ' + fmt) % esp.read_status(args.bytes)) + print(('Setting flash status: ' + fmt) % args.value) esp.write_status(args.value, args.bytes, args.non_volatile) - print (('After flash status: ' + fmt) % esp.read_status(args.bytes)) + print(('After flash status: ' + fmt) % esp.read_status(args.bytes)) def version(args): - print __version__ + print(__version__) # # End of operations functions @@ -1761,7 +1836,7 @@ def main(): parser.add_argument('--chip', '-c', help='Target chip type', - choices=['auto', 'esp8266', 'esp31', 'esp32'], + choices=['auto', 'esp8266', 'esp32'], default=os.environ.get('ESPTOOL_CHIP', 'auto')) parser.add_argument( @@ -1842,8 +1917,11 @@ def main(): action=AddrFilenamePairAction) add_spi_flash_subparsers(parser_write_flash, auto_detect=True) parser_write_flash.add_argument('--no-progress', '-p', help='Suppress progress output', action="store_true") - parser_write_flash.add_argument('--verify', help='Verify just-written data (only necessary if very cautious, data is already CRCed', action='store_true') - parser_write_flash.add_argument('--compress', '-z', help='Compress data in transfer',action="store_true") + parser_write_flash.add_argument('--verify', help='Verify just-written data on flash ' + + '(mostly superfluous, data is read back during flashing)', action='store_true') + compress_args = parser_write_flash.add_mutually_exclusive_group(required=False) + compress_args.add_argument('--compress', '-z', help='Compress data in transfer (default unless --no-stub is specified)',action="store_true", default=None) + compress_args.add_argument('--no-compress', '-u', help='Disable data compression during transfer (default if --no-stub is specified)',action="store_true") subparsers.add_parser( 'run', @@ -1913,6 +1991,7 @@ def main(): action=AddrFilenamePairAction) parser_verify_flash.add_argument('--diff', '-d', help='Show differences', choices=['no', 'yes'], default='no') + add_spi_flash_subparsers(parser_verify_flash, auto_detect=True) subparsers.add_parser( 'erase_flash', @@ -1935,11 +2014,15 @@ def main(): args = parser.parse_args() - print 'esptool.py v%s' % __version__ + print('esptool.py v%s' % __version__) # operation function can take 1 arg (args), 2 args (esp, arg) # or be a member function of the ESPLoader class. + if args.operation is None: + parser.print_help() + sys.exit(1) + operation_func = globals()[args.operation] operation_args,_,_,_ = inspect.getargspec(operation_func) if operation_args[0] == 'esp': # operation function takes an ESPLoader connection object @@ -1961,16 +2044,16 @@ def main(): try: esp.change_baud(args.baud) except NotImplementedInROMError: - print "WARNING: ROM doesn't support changing baud rate. Keeping initial baud rate %d" % initial_baud + print("WARNING: ROM doesn't support changing baud rate. Keeping initial baud rate %d" % initial_baud) # override common SPI flash parameter stuff as required if hasattr(args, "ucIsHspi"): - print "Attaching SPI flash..." + print("Attaching SPI flash...") esp.flash_spi_attach(args.ucIsHspi,args.ucIsLegacy) else: esp.flash_spi_attach(0, 0) if hasattr(args, "flash_size"): - print "Configuring flash size..." + print("Configuring flash size...") detect_flash_size(esp, args) esp.flash_set_parameters(flash_size_bytes(args.flash_size)) @@ -1978,14 +2061,14 @@ def main(): # finish execution based on args.after if args.after == 'hard_reset': - print 'Hard resetting...' + print('Hard resetting...') esp.hard_reset() elif args.after == 'soft_reset': - print 'Soft resetting...' + print('Soft resetting...') # flash_finish will trigger a soft reset esp.soft_reset(False) else: - print 'Staying in bootloader.' + print('Staying in bootloader.') if esp.IS_STUB: esp.soft_reset(True) # exit stub back to ROM loader @@ -2009,7 +2092,7 @@ def expand_file_arguments(): else: new_args.append(arg) if expanded: - print "esptool.py %s" % (" ".join(new_args[1:])) + print("esptool.py %s" % (" ".join(new_args[1:]))) sys.argv = new_args @@ -2074,107 +2157,108 @@ class AddrFilenamePairAction(argparse.Action): # Binary stub code (see flasher_stub dir for source & details) ESP8266ROM.STUB_CODE = eval(zlib.decompress(base64.b64decode(b""" -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\ """))) ESP32ROM.STUB_CODE = eval(zlib.decompress(base64.b64decode(b""" -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\ """))) + if __name__ == '__main__': try: main() except FatalError as e: - print '\nA fatal error occurred: %s' % e + print('\nA fatal error occurred: %s' % e) sys.exit(2) diff --git a/tools/gen_esp32part.exe b/tools/gen_esp32part.exe new file mode 100644 index 0000000000000000000000000000000000000000..6123e17c6221c2dcc369c152e2631c1ce0c5b342 GIT binary patch literal 3337401 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

F@%=jgo8enTKlhT5Rx{k{JdVvTHlI<^PvlEG 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

EL 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

Wq`+|MDV9WN6t1TdxAmx1Dg#_6MX! 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

E-pKp!}Wv1b?VM4$AbIzaHxN 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

8iCo_7bH#2o~fz8^~zo2u<&l^_-w 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 *8L3O{Y>w zYw>ofACWTAU5%7&HD^kMn_Uv&YvpK4_;M^hmJ-{9)J91aF?mwdTA0FD!7}42&^qAx z%Pi!*l@gJqcUm)&B+9esq68H{xkzu|vkJ~6I$2h}6O{Iya;P2H8QKoK^BBG8O@~)J zU5nktAi$hyScjb`E8m!@H%4V-JAhd*;u;e@{5eXOG0HfG$w9|ShBKpk0I*E)`U#tA z7j~xG^)s>!Zw9zFgbfe-`%8Fl4(so~mijwR7m{bx-S7WD(cOvM-xsm|UJ=kwFJt}P z7ZC1b{e38)zwcoE{SyKBJ6M1JR*3!{#bi!eqsxmvSfk>=;uPGU$JJoq;*XxZNY|XJ zL3`euFzY|u=gZS+_W2so2=&P@MyOBf!kxXB?!We8|8NNI5h}FqdvV@@;~d&f9gIf! zr8@(nQ5t#;XrK!?dnVHzJf2DYC_iF9+Ni^R)T*1VAN^10euT;Y!~F0pOfxG;`lL4 z`H}pg`H>vRj}wYT%Q-z$k~zD^zrd3;rh_8#<|jCuj%Lk%)zv)C7#eYR z=HcE{0{xMW9f7#g=q72$ErI?hQIh3X+ImZ%KLJq!e=gC^&HxJaRwF$UkS!WBbk1L= zADz*jLGcCb8I)*o1@(>q(On06f)*dVcf#@QGaTQ#n>G6)1)6=44C%m#^sna7NTmG{ zlw15}x-5jvKdk+heKPF+v10R2mQ4OyYwk>JxwF`N5TR_jerdfo^Sy}MxV;Gcn8cyO zy$D7o3=s;QU%p^E7qb2kac=_KYHS7WO?*b)gZPZRH}NsLH=zlSv^Rm@Hdib2bC?X3 zN_!I~Zys%7y3b%WCAHRv*`7!_?`w+Hxew!5K$}0>lIc^Eu8_AVVEM1NxR0_e3Y`2} z*(s{*%Z%b`qx4;^v~$p4W|LoYYszAus~zUG()SnqR~XWK0Qbxn^LraE?cPSxT9eN! zn(Nc~(^poSPv8c}4t|3Jd9#{72b3&*numKFGuqw2ozT;C7!13qq1{Kg{Q~w8-uRdI z5#+s2+()qD91X|i#dIIx4V`4+WE%sw2WM6nY7)gCQ;hpE{`??))=lKOQMG?Up=`6+;W6aQT*f+7&d6LB7S4f;n{ zM9G^TEdLnXFa+9UkfX!WB&C{|fD~y$_Qf+G4NP{U;h!SRL-v1ELJ~tZ!+lO7$-n9P zj5byq#f|8$%E>@Y7qWjj!-~^))7?lFXVe=1CF$*f`%jYvPG6m@aq%x*1ykdMVS;3A z4&ws%ftv5(9p5t_9IehM5&D)>jU@iK^?&CBwka5|)a|J1UA@xlf0+~H^}5~hTiED$ zB(LYvVDY+rF*=*D#HhkB!iY+b4LBN!c-SIX4K&l|3fgix`Ro36C$4YcfBsfJyNtW| zkX5j}@d69BE_vk)uIsFxUEZ*60nOInOV)JC0>LPCUF7SV|M>33);8?(<|GRmA9n+q zz*)j;FT9cGZ{ZG2U|Gnt|4q$kaM5k$!B@QI{H?L339J!ldr42eiW;r5*3Mmd{$`PD z8!{w>ywdkk5-}>AD8C zVCFjb#4m7tiEe!Of{^)D=e+9!e$6J!0jg<*nyH5~o&FWUw!ZcEAm>XThJE@3Ztt== z8|<%iAGyW}bEG)ihsNk}&In5QHS?vZeoj6M&$SA@M+3w3NGzsR^AD0Wb1v8w^Hk3C zNlve0RGWJAZSuN_)u4~=Wpgcg(N%LZ*LVB6i6(=F315n)l_(6`^hi9WRTSoN&b6mp z+xl9351)Xhl}I*-GL(;UoBH%`E9S9_A23ZTRfcN}%EYUj5py$uwX>u!&I!H}+eP+D zTTTT;tGSNd{Q3#INX_V>QricTxm9x$(WTw%=vB@a%@|uw6~iVi-)m8Om6xAQTFm;l zHByL86Rx2(6I3V=r6Z!IYc|!3oTs164b$)6)@XaP`6!Sn@tH5@s zY?A)y?4>hr82Zbp8>y&!lSj5^-jfe{rPwU4Dv`_wDz&ojI7s~w#+eR3q{GU;WAR%| z2fCGseRmCXUgzyfGr5_pJGH1D=v^6LWgp$Q9(9*4AcyOh(6Q{80L7#l+Zi(34a~JS zBuF;zFcRdkZTt>UR4&^mOCO>x(>(+R}rIcE0tO%QCIEC#~20xBiU@M>tv`cLe*a_R9D* zUJ7BVo_VXfxi)?6zhBPwy&j?L?mMV7g|pG9a;10N84|BdSR|9cr8&t~eC~WXpp&v* z5n7dN`$jf_1#(YM`zx!0T>tWQn-2C*O1)Uv(<3cxCKO*atAL`vNfHE92{my^9^9eV z4#Y!Z0X{;`d_7z|#G{*sLX$m(`$pywPQ^(9TN$D+t4KQmfw1-y2K9CHzcS;f|HH2EfraKs+-7b?f%E1X< z#~{DLMO4pg^&Y+VeBNWUJE`b#tIO;*sy!RgE-p(su6noAJvXT9jmjD~yGUPu2J0b7 zrorhEgC^WfCb@P%q3Xfee3Yz2{LBs)>>S-xIGOn>Uo%~d26;O&o0Am^-wAb~TFz>@r=1fM7CZpW?vEt9h zD9$1N_;QZXepO$887?cewoi%KWV?r9be%rfW=j@d7)4m|#!Sa2N8)-wg2#-&vf@WC zXpeOtxT+PGPa8R)Ct`)KOu0hp&k#y#FJ}Q0mci3VCO5(@af=R?zUJ>wg8twbW~A1n zPbC62_|xLDb#fF^E{5pkrN&(64kA`(& z$Zo$x`fsvby|-di&mz&I7ZNqKCl%MDt%j^W(FvPevta+Vtf7|^Sl0dn_94_xEg8wV z8W_zxxH4|@H)0fXT!{wTCJ2YkRv|X8|G1yQ3Nul^!CxdXGH`Sug>m(T@p@w|-62zM zUzT_=pRs~QC&V!Kftk(3-aJ7iPP9BW5q2K3N>Ri&73AXGcWGzdxZ-xEIYOB=J7E`< z!4$l33P~@SV^J|!Jq*C$@`$t7(t4-MFfg&=-7xk=EUqFZ$RBamd>!3uVf*0+nIY~h?< zEs|_07U*BQBs70`@JdW+Ph7=9);ur$|LRKH*rk2+9QS# zX|()QkQfv55tK*dU(6@8Cz87Nmv3G#Z-;UuA2FR|AIOAb%qI5ToBbOxA78x0-n*9x zZ`xM~Z&Vnv*%-3d&(J&~6w;?yn~J^|+YcK|te?_0za+o2oxg8|+JF(5Th@iZ*>+%` zhV{eKmK)LLm#z<#^Qh-tx}thZ?7Ydm%PEz{y~s~L%7Q=!{xyI3ea!1p&NAf#|8u87 z)GcZI+W=#_JW%oZZ;&)WqSxWC|NLqA-+D*eeA?;+@iiB_w(45k;I+W0Pw-^cq8kSr z)ax(i_@xhKyt@C_f#&ml*AFoF!kj|q-Y^Z;Uj;B@3+z-9x9}S>Q=Q}DD zldBx(fBSywOds{Xo<0UfH;ZXMZk3;IVMaIcRl9C{y5mbZW>Syd6EIoyt*-^Cch~X4 zic{@D43-CkX)T?r+}N208<9X74F*S^FhrG4wf}tJ>`u1-DeszJ_!vE{OBJI8l`Je& zaRHh{di6<*LcP75(A)@K7}K5#Vs+7p4h6reL|h*T`CKzRYUrk!;jxNC!7>WKtG`^} z#y~MqRTof^%l_>mgU6#mQ_@lrrE)MizBZ_KEldZ|JEmD#4p*?Zc<;=rNw{Hmd1rd1 z_7La%SxQ%C2%-2_4{~1{&lUTweESc+<7uZ(2$P&BL34*@#5cZkA3$_4;SEA67tmbqT9!T z$D#V$;gkXc@rsU@-Pd=;FCT_evSQzN$LUK72!!U^ z4l{ETcezq@sIIvkPB#h<1VTfQ!58z@c3EEpo4Gukm@L!vBy9>qL%TV;=Fhqh%Cd<< zC>&LmQmHos3G8q8tgq~?Paj!tkA*lD-_ZrK#EP>uXhHYps{$C!OvKmxP(N&I?W9{9 zANB_sO@A%Fnx6kT8^I?XsBEMrHN7d``fA`fc^jc8d7vN&la)iBPBDX6;J>T8p=b%T+Au95Sjs}L4$@Oq=glw3&Ud2VW`kTbKmK4$zWQDd zM;V9+pqH~+=Xyd|2LtOQS-AnFDt~M) z5nVVeeA|NcQFG_Plbo~BPb=8M4jq8(x{5{8Tx*oJ8E~zAVisu!ffwNANXA>UG zR-#VGJ|*#Wx)8&>!H(u1UkPW z5$DS2xj!REGNKy4j_2nSgcJ_{I<1TwH^DTg%GEDLMUjgU+8k7HsTw5t4+$6!9^F_> zVo3~<{=9sUm5`5!&1%uwl9PPZq48}njNP?T7BladN&PW};rJ+{C#l`adj$+L0HUtU zj5Y_{Q9Zdiyzh{fdV0F51o^EmNfrCe8cF2K3oVve7N_g9`Y^OI!wO=c)#Gst*jAV#Vpj*$h&AOvIeu6*EZK1 zQ@rHb0Nd(0`h7#Z1SH>mDs_cwVuVCq!AhKUU+b`%l;FNrPt}B>aekHDxj(4jCM#^i zg(vjXa{u~ic14(7aUA-St=M`ZVgSqGfP4UNvL72N|FN-pTnvcV3^_ws+=61xfp_|G z|A#WDx*m1XQnqN$h@Hq_zh|H1o#H8@Jg$OZ20foNm{+54bL(8ZvB)GglvK!R?;WwWV)?ROr(pJD>>UyV z(8kW52=AV|jM>@Y9LW}aZPw)|( zWPDV5jKuGE_5MMU`*sMvV-Qgf*{VwTUO9OF2xNTUwF{o637tg4t%)+~BH*Oec37eb zH#h-v3w~%$u*H+LC6nrlw*BU!224#}l}&GnjY(m622Q*o^vEOnMh{W0@J&CwBUc64 z;>=`1X|>KjS!j01F=pkQnVi3d3meq-lAKJkwtUcB*|YVfedZlDalV{o*up)(5ZXpp zTHtd}X#V#m=nE=N_N|0CLv~2pI5e)xOA{@$#D3%4I>veC&R#P7!)2aQ!nbi$qje@h zl66zdnb~?nR_MVEpxa1LYZ2b|O!H4*r~-@q_k}eFvEsd!N5`6QQ>}_CCs2 zbq4xWGbPykb?iL#qN^HRgJ__!%M8>P;*)oik9 z^*v2eGAv$*k`d0>e2Kw14izt04btDUus|Nv$b9<`lkKL(3kfNm3kj_&DJxcSoZ8pt zhAKvxwg29r`Yk>dXd3^((ksbZH*B`0f^h+S102PPz4xBZUX1#KZ=<$;X}A8`5QsfusSQt? z56_C3tTgf}tgAoEwzv%(gSl8i+k#niz(FB;%S*y|^>S(mHRnOFpndM~iOa%O;>{nE zTtEJ2jR>YaTda0?3cu53JdrGZ;W*355=S}GokwG{E60U5PH>mm_{@o(`1`v}dBXg6 z8!r56E)*?&hVlvr9;17j{Gp2&r`75MiqkWkV?v}EK9paw7)vQ~C>UZnYAKOGqS`AC za)SpObNV2hKhRwtrtC81@F6~FyP>a<54F|gmm;@XFI5sdi`LFf!r;(sQN33@gUyet7`jIjF+47j6nts2V zK8T5A$RDoaRSW8c%EJcjq#^vd5qh3ej*RK_N5l6q(Fr(+U@gaj3x@32S!bP zRu6>ntKu7QcbmH@|Hov@Xl&`BHh3{>)y4JKGAD;kmP`j>uePH7s&SSL-1wqi=Hch( zd7wX6Vs|vJ4%y6zj!;3lm3-Ku`W1Fg!)=24z`SS)YxsJcvS>!A$qDG&SJc43rBQeB3QXU!HrO}|k(G<%}! z^(DIPCuWHaG&XIg7zbV^4v_PW73E#KEunF)yWiO{jMcTZn%Unm{uDjSvbc_DxVGfK z;_K2A$}&Je^s=^%6zU?(Q>6Al?|f&&9G)!>(M_ioFL31{wIO3HFV0#6T0S<;6%|90 z(ba-MNRK)})(>C5)Y(XCvUipO+e@qTHooWF^!o87MD#h`0G@FRj^c z$EnC_?)KBLN_TNkO>WB~|J~IFuA`U6^21`<&{Wnt-KfX6hYEFCY&teoPyWyg@zDtD zDYSG#f)C-CY2>$-NSC~p3G(GXX}Ryamyz8ZzKsMdIR@^&O>P6Nolgilr5qi1_I-{6 zs=gr;UK$ymL|_%!DO3X2O#G1gO9I)due5K+F|CCj_w(P+ytp#HL4HUmf@hkB;=?=e z7cz7#mkC43n7_cueAR8+Hv5+IFWKFb5f047-$_TvJ;hq0?O(o|o-Aj%)zCP)BT*@Y zxJyy!f5T-@U?iVP9upF<=y;fLylpYN43Cf0P{J8^WLs0t@j+BTq!h3oP@keGe`o{!#yL(^$>T*yAYv@Sv z4)ZN_Ny-m(?0D*x_c>k-M##-~kOf+3w{dU7?zz0XnZ(z=l4G+S=FLkX3#QZDeGhjY zo7V|LVq*=hs~Gik+aMzAtLNzSb$EgJ(cow1NRW=zu&)mSck zrB03;zR1?WIw`%%AG0lxS`?z`GAegHrUl!9K%yp`W2DL-j;lV`pI1t1cB-E7z+%UX zmmO7bX1EuSljbO@)O)pw!^+XCeQw7NZkQYCBzZPl$7}NT$L_}DNU6~@{-LI<$WV9V zgWOPO%Ei@VI2)1IF}_Zv?@`yTU)!_H#B^TM)f?-8gRm zVPYD|cYKZLSJ)3L0wJB}J;SpWq~}-`7n>!O=h<5rzgvU+yg{;GpoWr`fuec6T+E>B zSX>r9kY)wptQWeTk9$X(-0LxQ_!n!V-gk|uYZ8fLmO3U{*UjDCXak=|OGD3}E-q#} zbG1Sx3YzO*UjnTovvwJq7gORNI)LjL*Mv5^E={vwc!piU`bXnq1enEvcJx-+Y{Hbg zuh4c@b@4ZAPQJI&M?aL;K!M)2p!*^%+nD-kQe-fAHcG1C^4`!{Cc9TaKtR(&GFVD)8?|FukE8sYH>y=M0CJ{ZDA!-m0LH5V@Yl>=HbO5Xg#An5Xj|pv7gZ% z1uS*~cEL`*0YZWPK%wDQk^@k*!$n}m3+ACy#=D?0n<(j zjI?goICHf?Uh|>^%$vpL)6w1;@A9~>|}>eA<^L-)juBSqQ^Y}6$Q zk9XMJCyH2~gv07`{kvPtfV-DxR-X*H)=BwBcTS zeUZ8R-I>>~MBiR$rZ&|eTIwOP-?L7{v%0GxvPnuHvUwIF_&uZb6CgnoXR ztn(I9jL$NA@>RH=@dlUbQyPp!oWBz+M4bDkpA5KuRQy*|JFsu3>*p`2qLsEFGuuwibPd?||ej=XsP_AEa98rdE^{m{|)Qe&unO)4DX~OP92>`FLUO@Hx zr0ftIwjfx3NBH~(rW2I;@Pl;t@Ka@;^~*jHf9@{xjD3GmW1ju+KN;w{b6JS+Ikqmt zf0^Z)M<#tMPV_2>eHT)BzBIo32rBA`nE9|BkUaiKg7hR&?UecuE5kqjsQOP%K19xC zDMYlLZzOy7eX2kDEq%wZ2#f13lT0K!H_RM z!mIg&n%h+Ie@*Uxk=^eV-}efbF-3IcoXK7hw2)bSqL_GVN7nzcQ<*2k)KhPHHSdHq zgcrgfHZ8-WTN67o-7sNU_rV2CzQD#cmV@F4K*P#%4;# z2qruaJ8Dtv!5`%h=_r{uL<5$z#1DKy5#M&zc%Om{X})NL<#);q;c%RGnh0pIZTwy zb|?*1)0%e84Y_8nx*6a_0im9o7h?(+m&k{GZ`N$Z+_*}bOImHaR@G&ujI#D-yDIY{cnor~UlRR!R`^qkK4}e_ zLcOSm3HFWPca_Ux2YCBv$Xpx7c>lTcwS&t(`F4`$R*o_3Ry9X$Fc-LgsIBIU4m*Oe zB;*=&M6#J)nKt|}ch28Yt!nxB ziM(ejr&nWAp0L>o1f78o<&KNh?@|MP8TaM*xFqKq-71|Y&o;Uj8qB4&%hd`c`Yt}4 zRdW?ngDz?JD=ih0`s#Ce5W3UO5=q}`Po?M#$ekn%)i zNc$x3&d-GR`BLN9PYCO6^WcRu-+=i?5ebQKE|S`Fq-fCl4Q7%NUhl)XeQ5)-D6BTd zO@~6PV6cO{7`>pk2sU)(Z2?97x0z?0r0&&sGOm7o^CA0^eF$=2IH%}zwcF!74&dIxcP1-0;e+A${Y zZ~fL!DG@dnftgH9W+xKVB1_(n`y*^D3Nx92%+4x^+byUi4$*M~(b4SFj?=gPLh&&A za7+zsGCRkhmNrDk(oZ{d5DAiDFAx^5@@$_PdO>cJPcqRC>eQ z20_l27>+|B3XWz9b>yOLwTKPg-$b+8$@f~BMYCGE zfNNsK`KJSiVngdhWQw}NE!d*P?bM=KV9DWI!cRx95F1oCF4@$j`0(x8r<+%4h)9L= zD3r{o$(eYu;ump9efA&jN={j zaJuM_k`HzW-m$DbB~i#qb;aOmxiska0QqC&sO}>pbWcqvVW9zkiTtvFn%_%mP`A(z zP%&X)%Pqqh%}e5&Vn=195FTdtTLq2*N_Qn7_l5^)I|>yMSuw4m4rBKmEuK#O|r^ z-8=v@fGm_Zq*XiA1C%$(7EKQc6s$KNP7lg7pa$8HvB%us7czWT81FBJLOp&k-b7nQ z{@DP2G>5O7bkOd&Ta5m-=x+f<1=s+%Blrui zWd?Y5AVZ))fB`}a;TEU=iZFOW&in#KP)8u{rAY1=oZ!1FY(c#tzAqWt-Co^UN%#sx z6|i03`iFn{b`FziEA|UyFaF`65#Ux*Js}jvHL0fVS*Bg?6S>e;))-Wwx!z%_=BVH* z>Bi-O%i=}0qJ9In0~V7qus@Vq!d%I_b$e(6yEs3;ytH|S@*)ho{LbE)zohKUI?~)~<5dT%LQ%}r)Sq!yoZBrV{<-IBEpS*7x;~!{)p``79 zWFLc3Ri}t6&c%G0lik^^8|ppU zBdt=W?fQGxWbT9yk(!LN+Ct(&V@jAess|VB{W433mCB*NAJAY^T@*gxCiVf6f%fB| zX(Q@l5~{kpv%0vrIvE7r(BS6Qbnj$#-*oScP8a-XmO`Hg#8cB*3p6y@6js!+_d1O0 zG8)Z}?5&&3EvkB`WcQD;Kk4ZUgbkTAakcI((Ckb zD5)^KDPk`z)?2>%A#J0q&3K zak{BQUEWnuUe1klu&;b|KMDgB_uRtL*q11K0@=>6EH1r(Ou5G08!9E^c*4pTmeW zK?`d$^UcVgk;hBm);HLeHxLAZjXR*vIhJ|Y`4Jm!2vc%PE&A@a}7tN1I zxCNJcHR}}&=LDOcc03(cRI1S_tUkjfs?`&`grn2dwszjv9%D?T(RAOKf`EVxLD4EK zt6ULor@^3C<-<)Jg8bjA#>8J%5R8T63jJ!`KGa9W|B>}GCxV3dr;$!_bw)0@u*`qD zC#sIJ+}*rSKIBeDVGeYV7OFW8Bsjg56{`n z?O`VZLD^zc>Q%SAy<#88lh&v*JP>jgpsK%N8N`0AX;-+%w zYZRd#BYK!26rwDMQq;o(Botabm;})cf#|1%XI7`habz;uND&m0cjt254-TqEg12Y_ znF8kmZ$Y{Wddll~dF{oQZ3O{WYq5)g7Xvjm7q zkK$%iF2-OW(%azscCM=vhM~*7tzm8VjD66eCG`?Ph*xRg*Cl({>ysM8%Eoln86)BRIdO2a|4(OscjNY4A7R z4OY-Y^PFRV@j6aVq@DUMp;i<(`$My>@$yRne=@Vy%p&vts;D47j=KEw{ktt8!pn0l zzTU5+6&CLK=1Lz-$}3buF$LScbWV)g>xicMf72Y?APg)8=dF{AHTWtr7>f7|)6eTz z&|1=7^rH{1!?v`ehiMzO(*c^h#XB@Xfub&wLjWSijlLOUaf2ZTHwz*&C6t7c^5Dt! z{^#rRu-Xn=hZ0xA9E{NxHQfasZqOX<(55T}8uN=q1bs+*Xd9k=XiisBRn#P9`WpQ3 zz30lxd~tug*z1w{CdzFN@mIrP5y6fk6(qmUz3m}wIWKyft+23VDB8XpQhcl@)CEQL zguDudkEC~5T>)tq7r3^1ooPI;iQ*926`j3s(bx^_nm-~$_VmRJ+ zKn<>;knnwhFeK5-(l?QZ(q|e)%^7`T$@Uei#RI(snrt4JZ)mm5)C@ zR1siyOnesAfxJfyKn+!aTcZHI4DSHwQKJ2QfIp({?*kBmcZciwNf{^SPY(!zx`1{^ zhOE~f3pEE&M=+1jJ<(7K&>b+Cou3zf02l#ofLAC|+doomfG(sfH~-!*u^@m0Mo&B- z9#EvMc?(qmyNqOTEqyCqv>C zN&bG>8>91|QsGkHX~_x;{wD15qnL{ke8_CLNg&$3^Oszv`;?R$jSrx!WcHPy(s)%Vq<8gaiHtNK+?uRum~D{V>dhgpPBN26USZ(mEhB0Da7d z$CzMOHnBbt;(PriN@E&wgqa7Sen!!xv$jf;B6wa4eTEm!f6}BbQFh>C0^lFk1S((X z`r`>9cA8KfRaheNu#;gG^%KmS60Y^SxTHEfLKRHr(m5>MmQu!jD^i=DsemtR>`QBv zLErj9bQD)o9w=BYJzs^>TWF{TvDK7>i&#k^=FU^#b@?IDmRDU|Uuee1MdYY!{6H(b zwy{R6@bp}r1J}?nWq4D^kYm9#7q!hc+P8@n^M~J|q*YD`AuTE9xIP7nh%M!_yzDUQ zO$rnxTZ)0a?8yHf<{)@-vIzXFXGlOt?13`-1U(YExELU>=4(ZelNmUd=e^Dn8-Xb> zjYq3p)VtZq!Ads&Wu1%>{A&C5Ml>6TG24@djwAJ!wo%#Xv*u}bms5%07i}75@Q;%O zV3AYbjxFgR@7lFB&eo6rA4VY`=yZ|` zYD=Zk{zoZl5VfZohj6}A5%b`sK7Xwluts)rAi2)YO@9PGf~;i%pKhEBr4=2cYUJg% zM(T_l$rSuFv185&cYX%h zQlFoM{t>QXCqOif?Px$M(Fj8;F%0VI%qK-{BoQaI7<2}U0iDryX1#dFZRZT9C-_s% z5zA1p$9>6I9sFiC#T=kvepR}~ICR%Ik$oh;KQQKiXTOL8U<9!+453+IGy!>lJg6PO zR{#>=4?w|R3jhQhKp#QHA$2JW|Fv>|LGRfIpdk53^rj%iz{Q}&z{Er-X4Qeu__y@o zr-jO$3gCRNooCTIc+fV}0ZJO4N%Lhv(QDI-+r{;`cy1g8>wsza8e&6oKtot<;65`< zcBm`582eM;T@UmxF*Uugx_eVYS8myd8-G;E56FX_!&2T-%D)*meYYM9UUWD<-$(7g7QB;5t5w~?W zPEH-AgiXbq=3J)5oUVNg`9M;(#`f~gdbgT-7?WRZp3UfB8*9R&aXCG~`PfYDPH&Hs zvS%|F`EnJFg{msO1zjB&WH)k+MW#&k=255m+VXawr#wzo=dXl^URGk`eSuzIjM~jj zIh6-z)(DS|zMC}TZYq)IOvWFRUTs~`9trgwNp+j_%gkL7^RP9@IdD0t!EU{m5&-XY zA9`U7VUnIkKpll0U}6uI!Z%Ob-}zMa${ki<(VI4q@~X+)DVBy69)l zUiVS4vlRTdx@`LSwoEkPbjEWC`i8sU`t@WWfB+Q*_?k&QLequd`gQAbJd`&vezxBmBQ^HacQDFh2%u*SfDO>- z(7xXdH5X848+dnbJwzAs4O_{H>e|fuaa9Z9mbjs${?Q_?xYW;yaL3lL`<(E&?ul^L*vYC4rpT3WpI;uBW>Nq_|C#Vt_7rVUP<4A zabr~Y_SPifp*TeeN^u|&#Mhggh{w?QSvV`g2O|1TD;$78c3b?dGR@qZSG)-h+!j_; z?y!jcVrUn=82ThufU^=(P?FM^CH!Z9-T96PY0i0ig!lWN?qG`O5S+g117{pKU)i5 zk3S`%eJ`EXYTxcwWy%&g5!)d1S^C#abl1pJ!8h9#x9$3U)lC0RK_}E&3c0|(VBQ5# zyq4QAY#Vt#i<%qgzbzkdyog!m{>$aWy0iuEQi1r8) zCf|Zb!|U7~@&PN#i@5Q)3@rPRs9Cmsi?Mh*WqJ@U53V?_8m+@H6~x>_e6Gf6YI{fkkb#20#!68@i0hWq4+Lv)JjS!LesH#YmN zGQT%Fb{lJWfIwwnxYLPK(joi4^WoVr!B{J!g~8-|1|RTZj3))ieyBM)lA*$5e{clE zc8YgeZ%u9GY25(jfy#6ZF4{o3pjgnF6L_C^SRloV2CR8e-^#p~H7tOdeJY`&4oUr#;4wiJIn za_uf4p2eydX^~mHHg`#Id-ec2YaOVc0`>r>fy2P@+ls@WL)+*L>jx^2Lr;}XEB$7! zA)Q0Li}NdV56KQLFZ=6_gZ0Dp%g(izFtF97(k0TR^d;?Oy1q{rj}V6t^=7(3ayP%9 z-uv_G`)lrN>}&1o+Y`nf$*@q0AI*o<``pve4fXBRLH1ZPZa*#s4h3!j9uDq2E(5cs zMom{veonig+rO^gZ*UkmUuoQHwzhuo`>TwMNo&`wa_W2B>_qc5Y? z)|l6uH(*z9Xg@m0TMH+q@hmtpoSDfp5ogB9q#b4Is(Vb^VH|)NSi;{_eZAkg#K~sT z|9O)>TVJR%CQnL|H7cYLM;Gvr^u*(~&oD|f;X}%W^q79Jav^==JHfY2G~UhJjdQ}H z_EVQz_c5|}6F&-vGI2}(8ag$C++D%@qN5}E#_lG;L+@#7&z`vlDffPZVvlfE&heUvG!?ZQ1RJEi}=oKJ%N!3gvz! z?w-iVhrV3{_0rrfB};2Bm#3h?V`H8H&ReH@%^iZ7M&hQ*yWBuFJv_aT!IK!nc8Y2j zB-z7!IbSuF_EOsA$cNf{DzcNZKe4QoNE8VLx1gJvoxw#iFnjDpENf2X;`rKon_PPj__&>(RWiPc5r z-QuP@?L+gu{)zeEgIFeYG@33&#X<J*O_G$K)aOvIB1Tn+Dzh?YGbz$}GBf zvupbZMVxME)+_K1Mz}nsBjq1Tpv*zCX);dod=h&?1><$HbCM0?(~pq}N&}jw%Q*YQ z*OI-FID_QZ!h*7friR9bV&@!Zzhk|^=wv&lQ(8jC_VTmbI+BFK#KVN-#HB<7m99c> z$)}0^m(fcmp`Y(kPq8;9`_!Y9xE6GiYAN*CbSm_0^bvH{!pxQBAYC3+9(50tqrw+qdZG&Nwi~T!S^MAW zy~#Pxj_jn&0Xv@@f5vPk2-ApgZ-$)fYYC z5GJ#ZKt@2AVKHNcXOK(B1>NKf|syz;FGOh;h5>DtBw&w`9K+`jX5pHEUrgy#9 z_D8qt%bm@E?g&5pkN+1Sc?JG};=iT5bYDH|^wU*U`y%8UO5ixJH25`QJRBLNPaEqs zAmukNcg_(hbX$nfjigi&Je#{MZe{G^wTyMUdXr9Nqq=&NQfh5FZWvMu?RyD}ycJtJ zJT4tA9qT3-c#)avbva(ro_%?GyA+yie<^Utf53k*5J_v~)B zAS*n}9#m~B4mk?gy}4o7Stm2wl}|^0>@nv%#;CfoQ-GqVI0>97f`aRl-bCXx$z4ll9P2T z6Vdvv(q*OHzzsN~=U%WHxZxDJ(#X~86@vZM$gS&x>pCMhCLY&b9M|^>O|iP4rp-`@ zF)TFwy^guO1J^ABjgmkKlHAI_D2|(X@0?kVS-5xHCD)x~8fsM0q1?)Q3yTV8x4y0-)!n@BlE$E*aCNGz0e@P!IeBbWJyKW*`!X0%Cx{ zKr&zhCIJrs^MJ*`W55%@THsmW6`&lb06qbB0(*c1Km*VSoCI2ci-2LAf$IVE0iuC8 zAQ>1B{2tf}X6lez8f$;GL?iL^cumRJ7Vqguh9(V=V0_*_30-Awy z0G9#10(S!mz$joc@BlCm;DOb^df*kH9H;~i07mHW7GNmw1Y|4(<^Vas1YiJgJrGWM zwHdft;6313U@h;=vMx)bC0zQ73JLEuqfE$}YzC2#`p0MS2;<844LPzZSIbsVM^0iDSO!cH|;rxYk zU9e~gOUJ0cI3HIz8#jBQqmcA4Yr*3DS?s#d`G`Dkm^W)d5%F>qI_bh$?y~VqT{iv! z`5ISjnpTTW#ax|7ha}xo!M3;7>pf!qvE50*(W5Yi#^3#C-*1;eG+~ z`~lZ7F*d$-&HtW%J@R*Z3hDhNnU=}dTKQ_Z+s1$7vGGG8|BEXn`Cr3z9j-}F*!Zu3 zIU#6L9{1C11VSkLdNwr{zJfy``z;W z3%Ec1jExs@edk#zj%<~zdcoYNg|i-E>gR@KITsS<%vw4uW6?qa-A;DSB^1$p?%X+q zg;Hp8zLQYM0;z@b33Qt^%Rz7!B0zl8XDuW+XBC2M?t_Fv7RZ=YNSK{JEM;*aVg3Sy zmolV77+@~`TR>PkEXDZ{!C3_Ea~BgFb02wdZsD+rvmJy*bU$HHF+oZgGj}$D1vrkT z8+QYXoQ@fb=FKRaweX?2G$)ZpMRSJ@o4aV< zgYz9xMRUodIe+}TS@Re86a4Yeu7ZB`0DoH)&V9(aU{+z&Tz+xk+@d1#6mts;7co~r zZ8CdS5zEtnJgFZ^dB_#~rMp3%+O^32_WI=TyUyK8@ijfVv-tT7i)SsE4}VoyIBO~D z6IJAVuxNJS{KeqtO+%&UEP7gFm(#F3JbO%1_p2oi{)BOG?8=sH77^wN*K0_bcA;sIP zZT#e&>byH^(O2qhd?&;&0o}wsu=jfd`~5rB66%3dfZ=yGzHVe1^8@533uWIJCi}*& zz-_?oz(BdZ^|HV02HXMAR617ny|WmP2ig4+`8rF!7Rpph0%776OTx`NE@HVHvqx(xDk2(^greme<%5tMbD=5JDy4Bdjt9F z)A=obN#|SsoX+15ta&<}|M$9d{^Xz1`O#0M^9gZMo?ri#&M*CII?p|y&bv3H^Vb0{ zJ(tek4ZQz-8oyGeE7_FJ@Bc?S9}O&dC7u81<#gV&F`XX|JpcD}zV0R1z>Depq!-fp zJ#wCoH`4jlo74G-*VFk8uch<10dK#W&L;wgE~N31_epeR@1^sN@22zdz?0?a{O)(s z`5wTuf2Q-B-%jTnwxsh0VAh-I{2Vz?_lk7>xozqEEgz)wuWwD~iX_?wc`_*J+*f@=e=pW^yJf{pK)lEydUIvdyMSl+je zj4h7l3B?o{D_vuwiy5MerTgeugo~r13DPB&U1Ou8iV1XK*I3-}>=KR0*y7kIc8w)Y zbc>8~6f1wuAdHjxG`{B(X?!{E-^TqvR;TgpxbKkf$!|=w>&b64zBtlF{%z(<8_$hY zFYnFrwSMFVtL-GweUY?c9?{tb+xSM<;L}HK{9l1(e@f$r0sWtm`rmq_-v__Z)MVp- zYm(9*M%px78AvNj5$c{_()mX?(mW@jr;`caNp1Wa$4^8h_85Y5dm6 zG=BCe8z0*rHjKQl{1jL%4MF9eBeMqJzI z;C7G>@MzyBLH9VW_t1Lse#kQB+UVDTcH=eDp15D0GewT$d)_dPj~gL{cicFR-;TIt z2%jGl+~(G5c;F@F;bGL>ZWmgL7#Dar5t|v=5f5WFV;HAHvZf- z@_GQYV^gnW0m{Qe>mdsv}5pXD?i=+*3x|x z?(xH&z5np}5!uhRe0p0yDO=oq1LG404IVNyan^&g=ggg#GHUb~YieLT(bA0ADwpM5 z9hfk z1r|Q!n)?sw`0LZKo=+dg{80z4T0cHx+&KQ# z@#9qf)UilfQ92e$E5~KG+jyG8IdIj^qZU|fd}l~Ta$r)4bS$;-Nk52L0qu2h}R_>mo$sJF`&K=wPyljV!pUUx- zP0h1@eR1=t;T>x~e`(T>1@{je_v5zI>rUSPhsuP9tS5gzV$Jy6SHHixX2g4c*Y(+` zyL)6$_V@V6Z1(rrNcB3PW#qcHu}i)h^H{R|!rv>VKJ`WN(;HSUKBga$-0vU57d~oz zGdYvRf14akPOkO^wVbstRGwaVyeRI`llQ;*>#_Gn{_y(|cddP=>kp8})?$hzd48RK z9h0Z?WUV|aM`q_O9u+epIVC%<_WAhkk=lOzQ2zXa zhZj7uaM9vN3yU1i;wAjj$E0Fz>)o?QcT=}+UAuOnKcn>5S@{>lUxenD(*L%;H{Ni4 zZ%eQ1NHu1&IRbw@q`&U$&u4AX$urS!a@I?IKE`3^R|0fz`#;#j-7w$ImxFH~82F^D zFiE;PNj~_bt-o=wj|t*I_8a$#UGf5cO8(VLNM}TYQ&Vrj-bX3(Rw)&;g}dTKcWi@!cUo(ttc|>{1gqpe1v%o zKcWl9Z;FQB0MKoYQP;Hs;hjLE98WaC>Pq=+nNs^0G->TI>NYj?$DE|U6z9#uT_F!! zhkEb`8Hxpc_9x&F=w(7YtC>byEm_ z%DikE0=gG8{I(#xUBj<71iu$F{7hMPzFEVs9bwZw>iQC0Fn->=-nGD1&<(%G&yUSR z5uOPw0}cT#ayrrKgYcyMEsFBId}w{K;U2ZDn-Q+KNA2@kLdZ&amHyDnH<&+ErfGc} z@mI>h<|~u!e8RnIzc~is@p2rc2lJcCJj^G8ZrQzRTV9Ls1_dvo31-X7G`u!~uJ&F{ z|3_H7SM5)TE@=Ok^LkGp>;zrp@6>G@gYfX*1-32G25VboezsQ3w(|>qr`FptgjdON zlpaiP3p9Mzf^MsZ&rXE*$Z=~!@Y$;2QwzHG->LO)inH;NaejRfO)&kpYj{QF*m+x= zn%5MB=O}m)O)y@{eDueIZoP)rCWOlsy!a5j)@yjxgRW7-s|De91+V%Lyc#vUVsh>L zfcw7U=yu+xw*5m0pSVx$D~K+b z?eEm^GflDcmVs)1(Fi9DRP!UcVEnv!y}o4(=;jPm_az6ytAR}e)qRO*gY_lKuasZu zC%y7}%UcN^hcxA#K)4OC#H-6&8KOMOudJW4Ja7HHzG6G*#>A`3n~ZRNd|>^yhbYgR z-^;TNbQ?50HzT|~KCljLA$WT8d-tporege)3wqp!pJ4zYK!J}0pgJBTH%Rzzq zwG9f?cXGAQkljjQ0n57P91gx3#JthJ_w=>LP%yllTm|JU$3gm9yR7tsXc zwNt}uBk0V7HS2$b2Mkt>p&@uF^RY7;pnE{WYXQQ%f>&z@UJqz^S*BtAr{PtB@JJKKk1Xy0sc! zFCe^mh<}c-IRvk@8eVOnYtZl#5pEsgpC`11;N{Kd-Q%`BVCSQU`gzeA*93&e4-Gya zB6>p*zFr<)z8gWeOv86A!kdN$_njL<@Li_i+XlKr8onnGZXX)Le}>@e-%pj)NkyB^^!iNVLn%^~=%((vV`WBsq;+l;VbSn#os z=!5a~@|f(kdC(;c^ZQSF&M*ey#lxazMGY)iWKv4MC5E6dB*citRye3HihBfLJz-`9yIsQ=gSS_`_J8eWGG zZcI|F2}1DNso_-%I`eS#+%F2@xZ&#kETRiG_fzJjKM`~@HT)JMyi&tY48d=vhM#e! zoiEq$t3JT{pxw!OoSalcoJ=} zd7E9sa{=f!X?Si$xHbsS1tEBD((v2>y0-h(He(zCdmiEEMKr-|rcJ}E1$1LZX!bu5 zo~hu~5`vd9ADjQrvh(XksM}*B!sR2>^(4Ar?Xgb7Zw}}hN2qnzg0Nv^AWxzVrn^QB z&$XaS7^&tt2H`0|c&-h>Q<&x>e+>2S4%m-#`Ae;QsV5N=WM zBAQ^l4rzGhgDxsr-5zlWCnu}xNp!*5Lz$PIg9P2;WVP;ABD_8bPofQ`yTuxwTR^u{ z!}AcrVi2BNLh#(F;n@JX$P~@~FTx2aeqIeBbg0b7&K%6f`d7otf$&NNFQN&$|EuA( z8g%6;8vloIeTsTtpXh@6KMlV|&~c+Q{tw}(QEGmTA^0itva_>u;QuuIW+J>;!;k2K z@w03Atp(l2QEJ_lBfNc-qL0l9uDgvIURyxdtl`y;uyM4)K0@$n*6`W`x}l@hyled=6?up86A9nP4q$Me;U3qb20zZ@NGueFedo?n&^Yh|1^B_ zL6gobY`!X|6* z`E_Fmz9%$%qvqN9;Z`-@@d(ec2A^LOeK5XW9uLTA4}fmHRXq>ggmAs}+UM8ABiKB2 zy{4=UpyN{2WtkBko_g)`>kT2w^78eTbqI6|G-WNLa#F8-etjrJSzf;0zZV|D`ZrbW zheU+iQq|9Th%T5PYS8ej1YOKnb$=g<@R+gwbw1Gq>+i~ZY|nANop+2?@87RNc&!{q z>B08zm3dM(>bcRI^xSj6S>VoB^_(484SWyGd`-_a0J_)pTp}kGHyKz4Yy$QGt-zgc>bV8LtH5`F=`B4s02mJ}0bT*V0NQ{%w&=MD zz*1lnun+hZhbX4NPrw17+dFzL9+(E~1TF)E%JtmKz&F6% z@9Mb>;7QIP|qy~b^_fh^xP!iG2j*86p-{UJvR?{8}I;k{~J03s)1jCK_8)P;6301FmAh^ zD+X$Th>!K$FyL|EAkYC=KS6r}I{?e4s5|f^p;FIvtiFjZpuo|cU8Uf>Hun*t~;1CeLOV14j3V;`Yy#QB(yueIg9Z(6h08zEb3##5iv;a|Gpe$e| zuo-9ojC)ZQkPmDCYJoN&W*^D|Rs$7)2t?NFxnv+8SO-)9jev1K$^)hVD}l{GJ-{76 zJTMbj2UG$rK-59V0jvbdfkwc52)u!OU>#5aGy=vi!2_5AtOPa#^#J!3;(?jKI-nA0 z0iwPJZ(t=*4m1Mh2Ji;*fptIy&H+Q>JvR`T13U}V17Sz>Tmmo; zcpuOo)pJ?EYT$F=rf>D!!@x%1JD}GwJ(mWQ0Ivai0q!{T3M>Zxd0cKvVO z#Jg>JZmKdjBX%t}bH%*`t8t!SoR^ega&$>f_GFlyE%B9k)f%!JgbWj-G|x-w>Fl1I zoRUJMzY=N0hupj*-A$FQ#*SoVM!{;)SK2*JvtTu`8>6RpGo*6uG+&KO3__M+F0CuR z2}BVe)(bnT{$tJ+mK(e6*njHmTfOS$oqcNtCU3{g(<8kdYDG69^GbP4*0uq^0IU(B= zUpFr)EMk4tnktn*r+6?7A*?LVY(k@1B^NO$mxxcSW^d!9LWV&7 zuL)4rHf;>qkttSpzTu`yuZg>AJsKLLP?by+cc|4=1+}i}vfAkDd=)lyP-O>eHkDUql2b_5I0e_zNOPea93Nq; z2&snY)hcfzgi|jhHa$u!9fqXNj&M(J;s(;#v4$BMmvap{n2t5sNdE2UJMnd^DkVD% z&2<#&;pM2UOO7E+m}1c%)_J%{S29DDwm5^U_rq2>}!Cze>2bP^A?hHwpo9Mb)l}VDuWvXUYDkD>8`A=uBoq7>0D7vW?lr=duQzNGRG~RvKcxg zE;G>>yXY-7gsX>~hHD7l@PT4#tL7@PDome#~pH8pB2Lwp{rr@~d4guSHS zk+Avciara%0u*JUseyPq64hx`OX%O(LnyYOsH9zm3xr)w`9i8CD>u<f zwS{3qEorZ;!~l2ExhYJjDeG%o(+ys1n9m+P)oQmz6JP!L9Puy1<=*DJE-4QjAZL>? zz7qEl&r~vr%__4q>6|w*U)4!SBTiKYn#p9FS6g&Vx2qG_)Y=Hi^|hIzcutyvsuV!< zAaSQy{JC}+bewj*VB~TfvBIN~m|eI!NbzPUzCJPASlFAwVVEYRS@g9@8OCBmxvnW} zV5P>1$5$p=O%ABgY%j|&irdgi%E6<6BgL1&?50jtXM`aea|EXehT*!4D?R7vUwXvR zPsoWZOO@@}2vKU2K3`&{AW1TTBsuIIEZjrfGYmov)1*<|_9hHjD0V%~?ssWgJk#TB zR}HzjtWQ|#s;@wk6-c8pj_-eF#sSN)nu_#ps|n4?6(&8}XKAxrdv*JzU+fv(T$$dwB0Mnvs!F)ddxGZ5?+|2%XOtyaV_ z=d}(dG_B{qpna|F+G+b-xOUpI|AO|0i`PVJ_dIGT;KY|0wYnh$rf|MjN?sqma?=wi)VF3%vr)%dq=J=H#k_rJcUO z(tJ~Bu0SUaK_^qXy3Cwh>MW@K-ypVUvB483`8~1kMOF==tw5Ixj}%U|l3F2^x__zx zJu63FV;4&=vc5lKdYwvB3f9RQ)>ROU^xVeu90^}5{*z6YqU==E-!6tKs*k@YWm~(N zBeQ&k^`klaP+^Lp%-TY(v>JJ`a#1{*HLlDm+QmE%vzNLct030w$1jnAD(h08M zNVAaLoV26Jge6Vvj-=Wp`m%(suDR{7Bb{B?Csw0F3k^;EX$K-hbX$$d?zt`YUDoz6 zaWj(K*5-;eGi`jez={&`n%Q7;E1MN{62_9k#u}(w62B}loGI2!jSuESFO%j?!afY1 z?j@1pUU(WY38KTiP+I)C9N0)N5ar~Ezs0N9y3&Z}@}Oek){|jeVo79CcXTRYZ?1R_ zzP4$=N=V}9f){_sLT|ZR13;mL0NjFcnYHQ)dd_HAKGJU zu2q$eQL=(okPE3X2&s{-HVWsE!gAQ0Y64B~^p|3*a_#!vnc^Nccg9Lf$0_Ng2Ye+#qVWVbuNM#>F%3j5-EWJE>?t zJ(c_XZ?ee{ZDA|5M~LQF8Ru_~hXb3#*V#PIPU6__!?*&Dnz%?RzBel%7b^PntjEK= zbE{;YnxVx%OD*h1dlku+B&!*%Fc2K2aIDpwWVO&3Ymxhum3D9r{U?lbEw^wHPwuDZ z7wAw{i`=8y#h)*c6cMYou_VlKryIyZI}6?18OA2PJI_c#gU}6A-p_>`OYGN^gluDM zO{~>|$*z8%KEqAkFBxmk7tS5 zt>kVrn}Jd;i4^So)cRJrRobDcqi5uqb)9PB##Ch@gZSeP4&iSSlW;JJ-@d`gFsLsEXa?T`)??=pfz+Z)}E%6m5-6 zs)C-a$JrPt)FN7F&}T%(9*fPR-A~v{QdLpc0xlCiI2+T0q~&Hup)gh+GIGgya}82p zA_XQI^k3<-O5U|!iAk$Jrq7E!^)O0HbXu-jj#0`(x#gnt)=0Z}(-lf%l0m}QUHW6E=;Jwhw2uYU zOMd@9l=SYep-VzD!U;n6P3x}2*`(D~UMQZ|B2d(?SE_nsY&KJ~X%Z_GvXQ>QAWQu5 z7oR`bC%*7AxYV$XaEr!Gn8|&<@-yrEcWK?HMRK3Aqxl8{*{N&7PETwLw0y^FxZ;@)N=?kmKR!{H6`6J@riCys7nob9>Z z?VN#f1ZInIm!+lQj>r&Cm+{)I%KYv5L|D)g1GCoj9q@l zTt^UbUCkyMdisKSt8m!v&TAJxMGX_3kHyTeMT0c#@Xk*7i`!j1o@U%Q7OxZQqfJKn*Y%N1}LrlQjJw zN-|FI%J{Ulpp|k2jA0?fZORb8{mHlLj|Af=F&2zj3IA!tjY{rOT6XvO+5PU4Y+H3Z zqEtFHd*=e5dF_x*2xyZ*bew0Szv}67CVH1KX~&YT1s=OthXR_q(V}99U0i!6$ZlDV za5@)@zofP$HzuY=IxGb`yI9)7x({12_YWq-DA|y&YS5;R9S{uTy%`t zu2H;`ZfJx!eYK|P1a{Ic6)9z9OArO-o%+LR_0c0^fle$tt=)~yJGJxIK)SDf)zZnu ziPm4VDd;W!{kUg-RPV=?Dy)L-%X#9&F_&aNW(>t;qK3;z#zh(%B>VO9de+O!97NWK ze!Zfsr%tL%`QynzSvOp~nymlOa7j5CO4gq)hLn|c$-ymJSE1a8ynIG}=wb?W5KE#v z$+q&%Dx$v9zN?mWD%+cn47v4r`&sSQsB##a@zCq?$PmsY;YOVJI zo)l!VjZ$kjyCf2O_H;WNX^iUiZQdz^>YQEPDcZG_j%(%nj%#U;TdGcOC7<%0+?q)z zw|=+YuaHV8*Gbobm2!BcbT!Gl@DZ$ zN=1CR;=W#S-`2}dZ&c(pEAHDA^fB}O_d|X6vb!Tc1j8scd5VqVL9~WGyjPB4y7GZD z48lx0D6K1*$98mtv$2-i_*+Y7oMO9D}$Uj9l{!oNJfS zlhN*MXzC|8%}Gw<@;k~*XLUM3*E7=~WE$R$5;qd%oU;Zl)s11Zw%cy!mouilxF^A3CF3g z6dOE)#UF1*U9D~JM)k^WcZa(nbZ;igaRWCxiLrNQw=dhRex%`QPM{M~)}yizId1C- z!D@*=kn6VY5v-8~$aiR}aJK9ZMt3iF7M#_dv#&y3)$Z&@ced!xu6JiQU{UFIM!K!- zf+VTXInB?Bgp@drFsGf^%#he3>p zwZ(x?Zd}b{ST(nUM|_>zy0crAJEPK_QCnj*)5|B&q;;n!!|W1`g1MXB;5f_nWrWnI zZmH3^1)XL%dz7U{vDAr_{2Ta`J@DC9A_d4)w}wkP2~K(iJ|x z#86sS_!o4vBUn4St@M;C;;DUXL$tL?&km*+uwA?p{Poqnvc>+Lh0gCr-I!|- zat)##u|fmYM|AXvuPo5TR!_ZYw}65~*Fy%*gV~hT=&CVd?YQhMp}Lz@bS$LD`PO!Q z6-tEKSXr*NPRob)zg4h`;5^nKbSB=deXhtGT!}sLbZ+mKCpvnQF7sM3>)M`~Y!}~Q z&u~q`@;3Mc*CVY)*RRkm`tNdJ=R~+uqDJaA+TI<)cN6BuxAz<=@Wlc-2U0gxCD=qZQvF+7Y zU!D5u49$8*yy-|#HlBXvsu7e8(4O8~=(H{>s#Bb~sNj80zhb5D_S7PjtT|on)*d9m zRM$0vb4JsV+;(yJw_zLwyL&qEMRxvW`p+FsDHD+*gsXgVCYvTxVkb&WHMrV5MTTT| zs)6EeL7av>SGXY2e@QACYbdQO?!xle+%T>shV#d6I(Pmn5ZrNIJPs1}EJ1rdyoOtg z8oF%;?O|Y={bY*aJHptxb=5@SjEK75v%@Ax1BL|dwOqTMl8l=v?Nunh!(6TT$M(<5FYU% zmxcLfi^zXXt!OT-TsG4c9;WNuWF!CHq9$a=#wUPMXdv1n%M#$Az_d2$^JVvDm1Vb1 z%CyU`(S(PALU*f>*GPNubDO!u@QBj6^!%}VLD-b0ZUT5`G@?&gn}v+_8Pnsxm?o~U z=()NbedV(Vom7XU*=}i`S)+q?SqIgu{+6U_N1hOol+o9bgRw*ickM7vqM7Z%*!oEr zbY441b+owJIvfe;1&+Jv)U6OPFHwgH_+as0z4YAFWLMi|C)!;X?&=)onrq<_Z*gvE z>P#|sa^HeE2bqen-lC?Qv)gPJf zZFW@|W9wZPJ7s1q>m&4t_^?Z+T|Drmx0R+yt&~iybb>XH)H>x~YFelHimfBE)@fm_ z^O&-APSAM`9cv}Ib-ue!(K_CvD*l=i7n+S&s3)-3pU7}vltP9n*WE*ifOrKQB1F;T zmvKdx8fyzpZJOdRgUx6jN763u0sD1#Mhd+p+jM>Dk&^4w@JtDT-F#O}hKF~=^t_xp_FPBM<$U>rT>C0dQn zh#c{yo(j{@w_u`bDg1yviC35E_X3-hUO?*To7EltoYfdcr?2|u=5Kk*#+Q|}dxjJk zbHw-13#9iGa>bz*dOx9NMpJK!sR<{iL+>q|GY5NbA!3`=B&3<=VIZAXYDp>JrbIkb z8L&H-WHmYZ3fbnI+=y*)!cveYEScvXm^^9}Qk+dQG#fxY?74rnxH8#giA_>gSlUC_;Qho{Qc@l%i^E|_q(ajvRJcILN0$F@-6 zro^B3FyB;KSwXK!E;B@YXl<|4>~qo{isr16Ku=GF!}N4fZc9ldVYwORO8ZrGR(qbi zbL!Z!K9RJC`J2sZA1_q7DkJT*0lU^lPvZ#K8Q8SZ*SxY*b0P zStTX8K=@`yznuJCPr?N*Y4;2+h{_e;iSW9>9C1*Dp&;vO?&n0&<;#tq$OWp%}9fJtO1%qKqlFLQR8cd zY7dxujdXt-nQ5fbOmC($)DViE>U?e&7hU#vQd3uVW`-)thN|>H3R~*#R@l<)?tWW3 zW%AilcZDr&?h;^2u!S6P|JE=@?rr!?@i@iE!4#u+n=&!Q7_q+67wu}4*R1DKjNy`9 z_|mGxFkiBeV$!UBQ_PS5hkCd>)2tmP{E6M_gCv`fOsc%YX*z%4@smV%M}4=iKsh~N z0&u?mwv=G}E$&Q9kmyKvW~62b>v=Sq-Z;hTSp3}?dBa-0#w`e=Rp*SonCK1Kh$XG3 z6a7zdJjE$inVB`Zgx)q@yzph1YB0~tl6c$%dW>ajZeBc}F?fZp;y{Y6_H8#*)o{c_ z{Z7jTVM$a|gs0d*hon3?Mqx0$!*tI1bFdeGQ~So((WI4LoJ`~mjxnWmPE(@I=SF@OoQ8Q z5HgK!yHUtAx$Pz))9kjJg-navZV@sg-S$W!v#;CUSICTV+oOcEXtym|EuLaV>RRia zk;deRQCqts;kOy>K_NaTSJOm3jSeQ{w^*|NtzkuWgF+uKEQjEKzyP# za{42E%t?}NK1p-}2n@m)T@3A?l-UfYE*}Wv0(NPzhSkuCH3wKP_NjSIN}QB!p5VRn zx_If?k~`H<6F!;jg*pXJ_+{?6>oX`L&b7^&}oNCDw>6gPyH6;p}CrlrWxWqEnSK+Iy~Z&O8U~k z`T9GmB(Vz&6|cTIju#(A@tCDx8s;e`7c7=HOAmD?M3Xm`SIpwqh-I%ToR;1(5&Id~ zTM_Dy7I3sLTxksan!%6s&Pt_8>MOo*b_c}(bWtlt?Wmlvh1NtA0S z=jbeC#tGLU^+4%?l5l~G*v3^;Z!uqy=tD+iH%ENv8#`q}GJk2;uB4Zye|lLf*A*$z za<&9twi~6MkrFK!%QAItGe(!yx`=I+O@6Q83#svEa@_Pk-QwQlpq^r&puZ z>uFEF&Eqt5tEBMsQ;&9BnNe>qBl0~HFmmjj!c36>mMFlJpVjxfPGDFiF9Rh*@^ z?BvY~D|xosZzW@EBr6$NBU#Ci8p%q2S3^(Ij2xMXGd8~!?8`C^iH(QpY}6rpS;iKm zbP^v#UGsOc;}~1)Vjcvi&vS@|8riHK>j)I(vCDo@x+z52zDp8i>n=%@ExRO9Htix& zOj=R0HKKgop%mpndzgGwCr3Q;HhZQ6ahg!H*P|DVsVF%HahlqtHzjHT=R2rr7n^7=2x76=fr&>hU*Nj`Lnj7;HsTyvyAwSQ^Oh?Ku zj0IbhFxE`W$6COyY;2^Rd`AHqGdBk&q7(PODVyc@msCaAsfh0{QV~KA*HVM7I96Q! zJ-k?g_{v4(ClEInwZ@je}$T5jgB*6G1&=crO~T=V1ow*$a2D^C%Pgahc`&^t)jB$(++Sda zZasZ#Db6hWNqWnwFTG{eH`BA&Tvo;tgFj=a6*?0Yy`1VN5t7Y!Sk0Msne1XaSxP*6 zO=ivOY}-ppVahs3?d-7|kZr@Ygk}pbi z^H(hUg0f;B_wx3neGX%;SbJI0r(5s!{?R+aI69FgOIn4=U0Er83B>M`FiiXl#eKjLHhUisC97Ck;&632(FBJ?2NDK|)`itIvUP^Ixacvu_ z@PUK9nl!kqluBl=)j#l>R$H}gteHQ&!2EzuTcf@U)K=4GNmF}BQ!`(Krmnx>wF1|x zq#914v)kHaoh{H9!*}i1W(@Qacv-1kqq|&a^b^uuj;y>{l{9LXR+9FJIN}*edmAg+ zds$v?yDlgJsqi>}*0n`DI&m=e3Au zKVgLqFSAzAo8^BYQQBxU6ZX3E+OhIsU;AA~h9}g@Dnl&&p0hYe${W7R+Kp?{ug>ds z&e~#dM4;$P1zZ*ljm@9XWTGXEMP6o+72?;3T$R`2=*Ge?h&2eWv33)`KBt++c)!0G z_z5`l^qVjG28v}BgUV6yTd3kzS_XbVs>WiF)s=>ova)4tF2q*Kh3Bb3DS}SkK0J=& zq-3#-EgHpqg&g_osc+ov-jn8mJ$p6a$5$%oW924n3; z+7r_|n7z!D+uXZ^tZ!uxMsn?5&EC@@c^uM`tX_Axq%JA9c)peCQ0M5D3p<5UpZgd# z7B)qE{WtHX0@QK7L#vL6->#|-wjnV4oKhVRr2EuS!d^}mr~VdH9rw2eRmY{XLDi9T zIjB0S&T7<=`s>xyA)eK!WA%1P9UEGG>X0?iy;ar#EvO|WOkhf|s}%6yZ%PGBOY2biS%Os(;m}V|In4j-nQ=lMsKsnv-A(xc{_L z0iFHbXUeZk0r4#%oP=^g{&5TOGvA5J4c4*nH-(7vc$2VI9FwG+?8*;L2_1q-HqzzwR?RP zO>*+0{NBLNA+iqmS<06y)=eAn5@Tq!(~@@j^%7+ersCPwheI zc~nx3NvsW$;gBi=`_hSUA?Z@Ysx_!=POiBA2aji}rvOhtu)io;m>4bAe}xtwZFY|} z3!^RWu@+%;qX#G9FoAY+rSLHpHo0vk zVQ}d==U$;Gs;N62<1fYvo!*ZeEbOBPY6W59A3^FVG9lAIkMHX#%3ZzOcu#JwyCm9O zVsMw3YEsQQbcdQ$OE`6kl1O(+Uw26qTU8er#Ocj2AN05`Lan&vOQ{phaHmF34>Z-1 zpr%^Tw_*<4|Dg||oz7n%8%9>Gf6PPg`08hQ-wjDWZDq4mcWO*c_#DPf{I%KdD^AU7 zQYzlnJb;crpu_%|Y{>C5nIb$xSyNcRcZTRq@`hhYO2&6=49W;Rn(A5_L%qVOch#~l z9*Mi#6$Vvcsfam_`Ydju&!?1SG>iIo>DlV$`F1u6|7#hY8+Nvc8xArbWEV|e(geBG z&S4Nbno`+$jTXCjf_=h}Hi-M?uV#vA^z@!%w(g%zo!tfyCh;vfQWbdMEv+260zJX;yPKxNnR0m9SkMnr&kwo5HT~Z62j?L(vU?da& z@=}nuCj*?kLZ6lND=K|HWhd`DEwf{hhhNhv@67)mLP z3Z*RVkd^Z90HthJDP_SiSt%ucrEIScqLja!V2^C@PyWS}u$87B!VUHU8#{C~ ztU6Fb|Aum#wguDB;7hWG9{A_gHALGV&`{ZrDh(Ya4SjaKdAK@#-4da3Yk3EEi=BmArFx4gGk5Y3SjTs(sh!&Ct-pKZLQ*^U-8A zN6c!JD?=VkzstpARPP}q4=Am4bjI*`Z@V{nS)7r>N@?|213XSIHQ#p9{5ayPlR2Fm zV>E|B(Z4`#;txovuIOK`K5>y@6ziq;Rr9J<0`5NHedQn

fGMJ82GEioq5lo(=bgoYdp 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

vDF`uk+) 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�U(9u%b!37)FyWRgfj|i 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

ZWmTRG-MZS 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 z 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 z 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

DhGli_dcz zTGQi@Mgxx);{O8Ahte|^(%l5VG>0ASy>jL|RkL#M)aN}sXIvXg)8D{RG9 zPmgx-&}~}E#Kty=6tJbaGTvv`3Z-Oqp8qAS>na$#$X%5l^#Rq$>-J4~v=@ub>*`E; zN#~090q0tJLd@0qN<2EDloLz40WAOc8mdKR`EJp2u{onLTgW@X&L{ZI{l(JbKHW3; zVbL30S9lM(io|(cVroh-)cv)X*PUx=b5B4ms#%;k_$~Pt zwlN`f!=eIyi|Sy_H9?j?QsHAuMziPW1&=?*oyu>CSMu;7dE6gZ&bV6XAwHEszN1b` zLX&QUsj8Mk28EFC!T=A&jFqxFR8V*w0G9;pjf<}2w*=48Lqw8c@<^31vV;jE{{uxm z5n9v}!J?>4u#?FIufu|($@voIdzM`Y7YdGnGNTF*=X-uu?j9H+mJE|gDuw_0zgD

6Nd926r9!VJZPfUG#noMeGQ%=leDHg;CDGZ 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

F?551`{g0b?`4{5=amnl?CZ7IgV`(d!8 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

y)GJ_BGzmA+gzEc}I4XXHG19e}Z<(_I2 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

Lw2_|W|U?VFLne~mX=uNf8+U?A9 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

tPX%!jS#B| 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Ⓢgx6Gdb-*2GbdHY+Dg^=0xjtPSkqsugw4{ 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ΝfM`B0Aun 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

AY{K>wL;thNOZ} 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

5Ha=O+PdZHoYEwtA3XLZv9;S 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

gk;+Yq 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�{8xD`s4ESpb1eY#Dzrag_jy;ok-9`))1#V6Xt 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�Xt}vQh-? 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

8+9+d&*y@Q##Jqe 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≈zuZpOX8r990L_E-bIyxDW^--iziszG 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%0DjvTVDXSRszPrUBhh-n=6c`t}33^V1gHB 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

8-HyXqdT#^_(o)Z&88D>fQ{ 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℘ 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%0D7UQ|AnKX}aJo^nclj2-JMHKo?$Hl5DcjbvnoXv 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%0A8ASQ?S-CJ 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 z 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

sdpQ^!J4EWUlD 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%0A)6N6Wd@yf&;D_VC7(jX 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 K&z=A8xBmkuCPp6s literal 0 HcmV?d00001 diff --git a/tools/gen_esp32part.py b/tools/gen_esp32part.py new file mode 100755 index 00000000..56bfe29f --- /dev/null +++ b/tools/gen_esp32part.py @@ -0,0 +1,350 @@ +#!/usr/bin/env python +# +# ESP32 partition table generation tool +# +# Converts partition tables to/from CSV and binary formats. +# +# See the sdkng README.md file for details about how to use this tool. +import struct +import argparse +import sys + +MAX_PARTITION_LENGTH = 0xC00 # 3K for partition data (96 entries) leaves 1K in a 4K sector for signature + +__version__ = '1.0' + +quiet = False + +def status(msg): + """ Print status message to stderr """ + if not quiet: + critical(msg) + +def critical(msg): + """ Print critical message to stderr """ + if not quiet: + sys.stderr.write(msg) + sys.stderr.write('\n') + +class PartitionTable(list): + def __init__(self): + super(PartitionTable, self).__init__(self) + + @classmethod + def from_csv(cls, csv_contents): + res = PartitionTable() + lines = csv_contents.split("\n") + for line_no in range(len(lines)): + line = lines[line_no].strip() + if line.startswith("#") or len(line) == 0: + continue + try: + res.append(PartitionDefinition.from_csv(line)) + except InputError as e: + raise InputError("Error at line %d: %s" % (line_no+1, e)) + except Exception: + critical("Unexpected error parsing line %d: %s" % (line_no+1, line)) + raise + + # fix up missing offsets & negative sizes + last_end = 0x5000 # first offset after partition table + for e in res: + if e.offset is None: + pad_to = 0x10000 if e.type == PartitionDefinition.APP_TYPE else 4 + if last_end % pad_to != 0: + last_end += pad_to - (last_end % pad_to) + e.offset = last_end + if e.size < 0: + e.size = -e.size - e.offset + last_end = e.offset + e.size + + return res + + def __getitem__(self, item): + """ Allow partition table access via name as well as by + numeric index. """ + if isinstance(item, str): + for x in self: + if x.name == item: + return x + raise ValueError("No partition entry named '%s'" % item) + else: + return super(PartitionTable, self).__getitem__(item) + + def verify(self): + # verify each partition individually + for p in self: + p.verify() + # check for overlaps + last = None + for p in sorted(self): + if p.offset < 0x5000: + raise InputError("Partition offset 0x%x is below 0x5000" % p.offset) + if last is not None and p.offset < last.offset + last.size: + raise InputError("Partition at 0x%x overlaps 0x%x-0x%x" % (p.offset, last.offset, last.offset+last.size-1)) + last = p + + @classmethod + def from_binary(cls, b): + result = cls() + for o in range(0,len(b),32): + data = b[o:o+32] + if len(data) != 32: + raise InputError("Partition table length must be a multiple of 32 bytes") + if data == '\xFF'*32: + return result # got end marker + result.append(PartitionDefinition.from_binary(data)) + raise InputError("Partition table is missing an end-of-table marker") + + def to_binary(self): + result = "".join(e.to_binary() for e in self) + if len(result )>= MAX_PARTITION_LENGTH: + raise InputError("Binary partition table length (%d) longer than max" % len(result)) + result += "\xFF" * (MAX_PARTITION_LENGTH - len(result)) # pad the sector, for signing + return result + + def to_csv(self, simple_formatting=False): + rows = [ "# Espressif ESP32 Partition Table", + "# Name, Type, SubType, Offset, Size, Flags" ] + rows += [ x.to_csv(simple_formatting) for x in self ] + return "\n".join(rows) + "\n" + +class PartitionDefinition(object): + APP_TYPE = 0x00 + DATA_TYPE = 0x01 + TYPES = { + "app" : APP_TYPE, + "data" : DATA_TYPE, + } + + # Keep this map in sync with esp_partition_subtype_t enum in esp_partition.h + SUBTYPES = { + APP_TYPE : { + "factory" : 0x00, + "test" : 0x20, + }, + DATA_TYPE : { + "ota" : 0x00, + "phy" : 0x01, + "nvs" : 0x02, + "coredump" : 0x03, + "esphttpd" : 0x80, + "fat" : 0x81, + "spiffs" : 0x82, + }, + } + + MAGIC_BYTES = "\xAA\x50" + + ALIGNMENT = { + APP_TYPE : 0x1000, + DATA_TYPE : 0x04, + } + + # dictionary maps flag name (as used in CSV flags list, property name) + # to bit set in flags words in binary format + FLAGS = { + "encrypted" : 0 + } + + # add subtypes for the 16 OTA slot values ("ota_XXX, etc.") + for ota_slot in range(16): + SUBTYPES[TYPES["app"]]["ota_%d" % ota_slot] = 0x10 + ota_slot + + def __init__(self): + self.name = "" + self.type = None + self.subtype = None + self.offset = None + self.size = None + self.encrypted = False + + @classmethod + def from_csv(cls, line): + """ Parse a line from the CSV """ + line_w_defaults = line + ",,,," # lazy way to support default fields + fields = [ f.strip() for f in line_w_defaults.split(",") ] + + res = PartitionDefinition() + res.name = fields[0] + res.type = res.parse_type(fields[1]) + res.subtype = res.parse_subtype(fields[2]) + res.offset = res.parse_address(fields[3]) + res.size = res.parse_address(fields[4]) + if res.size is None: + raise InputError("Size field can't be empty") + + flags = fields[5].split(":") + for flag in flags: + if flag in cls.FLAGS: + setattr(res, flag, True) + elif len(flag) > 0: + raise InputError("CSV flag column contains unknown flag '%s'" % (flag)) + + return res + + def __eq__(self, other): + return self.name == other.name and self.type == other.type \ + and self.subtype == other.subtype and self.offset == other.offset \ + and self.size == other.size + + def __repr__(self): + def maybe_hex(x): + return "0x%x" % x if x is not None else "None" + return "PartitionDefinition('%s', 0x%x, 0x%x, %s, %s)" % (self.name, self.type, self.subtype or 0, + maybe_hex(self.offset), maybe_hex(self.size)) + + def __str__(self): + return "Part '%s' %d/%d @ 0x%x size 0x%x" % (self.name, self.type, self.subtype, self.offset or -1, self.size or -1) + + def __cmp__(self, other): + return self.offset - other.offset + + def parse_type(self, strval): + if strval == "": + raise InputError("Field 'type' can't be left empty.") + return parse_int(strval, self.TYPES) + + def parse_subtype(self, strval): + if strval == "": + return 0 # default + return parse_int(strval, self.SUBTYPES.get(self.type, {})) + + def parse_address(self, strval): + if strval == "": + return None # PartitionTable will fill in default + return parse_int(strval) + + def verify(self): + if self.type is None: + raise ValidationError("Type field is not set") + if self.subtype is None: + raise ValidationError("Subtype field is not set") + if self.offset is None: + raise ValidationError("Offset field is not set") + align = self.ALIGNMENT.get(self.type, 4) + if self.offset % align: + raise ValidationError("%s offset 0x%x is not aligned to 0x%x" % (self.name, self.offset, align)) + if self.size is None: + raise ValidationError("Size field is not set") + + STRUCT_FORMAT = "<2sBBLL16sL" + + @classmethod + def from_binary(cls, b): + if len(b) != 32: + raise InputError("Partition definition length must be exactly 32 bytes. Got %d bytes." % len(b)) + res = cls() + (magic, res.type, res.subtype, res.offset, + res.size, res.name, flags) = struct.unpack(cls.STRUCT_FORMAT, b) + if "\x00" in res.name: # strip null byte padding from name string + res.name = res.name[:res.name.index("\x00")] + if magic != cls.MAGIC_BYTES: + raise InputError("Invalid magic bytes (%r) for partition definition" % magic) + for flag,bit in cls.FLAGS.items(): + if flags & (1< +#include +#include + +typedef uint32_t period_ms_t; +typedef void (*osi_alarm_callback_t)(void *data); + +#define ALARM_CBS_NUM 20 +#define ALARM_ID_BASE 1000 +typedef struct alarm_t { + /* timer id point to here */ + TimerHandle_t alarm_hdl; + osi_alarm_callback_t cb; + void *cb_data; +} osi_alarm_t; + +void osi_alarm_init(void); + +// Creates a new alarm object. The returned object must be freed by calling +// |alarm_free|. Returns NULL on failure. +osi_alarm_t *osi_alarm_new(char *alarm_name, osi_alarm_callback_t callback, void *data, period_ms_t timer_expire); + +// Frees an alarm object created by |alarm_new|. |alarm| may be NULL. If the +// alarm is pending, it will be cancelled. It is not safe to call |alarm_free| +// from inside the callback of |alarm|. +int osi_alarm_free(osi_alarm_t *alarm); + +// Sets an alarm to fire |cb| after the given |deadline|. Note that |deadline| is the +// number of milliseconds relative to the current time. |data| is a context variable +// for the callback and may be NULL. |cb| will be called back in the context of an +// unspecified thread (i.e. it will not be called back in the same thread as the caller). +// |alarm| and |cb| may not be NULL. +int osi_alarm_set(osi_alarm_t *alarm, period_ms_t timeout); + +// This function cancels the |alarm| if it was previously set. When this call +// returns, the caller has a guarantee that the callback is not in progress and +// will not be called if it hasn't already been called. This function is idempotent. +// |alarm| may not be NULL. +int osi_alarm_cancel(osi_alarm_t *alarm); + +period_ms_t osi_alarm_now(void); + +// Figure out how much time until next expiration. +// Returns 0 if not armed. |alarm| may not be NULL. +// TODO: Remove this function once PM timers can be re-factored +period_ms_t osi_alarm_get_remaining_ms(const osi_alarm_t *alarm); + +// Alarm-related state cleanup +//void alarm_cleanup(void); + +// Compute time difference (t1-t2) considering tick counter wrap +// t1 and t2 should be no greater than the time of MAX ticks +period_ms_t osi_alarm_time_diff(period_ms_t t1, period_ms_t t2); + +#endif /*_ALARM_H_*/ diff --git a/tools/sdk/include/bluedroid/allocator.h b/tools/sdk/include/bluedroid/allocator.h new file mode 100644 index 00000000..17a3a246 --- /dev/null +++ b/tools/sdk/include/bluedroid/allocator.h @@ -0,0 +1,82 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _ALLOCATOR_H_ +#define _ALLOCATOR_H_ + +#include +//#include + +typedef void *(*alloc_fn)(size_t size); +typedef void (*free_fn)(void *ptr); + +typedef struct { + alloc_fn alloc; + free_fn free; +} allocator_t; + +// allocator_t abstractions for the osi_*alloc and osi_free functions +extern const allocator_t allocator_malloc; +extern const allocator_t allocator_calloc; + +char *osi_strdup(const char *str); + +void *osi_malloc_func(size_t size); +void *osi_calloc_func(size_t size); +void osi_free_func(void *ptr); + +#ifdef CONFIG_BLUEDROID_MEM_DEBUG + +void osi_mem_dbg_init(void); +void osi_mem_dbg_record(void *p, int size, const char *func, int line); +void osi_mem_dbg_clean(void *p, const char *func, int line); +void osi_mem_dbg_show(void); + +#define osi_malloc(size) \ +({ \ + void *p; \ + \ + p = calloc(1, (size)); \ + osi_mem_dbg_record(p, size, __func__, __LINE__); \ + (void *)p; \ +}) + +#define osi_calloc(size) \ +({ \ + void *p; \ + \ + p = calloc(1, (size)); \ + osi_mem_dbg_record(p, size, __func__, __LINE__); \ + (void *)p; \ +}) + +#define osi_free(ptr) \ +({ \ + osi_mem_dbg_clean(ptr, __func__, __LINE__); \ + free((ptr)); \ +}) + +#else + +#define osi_malloc(size) calloc(1, (size)) +#define osi_calloc(size) calloc(1, (size)) +#define osi_free(p) free((p)) + +#endif /* CONFIG_BLUEDROID_MEM_DEBUG */ + +#endif /* _ALLOCATOR_H_ */ diff --git a/tools/sdk/include/bluedroid/avct_api.h b/tools/sdk/include/bluedroid/avct_api.h new file mode 100755 index 00000000..c2713fdb --- /dev/null +++ b/tools/sdk/include/bluedroid/avct_api.h @@ -0,0 +1,279 @@ +/****************************************************************************** + * + * Copyright (C) 2003-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This interface file contains the interface to the Audio Video Control + * Transport Protocol (AVCTP). + * + ******************************************************************************/ +#ifndef AVCT_API_H +#define AVCT_API_H + +#include "bt_types.h" +#include "bt_target.h" + +/***************************************************************************** +** Constants +*****************************************************************************/ + +/* API function return value result codes. */ +#define AVCT_SUCCESS 0 /* Function successful */ +#define AVCT_NO_RESOURCES 1 /* Not enough resources */ +#define AVCT_BAD_HANDLE 2 /* Bad handle */ +#define AVCT_PID_IN_USE 3 /* PID already in use */ +#define AVCT_NOT_OPEN 4 /* Connection not open */ + +/* PSM for AVCT. */ +#define AVCT_PSM 0x0017 +#define AVCT_BR_PSM 0x001B + +/* Protocol revision numbers */ +#define AVCT_REV_1_0 0x0100 +#define AVCT_REV_1_2 0x0102 +#define AVCT_REV_1_3 0x0103 +#define AVCT_REV_1_4 0x0104 + +/* the layer_specific settings */ +#define AVCT_DATA_CTRL 0x0001 /* for the control channel */ +#define AVCT_DATA_BROWSE 0x0002 /* for the browsing channel */ +#define AVCT_DATA_PARTIAL 0x0100 /* Only have room for a partial message */ + +#define AVCT_MIN_CONTROL_MTU 48 /* Per the AVRC spec, minimum MTU for the control channel */ +#define AVCT_MIN_BROWSE_MTU 335 /* Per the AVRC spec, minimum MTU for the browsing channel */ + +/* Message offset. The number of bytes needed by the protocol stack for the +** protocol headers of an AVCTP message packet. +*/ +#define AVCT_MSG_OFFSET 15 +#define AVCT_BROWSE_OFFSET 17 /* the default offset for browsing channel */ + +/* Connection role. */ +#define AVCT_INT 0 /* Initiator connection */ +#define AVCT_ACP 1 /* Acceptor connection */ + +/* Control role. */ +#define AVCT_TARGET 1 /* target */ +#define AVCT_CONTROL 2 /* controller */ +#define AVCT_PASSIVE 4 /* If conflict, allow the other side to succeed */ + +/* Command/Response indicator. */ +#define AVCT_CMD 0 /* Command message */ +#define AVCT_RSP 2 /* Response message */ +#define AVCT_REJ 3 /* Message rejected */ + +/* Control callback events. */ +#define AVCT_CONNECT_CFM_EVT 0 /* Connection confirm */ +#define AVCT_CONNECT_IND_EVT 1 /* Connection indication */ +#define AVCT_DISCONNECT_CFM_EVT 2 /* Disconnect confirm */ +#define AVCT_DISCONNECT_IND_EVT 3 /* Disconnect indication */ +#define AVCT_CONG_IND_EVT 4 /* Congestion indication */ +#define AVCT_UNCONG_IND_EVT 5 /* Uncongestion indication */ +#define AVCT_BROWSE_CONN_CFM_EVT 6 /* Browse Connection confirm */ +#define AVCT_BROWSE_CONN_IND_EVT 7 /* Browse Connection indication */ +#define AVCT_BROWSE_DISCONN_CFM_EVT 8 /* Browse Disconnect confirm */ +#define AVCT_BROWSE_DISCONN_IND_EVT 9 /* Browse Disconnect indication */ +#define AVCT_BROWSE_CONG_IND_EVT 10 /* Congestion indication */ +#define AVCT_BROWSE_UNCONG_IND_EVT 11 /* Uncongestion indication */ + + +/* General purpose failure result code for callback events. */ +#define AVCT_RESULT_FAIL 5 + +/***************************************************************************** +** Type Definitions +*****************************************************************************/ + +/* Control callback function. */ +typedef void (tAVCT_CTRL_CBACK)(UINT8 handle, UINT8 event, UINT16 result, + BD_ADDR peer_addr); + +/* Message callback function */ +/* p_pkt->layer_specific is AVCT_DATA_CTRL or AVCT_DATA_BROWSE */ +typedef void (tAVCT_MSG_CBACK)(UINT8 handle, UINT8 label, UINT8 cr, + BT_HDR *p_pkt); + +/* Structure used by AVCT_CreateConn. */ +typedef struct { + tAVCT_CTRL_CBACK *p_ctrl_cback; /* Control callback */ + tAVCT_MSG_CBACK *p_msg_cback; /* Message callback */ + UINT16 pid; /* Profile ID */ + UINT8 role; /* Initiator/acceptor role */ + UINT8 control; /* Control role (Control/Target) */ +} tAVCT_CC; + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif + +/******************************************************************************* +** +** Function AVCT_Register +** +** Description This is the system level registration function for the +** AVCTP protocol. This function initializes AVCTP and +** prepares the protocol stack for its use. This function +** must be called once by the system or platform using AVCTP +** before the other functions of the API an be used. +** +** +** Returns void +** +*******************************************************************************/ +extern void AVCT_Register(UINT16 mtu, UINT16 mtu_br, UINT8 sec_mask); + +/******************************************************************************* +** +** Function AVCT_Deregister +** +** Description This function is called to deregister use AVCTP protocol. +** It is called when AVCTP is no longer being used by any +** application in the system. Before this function can be +** called, all connections must be removed with +** AVCT_RemoveConn(). +** +** +** Returns void +** +*******************************************************************************/ +extern void AVCT_Deregister(void); + +/******************************************************************************* +** +** Function AVCT_CreateConn +** +** Description Create an AVCTP connection. There are two types of +** connections, initiator and acceptor, as determined by +** the p_cc->role parameter. When this function is called to +** create an initiator connection, an AVCTP connection to +** the peer device is initiated if one does not already exist. +** If an acceptor connection is created, the connection waits +** passively for an incoming AVCTP connection from a peer device. +** +** +** Returns AVCT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVCT_CreateConn(UINT8 *p_handle, tAVCT_CC *p_cc, + BD_ADDR peer_addr); + +/******************************************************************************* +** +** Function AVCT_RemoveConn +** +** Description Remove an AVCTP connection. This function is called when +** the application is no longer using a connection. If this +** is the last connection to a peer the L2CAP channel for AVCTP +** will be closed. +** +** +** Returns AVCT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVCT_RemoveConn(UINT8 handle); + +/******************************************************************************* +** +** Function AVCT_CreateBrowse +** +** Description Create an AVCTP connection. There are two types of +** connections, initiator and acceptor, as determined by +** the p_cc->role parameter. When this function is called to +** create an initiator connection, an AVCTP connection to +** the peer device is initiated if one does not already exist. +** If an acceptor connection is created, the connection waits +** passively for an incoming AVCTP connection from a peer device. +** +** +** Returns AVCT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVCT_CreateBrowse(UINT8 handle, UINT8 role); + +/******************************************************************************* +** +** Function AVCT_RemoveBrowse +** +** Description Remove an AVCTP connection. This function is called when +** the application is no longer using a connection. If this +** is the last connection to a peer the L2CAP channel for AVCTP +** will be closed. +** +** +** Returns AVCT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVCT_RemoveBrowse(UINT8 handle); + +/******************************************************************************* +** +** Function AVCT_GetBrowseMtu +** +** Description Get the peer_mtu for the AVCTP Browse channel of the given +** connection. +** +** Returns the peer browsing channel MTU. +** +*******************************************************************************/ +extern UINT16 AVCT_GetBrowseMtu (UINT8 handle); + +/******************************************************************************* +** +** Function AVCT_GetPeerMtu +** +** Description Get the peer_mtu for the AVCTP channel of the given +** connection. +** +** Returns the peer MTU size. +** +*******************************************************************************/ +extern UINT16 AVCT_GetPeerMtu (UINT8 handle); + +/******************************************************************************* +** +** Function AVCT_MsgReq +** +** Description Send an AVCTP message to a peer device. In calling +** AVCT_MsgReq(), the application should keep track of the +** congestion state of AVCTP as communicated with events +** AVCT_CONG_IND_EVT and AVCT_UNCONG_IND_EVT. If the +** application calls AVCT_MsgReq() when AVCTP is congested +** the message may be discarded. The application may make its +** first call to AVCT_MsgReq() after it receives an +** AVCT_CONNECT_CFM_EVT or AVCT_CONNECT_IND_EVT on control channel or +** AVCT_BROWSE_CONN_CFM_EVT or AVCT_BROWSE_CONN_IND_EVT on browsing channel. +** +** p_msg->layer_specific must be set to +** AVCT_DATA_CTRL for control channel traffic; +** AVCT_DATA_BROWSE for for browse channel traffic. +** +** Returns AVCT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVCT_MsgReq(UINT8 handle, UINT8 label, UINT8 cr, BT_HDR *p_msg); + +#ifdef __cplusplus +} +#endif + + +#endif /* AVCT_API_H */ diff --git a/tools/sdk/include/bluedroid/avdt_api.h b/tools/sdk/include/bluedroid/avdt_api.h new file mode 100644 index 00000000..59a9db77 --- /dev/null +++ b/tools/sdk/include/bluedroid/avdt_api.h @@ -0,0 +1,985 @@ +/****************************************************************************** + * + * Copyright (C) 2002-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This interface file contains the interface to the Audio Video + * Distribution Transport Protocol (AVDTP). + * + ******************************************************************************/ +#ifndef AVDT_API_H +#define AVDT_API_H + +#include "bt_types.h" +#include "bt_target.h" + +/***************************************************************************** +** Constants +*****************************************************************************/ +#ifndef AVDT_VERSION +#define AVDT_VERSION 0x0102 +#endif +#define AVDT_VERSION_SYNC 0x0103 + +/* API function return value result codes. */ +#define AVDT_SUCCESS 0 /* Function successful */ +#define AVDT_BAD_PARAMS 1 /* Invalid parameters */ +#define AVDT_NO_RESOURCES 2 /* Not enough resources */ +#define AVDT_BAD_HANDLE 3 /* Bad handle */ +#define AVDT_BUSY 4 /* A procedure is already in progress */ +#define AVDT_WRITE_FAIL 5 /* Write failed */ + +/* The index to access the codec type in codec_info[]. */ +#define AVDT_CODEC_TYPE_INDEX 2 + +/* The size in bytes of a Adaptation Layer header. */ +#define AVDT_AL_HDR_SIZE 3 + +/* The size in bytes of a media packet header. */ +#define AVDT_MEDIA_HDR_SIZE 12 + +/* AVDTP 7.5.3 Adaptation Layer Fragmentation + * original length of the un-fragmented transport packet should be specified by + * two bytes length field of Adaptation Layer Header */ +#define AVDT_MAX_MEDIA_SIZE (0xFFFF - AVDT_MEDIA_HDR_SIZE) + +/* The handle is used when reporting MULTI_AV specific events */ +#define AVDT_MULTI_AV_HANDLE 0xFF + +/* The number of bytes needed by the protocol stack for the protocol headers +** of a media packet. This is the size of the media packet header, the +** L2CAP packet header and HCI header. +*/ +#define AVDT_MEDIA_OFFSET 23 + +/* The marker bit is used by the application to mark significant events such +** as frame boundaries in the data stream. This constant is used to check or +** set the marker bit in the m_pt parameter of an AVDT_WriteReq() +** or AVDT_DATA_IND_EVT. +*/ +#define AVDT_MARKER_SET 0x80 + +/* SEP Type. This indicates the stream endpoint type. */ +#define AVDT_TSEP_SRC 0 /* Source SEP */ +#define AVDT_TSEP_SNK 1 /* Sink SEP */ + +/* initiator/acceptor role for adaption */ +#define AVDT_INT 0 /* initiator */ +#define AVDT_ACP 1 /* acceptor */ + +/* Media Type. This indicates the media type of the stream endpoint. */ +#define AVDT_MEDIA_AUDIO 0 /* Audio SEP */ +#define AVDT_MEDIA_VIDEO 1 /* Video SEP */ +#define AVDT_MEDIA_MULTI 2 /* Multimedia SEP */ + +/* for reporting packets */ +#define AVDT_RTCP_PT_SR 200 /* the packet type - SR (Sender Report) */ +#define AVDT_RTCP_PT_RR 201 /* the packet type - RR (Receiver Report) */ +#define AVDT_RTCP_PT_SDES 202 /* the packet type - SDES (Source Description) */ +typedef UINT8 AVDT_REPORT_TYPE; + +#define AVDT_RTCP_SDES_CNAME 1 /* SDES item CNAME */ +#ifndef AVDT_MAX_CNAME_SIZE +#define AVDT_MAX_CNAME_SIZE 28 +#endif + +/* Protocol service capabilities. This indicates the protocol service +** capabilities of a stream endpoint. This value is a mask. +** Multiple values can be combined with a bitwise OR. +*/ +#define AVDT_PSC_TRANS (1<<1) /* Media transport */ +#define AVDT_PSC_REPORT (1<<2) /* Reporting */ +#define AVDT_PSC_RECOV (1<<3) /* Recovery */ +#define AVDT_PSC_HDRCMP (1<<5) /* Header compression */ +#define AVDT_PSC_MUX (1<<6) /* Multiplexing */ +#define AVDT_PSC_DELAY_RPT (1<<8) /* Delay Report */ + +/* Recovery type. This indicates the recovery type. */ +#define AVDT_RECOV_RFC2733 1 /* RFC2733 recovery */ + +/* Header compression capabilities. This indicates the header compression +** capabilities. This value is a mask. Multiple values can be combined +** with a bitwise OR. +*/ +#define AVDT_HDRCMP_MEDIA (1<<5) /* Available for media packets */ +#define AVDT_HDRCMP_RECOV (1<<6) /* Available for recovery packets */ +#define AVDT_HDRCMP_BACKCH (1<<7) /* Back channel supported */ + +/* Multiplexing capabilities mask. */ +#define AVDT_MUX_FRAG (1<<7) /* Allow Adaptation Layer Fragmentation */ + +/* Application service category. This indicates the application +** service category. +*/ +#define AVDT_ASC_PROTECT 4 /* Content protection */ +#define AVDT_ASC_CODEC 7 /* Codec */ + +/* Error codes. The following are error codes defined in the AVDTP and GAVDP +** specifications. These error codes communicate protocol errors between +** AVDTP and the application. More detailed descriptions of the error codes +** and their appropriate use can be found in the AVDTP and GAVDP specifications. +** These error codes are unrelated to the result values returned by the +** AVDTP API functions. +*/ +#define AVDT_ERR_HEADER 0x01 /* Bad packet header format */ +#define AVDT_ERR_LENGTH 0x11 /* Bad packet length */ +#define AVDT_ERR_SEID 0x12 /* Invalid SEID */ +#define AVDT_ERR_IN_USE 0x13 /* The SEP is in use */ +#define AVDT_ERR_NOT_IN_USE 0x14 /* The SEP is not in use */ +#define AVDT_ERR_CATEGORY 0x17 /* Bad service category */ +#define AVDT_ERR_PAYLOAD 0x18 /* Bad payload format */ +#define AVDT_ERR_NSC 0x19 /* Requested command not supported */ +#define AVDT_ERR_INVALID_CAP 0x1A /* Reconfigure attempted invalid capabilities */ +#define AVDT_ERR_RECOV_TYPE 0x22 /* Requested recovery type not defined */ +#define AVDT_ERR_MEDIA_TRANS 0x23 /* Media transport capability not correct */ +#define AVDT_ERR_RECOV_FMT 0x25 /* Recovery service capability not correct */ +#define AVDT_ERR_ROHC_FMT 0x26 /* Header compression service capability not correct */ +#define AVDT_ERR_CP_FMT 0x27 /* Content protection service capability not correct */ +#define AVDT_ERR_MUX_FMT 0x28 /* Multiplexing service capability not correct */ +#define AVDT_ERR_UNSUP_CFG 0x29 /* Configuration not supported */ +#define AVDT_ERR_BAD_STATE 0x31 /* Message cannot be processed in this state */ +#define AVDT_ERR_REPORT_FMT 0x65 /* Report service capability not correct */ +#define AVDT_ERR_SERVICE 0x80 /* Invalid service category */ +#define AVDT_ERR_RESOURCE 0x81 /* Insufficient resources */ +#define AVDT_ERR_INVALID_MCT 0xC1 /* Invalid Media Codec Type */ +#define AVDT_ERR_UNSUP_MCT 0xC2 /* Unsupported Media Codec Type */ +#define AVDT_ERR_INVALID_LEVEL 0xC3 /* Invalid Level */ +#define AVDT_ERR_UNSUP_LEVEL 0xC4 /* Unsupported Level */ +#define AVDT_ERR_INVALID_CP 0xE0 /* Invalid Content Protection Type */ +#define AVDT_ERR_INVALID_FORMAT 0xE1 /* Invalid Content Protection format */ + +/* Additional error codes. This indicates error codes used by AVDTP +** in addition to the ones defined in the specifications. +*/ +#define AVDT_ERR_CONNECT 0x07 /* Connection failed. */ +#define AVDT_ERR_TIMEOUT 0x08 /* Response timeout. */ + +/* Control callback events. */ +#define AVDT_DISCOVER_CFM_EVT 0 /* Discover confirm */ +#define AVDT_GETCAP_CFM_EVT 1 /* Get capabilities confirm */ +#define AVDT_OPEN_CFM_EVT 2 /* Open confirm */ +#define AVDT_OPEN_IND_EVT 3 /* Open indication */ +#define AVDT_CONFIG_IND_EVT 4 /* Configuration indication */ +#define AVDT_START_CFM_EVT 5 /* Start confirm */ +#define AVDT_START_IND_EVT 6 /* Start indication */ +#define AVDT_SUSPEND_CFM_EVT 7 /* Suspend confirm */ +#define AVDT_SUSPEND_IND_EVT 8 /* Suspend indication */ +#define AVDT_CLOSE_CFM_EVT 9 /* Close confirm */ +#define AVDT_CLOSE_IND_EVT 10 /* Close indication */ +#define AVDT_RECONFIG_CFM_EVT 11 /* Reconfiguration confirm */ +#define AVDT_RECONFIG_IND_EVT 12 /* Reconfiguration indication */ +#define AVDT_SECURITY_CFM_EVT 13 /* Security confirm */ +#define AVDT_SECURITY_IND_EVT 14 /* Security indication */ +#define AVDT_WRITE_CFM_EVT 15 /* Write confirm */ +#define AVDT_CONNECT_IND_EVT 16 /* Signaling channel connected */ +#define AVDT_DISCONNECT_IND_EVT 17 /* Signaling channel disconnected */ +#define AVDT_REPORT_CONN_EVT 18 /* Reporting channel connected */ +#define AVDT_REPORT_DISCONN_EVT 19 /* Reporting channel disconnected */ +#define AVDT_DELAY_REPORT_EVT 20 /* Delay report received */ +#define AVDT_DELAY_REPORT_CFM_EVT 21 /* Delay report response received */ + +#define AVDT_MAX_EVT (AVDT_DELAY_REPORT_CFM_EVT) + +/* PSM for AVDT */ +#define AVDT_PSM 0x0019 + +/* Nonsupported protocol command messages. This value is used in tAVDT_CS */ +#define AVDT_NSC_SUSPEND 0x01 /* Suspend command not supported */ +#define AVDT_NSC_RECONFIG 0x02 /* Reconfigure command not supported */ +#define AVDT_NSC_SECURITY 0x04 /* Security command not supported */ + +/***************************************************************************** +** Type Definitions +*****************************************************************************/ + +typedef struct { + UINT32 ntp_sec; /* NTP time: seconds relative to 0h UTC on 1 January 1900 */ + UINT32 ntp_frac; /* NTP time: the fractional part */ + UINT32 rtp_time; /* timestamp in RTP header */ + UINT32 pkt_count; /* sender's packet count: since starting transmission + * up until the time this SR packet was generated. */ + UINT32 octet_count; /* sender's octet count: same comment */ +} tAVDT_SENDER_INFO; + +typedef struct { + UINT8 frag_lost; /* fraction lost since last RR */ + UINT32 packet_lost; /* cumulative number of packets lost since the beginning */ + UINT32 seq_num_rcvd; /* extended highest sequence number received */ + UINT32 jitter; /* interarrival jitter */ + UINT32 lsr; /* last SR timestamp */ + UINT32 dlsr; /* delay since last SR */ +} tAVDT_REPORT_BLK; + +typedef union { + tAVDT_SENDER_INFO sr; + tAVDT_REPORT_BLK rr; + UINT8 cname[AVDT_MAX_CNAME_SIZE + 1]; +} tAVDT_REPORT_DATA; + +/* This structure contains parameters which are set at registration. */ +typedef struct { + UINT16 ctrl_mtu; /* L2CAP MTU of the AVDTP signaling channel */ + UINT8 ret_tout; /* AVDTP signaling retransmission timeout */ + UINT8 sig_tout; /* AVDTP signaling message timeout */ + UINT8 idle_tout; /* AVDTP idle signaling channel timeout */ + UINT8 sec_mask; /* Security mask for BTM_SetSecurityLevel() */ +} tAVDT_REG; + +/* This structure contains the SEP information. This information is +** transferred during the discovery procedure. +*/ +typedef struct { + BOOLEAN in_use; /* TRUE if stream is currently in use */ + UINT8 seid; /* Stream endpoint identifier */ + UINT8 media_type; /* Media type */ + UINT8 tsep; /* SEP type */ +} tAVDT_SEP_INFO; + +/* This structure contains the SEP configuration. */ +typedef struct { + UINT8 codec_info[AVDT_CODEC_SIZE]; /* Codec capabilities array */ + UINT8 protect_info[AVDT_PROTECT_SIZE]; /* Content protection capabilities */ + UINT8 num_codec; /* Number of media codec information elements */ + UINT8 num_protect; /* Number of content protection information elements */ + UINT16 psc_mask; /* Protocol service capabilities mask */ + UINT8 recov_type; /* Recovery type */ + UINT8 recov_mrws; /* Maximum recovery window size */ + UINT8 recov_mnmp; /* Recovery maximum number of media packets */ + UINT8 hdrcmp_mask; /* Header compression capabilities */ +#if AVDT_MULTIPLEXING == TRUE + UINT8 mux_mask; /* Multiplexing capabilities. AVDT_MUX_XXX bits can be combined with a bitwise OR */ + UINT8 mux_tsid_media; /* TSID for media transport session */ + UINT8 mux_tcid_media; /* TCID for media transport session */ + UINT8 mux_tsid_report; /* TSID for reporting transport session */ + UINT8 mux_tcid_report; /* TCID for reporting transport session */ + UINT8 mux_tsid_recov; /* TSID for recovery transport session */ + UINT8 mux_tcid_recov; /* TCID for recovery transport session */ +#endif +} tAVDT_CFG; + +/* Header structure for callback event parameters. */ +typedef struct { + UINT8 err_code; /* Zero if operation succeeded; nonzero if operation failed */ + UINT8 err_param; /* Error parameter included for some events */ + UINT8 label; /* Transaction label */ + UINT8 seid; /* For internal use only */ + UINT8 sig_id; /* For internal use only */ + UINT8 ccb_idx; /* For internal use only */ +} tAVDT_EVT_HDR; + +/* This data structure is associated with the AVDT_GETCAP_CFM_EVT, +** AVDT_RECONFIG_IND_EVT, and AVDT_RECONFIG_CFM_EVT. +*/ +typedef struct { + tAVDT_EVT_HDR hdr; /* Event header */ + tAVDT_CFG *p_cfg; /* Pointer to configuration for this SEP */ +} tAVDT_CONFIG; + +/* This data structure is associated with the AVDT_CONFIG_IND_EVT. */ +typedef struct { + tAVDT_EVT_HDR hdr; /* Event header */ + tAVDT_CFG *p_cfg; /* Pointer to configuration for this SEP */ + UINT8 int_seid; /* Stream endpoint ID of stream initiating the operation */ +} tAVDT_SETCONFIG; + +/* This data structure is associated with the AVDT_OPEN_IND_EVT and AVDT_OPEN_CFM_EVT. */ +typedef struct { + tAVDT_EVT_HDR hdr; /* Event header */ + UINT16 peer_mtu; /* Transport channel L2CAP MTU of the peer */ + UINT16 lcid; /* L2CAP LCID for media channel */ +} tAVDT_OPEN; + +/* This data structure is associated with the AVDT_SECURITY_IND_EVT +** and AVDT_SECURITY_CFM_EVT. +*/ +typedef struct { + tAVDT_EVT_HDR hdr; /* Event header */ + UINT8 *p_data; /* Pointer to security data */ + UINT16 len; /* Length in bytes of the security data */ +} tAVDT_SECURITY; + +/* This data structure is associated with the AVDT_DISCOVER_CFM_EVT. */ +typedef struct { + tAVDT_EVT_HDR hdr; /* Event header */ + tAVDT_SEP_INFO *p_sep_info; /* Pointer to SEP information */ + UINT8 num_seps; /* Number of stream endpoints */ +} tAVDT_DISCOVER; + +/* This data structure is associated with the AVDT_DELAY_REPORT_EVT. */ +typedef struct { + tAVDT_EVT_HDR hdr; /* Event header */ + UINT16 delay; /* Delay value */ +} tAVDT_DELAY_RPT; + +/* Union of all control callback event data structures */ +typedef union { + tAVDT_EVT_HDR hdr; + tAVDT_DISCOVER discover_cfm; + tAVDT_CONFIG getcap_cfm; + tAVDT_OPEN open_cfm; + tAVDT_OPEN open_ind; + tAVDT_SETCONFIG config_ind; + tAVDT_EVT_HDR start_cfm; + tAVDT_EVT_HDR suspend_cfm; + tAVDT_EVT_HDR close_cfm; + tAVDT_CONFIG reconfig_cfm; + tAVDT_CONFIG reconfig_ind; + tAVDT_SECURITY security_cfm; + tAVDT_SECURITY security_ind; + tAVDT_EVT_HDR connect_ind; + tAVDT_EVT_HDR disconnect_ind; + tAVDT_EVT_HDR report_conn; + tAVDT_DELAY_RPT delay_rpt_cmd; +} tAVDT_CTRL; + +/* This is the control callback function. This function passes control events +** to the application. This function is required for all registered stream +** endpoints and for the AVDT_DiscoverReq() and AVDT_GetCapReq() functions. +** +*/ +typedef void (tAVDT_CTRL_CBACK)(UINT8 handle, BD_ADDR bd_addr, UINT8 event, + tAVDT_CTRL *p_data); + +/* This is the data callback function. It is executed when AVDTP has a media +** packet ready for the application. This function is required for SNK +** endpoints and not applicable for SRC endpoints. +*/ +typedef void (tAVDT_DATA_CBACK)(UINT8 handle, BT_HDR *p_pkt, UINT32 time_stamp, + UINT8 m_pt); + +#if AVDT_MULTIPLEXING == TRUE +/* This is the second version of the data callback function. This version uses +** application buffer assigned by AVDT_SetMediaBuf. Caller can assign different +** buffer during callback or can leave the current buffer for further using. +** This callback is called when AVDTP has a media packet ready for the application. +** This function is required for SNK endpoints and not applicable for SRC endpoints. +*/ +typedef void (tAVDT_MEDIA_CBACK)(UINT8 handle, UINT8 *p_payload, UINT32 payload_len, + UINT32 time_stamp, UINT16 seq_num, UINT8 m_pt, UINT8 marker); +#endif + +#if AVDT_REPORTING == TRUE +/* This is the report callback function. It is executed when AVDTP has a reporting +** packet ready for the application. This function is required for streams +** created with AVDT_PSC_REPORT. +*/ +typedef void (tAVDT_REPORT_CBACK)(UINT8 handle, AVDT_REPORT_TYPE type, + tAVDT_REPORT_DATA *p_data); +#endif + +typedef UINT16 (tAVDT_GETCAP_REQ) (BD_ADDR bd_addr, UINT8 seid, tAVDT_CFG *p_cfg, tAVDT_CTRL_CBACK *p_cback); + +/* This structure contains information required when a stream is created. +** It is passed to the AVDT_CreateStream() function. +*/ +typedef struct { + tAVDT_CFG cfg; /* SEP configuration */ + tAVDT_CTRL_CBACK *p_ctrl_cback; /* Control callback function */ + tAVDT_DATA_CBACK *p_data_cback; /* Data callback function */ +#if AVDT_MULTIPLEXING == TRUE + tAVDT_MEDIA_CBACK *p_media_cback; /* Media callback function. It will be called only if p_data_cback is NULL */ +#endif +#if AVDT_REPORTING == TRUE + tAVDT_REPORT_CBACK *p_report_cback;/* Report callback function. */ +#endif + UINT16 mtu; /* The L2CAP MTU of the transport channel */ + UINT16 flush_to; /* The L2CAP flush timeout of the transport channel */ + UINT8 tsep; /* SEP type */ + UINT8 media_type; /* Media type */ + UINT16 nsc_mask; /* Nonsupported protocol command messages */ +} tAVDT_CS; + +/* AVDT data option mask is used in the write request */ +#define AVDT_DATA_OPT_NONE 0x00 /* No option still add RTP header */ +#define AVDT_DATA_OPT_NO_RTP (0x01 << 0) /* Skip adding RTP header */ + +typedef UINT8 tAVDT_DATA_OPT_MASK; + + + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif + +/******************************************************************************* +** +** Function AVDT_Register +** +** Description This is the system level registration function for the +** AVDTP protocol. This function initializes AVDTP and +** prepares the protocol stack for its use. This function +** must be called once by the system or platform using AVDTP +** before the other functions of the API an be used. +** +** +** Returns void +** +*******************************************************************************/ +extern void AVDT_Register(tAVDT_REG *p_reg, tAVDT_CTRL_CBACK *p_cback); + +/******************************************************************************* +** +** Function AVDT_Deregister +** +** Description This function is called to deregister use AVDTP protocol. +** It is called when AVDTP is no longer being used by any +** application in the system. Before this function can be +** called, all streams must be removed with AVDT_RemoveStream(). +** +** +** Returns void +** +*******************************************************************************/ +extern void AVDT_Deregister(void); + + +/******************************************************************************* +** +** Function AVDT_SINK_Activate +** +** Description Activate SEP of A2DP Sink. In Use parameter is adjusted. +** In Use will be made false in case of activation. A2DP SRC +** will receive in_use as false and can open A2DP Sink +** connection +** +** Returns void +** +*******************************************************************************/ +extern void AVDT_SINK_Activate(void); + +/******************************************************************************* +** +** Function AVDT_SINK_Deactivate +** +** Description Deactivate SEP of A2DP Sink. In Use parameter is adjusted. +** In Use will be made TRUE in case of activation. A2DP SRC +** will receive in_use as true and will not open A2DP Sink +** connection +** +** Returns void. +** +*******************************************************************************/ +extern void AVDT_SINK_Deactivate(void); + +/******************************************************************************* +** +** Function AVDT_AbortReq +** +** Description Trigger Abort request to pass AVDTP Abort related mandatory +** PTS Test case. +** +** Returns void. +** +*******************************************************************************/ +extern void AVDT_AbortReq(UINT8 handle); + +/******************************************************************************* +** +** Function AVDT_CreateStream +** +** Description Create a stream endpoint. After a stream endpoint is +** created an application can initiate a connection between +** this endpoint and an endpoint on a peer device. In +** addition, a peer device can discover, get the capabilities, +** and connect to this endpoint. +** +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_CreateStream(UINT8 *p_handle, tAVDT_CS *p_cs); + +/******************************************************************************* +** +** Function AVDT_RemoveStream +** +** Description Remove a stream endpoint. This function is called when +** the application is no longer using a stream endpoint. +** If this function is called when the endpoint is connected +** the connection is closed and then the stream endpoint +** is removed. +** +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_RemoveStream(UINT8 handle); + +/******************************************************************************* +** +** Function AVDT_DiscoverReq +** +** Description This function initiates a connection to the AVDTP service +** on the peer device, if not already present, and discovers +** the stream endpoints on the peer device. (Please note +** that AVDTP discovery is unrelated to SDP discovery). +** This function can be called at any time regardless of whether +** there is an AVDTP connection to the peer device. +** +** When discovery is complete, an AVDT_DISCOVER_CFM_EVT +** is sent to the application via its callback function. +** The application must not call AVDT_GetCapReq() or +** AVDT_DiscoverReq() again to the same device until +** discovery is complete. +** +** The memory addressed by sep_info is allocated by the +** application. This memory is written to by AVDTP as part +** of the discovery procedure. This memory must remain +** accessible until the application receives the +** AVDT_DISCOVER_CFM_EVT. +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_DiscoverReq(BD_ADDR bd_addr, tAVDT_SEP_INFO *p_sep_info, + UINT8 max_seps, tAVDT_CTRL_CBACK *p_cback); + + +/******************************************************************************* +** +** Function AVDT_GetCapReq +** +** Description This function initiates a connection to the AVDTP service +** on the peer device, if not already present, and gets the +** capabilities of a stream endpoint on the peer device. +** This function can be called at any time regardless of +** whether there is an AVDTP connection to the peer device. +** +** When the procedure is complete, an AVDT_GETCAP_CFM_EVT is +** sent to the application via its callback function. The +** application must not call AVDT_GetCapReq() or +** AVDT_DiscoverReq() again until the procedure is complete. +** +** The memory pointed to by p_cfg is allocated by the +** application. This memory is written to by AVDTP as part +** of the get capabilities procedure. This memory must +** remain accessible until the application receives +** the AVDT_GETCAP_CFM_EVT. +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_GetCapReq(BD_ADDR bd_addr, UINT8 seid, tAVDT_CFG *p_cfg, + tAVDT_CTRL_CBACK *p_cback); + +/******************************************************************************* +** +** Function AVDT_GetAllCapReq +** +** Description This function initiates a connection to the AVDTP service +** on the peer device, if not already present, and gets the +** capabilities of a stream endpoint on the peer device. +** This function can be called at any time regardless of +** whether there is an AVDTP connection to the peer device. +** +** When the procedure is complete, an AVDT_GETCAP_CFM_EVT is +** sent to the application via its callback function. The +** application must not call AVDT_GetCapReq() or +** AVDT_DiscoverReq() again until the procedure is complete. +** +** The memory pointed to by p_cfg is allocated by the +** application. This memory is written to by AVDTP as part +** of the get capabilities procedure. This memory must +** remain accessible until the application receives +** the AVDT_GETCAP_CFM_EVT. +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_GetAllCapReq(BD_ADDR bd_addr, UINT8 seid, tAVDT_CFG *p_cfg, + tAVDT_CTRL_CBACK *p_cback); + +/******************************************************************************* +** +** Function AVDT_DelayReport +** +** Description This functions sends a Delay Report to the peer device +** that is associated with a particular SEID. +** This function is called by SNK device. +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_DelayReport(UINT8 handle, UINT8 seid, UINT16 delay); + +/******************************************************************************* +** +** Function AVDT_OpenReq +** +** Description This function initiates a connection to the AVDTP service +** on the peer device, if not already present, and connects +** to a stream endpoint on a peer device. When the connection +** is completed, an AVDT_OPEN_CFM_EVT is sent to the +** application via the control callback function for this handle. +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_OpenReq(UINT8 handle, BD_ADDR bd_addr, UINT8 seid, + tAVDT_CFG *p_cfg); + + +/******************************************************************************* +** +** Function AVDT_ConfigRsp +** +** Description Respond to a configure request from the peer device. This +** function must be called if the application receives an +** AVDT_CONFIG_IND_EVT through its control callback. +** +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_ConfigRsp(UINT8 handle, UINT8 label, UINT8 error_code, + UINT8 category); + +/******************************************************************************* +** +** Function AVDT_StartReq +** +** Description Start one or more stream endpoints. This initiates the +** transfer of media packets for the streams. All stream +** endpoints must previously be opened. When the streams +** are started, an AVDT_START_CFM_EVT is sent to the +** application via the control callback function for each stream. +** +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_StartReq(UINT8 *p_handles, UINT8 num_handles); + +/******************************************************************************* +** +** Function AVDT_SuspendReq +** +** Description Suspend one or more stream endpoints. This suspends the +** transfer of media packets for the streams. All stream +** endpoints must previously be open and started. When the +** streams are suspended, an AVDT_SUSPEND_CFM_EVT is sent to +** the application via the control callback function for +** each stream. +** +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_SuspendReq(UINT8 *p_handles, UINT8 num_handles); + +/******************************************************************************* +** +** Function AVDT_CloseReq +** +** Description Close a stream endpoint. This stops the transfer of media +** packets and closes the transport channel associated with +** this stream endpoint. When the stream is closed, an +** AVDT_CLOSE_CFM_EVT is sent to the application via the +** control callback function for this handle. +** +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_CloseReq(UINT8 handle); + +/******************************************************************************* +** +** Function AVDT_ReconfigReq +** +** Description Reconfigure a stream endpoint. This allows the application +** to change the codec or content protection capabilities of +** a stream endpoint after it has been opened. This function +** can only be called if the stream is opened but not started +** or if the stream has been suspended. When the procedure +** is completed, an AVDT_RECONFIG_CFM_EVT is sent to the +** application via the control callback function for this handle. +** +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_ReconfigReq(UINT8 handle, tAVDT_CFG *p_cfg); + +/******************************************************************************* +** +** Function AVDT_ReconfigRsp +** +** Description Respond to a reconfigure request from the peer device. +** This function must be called if the application receives +** an AVDT_RECONFIG_IND_EVT through its control callback. +** +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_ReconfigRsp(UINT8 handle, UINT8 label, UINT8 error_code, + UINT8 category); + +/******************************************************************************* +** +** Function AVDT_SecurityReq +** +** Description Send a security request to the peer device. When the +** security procedure is completed, an AVDT_SECURITY_CFM_EVT +** is sent to the application via the control callback function +** for this handle. (Please note that AVDTP security procedures +** are unrelated to Bluetooth link level security.) +** +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_SecurityReq(UINT8 handle, UINT8 *p_data, UINT16 len); + +/******************************************************************************* +** +** Function AVDT_SecurityRsp +** +** Description Respond to a security request from the peer device. +** This function must be called if the application receives +** an AVDT_SECURITY_IND_EVT through its control callback. +** (Please note that AVDTP security procedures are unrelated +** to Bluetooth link level security.) +** +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_SecurityRsp(UINT8 handle, UINT8 label, UINT8 error_code, + UINT8 *p_data, UINT16 len); + +/******************************************************************************* +** +** Function AVDT_WriteReq +** +** Description Send a media packet to the peer device. The stream must +** be started before this function is called. Also, this +** function can only be called if the stream is a SRC. +** +** When AVDTP has sent the media packet and is ready for the +** next packet, an AVDT_WRITE_CFM_EVT is sent to the +** application via the control callback. The application must +** wait for the AVDT_WRITE_CFM_EVT before it makes the next +** call to AVDT_WriteReq(). If the applications calls +** AVDT_WriteReq() before it receives the event the packet +** will not be sent. The application may make its first call +** to AVDT_WriteReq() after it receives an AVDT_START_CFM_EVT +** or AVDT_START_IND_EVT. +** +** The application passes the packet using the BT_HDR structure. +** This structure is described in section 2.1. The offset +** field must be equal to or greater than AVDT_MEDIA_OFFSET. +** This allows enough space in the buffer for the L2CAP and +** AVDTP headers. +** +** The memory pointed to by p_pkt must be a GKI buffer +** allocated by the application. This buffer will be freed +** by the protocol stack; the application must not free +** this buffer. +** +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_WriteReq(UINT8 handle, BT_HDR *p_pkt, UINT32 time_stamp, + UINT8 m_pt); +/******************************************************************************* +** +** Function AVDT_WriteReqOpt +** +** Description Send a media packet to the peer device. The stream must +** be started before this function is called. Also, this +** function can only be called if the stream is a SRC +** +** When AVDTP has sent the media packet and is ready for the +** next packet, an AVDT_WRITE_CFM_EVT is sent to the +** application via the control callback. The application must +** wait for the AVDT_WRITE_CFM_EVT before it makes the next +** call to AVDT_WriteReq(). If the applications calls +** AVDT_WriteReq() before it receives the event the packet +** will not be sent. The application may make its first call +** to AVDT_WriteReq() after it receives an AVDT_START_CFM_EVT +** or AVDT_START_IND_EVT. +** +** The application passes the packet using the BT_HDR structure +** This structure is described in section 2.1. The offset +** field must be equal to or greater than AVDT_MEDIA_OFFSET +** (if NO_RTP is specified, L2CAP_MIN_OFFSET can be used) +** This allows enough space in the buffer for the L2CAP and +** AVDTP headers. +** +** The memory pointed to by p_pkt must be a GKI buffer +** allocated by the application. This buffer will be freed +** by the protocol stack; the application must not free +** this buffer. +** +** The opt parameter allows passing specific options like: +** - NO_RTP : do not add the RTP header to buffer +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_WriteReqOpt(UINT8 handle, BT_HDR *p_pkt, UINT32 time_stamp, + UINT8 m_pt, tAVDT_DATA_OPT_MASK opt); + +/******************************************************************************* +** +** Function AVDT_ConnectReq +** +** Description This function initiates an AVDTP signaling connection +** to the peer device. When the connection is completed, an +** AVDT_CONNECT_IND_EVT is sent to the application via its +** control callback function. If the connection attempt fails +** an AVDT_DISCONNECT_IND_EVT is sent. The security mask +** parameter overrides the outgoing security mask set in +** AVDT_Register(). +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_ConnectReq(BD_ADDR bd_addr, UINT8 sec_mask, + tAVDT_CTRL_CBACK *p_cback); + +/******************************************************************************* +** +** Function AVDT_DisconnectReq +** +** Description This function disconnect an AVDTP signaling connection +** to the peer device. When disconnected an +** AVDT_DISCONNECT_IND_EVT is sent to the application via its +** control callback function. +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_DisconnectReq(BD_ADDR bd_addr, tAVDT_CTRL_CBACK *p_cback); + +/******************************************************************************* +** +** Function AVDT_GetL2CapChannel +** +** Description Get the L2CAP CID used by the handle. +** +** Returns CID if successful, otherwise 0. +** +*******************************************************************************/ +extern UINT16 AVDT_GetL2CapChannel(UINT8 handle); + +/******************************************************************************* +** +** Function AVDT_GetSignalChannel +** +** Description Get the L2CAP CID used by the signal channel of the given handle. +** +** Returns CID if successful, otherwise 0. +** +*******************************************************************************/ +extern UINT16 AVDT_GetSignalChannel(UINT8 handle, BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function AVDT_WriteDataReq +** +** Description Send a media packet to the peer device. The stream must +** be started before this function is called. Also, this +** function can only be called if the stream is a SRC. +** +** When AVDTP has sent the media packet and is ready for the +** next packet, an AVDT_WRITE_CFM_EVT is sent to the +** application via the control callback. The application must +** wait for the AVDT_WRITE_CFM_EVT before it makes the next +** call to AVDT_WriteDataReq(). If the applications calls +** AVDT_WriteDataReq() before it receives the event the packet +** will not be sent. The application may make its first call +** to AVDT_WriteDataReq() after it receives an +** AVDT_START_CFM_EVT or AVDT_START_IND_EVT. +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_WriteDataReq(UINT8 handle, UINT8 *p_data, UINT32 data_len, + UINT32 time_stamp, UINT8 m_pt, UINT8 marker); + +/******************************************************************************* +** +** Function AVDT_SetMediaBuf +** +** Description Assigns buffer for media packets or forbids using of assigned +** buffer if argument p_buf is NULL. This function can only +** be called if the stream is a SNK. +** +** AVDTP uses this buffer to reassemble fragmented media packets. +** When AVDTP receives a complete media packet, it calls the +** p_media_cback assigned by AVDT_CreateStream(). +** This function can be called during callback to assign a +** different buffer for next media packet or can leave the current +** buffer for next packet. +** +** Returns AVDT_SUCCESS if successful, otherwise error. +** +*******************************************************************************/ +extern UINT16 AVDT_SetMediaBuf(UINT8 handle, UINT8 *p_buf, UINT32 buf_len); + +/******************************************************************************* +** +** Function AVDT_SendReport +** +** Description +** +** +** +** Returns +** +*******************************************************************************/ +extern UINT16 AVDT_SendReport(UINT8 handle, AVDT_REPORT_TYPE type, + tAVDT_REPORT_DATA *p_data); + +/****************************************************************************** +** +** Function AVDT_SetTraceLevel +** +** Description Sets the trace level for AVDT. If 0xff is passed, the +** current trace level is returned. +** +** Input Parameters: +** new_level: The level to set the AVDT tracing to: +** 0xff-returns the current setting. +** 0-turns off tracing. +** >= 1-Errors. +** >= 2-Warnings. +** >= 3-APIs. +** >= 4-Events. +** >= 5-Debug. +** +** Returns The new trace level or current trace level if +** the input parameter is 0xff. +** +******************************************************************************/ +extern UINT8 AVDT_SetTraceLevel (UINT8 new_level); + +#ifdef __cplusplus +} +#endif + + +#endif /* AVDT_API_H */ diff --git a/tools/sdk/include/bluedroid/avdt_defs.h b/tools/sdk/include/bluedroid/avdt_defs.h new file mode 100755 index 00000000..b6dbbc4f --- /dev/null +++ b/tools/sdk/include/bluedroid/avdt_defs.h @@ -0,0 +1,203 @@ +/****************************************************************************** + * + * Copyright (C) 2002-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This contains constants definitions and other information from the AVDTP + * specification. This file is intended for use internal to AVDT only. + * + ******************************************************************************/ +#ifndef AVDT_DEFS_H +#define AVDT_DEFS_H + +/***************************************************************************** +** constants +*****************************************************************************/ + +/* signalling packet type */ +#define AVDT_PKT_TYPE_SINGLE 0 /* single packet */ +#define AVDT_PKT_TYPE_START 1 /* start packet */ +#define AVDT_PKT_TYPE_CONT 2 /* continue packet */ +#define AVDT_PKT_TYPE_END 3 /* end packet */ + +/* signalling message type */ +#define AVDT_MSG_TYPE_CMD 0 /* command */ +#define AVDT_MSG_TYPE_GRJ 1 /* general reject */ +#define AVDT_MSG_TYPE_RSP 2 /* response accept */ +#define AVDT_MSG_TYPE_REJ 3 /* response reject */ + +/* signalling messages */ +#define AVDT_SIG_DISCOVER 1 /* discover */ +#define AVDT_SIG_GETCAP 2 /* get capabilities */ +#define AVDT_SIG_SETCONFIG 3 /* set configuration */ +#define AVDT_SIG_GETCONFIG 4 /* get configuration */ +#define AVDT_SIG_RECONFIG 5 /* reconfigure */ +#define AVDT_SIG_OPEN 6 /* open */ +#define AVDT_SIG_START 7 /* start */ +#define AVDT_SIG_CLOSE 8 /* close */ +#define AVDT_SIG_SUSPEND 9 /* suspend */ +#define AVDT_SIG_ABORT 10 /* abort */ +#define AVDT_SIG_SECURITY 11 /* security control */ +#define AVDT_SIG_GET_ALLCAP 12 /* get all capabilities */ +#define AVDT_SIG_DELAY_RPT 13 /* delay report */ + +/* maximum signal value */ +#define AVDT_SIG_MAX AVDT_SIG_DELAY_RPT + +/* used for general reject */ +#define AVDT_SIG_NONE 0 + +/* some maximum and minimum sizes of signalling messages */ +#define AVDT_DISCOVER_REQ_MIN 1 +#define AVDT_DISCOVER_REQ_MAX 124 + +/* service category information element field values */ +#define AVDT_CAT_TRANS 1 /* Media Transport */ +#define AVDT_CAT_REPORT 2 /* Reporting */ +#define AVDT_CAT_RECOV 3 /* Recovery */ +#define AVDT_CAT_PROTECT 4 /* Content Protection */ +#define AVDT_CAT_HDRCMP 5 /* Header Compression */ +#define AVDT_CAT_MUX 6 /* Multiplexing */ +#define AVDT_CAT_CODEC 7 /* Media Codec */ +#define AVDT_CAT_DELAY_RPT 8 /* Delay Reporting */ +#define AVDT_CAT_MAX_CUR AVDT_CAT_DELAY_RPT + +/* min/max lengths of service category information elements */ +#define AVDT_LEN_TRANS_MIN 0 +#define AVDT_LEN_REPORT_MIN 0 +#define AVDT_LEN_RECOV_MIN 3 +#define AVDT_LEN_PROTECT_MIN 2 +#define AVDT_LEN_HDRCMP_MIN 1 +#define AVDT_LEN_MUX_MIN 3 +#define AVDT_LEN_CODEC_MIN 2 +#define AVDT_LEN_DELAY_RPT_MIN 0 + +#define AVDT_LEN_TRANS_MAX 0 +#define AVDT_LEN_REPORT_MAX 0 +#define AVDT_LEN_RECOV_MAX 3 +#define AVDT_LEN_PROTECT_MAX 255 +#define AVDT_LEN_HDRCMP_MAX 1 +#define AVDT_LEN_MUX_MAX 7 +#define AVDT_LEN_CODEC_MAX 255 +#define AVDT_LEN_DELAY_RPT_MAX 0 + +/* minimum possible size of configuration or capabilities data */ +#define AVDT_LEN_CFG_MIN 2 + +/* minimum and maximum lengths for different message types */ +#define AVDT_LEN_SINGLE 1 +#define AVDT_LEN_SETCONFIG_MIN 2 +#define AVDT_LEN_RECONFIG_MIN 1 +#define AVDT_LEN_MULTI_MIN 1 +#define AVDT_LEN_SECURITY_MIN 1 +#define AVDT_LEN_DELAY_RPT 3 + +/* header lengths for different packet types */ +#define AVDT_LEN_TYPE_SINGLE 2 /* single packet */ +#define AVDT_LEN_TYPE_START 3 /* start packet */ +#define AVDT_LEN_TYPE_CONT 1 /* continue packet */ +#define AVDT_LEN_TYPE_END 1 /* end packet */ + +/* length of general reject message */ +#define AVDT_LEN_GEN_REJ 2 + +/* recovery service capabilities information elements */ +#define AVDT_RECOV_MRWS_MIN 0x01 /* min value for maximum recovery window */ +#define AVDT_RECOV_MRWS_MAX 0x18 /* max value for maximum recovery window */ +#define AVDT_RECOV_MNMP_MIN 0x01 /* min value for maximum number of media packets */ +#define AVDT_RECOV_MNMP_MAX 0x18 /* max value for maximum number of media packets */ + +/* SEID value range */ +#define AVDT_SEID_MIN 0x01 +#define AVDT_SEID_MAX 0x3E + +/* first byte of media packet header */ +#define AVDT_MEDIA_OCTET1 0x80 + +/* for adaptation layer header */ +#define AVDT_ALH_LCODE_MASK 0x03 /* coding of length field */ +#define AVDT_ALH_LCODE_NONE 0x00 /* No length field present. Take length from l2cap */ +#define AVDT_ALH_LCODE_16BIT 0x01 /* 16bit length field */ +#define AVDT_ALH_LCODE_9BITM0 0x02 /* 9 bit length field, MSB = 0, 8 LSBs in 1 octet following */ +#define AVDT_ALH_LCODE_9BITM1 0x03 /* 9 bit length field, MSB = 1, 8 LSBs in 1 octet following */ + +#define AVDT_ALH_FRAG_MASK 0x04 /* set this for continuation packet */ + +/***************************************************************************** +** message parsing and building macros +*****************************************************************************/ + +#define AVDT_MSG_PRS_HDR(p, lbl, pkt, msg) \ + lbl = *(p) >> 4; \ + pkt = (*(p) >> 2) & 0x03; \ + msg = *(p)++ & 0x03; + +#define AVDT_MSG_PRS_DISC(p, seid, in_use, type, tsep) \ + seid = *(p) >> 2; \ + in_use = (*(p)++ >> 1) & 0x01; \ + type = *(p) >> 4; \ + tsep = (*(p)++ >> 3) & 0x01; + +#define AVDT_MSG_PRS_SIG(p, sig) \ + sig = *(p)++ & 0x3F; + +#define AVDT_MSG_PRS_SEID(p, seid) \ + seid = *(p)++ >> 2; + +#define AVDT_MSG_PRS_PKT_TYPE(p, pkt) \ + pkt = (*(p) >> 2) & 0x03; + +#define AVDT_MSG_PRS_OCTET1(p, o_v, o_p, o_x, o_cc) \ + o_v = *(p) >> 6; \ + o_p = (*(p) >> 5) & 0x01; \ + o_x = (*(p) >> 4) & 0x01; \ + o_cc = *(p)++ & 0x0F; + +#define AVDT_MSG_PRS_RPT_OCTET1(p, o_v, o_p, o_cc) \ + o_v = *(p) >> 6; \ + o_p = (*(p) >> 5) & 0x01; \ + o_cc = *(p)++ & 0x1F; + +#define AVDT_MSG_PRS_M_PT(p, m_pt, marker) \ + marker = *(p) >> 7; \ + m_pt = *(p)++ & 0x7F; + +#define AVDT_MSG_BLD_HDR(p, lbl, pkt, msg) \ + *(p)++ = (UINT8) ((lbl) << 4) | ((pkt) << 2) | (msg); + +#define AVDT_MSG_BLD_DISC(p, seid, in_use, type, tsep) \ + *(p)++ = (UINT8) (((seid) << 2) | ((in_use) << 1)); \ + *(p)++ = (UINT8) (((type) << 4) | ((tsep) << 3)); + +#define AVDT_MSG_BLD_SIG(p, sig) \ + *(p)++ = (UINT8) (sig); + +#define AVDT_MSG_BLD_SEID(p, seid) \ + *(p)++ = (UINT8) ((seid) << 2); + +#define AVDT_MSG_BLD_ERR(p, err) \ + *(p)++ = (UINT8) (err); + +#define AVDT_MSG_BLD_PARAM(p, param) \ + *(p)++ = (UINT8) (param); + +#define AVDT_MSG_BLD_NOSP(p, nosp) \ + *(p)++ = (UINT8) (nosp); + +#endif /* AVDT_DEFS_H */ + diff --git a/tools/sdk/include/bluedroid/avdtc_api.h b/tools/sdk/include/bluedroid/avdtc_api.h new file mode 100755 index 00000000..96b20e77 --- /dev/null +++ b/tools/sdk/include/bluedroid/avdtc_api.h @@ -0,0 +1,230 @@ +/****************************************************************************** + * + * Copyright (C) 2002-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This interface file contains the interface AVDTP conformance API. These + * additional API functions and callback events are provided for + * conformance testing purposes only. They are not intended to be used by + * an application. + * + ******************************************************************************/ +#ifndef AVDT_CAPI_H +#define AVDT_CAPI_H + +#include "avdt_api.h" + +/* start AVDTC events here to distinguish from AVDT events */ +#define AVDTC_EVT_BEGIN 0x80 + +#define AVDTC_DISCOVER_IND_EVT (0 + AVDTC_EVT_BEGIN) /* Discover indication */ +#define AVDTC_GETCAP_IND_EVT (1 + AVDTC_EVT_BEGIN) /* Get capabilities indication */ +#define AVDTC_SETCONFIG_CFM_EVT (2 + AVDTC_EVT_BEGIN) /* Set configuration confirm */ +#define AVDTC_GETCONFIG_IND_EVT (3 + AVDTC_EVT_BEGIN) /* Get configuration indication */ +#define AVDTC_GETCONFIG_CFM_EVT (4 + AVDTC_EVT_BEGIN) /* Get configuration confirm */ +#define AVDTC_OPEN_IND_EVT (5 + AVDTC_EVT_BEGIN) /* Open indication */ +#define AVDTC_START_IND_EVT (6 + AVDTC_EVT_BEGIN) /* Start indication */ +#define AVDTC_CLOSE_IND_EVT (7 + AVDTC_EVT_BEGIN) /* Close indication */ +#define AVDTC_SUSPEND_IND_EVT (8 + AVDTC_EVT_BEGIN) /* Suspend indication */ +#define AVDTC_ABORT_IND_EVT (9 + AVDTC_EVT_BEGIN) /* Abort indication */ +#define AVDTC_ABORT_CFM_EVT (10 + AVDTC_EVT_BEGIN) /* Abort confirm */ + +typedef struct { + tAVDT_EVT_HDR hdr; /* Event header */ + UINT8 seid_list[AVDT_NUM_SEPS]; /* Array of SEID values */ + UINT8 num_seps; /* Number of values in array */ +} tAVDT_MULTI; + +/* Union of all control callback event data structures */ +typedef union { + tAVDT_EVT_HDR hdr; + tAVDT_CONFIG getconfig_cfm; + tAVDT_MULTI start_ind; + tAVDT_MULTI suspend_ind; +} tAVDTC_CTRL; + +typedef void tAVDTC_CTRL_CBACK(UINT8 handle, BD_ADDR bd_addr, UINT8 event, tAVDTC_CTRL *p_data); + +#ifdef __cplusplus +extern "C" +{ +#endif + +/******************************************************************************* +** +** Function AVDTC_Init +** +** Description This function is called to begin using the conformance API. +** It must be called after AVDT_Register() and before any +** other API or conformance API functions are called. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_Init(tAVDTC_CTRL_CBACK *p_cback); + +/******************************************************************************* +** +** Function AVDTC_DiscoverRsp +** +** Description Send a discover response. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_DiscoverRsp(BD_ADDR bd_addr, UINT8 label, + tAVDT_SEP_INFO sep_info[], UINT8 num_seps); + +/******************************************************************************* +** +** Function AVDTC_GetCapRsp +** +** Description Send a get capabilities response. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_GetCapRsp(BD_ADDR bd_addr, UINT8 label, tAVDT_CFG *p_cap); + +/******************************************************************************* +** +** Function AVDTC_GetAllCapRsp +** +** Description Send a get all capabilities response. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_GetAllCapRsp(BD_ADDR bd_addr, UINT8 label, tAVDT_CFG *p_cap); + +/******************************************************************************* +** +** Function AVDTC_GetConfigReq +** +** Description Send a get configuration request. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_GetConfigReq(UINT8 handle); + +/******************************************************************************* +** +** Function AVDTC_GetConfigRsp +** +** Description Send a get configuration response. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_GetConfigRsp(UINT8 handle, UINT8 label, tAVDT_CFG *p_cfg); + +/******************************************************************************* +** +** Function AVDTC_OpenReq +** +** Description Send an open request. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_OpenReq(UINT8 handle); + +/******************************************************************************* +** +** Function AVDTC_OpenRsp +** +** Description Send an open response. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_OpenRsp(UINT8 handle, UINT8 label); + +/******************************************************************************* +** +** Function AVDTC_StartRsp +** +** Description Send a start response. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_StartRsp(UINT8 *p_handles, UINT8 num_handles, UINT8 label); + +/******************************************************************************* +** +** Function AVDTC_CloseRsp +** +** Description Send a close response. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_CloseRsp(UINT8 handle, UINT8 label); + +/******************************************************************************* +** +** Function AVDTC_SuspendRsp +** +** Description Send a suspend response. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_SuspendRsp(UINT8 *p_handles, UINT8 num_handles, UINT8 label); + +/******************************************************************************* +** +** Function AVDTC_AbortReq +** +** Description Send an abort request. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_AbortReq(UINT8 handle); + +/******************************************************************************* +** +** Function AVDTC_AbortRsp +** +** Description Send an abort response. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_AbortRsp(UINT8 handle, UINT8 label); + +/******************************************************************************* +** +** Function AVDTC_Rej +** +** Description Send a reject message. +** +** Returns void +** +*******************************************************************************/ +extern void AVDTC_Rej(UINT8 handle, BD_ADDR bd_addr, UINT8 cmd, UINT8 label, + UINT8 err_code, UINT8 err_param); + +#ifdef __cplusplus +} +#endif + +#endif /* AVDT_CAPI_H */ diff --git a/tools/sdk/include/bluedroid/avrc_api.h b/tools/sdk/include/bluedroid/avrc_api.h new file mode 100644 index 00000000..dad8b3bd --- /dev/null +++ b/tools/sdk/include/bluedroid/avrc_api.h @@ -0,0 +1,637 @@ +/****************************************************************************** + * + * Copyright (C) 2006-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * nterface to AVRCP Application Programming Interface + * + ******************************************************************************/ +#ifndef AVRC_API_H +#define AVRC_API_H +#include "bt_target.h" +#include "avct_api.h" +#include "sdp_api.h" +#include "avrc_defs.h" + +/***************************************************************************** +** constants +*****************************************************************************/ + +/* API function return value result codes. */ +#define AVRC_SUCCESS AVCT_SUCCESS /* 0 Function successful */ +#define AVRC_NO_RESOURCES AVCT_NO_RESOURCES /* 1 Not enough resources */ +#define AVRC_BAD_HANDLE AVCT_BAD_HANDLE /* 2 Bad handle */ +#define AVRC_PID_IN_USE AVCT_PID_IN_USE /* 3 PID already in use */ +#define AVRC_NOT_OPEN AVCT_NOT_OPEN /* 4 Connection not open */ +#define AVRC_MSG_TOO_BIG 5 /* 5 the message length exceed the MTU of the browsing channel */ +#define AVRC_FAIL 0x10 /* 0x10 generic failure */ +#define AVRC_BAD_PARAM 0x11 /* 0x11 bad parameter */ + +/* Control role - same as AVCT_TARGET/AVCT_CONTROL */ +#define AVRC_CT_TARGET 1 /* target */ +#define AVRC_CT_CONTROL 2 /* controller */ +#define AVRC_CT_PASSIVE 4 /* If conflict, allow the other side to succeed */ + +/* Connection role */ +#define AVRC_CONN_INT AVCT_INT /* initiator */ +#define AVRC_CONN_ACP AVCT_ACP /* Acceptor */ + + +/* AVRC CTRL events */ +/* AVRC_OPEN_IND_EVT event is sent when the connection is successfully opened. + * This eventis sent in response to an AVRC_Open(). */ +#define AVRC_OPEN_IND_EVT 0 + +/* AVRC_CLOSE_IND_EVT event is sent when a connection is closed. + * This event can result from a call to AVRC_Close() or when the peer closes + * the connection. It is also sent when a connection attempted through + * AVRC_Open() fails. */ +#define AVRC_CLOSE_IND_EVT 1 + +/* AVRC_CONG_IND_EVT event indicates that AVCTP is congested and cannot send + * any more messages. */ +#define AVRC_CONG_IND_EVT 2 + +/* AVRC_UNCONG_IND_EVT event indicates that AVCTP is uncongested and ready to + * send messages. */ +#define AVRC_UNCONG_IND_EVT 3 + +/* AVRC_BROWSE_OPEN_IND_EVT event is sent when the browse channel is successfully opened. +* This eventis sent in response to an AVRC_Open() or AVRC_OpenBrowse() . */ +#define AVRC_BROWSE_OPEN_IND_EVT 4 + +/* AVRC_BROWSE_CLOSE_IND_EVT event is sent when a browse channel is closed. + * This event can result from a call to AVRC_Close(), AVRC_CloseBrowse() or when the peer closes + * the connection. It is also sent when a connection attempted through + * AVRC_OpenBrowse() fails. */ +#define AVRC_BROWSE_CLOSE_IND_EVT 5 + +/* AVRC_BROWSE_CONG_IND_EVT event indicates that AVCTP browse channel is congested and cannot send + * any more messages. */ +#define AVRC_BROWSE_CONG_IND_EVT 6 + +/* AVRC_BROWSE_UNCONG_IND_EVT event indicates that AVCTP browse channel is uncongested and ready to + * send messages. */ +#define AVRC_BROWSE_UNCONG_IND_EVT 7 + +/* AVRC_CMD_TIMEOUT_EVT event indicates timeout waiting for AVRC command response from the peer */ +#define AVRC_CMD_TIMEOUT_EVT 8 + +/* Supported categories */ +#define AVRC_SUPF_CT_CAT1 0x0001 /* Category 1 */ +#define AVRC_SUPF_CT_CAT2 0x0002 /* Category 2 */ +#define AVRC_SUPF_CT_CAT3 0x0004 /* Category 3 */ +#define AVRC_SUPF_CT_CAT4 0x0008 /* Category 4 */ +#define AVRC_SUPF_CT_BROWSE 0x0040 /* Browsing */ + +#define AVRC_SUPF_TG_CAT1 0x0001 /* Category 1 */ +#define AVRC_SUPF_TG_CAT2 0x0002 /* Category 2 */ +#define AVRC_SUPF_TG_CAT3 0x0004 /* Category 3 */ +#define AVRC_SUPF_TG_CAT4 0x0008 /* Category 4 */ +#define AVRC_SUPF_TG_APP_SETTINGS 0x0010 /* Player Application Settings */ +#define AVRC_SUPF_TG_GROUP_NAVI 0x0020 /* Group Navigation */ +#define AVRC_SUPF_TG_BROWSE 0x0040 /* Browsing */ +#define AVRC_SUPF_TG_MULTI_PLAYER 0x0080 /* Muliple Media Player */ + +#define AVRC_META_SUCCESS AVRC_SUCCESS +#define AVRC_META_FAIL AVRC_FAIL +#define AVRC_METADATA_CMD 0x0000 +#define AVRC_METADATA_RESP 0x0001 + + + +/***************************************************************************** +** data type definitions +*****************************************************************************/ + +/* This data type is used in AVRC_FindService() to initialize the SDP database + * to hold the result service search. */ +typedef struct { + UINT32 db_len; /* Length, in bytes, of the discovery database */ + tSDP_DISCOVERY_DB *p_db; /* Pointer to the discovery database */ + UINT16 num_attr;/* The number of attributes in p_attrs */ + UINT16 *p_attrs; /* The attributes filter. If NULL, AVRCP API sets the attribute filter + * to be ATTR_ID_SERVICE_CLASS_ID_LIST, ATTR_ID_BT_PROFILE_DESC_LIST, + * ATTR_ID_SUPPORTED_FEATURES, ATTR_ID_SERVICE_NAME and ATTR_ID_PROVIDER_NAME. + * If not NULL, the input is taken as the filter. */ +} tAVRC_SDP_DB_PARAMS; + +/* This callback function returns service discovery information to the + * application after the AVRC_FindService() API function is called. The + * implementation of this callback function must copy the p_service_name + * and p_provider_name parameters passed to it as they are not guaranteed + * to remain after the callback function exits. */ +typedef void (tAVRC_FIND_CBACK) (UINT16 status); + + +/* This is the control callback function. This function passes events + * listed in Table 20 to the application. */ +typedef void (tAVRC_CTRL_CBACK) (UINT8 handle, UINT8 event, UINT16 result, + BD_ADDR peer_addr); + + +/* This is the message callback function. It is executed when AVCTP has + * a message packet ready for the application. The implementation of this + * callback function must copy the tAVRC_MSG structure passed to it as it + * is not guaranteed to remain after the callback function exits. */ +typedef void (tAVRC_MSG_CBACK) (UINT8 handle, UINT8 label, UINT8 opcode, + tAVRC_MSG *p_msg); + +typedef struct { + tAVRC_CTRL_CBACK *p_ctrl_cback; /* pointer to application control callback */ + tAVRC_MSG_CBACK *p_msg_cback; /* pointer to application message callback */ + UINT32 company_id; /* the company ID */ + UINT8 conn; /* Connection role (Initiator/acceptor) */ + UINT8 control; /* Control role (Control/Target) */ +} tAVRC_CONN_CB; + + + +/***************************************************************************** +** external function declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif + +/****************************************************************************** +** +** Function AVRC_AddRecord +** +** Description This function is called to build an AVRCP SDP record. +** Prior to calling this function the application must +** call SDP_CreateRecord() to create an SDP record. +** +** Input Parameters: +** service_uuid: Indicates TG(UUID_SERVCLASS_AV_REM_CTRL_TARGET) +** or CT(UUID_SERVCLASS_AV_REMOTE_CONTROL) +** +** p_service_name: Pointer to a null-terminated character +** string containing the service name. +** If service name is not used set this to NULL. +** +** p_provider_name: Pointer to a null-terminated character +** string containing the provider name. +** If provider name is not used set this to NULL. +** +** categories: Supported categories. +** +** sdp_handle: SDP handle returned by SDP_CreateRecord(). +** +** Output Parameters: +** None. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_NO_RESOURCES if not enough resources to build the SDP record. +** +******************************************************************************/ +extern UINT16 AVRC_AddRecord(UINT16 service_uuid, char *p_service_name, + char *p_provider_name, UINT16 categories, UINT32 sdp_handle); + +/****************************************************************************** +** +** Function AVRC_FindService +** +** Description This function is called by the application to perform service +** discovery and retrieve AVRCP SDP record information from a +** peer device. Information is returned for the first service +** record found on the server that matches the service UUID. +** The callback function will be executed when service discovery +** is complete. There can only be one outstanding call to +** AVRC_FindService() at a time; the application must wait for +** the callback before it makes another call to the function. +** The application is responsible for allocating memory for the +** discovery database. It is recommended that the size of the +** discovery database be at least 300 bytes. The application +** can deallocate the memory after the callback function has +** executed. +** +** Input Parameters: +** service_uuid: Indicates TG(UUID_SERVCLASS_AV_REM_CTRL_TARGET) +** or CT(UUID_SERVCLASS_AV_REMOTE_CONTROL) +** +** bd_addr: BD address of the peer device. +** +** p_db: SDP discovery database parameters. +** +** p_cback: Pointer to the callback function. +** +** Output Parameters: +** None. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_BAD_PARAMS if discovery database parameters are invalid. +** AVRC_NO_RESOURCES if there are not enough resources to +** perform the service search. +** +******************************************************************************/ +extern UINT16 AVRC_FindService(UINT16 service_uuid, BD_ADDR bd_addr, + tAVRC_SDP_DB_PARAMS *p_db, tAVRC_FIND_CBACK *p_cback); + +/****************************************************************************** +** +** Function AVRC_Open +** +** Description This function is called to open a connection to AVCTP. +** The connection can be either an initiator or acceptor, as +** determined by the p_ccb->stream parameter. +** The connection can be a target, a controller or for both role, +** as determined by the p_ccb->control parameter. +** By definition, a target connection is an acceptor connection +** that waits for an incoming AVCTP connection from the peer. +** The connection remains available to the application until +** the application closes it by calling AVRC_Close(). The +** application does not need to reopen the connection after an +** AVRC_CLOSE_IND_EVT is received. +** +** Input Parameters: +** p_ccb->company_id: Company Identifier. +** +** p_ccb->p_ctrl_cback: Pointer to control callback function. +** +** p_ccb->p_msg_cback: Pointer to message callback function. +** +** p_ccb->conn: AVCTP connection role. This is set to +** AVCTP_INT for initiator connections and AVCTP_ACP +** for acceptor connections. +** +** p_ccb->control: Control role. This is set to +** AVRC_CT_TARGET for target connections, AVRC_CT_CONTROL +** for control connections or (AVRC_CT_TARGET|AVRC_CT_CONTROL) +** for connections that support both roles. +** +** peer_addr: BD address of peer device. This value is +** only used for initiator connections; for acceptor +** connections it can be set to NULL. +** +** Output Parameters: +** p_handle: Pointer to handle. This parameter is only +** valid if AVRC_SUCCESS is returned. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_NO_RESOURCES if there are not enough resources to open +** the connection. +** +******************************************************************************/ +extern UINT16 AVRC_Open(UINT8 *p_handle, tAVRC_CONN_CB *p_ccb, + BD_ADDR_PTR peer_addr); + +/****************************************************************************** +** +** Function AVRC_Close +** +** Description Close a connection opened with AVRC_Open(). +** This function is called when the +** application is no longer using a connection. +** +** Input Parameters: +** handle: Handle of this connection. +** +** Output Parameters: +** None. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_BAD_HANDLE if handle is invalid. +** +******************************************************************************/ +extern UINT16 AVRC_Close(UINT8 handle); + +/****************************************************************************** +** +** Function AVRC_OpenBrowse +** +** Description This function is called to open a browsing connection to AVCTP. +** The connection can be either an initiator or acceptor, as +** determined by the conn_role. +** The handle is returned by a previous call to AVRC_Open. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_NO_RESOURCES if there are not enough resources to open +** the connection. +** +******************************************************************************/ +extern UINT16 AVRC_OpenBrowse(UINT8 handle, UINT8 conn_role); + +/****************************************************************************** +** +** Function AVRC_CloseBrowse +** +** Description Close a connection opened with AVRC_OpenBrowse(). +** This function is called when the +** application is no longer using a connection. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_BAD_HANDLE if handle is invalid. +** +******************************************************************************/ +extern UINT16 AVRC_CloseBrowse(UINT8 handle); + +/****************************************************************************** +** +** Function AVRC_MsgReq +** +** Description This function is used to send the AVRCP byte stream in p_pkt +** down to AVCTP. +** +** It is expected that p_pkt->offset is at least AVCT_MSG_OFFSET +** p_pkt->layer_specific is AVCT_DATA_CTRL or AVCT_DATA_BROWSE +** p_pkt->event is AVRC_OP_VENDOR, AVRC_OP_PASS_THRU or AVRC_OP_BROWSING +** The above BT_HDR settings are set by the AVRC_Bld* functions. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_BAD_HANDLE if handle is invalid. +** +******************************************************************************/ +extern UINT16 AVRC_MsgReq (UINT8 handle, UINT8 label, UINT8 ctype, BT_HDR *p_pkt); + +/****************************************************************************** +** +** Function AVRC_UnitCmd +** +** Description Send a UNIT INFO command to the peer device. This +** function can only be called for controller role connections. +** Any response message from the peer is passed back through +** the tAVRC_MSG_CBACK callback function. +** +** Input Parameters: +** handle: Handle of this connection. +** +** label: Transaction label. +** +** Output Parameters: +** None. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_BAD_HANDLE if handle is invalid. +** +******************************************************************************/ +extern UINT16 AVRC_UnitCmd(UINT8 handle, UINT8 label); + +/****************************************************************************** +** +** Function AVRC_SubCmd +** +** Description Send a SUBUNIT INFO command to the peer device. This +** function can only be called for controller role connections. +** Any response message from the peer is passed back through +** the tAVRC_MSG_CBACK callback function. +** +** Input Parameters: +** handle: Handle of this connection. +** +** label: Transaction label. +** +** page: Specifies which part of the subunit type table +** is requested. For AVRCP it is typically zero. +** Value range is 0-7. +** +** Output Parameters: +** None. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_BAD_HANDLE if handle is invalid. +** +******************************************************************************/ +extern UINT16 AVRC_SubCmd(UINT8 handle, UINT8 label, UINT8 page); + + +/****************************************************************************** +** +** Function AVRC_PassCmd +** +** Description Send a PASS THROUGH command to the peer device. This +** function can only be called for controller role connections. +** Any response message from the peer is passed back through +** the tAVRC_MSG_CBACK callback function. +** +** Input Parameters: +** handle: Handle of this connection. +** +** label: Transaction label. +** +** p_msg: Pointer to PASS THROUGH message structure. +** +** Output Parameters: +** None. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_BAD_HANDLE if handle is invalid. +** +******************************************************************************/ +extern UINT16 AVRC_PassCmd(UINT8 handle, UINT8 label, tAVRC_MSG_PASS *p_msg); + +/****************************************************************************** +** +** Function AVRC_PassRsp +** +** Description Send a PASS THROUGH response to the peer device. This +** function can only be called for target role connections. +** This function must be called when a PASS THROUGH command +** message is received from the peer through the +** tAVRC_MSG_CBACK callback function. +** +** Input Parameters: +** handle: Handle of this connection. +** +** label: Transaction label. Must be the same value as +** passed with the command message in the callback function. +** +** p_msg: Pointer to PASS THROUGH message structure. +** +** Output Parameters: +** None. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_BAD_HANDLE if handle is invalid. +** +******************************************************************************/ +extern UINT16 AVRC_PassRsp(UINT8 handle, UINT8 label, tAVRC_MSG_PASS *p_msg); + + +/****************************************************************************** +** +** Function AVRC_VendorCmd +** +** Description Send a VENDOR DEPENDENT command to the peer device. This +** function can only be called for controller role connections. +** Any response message from the peer is passed back through +** the tAVRC_MSG_CBACK callback function. +** +** Input Parameters: +** handle: Handle of this connection. +** +** label: Transaction label. +** +** p_msg: Pointer to VENDOR DEPENDENT message structure. +** +** Output Parameters: +** None. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_BAD_HANDLE if handle is invalid. +** +******************************************************************************/ +extern UINT16 AVRC_VendorCmd(UINT8 handle, UINT8 label, tAVRC_MSG_VENDOR *p_msg); + + +/****************************************************************************** +** +** Function AVRC_VendorRsp +** +** Description Send a VENDOR DEPENDENT response to the peer device. This +** function can only be called for target role connections. +** This function must be called when a VENDOR DEPENDENT +** command message is received from the peer through the +** tAVRC_MSG_CBACK callback function. +** +** Input Parameters: +** handle: Handle of this connection. +** +** label: Transaction label. Must be the same value as +** passed with the command message in the callback function. +** +** p_msg: Pointer to VENDOR DEPENDENT message structure. +** +** Output Parameters: +** None. +** +** Returns AVRC_SUCCESS if successful. +** AVRC_BAD_HANDLE if handle is invalid. +** +******************************************************************************/ +extern UINT16 AVRC_VendorRsp(UINT8 handle, UINT8 label, tAVRC_MSG_VENDOR *p_msg); + + +/****************************************************************************** +** +** Function AVRC_SetTraceLevel +** +** Description Sets the trace level for AVRC. If 0xff is passed, the +** current trace level is returned. +** +** Input Parameters: +** new_level: The level to set the AVRC tracing to: +** 0xff-returns the current setting. +** 0-turns off tracing. +** >= 1-Errors. +** >= 2-Warnings. +** >= 3-APIs. +** >= 4-Events. +** >= 5-Debug. +** +** Returns The new trace level or current trace level if +** the input parameter is 0xff. +** +******************************************************************************/ +extern UINT8 AVRC_SetTraceLevel (UINT8 new_level); + +/******************************************************************************* +** +** Function AVRC_Init +** +** Description This function is called at stack startup to allocate the +** control block (if using dynamic memory), and initializes the +** control block and tracing level. +** +** Returns void +** +*******************************************************************************/ +extern void AVRC_Init(void); + +/******************************************************************************* +** +** Function AVRC_ParsCommand +** +** Description This function is used to parse the received command. +** +** Returns AVRC_STS_NO_ERROR, if the message in p_data is parsed successfully. +** Otherwise, the error code defined by AVRCP 1.4 +** +*******************************************************************************/ +extern tAVRC_STS AVRC_ParsCommand (tAVRC_MSG *p_msg, tAVRC_COMMAND *p_result, + UINT8 *p_buf, UINT16 buf_len); + +/******************************************************************************* +** +** Function AVRC_ParsResponse +** +** Description This function is used to parse the received response. +** +** Returns AVRC_STS_NO_ERROR, if the message in p_data is parsed successfully. +** Otherwise, the error code defined by AVRCP 1.4 +** +*******************************************************************************/ +extern tAVRC_STS AVRC_ParsResponse (tAVRC_MSG *p_msg, tAVRC_RESPONSE *p_result, + UINT8 *p_buf, UINT16 buf_len); + +/******************************************************************************* +** +** Function AVRC_BldCommand +** +** Description This function builds the given AVRCP command to the given +** GKI buffer +** +** Returns AVRC_STS_NO_ERROR, if the command is built successfully +** Otherwise, the error code. +** +*******************************************************************************/ +extern tAVRC_STS AVRC_BldCommand( tAVRC_COMMAND *p_cmd, BT_HDR **pp_pkt); + +/******************************************************************************* +** +** Function AVRC_BldResponse +** +** Description This function builds the given AVRCP response to the given +** GKI buffer +** +** Returns AVRC_STS_NO_ERROR, if the response is built successfully +** Otherwise, the error code. +** +*******************************************************************************/ +extern tAVRC_STS AVRC_BldResponse( UINT8 handle, tAVRC_RESPONSE *p_rsp, BT_HDR **pp_pkt); + +/************************************************************************** +** +** Function AVRC_IsValidAvcType +** +** Description Check if correct AVC type is specified +** +** Returns returns TRUE if it is valid +** +** +*******************************************************************************/ +extern BOOLEAN AVRC_IsValidAvcType(UINT8 pdu_id, UINT8 avc_type); + +/******************************************************************************* +** +** Function AVRC_IsValidPlayerAttr +** +** Description Check if the given attrib value is a valid one +** +** +** Returns returns TRUE if it is valid +** +*******************************************************************************/ +extern BOOLEAN AVRC_IsValidPlayerAttr(UINT8 attr); + +#ifdef __cplusplus +} +#endif + +#endif /* AVRC_API_H */ diff --git a/tools/sdk/include/bluedroid/avrc_defs.h b/tools/sdk/include/bluedroid/avrc_defs.h new file mode 100644 index 00000000..fe261a74 --- /dev/null +++ b/tools/sdk/include/bluedroid/avrc_defs.h @@ -0,0 +1,1360 @@ +/****************************************************************************** + * + * Copyright (C) 2006-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * AVRCP definition and data types + * + ******************************************************************************/ +#ifndef _AVRC_DEFS_H +#define _AVRC_DEFS_H + +/***************************************************************************** +** constants +*****************************************************************************/ + +/* Profile revision numbers */ +#define AVRC_REV_1_0 0x0100 +#define AVRC_REV_1_3 0x0103 +#define AVRC_REV_1_4 0x0104 + +#define AVRC_PACKET_LEN 512 /* Per the spec, you must support 512 byte RC packets */ + +#define AVRC_MIN_CONTROL_MTU 48 /* Per the spec, minimum MTU for the control channel */ +#define AVRC_MIN_BROWSE_MTU 335 /* Per the spec, minimum MTU for the browsing channel */ + +#define AVRC_META_PDU_OFFSET 4 +#define AVRC_SUB_TYPE_LEN 4 +#define AVRC_UID_SIZE 8 +#define AVRC_FEATURE_MASK_SIZE 16 + +/* command type codes */ +#define AVRC_CMD_CTRL 0 /* Instruct a target to perform an operation */ +#define AVRC_CMD_STATUS 1 /* Check a device’s current status */ +#define AVRC_CMD_SPEC_INQ 2 /* Check whether a target supports a particular + control command; all operands are included */ +#define AVRC_CMD_NOTIF 3 /* Used for receiving notification of a change in a device’s state */ +#define AVRC_CMD_GEN_INQ 4 /* Check whether a target supports a particular + control command; operands are not included */ + +/* response type codes */ +#define AVRC_RSP_NOT_IMPL 8 /* The target does not implement the command specified + by the opcode and operand, + or doesn’t implement the specified subunit */ +#define AVRC_RSP_ACCEPT 9 /* The target executed or is executing the command */ +#define AVRC_RSP_REJ 10 /* The target implements the command specified by the + opcode but cannot respond because the current state + of the target doesn’t allow it */ +#define AVRC_RSP_IN_TRANS 11 /* The target implements the status command but it is + in a state of transition; the status command may + be retried at a future time */ +#define AVRC_RSP_IMPL_STBL 12 /* For specific inquiry or general inquiy commands, + the target implements the command; for status + commands, the target returns stable and includes + the status results */ +#define AVRC_RSP_CHANGED 13 /* The response frame contains a notification that the + target device’s state has changed */ +#define AVRC_RSP_INTERIM 15 /* For control commands, the target has accepted the + request but cannot return information within 100 + milliseconds; for notify commands, the target accepted + the command, and will notify the controller of a change + of target state at a future time */ + +/* subunit type */ +#define AVRC_SUB_MONITOR 0x00 /* Monitor */ +#define AVRC_SUB_AUDIO 0x01 /* Audio */ +#define AVRC_SUB_PRINTER 0x02 /* Printer */ +#define AVRC_SUB_DISC 0x03 /* Disc */ +#define AVRC_SUB_TAPE 0x04 /* Tape recorder/player */ +#define AVRC_SUB_TUNER 0x05 /* Tuner */ +#define AVRC_SUB_CA 0x06 /* CA */ +#define AVRC_SUB_CAMERA 0x07 /* Camera */ +#define AVRC_SUB_PANEL 0x09 /* Panel */ +#define AVRC_SUB_BB 0x0A /* Bulletin Board */ +#define AVRC_SUB_CAM_STOR 0x0B /* Camera Storage */ +#define AVRC_SUB_VENDOR 0x1C /* Vendor unique */ +#define AVRC_SUB_EXT 0x1E /* Subunit type extended to next byte */ +#define AVRC_SUB_UNIT 0x1F /* Unit */ + +/* opcodes - defined by 1394ta */ +#define AVRC_OP_UNIT_INFO 0x30 /* Report unit information */ +#define AVRC_OP_SUB_INFO 0x31 /* Report subunit information */ +#define AVRC_OP_VENDOR 0x00 /* Vendor-dependent commands */ +#define AVRC_OP_PASS_THRU 0x7C /* panel subunit opcode */ +/* opcodes 80-9F and E0-FF are not used by 1394ta.Sneak one for the browsing channel */ +#define AVRC_OP_BROWSE 0xFF /* Browsing */ +#define AVRC_OP_INVALID 0xFE /* invalid one */ + +/* Company ID's +*/ +#define AVRC_CO_BLUETOOTH_SIG 0x00FFFFFF +#define AVRC_CO_WIDCOMM 0x00000361 +#define AVRC_CO_BROADCOM 0x00001018 +#define AVRC_CO_METADATA 0x00001958 /* Unique COMPANY ID for Metadata messages */ + +/* State flag for Passthrough commands +*/ +#define AVRC_STATE_PRESS 0 +#define AVRC_STATE_RELEASE 1 + +/* Operation ID list for Passthrough commands +*/ +#define AVRC_ID_SELECT 0x00 /* select */ +#define AVRC_ID_UP 0x01 /* up */ +#define AVRC_ID_DOWN 0x02 /* down */ +#define AVRC_ID_LEFT 0x03 /* left */ +#define AVRC_ID_RIGHT 0x04 /* right */ +#define AVRC_ID_RIGHT_UP 0x05 /* right-up */ +#define AVRC_ID_RIGHT_DOWN 0x06 /* right-down */ +#define AVRC_ID_LEFT_UP 0x07 /* left-up */ +#define AVRC_ID_LEFT_DOWN 0x08 /* left-down */ +#define AVRC_ID_ROOT_MENU 0x09 /* root menu */ +#define AVRC_ID_SETUP_MENU 0x0A /* setup menu */ +#define AVRC_ID_CONT_MENU 0x0B /* contents menu */ +#define AVRC_ID_FAV_MENU 0x0C /* favorite menu */ +#define AVRC_ID_EXIT 0x0D /* exit */ +#define AVRC_ID_0 0x20 /* 0 */ +#define AVRC_ID_1 0x21 /* 1 */ +#define AVRC_ID_2 0x22 /* 2 */ +#define AVRC_ID_3 0x23 /* 3 */ +#define AVRC_ID_4 0x24 /* 4 */ +#define AVRC_ID_5 0x25 /* 5 */ +#define AVRC_ID_6 0x26 /* 6 */ +#define AVRC_ID_7 0x27 /* 7 */ +#define AVRC_ID_8 0x28 /* 8 */ +#define AVRC_ID_9 0x29 /* 9 */ +#define AVRC_ID_DOT 0x2A /* dot */ +#define AVRC_ID_ENTER 0x2B /* enter */ +#define AVRC_ID_CLEAR 0x2C /* clear */ +#define AVRC_ID_CHAN_UP 0x30 /* channel up */ +#define AVRC_ID_CHAN_DOWN 0x31 /* channel down */ +#define AVRC_ID_PREV_CHAN 0x32 /* previous channel */ +#define AVRC_ID_SOUND_SEL 0x33 /* sound select */ +#define AVRC_ID_INPUT_SEL 0x34 /* input select */ +#define AVRC_ID_DISP_INFO 0x35 /* display information */ +#define AVRC_ID_HELP 0x36 /* help */ +#define AVRC_ID_PAGE_UP 0x37 /* page up */ +#define AVRC_ID_PAGE_DOWN 0x38 /* page down */ +#define AVRC_ID_POWER 0x40 /* power */ +#define AVRC_ID_VOL_UP 0x41 /* volume up */ +#define AVRC_ID_VOL_DOWN 0x42 /* volume down */ +#define AVRC_ID_MUTE 0x43 /* mute */ +#define AVRC_ID_PLAY 0x44 /* play */ +#define AVRC_ID_STOP 0x45 /* stop */ +#define AVRC_ID_PAUSE 0x46 /* pause */ +#define AVRC_ID_RECORD 0x47 /* record */ +#define AVRC_ID_REWIND 0x48 /* rewind */ +#define AVRC_ID_FAST_FOR 0x49 /* fast forward */ +#define AVRC_ID_EJECT 0x4A /* eject */ +#define AVRC_ID_FORWARD 0x4B /* forward */ +#define AVRC_ID_BACKWARD 0x4C /* backward */ +#define AVRC_ID_ANGLE 0x50 /* angle */ +#define AVRC_ID_SUBPICT 0x51 /* subpicture */ +#define AVRC_ID_F1 0x71 /* F1 */ +#define AVRC_ID_F2 0x72 /* F2 */ +#define AVRC_ID_F3 0x73 /* F3 */ +#define AVRC_ID_F4 0x74 /* F4 */ +#define AVRC_ID_F5 0x75 /* F5 */ +#define AVRC_ID_VENDOR 0x7E /* vendor unique */ +#define AVRC_KEYPRESSED_RELEASE 0x80 + +/***************************************************************************** +** Metadata transfer definitions +*****************************************************************************/ + +/* Define the Metadata Packet types +*/ +#define AVRC_PKT_SINGLE 0 +#define AVRC_PKT_START 1 +#define AVRC_PKT_CONTINUE 2 +#define AVRC_PKT_END 3 +#define AVRC_PKT_TYPE_MASK 3 + +/* Define the PDUs carried in the vendor dependant data +*/ +#define AVRC_PDU_GET_CAPABILITIES 0x10 +#define AVRC_PDU_LIST_PLAYER_APP_ATTR 0x11 +#define AVRC_PDU_LIST_PLAYER_APP_VALUES 0x12 +#define AVRC_PDU_GET_CUR_PLAYER_APP_VALUE 0x13 +#define AVRC_PDU_SET_PLAYER_APP_VALUE 0x14 +#define AVRC_PDU_GET_PLAYER_APP_ATTR_TEXT 0x15 +#define AVRC_PDU_GET_PLAYER_APP_VALUE_TEXT 0x16 +#define AVRC_PDU_INFORM_DISPLAY_CHARSET 0x17 +#define AVRC_PDU_INFORM_BATTERY_STAT_OF_CT 0x18 +#define AVRC_PDU_GET_ELEMENT_ATTR 0x20 +#define AVRC_PDU_GET_PLAY_STATUS 0x30 +#define AVRC_PDU_REGISTER_NOTIFICATION 0x31 +#define AVRC_PDU_REQUEST_CONTINUATION_RSP 0x40 +#define AVRC_PDU_ABORT_CONTINUATION_RSP 0x41 +/* added in 1.4 */ +#define AVRC_PDU_SET_ABSOLUTE_VOLUME 0x50 +#define AVRC_PDU_SET_ADDRESSED_PLAYER 0x60 +#define AVRC_PDU_SET_BROWSED_PLAYER 0x70 +#define AVRC_PDU_GET_FOLDER_ITEMS 0x71 +#define AVRC_PDU_CHANGE_PATH 0x72 +#define AVRC_PDU_GET_ITEM_ATTRIBUTES 0x73 +#define AVRC_PDU_PLAY_ITEM 0x74 +#define AVRC_PDU_SEARCH 0x80 +#define AVRC_PDU_ADD_TO_NOW_PLAYING 0x90 +#define AVRC_PDU_GENERAL_REJECT 0xA0 + +/* Define the vendor unique id carried in the pass through data +*/ +#define AVRC_PDU_NEXT_GROUP 0x00 +#define AVRC_PDU_PREV_GROUP 0x01 +/* the only pass through vendor unique commands defined by AVRC is the group navigation commands + * The len for vendor unique data is 5 */ +#define AVRC_PASS_THRU_GROUP_LEN 5 + +#define AVRC_PDU_INVALID 0xff +/* 6.15.3 error status code for general reject */ +#define AVRC_STS_BAD_CMD 0x00 /* Invalid command, sent if TG received a PDU that it did not understand. */ +#define AVRC_STS_BAD_PARAM 0x01 /* Invalid parameter, sent if the TG received a PDU with a parameter ID that it did not understand. Sent if there is only one parameter ID in the PDU. */ +#define AVRC_STS_NOT_FOUND 0x02 /* Specified parameter not found., sent if the parameter ID is understood, but content is wrong or corrupted. */ +#define AVRC_STS_INTERNAL_ERR 0x03 /* Internal Error, sent if there are error conditions not covered by a more specific error code. */ +#define AVRC_STS_NO_ERROR 0x04 /* Operation completed without error. This is the status that should be returned if the operation was successful. */ +#define AVRC_STS_UID_CHANGED 0x05 /* UID Changed - The UIDs on the device have changed */ +/* #define AVRC_STS_GEN_ERROR 0x06 Unknown Error - this is changed to "reserved" */ +#define AVRC_STS_BAD_DIR 0x07 /* Invalid Direction - The Direction parameter is invalid - Change Path*/ +#define AVRC_STS_NOT_DIR 0x08 /* Not a Directory - The UID provided does not refer to a folder item Change Path*/ +#define AVRC_STS_NOT_EXIST 0x09 /* Does Not Exist - The UID provided does not refer to any item Change Path, PlayItem, AddToNowPlaying, GetItemAttributes*/ +#define AVRC_STS_BAD_SCOPE 0x0a /* Invalid Scope - The scope parameter is invalid GetFolderItems, PlayItem, AddToNowPlayer, GetItemAttributes, */ +#define AVRC_STS_BAD_RANGE 0x0b /* Range Out of Bounds - The start of range provided is not valid GetFolderItems*/ +#define AVRC_STS_UID_IS_DIR 0x0c /* UID is a Directory - The UID provided refers to a directory, which cannot be handled by this media player PlayItem, AddToNowPlaying */ +#define AVRC_STS_IN_USE 0x0d /* Media in Use - The media is not able to be used for this operation at this time PlayItem, AddToNowPlaying */ +#define AVRC_STS_NOW_LIST_FULL 0x0e /* Now Playing List Full - No more items can be added to the Now Playing List AddToNowPlaying*/ +#define AVRC_STS_SEARCH_NOT_SUP 0x0f /* Search Not Supported - The Browsed Media Player does not support search Search */ +#define AVRC_STS_SEARCH_BUSY 0x10 /* Search in Progress - A search operation is already in progress Search*/ +#define AVRC_STS_BAD_PLAYER_ID 0x11 /* Invalid Player Id - The specified Player Id does not refer to a valid player SetAddressedPlayer, SetBrowsedPlayer*/ +#define AVRC_STS_PLAYER_N_BR 0x12 /* Player Not Browsable - The Player Id supplied refers to a Media Player which does not support browsing. SetBrowsedPlayer */ +#define AVRC_STS_PLAYER_N_ADDR 0x13 /* Player Not Addressed. The Player Id supplied refers to a player which is not currently addressed, and the command is not able to be performed if the player is not set as addressed. Search, SetBrowsedPlayer*/ +#define AVRC_STS_BAD_SEARCH_RES 0x14 /* No valid Search Results - The Search result list does not contain valid entries, e.g. after being invalidated due to change of browsed player GetFolderItems */ +#define AVRC_STS_NO_AVAL_PLAYER 0x15 /* No available players ALL */ +#define AVRC_STS_ADDR_PLAYER_CHG 0x16 /* Addressed Player Changed - Register Notification */ +typedef UINT8 tAVRC_STS; + + +/* Define the Capability IDs +*/ +#define AVRC_CAP_COMPANY_ID 0x02 +#define AVRC_CAP_EVENTS_SUPPORTED 0x03 +#define AVRC_COMPANY_ID_LEN 3 +#define AVRC_CAPABILITY_OFFSET 2 + +/* Define the Player Application Settings IDs +*/ +#define AVRC_PLAYER_SETTING_EQUALIZER 0x01 +#define AVRC_PLAYER_SETTING_REPEAT 0x02 +#define AVRC_PLAYER_SETTING_SHUFFLE 0x03 +#define AVRC_PLAYER_SETTING_SCAN 0x04 +#define AVRC_PLAYER_SETTING_LOW_MENU_EXT 0x80 +#define AVRC_PLAYER_SETTING_HIGH_MENU_EXT 0xff + +/* Define the possible values of the Player Application Settings +*/ +#define AVRC_PLAYER_VAL_OFF 0x01 +#define AVRC_PLAYER_VAL_ON 0x02 +#define AVRC_PLAYER_VAL_SINGLE_REPEAT 0x02 +#define AVRC_PLAYER_VAL_ALL_REPEAT 0x03 +#define AVRC_PLAYER_VAL_GROUP_REPEAT 0x04 +#define AVRC_PLAYER_VAL_ALL_SHUFFLE 0x02 +#define AVRC_PLAYER_VAL_GROUP_SHUFFLE 0x03 +#define AVRC_PLAYER_VAL_ALL_SCAN 0x02 +#define AVRC_PLAYER_VAL_GROUP_SCAN 0x03 + +/* Define the possible values of Battery Status PDU +*/ +#define AVRC_BATTERY_STATUS_NORMAL 0x00 +#define AVRC_BATTERY_STATUS_WARNING 0x01 +#define AVRC_BATTERY_STATUS_CRITICAL 0x02 +#define AVRC_BATTERY_STATUS_EXTERNAL 0x03 +#define AVRC_BATTERY_STATUS_FULL_CHARGE 0x04 +typedef UINT8 tAVRC_BATTERY_STATUS; + +/* Define character set */ +#define AVRC_CHAR_SET_SIZE 2 + +/* Define the Media Attribute IDs +*/ +#define AVRC_MEDIA_ATTR_ID_TITLE 0x00000001 +#define AVRC_MEDIA_ATTR_ID_ARTIST 0x00000002 +#define AVRC_MEDIA_ATTR_ID_ALBUM 0x00000003 +#define AVRC_MEDIA_ATTR_ID_TRACK_NUM 0x00000004 +#define AVRC_MEDIA_ATTR_ID_NUM_TRACKS 0x00000005 +#define AVRC_MEDIA_ATTR_ID_GENRE 0x00000006 +#define AVRC_MEDIA_ATTR_ID_PLAYING_TIME 0x00000007 /* in miliseconds */ +#define AVRC_MAX_NUM_MEDIA_ATTR_ID 7 + +/* Define the possible values of play state +*/ +#define AVRC_PLAYSTATE_RESP_MSG_SIZE 9 +#define AVRC_PLAYSTATE_STOPPED 0x00 /* Stopped */ +#define AVRC_PLAYSTATE_PLAYING 0x01 /* Playing */ +#define AVRC_PLAYSTATE_PAUSED 0x02 /* Paused */ +#define AVRC_PLAYSTATE_FWD_SEEK 0x03 /* Fwd Seek*/ +#define AVRC_PLAYSTATE_REV_SEEK 0x04 /* Rev Seek*/ +#define AVRC_PLAYSTATE_ERROR 0xFF /* Error */ +typedef UINT8 tAVRC_PLAYSTATE; + +/* Define the events that can be registered for notifications +*/ +#define AVRC_EVT_PLAY_STATUS_CHANGE 0x01 +#define AVRC_EVT_TRACK_CHANGE 0x02 +#define AVRC_EVT_TRACK_REACHED_END 0x03 +#define AVRC_EVT_TRACK_REACHED_START 0x04 +#define AVRC_EVT_PLAY_POS_CHANGED 0x05 +#define AVRC_EVT_BATTERY_STATUS_CHANGE 0x06 +#define AVRC_EVT_SYSTEM_STATUS_CHANGE 0x07 +#define AVRC_EVT_APP_SETTING_CHANGE 0x08 +/* added in AVRCP 1.4 */ +#define AVRC_EVT_NOW_PLAYING_CHANGE 0x09 +#define AVRC_EVT_AVAL_PLAYERS_CHANGE 0x0a +#define AVRC_EVT_ADDR_PLAYER_CHANGE 0x0b +#define AVRC_EVT_UIDS_CHANGE 0x0c +#define AVRC_EVT_VOLUME_CHANGE 0x0d + +/* the number of events that can be registered for notifications */ +#define AVRC_NUM_NOTIF_EVENTS 0x0d + +#define AVRC_EVT_MSG_LEN_1 0x01 +#define AVRC_EVT_MSG_LEN_2 0x02 +#define AVRC_EVT_MSG_LEN_5 0x05 +#define AVRC_EVT_MSG_LEN_9 0x09 + +#define AVRC_MAX_VOLUME 0x7F + +/* Define the possible values of system status +*/ +#define AVRC_SYSTEMSTATE_PWR_ON 0x00 +#define AVRC_SYSTEMSTATE_PWR_OFF 0x01 +#define AVRC_SYSTEMSTATE_PWR_UNPLUGGED 0x02 +typedef UINT8 tAVRC_SYSTEMSTATE; + +/* the frequently used character set ids */ +#define AVRC_CHARSET_ID_ASCII ((UINT16) 0x0003) /* ASCII */ +#define AVRC_CHARSET_ID_UTF8 ((UINT16) 0x006a) /* UTF-8 */ +#define AVRC_CHARSET_ID_UTF16 ((UINT16) 0x03f7) /* 1015 */ +#define AVRC_CHARSET_ID_UTF32 ((UINT16) 0x03f9) /* 1017 */ + +/***************************************************************************** +** Advanced Control +*****************************************************************************/ +#define AVRC_ITEM_PLAYER 0x01 +#define AVRC_ITEM_FOLDER 0x02 +#define AVRC_ITEM_MEDIA 0x03 + +#define AVRC_SCOPE_PLAYER_LIST 0x00 /* Media Player Item - Contains all available media players */ +#define AVRC_SCOPE_FILE_SYSTEM 0x01 /* Folder Item, Media Element Item + - The virtual filesystem containing the media content of the browsed player */ +#define AVRC_SCOPE_SEARCH 0x02 /* Media Element Item The results of a search operation on the browsed player */ +#define AVRC_SCOPE_NOW_PLAYING 0x03 /* Media Element Item The Now Playing list (or queue) of the addressed player */ + +#define AVRC_FOLDER_ITEM_COUNT_NONE 0xFF + +/* folder type */ +#define AVRC_FOLDER_TYPE_MIXED 0x00 +#define AVRC_FOLDER_TYPE_TITLES 0x01 +#define AVRC_FOLDER_TYPE_ALNUMS 0x02 +#define AVRC_FOLDER_TYPE_ARTISTS 0x03 +#define AVRC_FOLDER_TYPE_GENRES 0x04 +#define AVRC_FOLDER_TYPE_PLAYLISTS 0x05 +#define AVRC_FOLDER_TYPE_YEARS 0x06 + +/* major player type */ +#define AVRC_MJ_TYPE_AUDIO 0x01 /* Audio */ +#define AVRC_MJ_TYPE_VIDEO 0x02 /* Video */ +#define AVRC_MJ_TYPE_BC_AUDIO 0x04 /* Broadcasting Audio */ +#define AVRC_MJ_TYPE_BC_VIDEO 0x08 /* Broadcasting Video */ +#define AVRC_MJ_TYPE_INVALID 0xF0 + +/* player sub type */ +#define AVRC_SUB_TYPE_NONE 0x00 +#define AVRC_SUB_TYPE_AUDIO_BOOK 0x01 /* Audio Book */ +#define AVRC_SUB_TYPE_PODCAST 0x02 /* Podcast */ +#define AVRC_SUB_TYPE_INVALID 0xFC + +/* media item - media type */ +#define AVRC_MEDIA_TYPE_AUDIO 0x00 +#define AVRC_MEDIA_TYPE_VIDEO 0x01 + +#define AVRC_DIR_UP 0x00 /* Folder Up */ +#define AVRC_DIR_DOWN 0x01 /* Folder Down */ + +#define AVRC_UID_SIZE 8 +typedef UINT8 tAVRC_UID[AVRC_UID_SIZE]; + +/***************************************************************************** +** player attribute - supported features +*****************************************************************************/ +#define AVRC_PF_SELECT_BIT_NO 0 +#define AVRC_PF_SELECT_MASK 0x01 +#define AVRC_PF_SELECT_OFF 0 +#define AVRC_PF_SELECT_SUPPORTED(x) ((x)[AVRC_PF_SELECT_OFF] & AVRC_PF_SELECT_MASK) + +#define AVRC_PF_UP_BIT_NO 1 +#define AVRC_PF_UP_MASK 0x02 +#define AVRC_PF_UP_OFF 0 +#define AVRC_PF_UP_SUPPORTED(x) ((x)[AVRC_PF_UP_OFF] & AVRC_PF_UP_MASK) + +#define AVRC_PF_DOWN_BIT_NO 2 +#define AVRC_PF_DOWN_MASK 0x04 +#define AVRC_PF_DOWN_OFF 0 +#define AVRC_PF_DOWN_SUPPORTED(x) ((x)[AVRC_PF_DOWN_OFF] & AVRC_PF_DOWN_MASK) + +#define AVRC_PF_LEFT_BIT_NO 3 +#define AVRC_PF_LEFT_MASK 0x08 +#define AVRC_PF_LEFT_OFF 0 +#define AVRC_PF_LEFT_SUPPORTED(x) ((x)[AVRC_PF_LEFT_OFF] & AVRC_PF_LEFT_MASK) + +#define AVRC_PF_RIGHT_BIT_NO 4 +#define AVRC_PF_RIGHT_MASK 0x10 +#define AVRC_PF_RIGHT_OFF 0 +#define AVRC_PF_RIGHT_SUPPORTED(x) ((x)[AVRC_PF_RIGHT_OFF] & AVRC_PF_RIGHT_MASK) + +#define AVRC_PF_RIGHTUP_BIT_NO 5 +#define AVRC_PF_RIGHTUP_MASK 0x20 +#define AVRC_PF_RIGHTUP_OFF 0 +#define AVRC_PF_RIGHTUP_SUPPORTED(x) ((x)[AVRC_PF_RIGHTUP_OFF] & AVRC_PF_RIGHTUP_MASK) + +#define AVRC_PF_RIGHTDOWN_BIT_NO 6 +#define AVRC_PF_RIGHTDOWN_MASK 0x40 +#define AVRC_PF_RIGHTDOWN_OFF 0 +#define AVRC_PF_RIGHTDOWN_SUPPORTED(x) ((x)[AVRC_PF_RIGHTDOWN_OFF] & AVRC_PF_RIGHTDOWN_MASK) + +#define AVRC_PF_LEFTUP_BIT_NO 7 +#define AVRC_PF_LEFTUP_MASK 0x80 +#define AVRC_PF_LEFTUP_OFF 0 +#define AVRC_PF_LEFTUP_SUPPORTED(x) ((x)[AVRC_PF_LEFTUP_OFF] & AVRC_PF_LEFTUP_MASK) + +#define AVRC_PF_LEFTDOWN_BIT_NO 8 +#define AVRC_PF_LEFTDOWN_MASK 0x01 +#define AVRC_PF_LEFTDOWN_OFF 1 +#define AVRC_PF_LEFTDOWN_SUPPORTED(x) ((x)[AVRC_PF_LEFTDOWN_OFF] & AVRC_PF_LEFTDOWN_MASK) + +#define AVRC_PF_ROOT_MENU_BIT_NO 9 +#define AVRC_PF_ROOT_MENU_MASK 0x02 +#define AVRC_PF_ROOT_MENU_OFF 1 +#define AVRC_PF_ROOT_MENU_SUPPORTED(x) ((x)[AVRC_PF_ROOT_MENU_OFF] & AVRC_PF_ROOT_MENU_MASK) + +#define AVRC_PF_SETUP_MENU_BIT_NO 10 +#define AVRC_PF_SETUP_MENU_MASK 0x04 +#define AVRC_PF_SETUP_MENU_OFF 1 +#define AVRC_PF_SETUP_MENU_SUPPORTED(x) ((x)[AVRC_PF_SETUP_MENU_OFF] & AVRC_PF_SETUP_MENU_MASK) + +#define AVRC_PF_CONTENTS_MENU_BIT_NO 11 +#define AVRC_PF_CONTENTS_MENU_MASK 0x08 +#define AVRC_PF_CONTENTS_MENU_OFF 1 +#define AVRC_PF_CONTENTS_MENU_SUPPORTED(x) ((x)[AVRC_PF_CONTENTS_MENU_OFF] & AVRC_PF_CONTENTS_MENU_MASK) + +#define AVRC_PF_FAVORITE_MENU_BIT_NO 12 +#define AVRC_PF_FAVORITE_MENU_MASK 0x10 +#define AVRC_PF_FAVORITE_MENU_OFF 1 +#define AVRC_PF_FAVORITE_MENU_SUPPORTED(x) ((x)[AVRC_PF_FAVORITE_MENU_OFF] & AVRC_PF_FAVORITE_MENU_MASK) + +#define AVRC_PF_EXIT_BIT_NO 13 +#define AVRC_PF_EXIT_MASK 0x20 +#define AVRC_PF_EXIT_OFF 1 +#define AVRC_PF_EXIT_SUPPORTED(x) ((x)[AVRC_PF_EXIT_OFF] & AVRC_PF_EXIT_MASK) + +#define AVRC_PF_0_BIT_NO 14 +#define AVRC_PF_0_MASK 0x40 +#define AVRC_PF_0_OFF 1 +#define AVRC_PF_0_SUPPORTED(x) ((x)[AVRC_PF_0_OFF] & AVRC_PF_0_MASK) + +#define AVRC_PF_1_BIT_NO 15 +#define AVRC_PF_1_MASK 0x80 +#define AVRC_PF_1_OFF 1 +#define AVRC_PF_1_SUPPORTED(x) ((x)[AVRC_PF_1_OFF] & AVRC_PF_1_MASK) + +#define AVRC_PF_2_BIT_NO 16 +#define AVRC_PF_2_MASK 0x01 +#define AVRC_PF_2_OFF 2 +#define AVRC_PF_2_SUPPORTED(x) ((x)[AVRC_PF_2_OFF] & AVRC_PF_2_MASK) + +#define AVRC_PF_3_BIT_NO 17 +#define AVRC_PF_3_MASK 0x02 +#define AVRC_PF_3_OFF 2 +#define AVRC_PF_3_SUPPORTED(x) ((x)[AVRC_PF_3_OFF] & AVRC_PF_3_MASK) + +#define AVRC_PF_4_BIT_NO 18 +#define AVRC_PF_4_MASK 0x04 +#define AVRC_PF_4_OFF 2 +#define AVRC_PF_4_SUPPORTED(x) ((x)[AVRC_PF_4_OFF] & AVRC_PF_4_MASK) + +#define AVRC_PF_5_BIT_NO 19 +#define AVRC_PF_5_MASK 0x08 +#define AVRC_PF_5_OFF 2 +#define AVRC_PF_5_SUPPORTED(x) ((x)[AVRC_PF_5_OFF] & AVRC_PF_5_MASK) + +#define AVRC_PF_6_BIT_NO 20 +#define AVRC_PF_6_MASK 0x10 +#define AVRC_PF_6_OFF 2 +#define AVRC_PF_6_SUPPORTED(x) ((x)[AVRC_PF_6_OFF] & AVRC_PF_6_MASK) + +#define AVRC_PF_7_BIT_NO 21 +#define AVRC_PF_7_MASK 0x20 +#define AVRC_PF_7_OFF 2 +#define AVRC_PF_7_SUPPORTED(x) ((x)[AVRC_PF_7_OFF] & AVRC_PF_7_MASK) + +#define AVRC_PF_8_BIT_NO 22 +#define AVRC_PF_8_MASK 0x40 +#define AVRC_PF_8_OFF 2 +#define AVRC_PF_8_SUPPORTED(x) ((x)[AVRC_PF_8_OFF] & AVRC_PF_8_MASK) + +#define AVRC_PF_9_BIT_NO 23 +#define AVRC_PF_9_MASK 0x80 +#define AVRC_PF_9_OFF 2 +#define AVRC_PF_9_SUPPORTED(x) ((x)[AVRC_PF_9_OFF] & AVRC_PF_9_MASK) + +#define AVRC_PF_DOT_BIT_NO 24 +#define AVRC_PF_DOT_MASK 0x01 +#define AVRC_PF_DOT_OFF 3 +#define AVRC_PF_DOT_SUPPORTED(x) ((x)[AVRC_PF_DOT_OFF] & AVRC_PF_DOT_MASK) + +#define AVRC_PF_ENTER_BIT_NO 25 +#define AVRC_PF_ENTER_MASK 0x02 +#define AVRC_PF_ENTER_OFF 3 +#define AVRC_PF_ENTER_SUPPORTED(x) ((x)[AVRC_PF_ENTER_OFF] & AVRC_PF_ENTER_MASK) + +#define AVRC_PF_CLEAR_BIT_NO 26 +#define AVRC_PF_CLEAR_MASK 0x04 +#define AVRC_PF_CLEAR_OFF 3 +#define AVRC_PF_CLEAR_SUPPORTED(x) ((x)[AVRC_PF_CLEAR_OFF] & AVRC_PF_CLEAR_MASK) + +#define AVRC_PF_CHNL_UP_BIT_NO 27 +#define AVRC_PF_CHNL_UP_MASK 0x08 +#define AVRC_PF_CHNL_UP_OFF 3 +#define AVRC_PF_CHNL_UP_SUPPORTED(x) ((x)[AVRC_PF_CHNL_UP_OFF] & AVRC_PF_CHNL_UP_MASK) + +#define AVRC_PF_CHNL_DOWN_BIT_NO 28 +#define AVRC_PF_CHNL_DOWN_MASK 0x10 +#define AVRC_PF_CHNL_DOWN_OFF 3 +#define AVRC_PF_CHNL_DOWN_SUPPORTED(x) ((x)[AVRC_PF_CHNL_DOWN_OFF] & AVRC_PF_CHNL_DOWN_MASK) + +#define AVRC_PF_PREV_CHNL_BIT_NO 29 +#define AVRC_PF_PREV_CHNL_MASK 0x20 +#define AVRC_PF_PREV_CHNL_OFF 3 +#define AVRC_PF_PREV_CHNL_SUPPORTED(x) ((x)[AVRC_PF_PREV_CHNL_OFF] & AVRC_PF_PREV_CHNL_MASK) + +#define AVRC_PF_SOUND_SEL_BIT_NO 30 +#define AVRC_PF_SOUND_SEL_MASK 0x40 +#define AVRC_PF_SOUND_SEL_OFF 3 +#define AVRC_PF_SOUND_SEL_SUPPORTED(x) ((x)[AVRC_PF_SOUND_SEL_OFF] & AVRC_PF_SOUND_SEL_MASK) + +#define AVRC_PF_INPUT_SEL_BIT_NO 31 +#define AVRC_PF_INPUT_SEL_MASK 0x80 +#define AVRC_PF_INPUT_SEL_OFF 3 +#define AVRC_PF_INPUT_SEL_SUPPORTED(x) ((x)[AVRC_PF_INPUT_SEL_OFF] & AVRC_PF_INPUT_SEL_MASK) + +#define AVRC_PF_DISP_INFO_BIT_NO 32 +#define AVRC_PF_DISP_INFO_MASK 0x01 +#define AVRC_PF_DISP_INFO_OFF 4 +#define AVRC_PF_DISP_INFO_SUPPORTED(x) ((x)[AVRC_PF_DISP_INFO_OFF] & AVRC_PF_DISP_INFO_MASK) + +#define AVRC_PF_HELP_BIT_NO 33 +#define AVRC_PF_HELP_MASK 0x02 +#define AVRC_PF_HELP_OFF 4 +#define AVRC_PF_HELP_SUPPORTED(x) ((x)[AVRC_PF_HELP_OFF] & AVRC_PF_HELP_MASK) + +#define AVRC_PF_PAGE_UP_BIT_NO 34 +#define AVRC_PF_PAGE_UP_MASK 0x04 +#define AVRC_PF_PAGE_UP_OFF 4 +#define AVRC_PF_PAGE_UP_SUPPORTED(x) ((x)[AVRC_PF_PAGE_UP_OFF] & AVRC_PF_PAGE_UP_MASK) + +#define AVRC_PF_PAGE_DOWN_BIT_NO 35 +#define AVRC_PF_PAGE_DOWN_MASK 0x08 +#define AVRC_PF_PAGE_DOWN_OFF 4 +#define AVRC_PF_PAGE_DOWN_SUPPORTED(x) ((x)[AVRC_PF_PAGE_DOWN_OFF] & AVRC_PF_PAGE_DOWN_MASK) + +#define AVRC_PF_POWER_BIT_NO 36 +#define AVRC_PF_POWER_MASK 0x10 +#define AVRC_PF_POWER_OFF 4 +#define AVRC_PF_POWER_SUPPORTED(x) ((x)[AVRC_PF_POWER_OFF] & AVRC_PF_POWER_MASK) + +#define AVRC_PF_VOL_UP_BIT_NO 37 +#define AVRC_PF_VOL_UP_MASK 0x20 +#define AVRC_PF_VOL_UP_OFF 4 +#define AVRC_PF_VOL_UP_SUPPORTED(x) ((x)[AVRC_PF_VOL_UP_OFF] & AVRC_PF_VOL_UP_MASK) + +#define AVRC_PF_VOL_DOWN_BIT_NO 38 +#define AVRC_PF_VOL_DOWN_MASK 0x40 +#define AVRC_PF_VOL_DOWN_OFF 4 +#define AVRC_PF_VOL_DOWN_SUPPORTED(x) ((x)[AVRC_PF_VOL_DOWN_OFF] & AVRC_PF_VOL_DOWN_MASK) + +#define AVRC_PF_MUTE_BIT_NO 39 +#define AVRC_PF_MUTE_MASK 0x80 +#define AVRC_PF_MUTE_OFF 4 +#define AVRC_PF_MUTE_SUPPORTED(x) ((x)[AVRC_PF_MUTE_OFF] & AVRC_PF_MUTE_MASK) + +#define AVRC_PF_PLAY_BIT_NO 40 +#define AVRC_PF_PLAY_MASK 0x01 +#define AVRC_PF_PLAY_OFF 5 +#define AVRC_PF_PLAY_SUPPORTED(x) ((x)[AVRC_PF_PLAY_OFF] & AVRC_PF_PLAY_MASK) + +#define AVRC_PF_STOP_BIT_NO 41 +#define AVRC_PF_STOP_MASK 0x02 +#define AVRC_PF_STOP_OFF 5 +#define AVRC_PF_STOP_SUPPORTED(x) ((x)[AVRC_PF_STOP_OFF] & AVRC_PF_STOP_MASK) + +#define AVRC_PF_PAUSE_BIT_NO 42 +#define AVRC_PF_PAUSE_MASK 0x04 +#define AVRC_PF_PAUSE_OFF 5 +#define AVRC_PF_PAUSE_SUPPORTED(x) ((x)[AVRC_PF_PAUSE_OFF] & AVRC_PF_PAUSE_MASK) + +#define AVRC_PF_RECORD_BIT_NO 43 +#define AVRC_PF_RECORD_MASK 0x08 +#define AVRC_PF_RECORD_OFF 5 +#define AVRC_PF_RECORD_SUPPORTED(x) ((x)[AVRC_PF_RECORD_OFF] & AVRC_PF_RECORD_MASK) + +#define AVRC_PF_REWIND_BIT_NO 44 +#define AVRC_PF_REWIND_MASK 0x10 +#define AVRC_PF_REWIND_OFF 5 +#define AVRC_PF_REWIND_SUPPORTED(x) ((x)[AVRC_PF_REWIND_OFF] & AVRC_PF_REWIND_MASK) + +#define AVRC_PF_FAST_FWD_BIT_NO 45 +#define AVRC_PF_FAST_FWD_MASK 0x20 +#define AVRC_PF_FAST_FWD_OFF 5 +#define AVRC_PF_FAST_FWD_SUPPORTED(x) ((x)[AVRC_PF_FAST_FWD_OFF] & AVRC_PF_FAST_FWD_MASK) + +#define AVRC_PF_EJECT_BIT_NO 46 +#define AVRC_PF_EJECT_MASK 0x40 +#define AVRC_PF_EJECT_OFF 5 +#define AVRC_PF_EJECT_SUPPORTED(x) ((x)[AVRC_PF_EJECT_OFF] & AVRC_PF_EJECT_MASK) + +#define AVRC_PF_FORWARD_BIT_NO 47 +#define AVRC_PF_FORWARD_MASK 0x80 +#define AVRC_PF_FORWARD_OFF 5 +#define AVRC_PF_FORWARD_SUPPORTED(x) ((x)[AVRC_PF_FORWARD_OFF] & AVRC_PF_FORWARD_MASK) + +#define AVRC_PF_BACKWARD_BIT_NO 48 +#define AVRC_PF_BACKWARD_MASK 0x01 +#define AVRC_PF_BACKWARD_OFF 6 +#define AVRC_PF_BACKWARD_SUPPORTED(x) ((x)[AVRC_PF_BACKWARD_OFF] & AVRC_PF_BACKWARD_MASK) + +#define AVRC_PF_ANGLE_BIT_NO 49 +#define AVRC_PF_ANGLE_MASK 0x02 +#define AVRC_PF_ANGLE_OFF 6 +#define AVRC_PF_ANGLE_SUPPORTED(x) ((x)[AVRC_PF_ANGLE_OFF] & AVRC_PF_ANGLE_MASK) + +#define AVRC_PF_SUBPICTURE_BIT_NO 50 +#define AVRC_PF_SUBPICTURE_MASK 0x04 +#define AVRC_PF_SUBPICTURE_OFF 6 +#define AVRC_PF_SUBPICTURE_SUPPORTED(x) ((x)[AVRC_PF_SUBPICTURE_OFF] & AVRC_PF_SUBPICTURE_MASK) + +#define AVRC_PF_F1_BIT_NO 51 +#define AVRC_PF_F1_MASK 0x08 +#define AVRC_PF_F1_OFF 6 +#define AVRC_PF_F1_SUPPORTED(x) ((x)[AVRC_PF_F1_OFF] & AVRC_PF_F1_MASK) + +#define AVRC_PF_F2_BIT_NO 52 +#define AVRC_PF_F2_MASK 0x10 +#define AVRC_PF_F2_OFF 6 +#define AVRC_PF_F2_SUPPORTED(x) ((x)[AVRC_PF_F2_OFF] & AVRC_PF_F2_MASK) + +#define AVRC_PF_F3_BIT_NO 53 +#define AVRC_PF_F3_MASK 0x20 +#define AVRC_PF_F3_OFF 6 +#define AVRC_PF_F3_SUPPORTED(x) ((x)[AVRC_PF_F3_OFF] & AVRC_PF_F3_MASK) + +#define AVRC_PF_F4_BIT_NO 54 +#define AVRC_PF_F4_MASK 0x40 +#define AVRC_PF_F4_OFF 6 +#define AVRC_PF_F4_SUPPORTED(x) ((x)[AVRC_PF_F4_OFF] & AVRC_PF_F4_MASK) + +#define AVRC_PF_F5_BIT_NO 55 +#define AVRC_PF_F5_MASK 0x80 +#define AVRC_PF_F5_OFF 6 +#define AVRC_PF_F5_SUPPORTED(x) ((x)[AVRC_PF_F5_OFF] & AVRC_PF_F5_MASK) + +/* Vendor unique. This PASSTHROUGH command is supported. */ +#define AVRC_PF_VENDOR_BIT_NO 56 +#define AVRC_PF_VENDOR_MASK 0x01 +#define AVRC_PF_VENDOR_OFF 7 +#define AVRC_PF_VENDOR_SUPPORTED(x) ((x)[AVRC_PF_VENDOR_OFF] & AVRC_PF_VENDOR_MASK) + +/* Basic Group Navigation. This overrules the SDP entry as it is set per player.7 */ +#define AVRC_PF_GROUP_NAVI_BIT_NO 57 +#define AVRC_PF_GROUP_NAVI_MASK 0x02 +#define AVRC_PF_GROUP_NAVI_OFF 7 +#define AVRC_PF_GROUP_NAVI_SUPPORTED(x) ((x)[AVRC_PF_GROUP_NAVI_OFF] & AVRC_PF_GROUP_NAVI_MASK) + +/* Advanced Control Player. This bit is set if the player supports at least AVRCP 1.4. */ +#define AVRC_PF_ADV_CTRL_BIT_NO 58 +#define AVRC_PF_ADV_CTRL_MASK 0x04 +#define AVRC_PF_ADV_CTRL_OFF 7 +#define AVRC_PF_ADV_CTRL_SUPPORTED(x) ((x)[AVRC_PF_ADV_CTRL_OFF] & AVRC_PF_ADV_CTRL_MASK) + +/* Browsing. This bit is set if the player supports browsing. */ +#define AVRC_PF_BROWSE_BIT_NO 59 +#define AVRC_PF_BROWSE_MASK 0x08 +#define AVRC_PF_BROWSE_OFF 7 +#define AVRC_PF_BROWSE_SUPPORTED(x) ((x)[AVRC_PF_BROWSE_OFF] & AVRC_PF_BROWSE_MASK) + +/* Searching. This bit is set if the player supports searching. */ +#define AVRC_PF_SEARCH_BIT_NO 60 +#define AVRC_PF_SEARCH_MASK 0x10 +#define AVRC_PF_SEARCH_OFF 7 +#define AVRC_PF_SEARCH_SUPPORTED(x) ((x)[AVRC_PF_SEARCH_OFF] & AVRC_PF_SEARCH_MASK) + +/* AddToNowPlaying. This bit is set if the player supports the AddToNowPlaying command. */ +#define AVRC_PF_ADD2NOWPLAY_BIT_NO 61 +#define AVRC_PF_ADD2NOWPLAY_MASK 0x20 +#define AVRC_PF_ADD2NOWPLAY_OFF 7 +#define AVRC_PF_ADD2NOWPLAY_SUPPORTED(x) ((x)[AVRC_PF_ADD2NOWPLAY_OFF] & AVRC_PF_ADD2NOWPLAY_MASK) + +/* UIDs unique in player browse tree. This bit is set if the player is able to maintain unique UIDs across the player browse tree. */ +#define AVRC_PF_UID_UNIQUE_BIT_NO 62 +#define AVRC_PF_UID_UNIQUE_MASK 0x40 +#define AVRC_PF_UID_UNIQUE_OFF 7 +#define AVRC_PF_UID_UNIQUE_SUPPORTED(x) ((x)[AVRC_PF_UID_UNIQUE_OFF] & AVRC_PF_UID_UNIQUE_MASK) + +/* OnlyBrowsableWhenAddressed. This bit is set if the player is only able to be browsed when it is set as the Addressed Player. */ +#define AVRC_PF_BR_WH_ADDR_BIT_NO 63 +#define AVRC_PF_BR_WH_ADDR_MASK 0x80 +#define AVRC_PF_BR_WH_ADDR_OFF 7 +#define AVRC_PF_BR_WH_ADDR_SUPPORTED(x) ((x)[AVRC_PF_BR_WH_ADDR_OFF] & AVRC_PF_BR_WH_ADDR_MASK) + +/* OnlySearchableWhenAddressed. This bit is set if the player is only able to be searched when it is set as the Addressed player. */ +#define AVRC_PF_SEARCH_WH_ADDR_BIT_NO 64 +#define AVRC_PF_SEARCH_WH_ADDR_MASK 0x01 +#define AVRC_PF_SEARCH_WH_ADDR_OFF 8 +#define AVRC_PF_SEARCH_WH_ADDR_SUPPORTED(x) ((x)[AVRC_PF_SEARCH_WH_ADDR_OFF] & AVRC_PF_SEARCH_WH_ADDR_MASK) + +/* NowPlaying. This bit is set if the player supports the NowPlaying folder. Note that for all players that support browsing this bit shall be set */ +#define AVRC_PF_NOW_PLAY_BIT_NO 65 +#define AVRC_PF_NOW_PLAY_MASK 0x02 +#define AVRC_PF_NOW_PLAY_OFF 8 +#define AVRC_PF_NOW_PLAY_SUPPORTED(x) ((x)[AVRC_PF_NOW_PLAY_OFF] & AVRC_PF_NOW_PLAY_MASK) + +/* UIDPersistency. This bit is set if the Player is able to persist UID values between AVRCP Browse Reconnect */ +#define AVRC_PF_UID_PERSIST_BIT_NO 66 +#define AVRC_PF_UID_PERSIST_MASK 0x04 +#define AVRC_PF_UID_PERSIST_OFF 8 +#define AVRC_PF_UID_PERSIST_SUPPORTED(x) ((x)[AVRC_PF_UID_PERSIST_OFF] & AVRC_PF_UID_PERSIST_MASK) + +/***************************************************************************** +** data type definitions +*****************************************************************************/ + +/* +This structure contains the header parameters of an AV/C message. +*/ +typedef struct { + UINT8 ctype; /* Command type. */ + UINT8 subunit_type; /* Subunit type. */ + UINT8 subunit_id; /* Subunit ID. This value is typically ignored in AVRCP, + * except for VENDOR DEPENDENT messages when the value is + * vendor-dependent. Value range is 0-7. */ + UINT8 opcode; /* Op Code (passthrough, vendor, etc) */ +} tAVRC_HDR; + +/* This structure contains a UNIT INFO message. */ +typedef struct { + tAVRC_HDR hdr; /* Message header. */ + UINT32 company_id; /* Company identifier. */ + UINT8 unit_type; /* Unit type. Uses the same values as subunit type. */ + UINT8 unit; /* This value is vendor dependent and typically zero. */ +} tAVRC_MSG_UNIT; + +/* This structure contains a SUBUNIT INFO message. */ +typedef struct { + tAVRC_HDR hdr; /* Message header. */ + UINT8 subunit_type[AVRC_SUB_TYPE_LEN]; + /* Array containing subunit type values. */ + BOOLEAN panel; /* TRUE if the panel subunit type is in the + * subunit_type array, FALSE otherwise. */ + UINT8 page; /* Specifies which part of the subunit type table is + * returned. For AVRCP it is typically zero. + * Value range is 0-7. */ +} tAVRC_MSG_SUB; + +/* This structure contains a VENDOR DEPENDENT message. */ +typedef struct { + tAVRC_HDR hdr; /* Message header. */ + UINT32 company_id; /* Company identifier. */ + UINT8 *p_vendor_data;/* Pointer to vendor dependent data. */ + UINT16 vendor_len; /* Length in bytes of vendor dependent data. */ +} tAVRC_MSG_VENDOR; + +/* PASS THROUGH message structure */ +typedef struct { + tAVRC_HDR hdr; /* hdr.ctype Unused. + * hdr.subunit_type Unused. + * hdr.subunit_id Unused. */ + UINT8 op_id; /* Operation ID. */ + UINT8 state; /* Keypress state. */ + UINT8 *p_pass_data;/* Pointer to data. This parameter is only valid + * when the op_id is AVRC_ID_VENDOR.*/ + UINT8 pass_len; /* Length in bytes of data. This parameter is only + * valid when the op_id is AVRC_ID_VENDOR.*/ +} tAVRC_MSG_PASS; + +/* Command/Response indicator. */ +#define AVRC_CMD AVCT_CMD /* Command message */ +#define AVRC_RSP AVCT_RSP /* Response message */ + +/* Browsing channel message structure */ +typedef struct { + tAVRC_HDR hdr; /* hdr.ctype AVRC_CMD or AVRC_RSP. + * hdr.subunit_type Unused. + * hdr.subunit_id Unused. */ + UINT8 *p_browse_data; /* Pointer to data. */ + UINT16 browse_len; /* Length in bytes of data. */ + BT_HDR *p_browse_pkt; /* The GKI buffer received. Set to NULL, if the callback function wants to keep the buffer */ +} tAVRC_MSG_BROWSE; + +/* This is a union of all message type structures. */ +typedef union { + tAVRC_HDR hdr; /* Message header. */ + tAVRC_MSG_UNIT unit; /* UNIT INFO message. */ + tAVRC_MSG_SUB sub; /* SUBUNIT INFO message. */ + tAVRC_MSG_VENDOR vendor; /* VENDOR DEPENDENT message. */ + tAVRC_MSG_PASS pass; /* PASS THROUGH message. */ + tAVRC_MSG_BROWSE browse; /* messages thru browsing channel */ +} tAVRC_MSG; + +/* macros */ +#define AVRC_IS_VALID_CAP_ID(a) (((a == AVRC_CAP_COMPANY_ID) || (a == AVRC_CAP_EVENTS_SUPPORTED)) ? TRUE : FALSE) + +#define AVRC_IS_VALID_EVENT_ID(a) (((a >= AVRC_EVT_PLAY_STATUS_CHANGE) && \ + (a <= AVRC_EVT_APP_SETTING_CHANGE)) ? TRUE : FALSE) + +#define AVRC_IS_VALID_ATTRIBUTE(a) (((((a > 0) && a <= AVRC_PLAYER_SETTING_SCAN)) || \ + (a >= AVRC_PLAYER_SETTING_LOW_MENU_EXT)) ? TRUE : FALSE) + +#define AVRC_IS_VALID_MEDIA_ATTRIBUTE(a) ((a >= AVRC_MEDIA_ATTR_ID_TITLE) && \ + (a <= AVRC_MEDIA_ATTR_ID_PLAYING_TIME) ? TRUE : FALSE) + +#define AVRC_IS_VALID_BATTERY_STATUS(a) ((a <= AVRC_BATTERY_STATUS_FULL_CHARGE) ? TRUE : FALSE) + +#define AVRC_IS_VALID_SYSTEM_STATUS(a) ((a <= AVRC_SYSTEMSTATE_PWR_UNPLUGGED) ? TRUE : FALSE) + +#define AVRC_IS_VALID_GROUP(a) ((a <= AVRC_PDU_PREV_GROUP) ? TRUE : FALSE) + +/* Company ID is 24-bit integer We can not use the macros in bt_types.h */ +#define AVRC_CO_ID_TO_BE_STREAM(p, u32) {*(p)++ = (UINT8)((u32) >> 16); *(p)++ = (UINT8)((u32) >> 8); *(p)++ = (UINT8)(u32); } +#define AVRC_BE_STREAM_TO_CO_ID(u32, p) {u32 = (((UINT32)(*((p) + 2))) + (((UINT32)(*((p) + 1))) << 8) + (((UINT32)(*(p))) << 16)); (p) += 3;} + +/***************************************************************************** +** data type definitions +*****************************************************************************/ +#define AVRC_MAX_APP_ATTR_SIZE 16 +#define AVRC_MAX_CHARSET_SIZE 16 +#define AVRC_MAX_ELEM_ATTR_SIZE 8 + + +/***************************************************************************** +** Metadata transfer Building/Parsing definitions +*****************************************************************************/ + +typedef struct { + UINT16 charset_id; + UINT16 str_len; + UINT8 *p_str; +} tAVRC_FULL_NAME; + +typedef struct { + UINT16 str_len; + UINT8 *p_str; +} tAVRC_NAME; + + +#ifndef AVRC_CAP_MAX_NUM_COMP_ID +#define AVRC_CAP_MAX_NUM_COMP_ID 4 +#endif + +#ifndef AVRC_CAP_MAX_NUM_EVT_ID +#define AVRC_CAP_MAX_NUM_EVT_ID 16 +#endif + +typedef union { + UINT32 company_id[AVRC_CAP_MAX_NUM_COMP_ID]; + UINT8 event_id[AVRC_CAP_MAX_NUM_EVT_ID]; +} tAVRC_CAPS_PARAM; + +typedef struct { + UINT8 attr_id; + UINT8 attr_val; +} tAVRC_APP_SETTING; + +typedef struct { + UINT8 attr_id; + UINT16 charset_id; + UINT8 str_len; + UINT8 *p_str; +} tAVRC_APP_SETTING_TEXT; + +typedef UINT8 tAVRC_FEATURE_MASK[AVRC_FEATURE_MASK_SIZE]; + +typedef struct { + UINT16 player_id; /* A unique identifier for this media player.*/ + UINT8 major_type; /* Use AVRC_MJ_TYPE_AUDIO, AVRC_MJ_TYPE_VIDEO, AVRC_MJ_TYPE_BC_AUDIO, or AVRC_MJ_TYPE_BC_VIDEO.*/ + UINT32 sub_type; /* Use AVRC_SUB_TYPE_NONE, AVRC_SUB_TYPE_AUDIO_BOOK, or AVRC_SUB_TYPE_PODCAST*/ + UINT8 play_status; /* Use AVRC_PLAYSTATE_STOPPED, AVRC_PLAYSTATE_PLAYING, AVRC_PLAYSTATE_PAUSED, AVRC_PLAYSTATE_FWD_SEEK, + AVRC_PLAYSTATE_REV_SEEK, or AVRC_PLAYSTATE_ERROR*/ + tAVRC_FEATURE_MASK features; /* Supported feature bit mask*/ + tAVRC_FULL_NAME name; /* The player name, name length and character set id.*/ +} tAVRC_ITEM_PLAYER; + +typedef struct { + tAVRC_UID uid; /* The uid of this folder */ + UINT8 type; /* Use AVRC_FOLDER_TYPE_MIXED, AVRC_FOLDER_TYPE_TITLES, + AVRC_FOLDER_TYPE_ALNUMS, AVRC_FOLDER_TYPE_ARTISTS, AVRC_FOLDER_TYPE_GENRES, + AVRC_FOLDER_TYPE_PLAYLISTS, or AVRC_FOLDER_TYPE_YEARS.*/ + BOOLEAN playable; /* TRUE, if the folder can be played. */ + tAVRC_FULL_NAME name; /* The folder name, name length and character set id. */ +} tAVRC_ITEM_FOLDER; + +typedef struct { + UINT32 attr_id; /* Use AVRC_MEDIA_ATTR_ID_TITLE, AVRC_MEDIA_ATTR_ID_ARTIST, AVRC_MEDIA_ATTR_ID_ALBUM, + AVRC_MEDIA_ATTR_ID_TRACK_NUM, AVRC_MEDIA_ATTR_ID_NUM_TRACKS, + AVRC_MEDIA_ATTR_ID_GENRE, AVRC_MEDIA_ATTR_ID_PLAYING_TIME */ + tAVRC_FULL_NAME name; /* The attribute value, value length and character set id. */ +} tAVRC_ATTR_ENTRY; + +typedef struct { + tAVRC_UID uid; /* The uid of this media element item */ + UINT8 type; /* Use AVRC_MEDIA_TYPE_AUDIO or AVRC_MEDIA_TYPE_VIDEO. */ + tAVRC_FULL_NAME name; /* The media name, name length and character set id. */ + UINT8 attr_count; /* The number of attributes in p_attr_list */ + tAVRC_ATTR_ENTRY *p_attr_list; /* Attribute entry list. */ +} tAVRC_ITEM_MEDIA; + +typedef struct { + UINT8 item_type; /* AVRC_ITEM_PLAYER, AVRC_ITEM_FOLDER, or AVRC_ITEM_MEDIA */ + union { + tAVRC_ITEM_PLAYER player; /* The properties of a media player item.*/ + tAVRC_ITEM_FOLDER folder; /* The properties of a folder item.*/ + tAVRC_ITEM_MEDIA media; /* The properties of a media item.*/ + } u; +} tAVRC_ITEM; + +/* GetCapability */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 capability_id; +} tAVRC_GET_CAPS_CMD; + +/* ListPlayerAppValues */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 attr_id; +} tAVRC_LIST_APP_VALUES_CMD; + +/* GetCurAppValue */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 num_attr; + UINT8 attrs[AVRC_MAX_APP_ATTR_SIZE]; +} tAVRC_GET_CUR_APP_VALUE_CMD; + +/* SetAppValue */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 num_val; + tAVRC_APP_SETTING *p_vals; +} tAVRC_SET_APP_VALUE_CMD; + +/* GetAppAttrTxt */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 num_attr; + UINT8 attrs[AVRC_MAX_APP_ATTR_SIZE]; +} tAVRC_GET_APP_ATTR_TXT_CMD; + +/* GetAppValueTxt */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 attr_id; + UINT8 num_val; + UINT8 vals[AVRC_MAX_APP_ATTR_SIZE]; +} tAVRC_GET_APP_VAL_TXT_CMD; + +/* InformCharset */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 num_id; + UINT16 charsets[AVRC_MAX_CHARSET_SIZE]; +} tAVRC_INFORM_CHARSET_CMD; + +/* InformBatteryStatus */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 battery_status; +} tAVRC_BATTERY_STATUS_CMD; + +/* GetElemAttrs */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 num_attr; + UINT32 attrs[AVRC_MAX_ELEM_ATTR_SIZE]; +} tAVRC_GET_ELEM_ATTRS_CMD; + +/* RegNotify */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 event_id; + UINT32 param; +} tAVRC_REG_NOTIF_CMD; + +/* SetAddrPlayer */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT16 player_id; +} tAVRC_SET_ADDR_PLAYER_CMD; + +/* SetBrowsedPlayer */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT16 player_id; +} tAVRC_SET_BR_PLAYER_CMD; + +/* SetAbsVolume */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 volume; +} tAVRC_SET_VOLUME_CMD; + +/* GetFolderItems */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 scope; + UINT32 start_item; + UINT32 end_item; + UINT8 attr_count; + UINT32 *p_attr_list; +} tAVRC_GET_ITEMS_CMD; + +/* ChangePath */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT16 uid_counter; + UINT8 direction; + tAVRC_UID folder_uid; +} tAVRC_CHG_PATH_CMD; + +/* GetItemAttrs */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 scope; + tAVRC_UID uid; + UINT16 uid_counter; + UINT8 attr_count; + UINT32 *p_attr_list; +} tAVRC_GET_ATTRS_CMD; + +/* Search */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + tAVRC_FULL_NAME string; +} tAVRC_SEARCH_CMD; + +/* PlayItem */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 scope; + tAVRC_UID uid; + UINT16 uid_counter; +} tAVRC_PLAY_ITEM_CMD; + +/* AddToNowPlaying */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 scope; + tAVRC_UID uid; + UINT16 uid_counter; +} tAVRC_ADD_TO_PLAY_CMD; + +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ +} tAVRC_CMD; + +/* Continue and Abort */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (assigned by AVRC_BldCommand according to pdu) */ + UINT8 target_pdu; +} tAVRC_NEXT_CMD; + +typedef union { + UINT8 pdu; + tAVRC_CMD cmd; + tAVRC_GET_CAPS_CMD get_caps; /* GetCapability */ + tAVRC_CMD list_app_attr; /* ListPlayerAppAttr */ + tAVRC_LIST_APP_VALUES_CMD list_app_values; /* ListPlayerAppValues */ + tAVRC_GET_CUR_APP_VALUE_CMD get_cur_app_val; /* GetCurAppValue */ + tAVRC_SET_APP_VALUE_CMD set_app_val; /* SetAppValue */ + tAVRC_GET_APP_ATTR_TXT_CMD get_app_attr_txt; /* GetAppAttrTxt */ + tAVRC_GET_APP_VAL_TXT_CMD get_app_val_txt; /* GetAppValueTxt */ + tAVRC_INFORM_CHARSET_CMD inform_charset; /* InformCharset */ + tAVRC_BATTERY_STATUS_CMD inform_battery_status; /* InformBatteryStatus */ + tAVRC_GET_ELEM_ATTRS_CMD get_elem_attrs; /* GetElemAttrs */ + tAVRC_CMD get_play_status; /* GetPlayStatus */ + tAVRC_REG_NOTIF_CMD reg_notif; /* RegNotify */ + tAVRC_NEXT_CMD continu; /* Continue */ + tAVRC_NEXT_CMD abort; /* Abort */ + + tAVRC_SET_ADDR_PLAYER_CMD addr_player; /* SetAddrPlayer */ + tAVRC_SET_VOLUME_CMD volume; /* SetAbsVolume */ + tAVRC_SET_BR_PLAYER_CMD br_player; /* SetBrowsedPlayer */ + tAVRC_GET_ITEMS_CMD get_items; /* GetFolderItems */ + tAVRC_CHG_PATH_CMD chg_path; /* ChangePath */ + tAVRC_GET_ATTRS_CMD get_attrs; /* GetItemAttrs */ + tAVRC_SEARCH_CMD search; /* Search */ + tAVRC_PLAY_ITEM_CMD play_item; /* PlayItem */ + tAVRC_ADD_TO_PLAY_CMD add_to_play; /* AddToNowPlaying */ +} tAVRC_COMMAND; + +/* GetCapability */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT8 capability_id; + UINT8 count; + tAVRC_CAPS_PARAM param; +} tAVRC_GET_CAPS_RSP; + +/* ListPlayerAppAttr */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT8 num_attr; + UINT8 attrs[AVRC_MAX_APP_ATTR_SIZE]; +} tAVRC_LIST_APP_ATTR_RSP; + +/* ListPlayerAppValues */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT8 num_val; + UINT8 vals[AVRC_MAX_APP_ATTR_SIZE]; +} tAVRC_LIST_APP_VALUES_RSP; + +/* GetCurAppValue */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT8 num_val; + tAVRC_APP_SETTING *p_vals; +} tAVRC_GET_CUR_APP_VALUE_RSP; + +/* GetAppAttrTxt */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT8 num_attr; + tAVRC_APP_SETTING_TEXT *p_attrs; +} tAVRC_GET_APP_ATTR_TXT_RSP; + +/* GetElemAttrs */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT8 num_attr; + tAVRC_ATTR_ENTRY *p_attrs; +} tAVRC_GET_ELEM_ATTRS_RSP; + +/* GetPlayStatus */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT32 song_len; + UINT32 song_pos; + UINT8 play_status; +} tAVRC_GET_PLAY_STATUS_RSP; + +/* notification event parameter for AddressedPlayer change */ +typedef struct { + UINT16 player_id; + UINT16 uid_counter; +} tAVRC_ADDR_PLAYER_PARAM; + +#ifndef AVRC_MAX_APP_SETTINGS +#define AVRC_MAX_APP_SETTINGS 8 +#endif + +/* notification event parameter for Player Application setting change */ +typedef struct { + UINT8 num_attr; + UINT8 attr_id[AVRC_MAX_APP_SETTINGS]; + UINT8 attr_value[AVRC_MAX_APP_SETTINGS]; +} tAVRC_PLAYER_APP_PARAM; + +typedef union { + tAVRC_PLAYSTATE play_status; + tAVRC_UID track; + UINT32 play_pos; + tAVRC_BATTERY_STATUS battery_status; + tAVRC_SYSTEMSTATE system_status; + tAVRC_PLAYER_APP_PARAM player_setting; + tAVRC_ADDR_PLAYER_PARAM addr_player; + UINT16 uid_counter; + UINT8 volume; +} tAVRC_NOTIF_RSP_PARAM; + +/* RegNotify */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT8 event_id; + tAVRC_NOTIF_RSP_PARAM param; +} tAVRC_REG_NOTIF_RSP; + +/* SetAbsVolume */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT8 volume; +} tAVRC_SET_VOLUME_RSP; + +/* SetBrowsedPlayer */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT16 uid_counter; + UINT32 num_items; + UINT16 charset_id; + UINT8 folder_depth; + tAVRC_NAME *p_folders; +} tAVRC_SET_BR_PLAYER_RSP; + +/* GetFolderItems */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT16 uid_counter; + UINT16 item_count; + tAVRC_ITEM *p_item_list; +} tAVRC_GET_ITEMS_RSP; + +/* ChangePath */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT32 num_items; +} tAVRC_CHG_PATH_RSP; + +/* GetItemAttrs */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT8 attr_count; + tAVRC_ATTR_ENTRY *p_attr_list; +} tAVRC_GET_ATTRS_RSP; + +/* Search */ +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ + UINT16 uid_counter; + UINT32 num_items; +} tAVRC_SEARCH_RSP; + + +typedef struct { + UINT8 pdu; + tAVRC_STS status; + UINT8 opcode; /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */ +} tAVRC_RSP; + +typedef union { + UINT8 pdu; + tAVRC_RSP rsp; + tAVRC_GET_CAPS_RSP get_caps; /* GetCapability */ + tAVRC_LIST_APP_ATTR_RSP list_app_attr; /* ListPlayerAppAttr */ + tAVRC_LIST_APP_VALUES_RSP list_app_values; /* ListPlayerAppValues */ + tAVRC_GET_CUR_APP_VALUE_RSP get_cur_app_val; /* GetCurAppValue */ + tAVRC_RSP set_app_val; /* SetAppValue */ + tAVRC_GET_APP_ATTR_TXT_RSP get_app_attr_txt; /* GetAppAttrTxt */ + tAVRC_GET_APP_ATTR_TXT_RSP get_app_val_txt; /* GetAppValueTxt */ + tAVRC_RSP inform_charset; /* InformCharset */ + tAVRC_RSP inform_battery_status; /* InformBatteryStatus */ + tAVRC_GET_ELEM_ATTRS_RSP get_elem_attrs; /* GetElemAttrs */ + tAVRC_GET_PLAY_STATUS_RSP get_play_status; /* GetPlayStatus */ + tAVRC_REG_NOTIF_RSP reg_notif; /* RegNotify */ + tAVRC_RSP continu; /* Continue */ + tAVRC_RSP abort; /* Abort */ + + tAVRC_RSP addr_player; /* SetAddrPlayer */ + tAVRC_SET_VOLUME_RSP volume; /* SetAbsVolume */ + tAVRC_SET_BR_PLAYER_RSP br_player; /* SetBrowsedPlayer */ + tAVRC_GET_ITEMS_RSP get_items; /* GetFolderItems */ + tAVRC_CHG_PATH_RSP chg_path; /* ChangePath */ + tAVRC_GET_ATTRS_RSP get_attrs; /* GetItemAttrs */ + tAVRC_SEARCH_RSP search; /* Search */ + tAVRC_RSP play_item; /* PlayItem */ + tAVRC_RSP add_to_play; /* AddToNowPlaying */ +} tAVRC_RESPONSE; + + +#endif diff --git a/tools/sdk/include/bluedroid/bdaddr.h b/tools/sdk/include/bluedroid/bdaddr.h new file mode 100755 index 00000000..87acad2e --- /dev/null +++ b/tools/sdk/include/bluedroid/bdaddr.h @@ -0,0 +1,63 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _BDADDR_H_ +#define _BDADDR_H_ + +#include +#include + +#include "bt_defs.h" +#include "hash_map.h" + +// Note: the string representation of a bdaddr is expected to have the format +// xx:xx:xx:xx:xx:xx +// where each 'x' is a hex digit. The API presented in this header will accept +// both uppercase and lowercase digits but will only ever produce lowercase +// digits. + +// Returns true if |addr| is the empty address (00:00:00:00:00:00). +// |addr| may not be NULL. +bool bdaddr_is_empty(const bt_bdaddr_t *addr); + +// Returns true if |first| and |second| refer to the same address. Neither +// may be NULL. +bool bdaddr_equals(const bt_bdaddr_t *first, const bt_bdaddr_t *second); + +// Returns destination bdaddr |dest| after copying |src| to |dest|. +// |dest| and |src| must not be NULL. +bt_bdaddr_t *bdaddr_copy(bt_bdaddr_t *dest, const bt_bdaddr_t *src); + +// Makes a string representation of |addr| and places it into |string|. |size| +// refers to the size of |string|'s buffer and must be >= 18. On success, this +// function returns |string|, otherwise it returns NULL. Neither |addr| nor |string| +// may be NULL. +const char *bdaddr_to_string(const bt_bdaddr_t *addr, char *string, size_t size); + +// Returns true if |string| represents a Bluetooth address. |string| may not be NULL. +bool string_is_bdaddr(const char *string); + +// Converts |string| to bt_bdaddr_t and places it in |addr|. If |string| does not +// represent a Bluetooth address, |addr| is not modified and this function returns +// false. Otherwise, it returns true. Neither |string| nor |addr| may be NULL. +bool string_to_bdaddr(const char *string, bt_bdaddr_t *addr); + +// A hash function tailored for bdaddrs. +hash_index_t hash_function_bdaddr(const void *key); + +#endif diff --git a/tools/sdk/include/bluedroid/blufi_int.h b/tools/sdk/include/bluedroid/blufi_int.h new file mode 100644 index 00000000..c21b41c4 --- /dev/null +++ b/tools/sdk/include/bluedroid/blufi_int.h @@ -0,0 +1,176 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __BLUFI_INT_H__ +#define __BLUFI_INT_H__ + +#define BTC_BLUFI_GREAT_VER 0x01 //Version + Subversion +#define BTC_BLUFI_SUB_VER 0x00 //Version + Subversion +#define BTC_BLUFI_VERSION ((BTC_BLUFI_GREAT_VER<<8)|BTC_BLUFI_SUB_VER) //Version + Subversion + +/* service engine control block */ +typedef struct { + /* Protocol reference */ + tGATT_IF gatt_if; + UINT8 srvc_inst; + UINT16 handle_srvc; + UINT16 handle_char_p2e; + UINT16 handle_char_e2p; + UINT16 handle_descr_e2p; + UINT16 conn_id; + BOOLEAN is_connected; + BD_ADDR remote_bda; + UINT32 trans_id; + UINT8 congest; +#define BLUFI_PREPAIR_BUF_MAX_SIZE 1024 + uint8_t *prepare_buf; + int prepare_len; + /* Control reference */ + esp_blufi_callbacks_t *cbs; + BOOLEAN enabled; + uint8_t send_seq; + uint8_t recv_seq; + uint8_t sec_mode; + uint8_t *aggr_buf; + uint16_t total_len; + uint16_t offset; +} tBLUFI_ENV; + +/* BLUFI protocol */ +struct blufi_hdr{ + uint8_t type; + uint8_t fc; + uint8_t seq; + uint8_t data_len; + uint8_t data[0]; +}; +typedef struct blufi_hdr blufi_hd_t; + +struct blufi_frag_hdr { + uint8_t type; + uint8_t fc; + uint8_t seq; + uint8_t data_len; + uint16_t total_len; + uint8_t content[0]; +}; +typedef struct blufi_frag_hdr blufi_frag_hdr_t; + +#define BLUFI_DATA_SEC_MODE_CHECK_MASK 0x01 +#define BLUFI_DATA_SEC_MODE_ENC_MASK 0x02 +#define BLUFI_CTRL_SEC_MODE_CHECK_MASK 0x10 +#define BLUFI_CTRL_SEC_MODE_ENC_MASK 0x20 + +// packet type +#define BLUFI_TYPE_MASK 0x03 +#define BLUFI_TYPE_SHIFT 0 +#define BLUFI_SUBTYPE_MASK 0xFC +#define BLUFI_SUBTYPE_SHIFT 2 + +#define BLUFI_GET_TYPE(type) ((type) & BLUFI_TYPE_MASK) +#define BLUFI_GET_SUBTYPE(type) (((type) & BLUFI_SUBTYPE_MASK) >>BLUFI_SUBTYPE_SHIFT) +#define BLUFI_BUILD_TYPE(type, subtype) (((type) & BLUFI_TYPE_MASK) | ((subtype)< +#include +#include "bt_trace.h" + +#include "osi_arch.h" + +#define UNUSED(x) (void)(x) + +#ifndef SIZE_MAX +#define SIZE_MAX 254 +#endif +/*Timer Related Defination*/ + +#define alarm_timer_t uint32_t +#define alarm_timer_setfn(timer, cb, data) \ +do { \ +} while (0) +#define alarm_timer_arm(timer, to, periodic) \ +do { \ +} while (0) +#define alarm_timer_disarm(timer) \ +do { \ +} while (0) +#define alarm_timer_now() (0) + + +/*Thread and locker related defination*/ +#define RTOS_SUPPORT +#ifdef RTOS_SUPPORT +#define pthread_mutex_t osi_mutex_t +#define pthread_mutex_init(mutex, a) osi_mutex_new(mutex) +#define pthread_mutex_destroy(mutex) osi_mutex_free(mutex) +#define pthread_mutex_lock osi_mutex_lock +#define pthread_mutex_unlock osi_mutex_unlock +#else +#define pthread_mutex_t uint8_t +#define pthread_mutex_init(x1, x2) +#define pthread_mutex_destroy(mutex) +#define pthread_mutex_lock(mutex) +#define pthread_mutex_unlock(mutex) +#endif + + +/*Bluetooth Address*/ +typedef struct { + uint8_t address[6]; +} __attribute__ ((__packed__)) bt_bdaddr_t; + +/** Bluetooth 128-bit UUID */ +typedef struct { + uint8_t uu[16]; +} bt_uuid_t; + +/** Bluetooth Error Status */ +/** We need to build on this */ + +typedef enum { + BT_STATUS_SUCCESS, + BT_STATUS_FAIL, + BT_STATUS_NOT_READY, + BT_STATUS_NOMEM, + BT_STATUS_BUSY, + BT_STATUS_DONE, /* request already completed */ + BT_STATUS_UNSUPPORTED, + BT_STATUS_PARM_INVALID, + BT_STATUS_UNHANDLED, + BT_STATUS_AUTH_FAILURE, + BT_STATUS_RMT_DEV_DOWN, + BT_STATUS_AUTH_REJECTED +} bt_status_t; + +#ifndef CPU_LITTLE_ENDIAN +#define CPU_LITTLE_ENDIAN +#endif + +inline uint16_t swap_byte_16(uint16_t x) +{ + return (((x & 0x00ffU) << 8) | + ((x & 0xff00U) >> 8)); +} + +inline uint32_t swap_byte_32(uint32_t x) +{ + return (((x & 0x000000ffUL) << 24) | + ((x & 0x0000ff00UL) << 8) | + ((x & 0x00ff0000UL) >> 8) | + ((x & 0xff000000UL) >> 24)); +} + +#ifndef ntohs +inline uint16_t ntohs(uint16_t x) +{ +#ifdef CPU_LITTLE_ENDIAN + return swap_byte_16(x); +#else + return x; +#endif +} +#endif /* #ifndef ntohs */ + +#ifndef htons +inline uint16_t htons(uint16_t x) +{ +#ifdef CPU_LITTLE_ENDIAN + return swap_byte_16(x); +#else + return x; +#endif +} +#endif /* #ifndef htons */ + +#ifndef ntohl +inline uint32_t ntohl(uint32_t x) +{ +#ifdef CPU_LITTLE_ENDIAN + return swap_byte_32(x); +#else + return x; +#endif +} +#endif /* #ifndef ntohl*/ + +#ifndef htonl +inline uint32_t htonl(uint32_t x) +{ +#ifdef CPU_LITTLE_ENDIAN + return swap_byte_32(x); +#else + return x; +#endif +} +#endif /* #ifndef htonl*/ + +#endif /* _BT_DEFS_H_ */ diff --git a/tools/sdk/include/bluedroid/bt_sdp.h b/tools/sdk/include/bluedroid/bt_sdp.h new file mode 100755 index 00000000..da7f7744 --- /dev/null +++ b/tools/sdk/include/bluedroid/bt_sdp.h @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __BT_SDP_H__ +#define __BT_SDP_H__ + +#include +// #include "bluetooth.h" +#include "bt_defs.h" + +#define SDP_OPP_SUPPORTED_FORMATS_MAX_LENGTH 15 + +/** + * These events are handled by the state machine + */ +typedef enum { + SDP_TYPE_RAW, // Used to carry raw SDP search data for unknown UUIDs + SDP_TYPE_MAP_MAS, // Message Access Profile - Server + SDP_TYPE_MAP_MNS, // Message Access Profile - Client (Notification Server) + SDP_TYPE_PBAP_PSE, // Phone Book Profile - Server + SDP_TYPE_PBAP_PCE, // Phone Book Profile - Client + SDP_TYPE_OPP_SERVER, // Object Push Profile + SDP_TYPE_SAP_SERVER // SIM Access Profile +} bluetooth_sdp_types; + +typedef struct _bluetooth_sdp_hdr { + bluetooth_sdp_types type; + bt_uuid_t uuid; + uint32_t service_name_length; + char *service_name; + int32_t rfcomm_channel_number; + int32_t l2cap_psm; + int32_t profile_version; +} bluetooth_sdp_hdr; + +/** + * Some signals need additional pointers, hence we introduce a + * generic way to handle these pointers. + */ +typedef struct _bluetooth_sdp_hdr_overlay { + bluetooth_sdp_types type; + bt_uuid_t uuid; + uint32_t service_name_length; + char *service_name; + int32_t rfcomm_channel_number; + int32_t l2cap_psm; + int32_t profile_version; + + // User pointers, only used for some signals - see bluetooth_sdp_ops_record + int user1_ptr_len; + uint8_t *user1_ptr; + int user2_ptr_len; + uint8_t *user2_ptr; +} bluetooth_sdp_hdr_overlay; + +typedef struct _bluetooth_sdp_mas_record { + bluetooth_sdp_hdr_overlay hdr; + uint32_t mas_instance_id; + uint32_t supported_features; + uint32_t supported_message_types; +} bluetooth_sdp_mas_record; + +typedef struct _bluetooth_sdp_mns_record { + bluetooth_sdp_hdr_overlay hdr; + uint32_t supported_features; +} bluetooth_sdp_mns_record; + +typedef struct _bluetooth_sdp_pse_record { + bluetooth_sdp_hdr_overlay hdr; + uint32_t supported_features; + uint32_t supported_repositories; +} bluetooth_sdp_pse_record; + +typedef struct _bluetooth_sdp_pce_record { + bluetooth_sdp_hdr_overlay hdr; +} bluetooth_sdp_pce_record; + +typedef struct _bluetooth_sdp_ops_record { + bluetooth_sdp_hdr_overlay hdr; + int supported_formats_list_len; + uint8_t supported_formats_list[SDP_OPP_SUPPORTED_FORMATS_MAX_LENGTH]; +} bluetooth_sdp_ops_record; + +typedef struct _bluetooth_sdp_sap_record { + bluetooth_sdp_hdr_overlay hdr; +} bluetooth_sdp_sap_record; + +typedef union { + bluetooth_sdp_hdr_overlay hdr; + bluetooth_sdp_mas_record mas; + bluetooth_sdp_mns_record mns; + bluetooth_sdp_pse_record pse; + bluetooth_sdp_pce_record pce; + bluetooth_sdp_ops_record ops; + bluetooth_sdp_sap_record sap; +} bluetooth_sdp_record; + +#endif /* __BT_SDP_H__ */ diff --git a/tools/sdk/include/bluedroid/bt_target.h b/tools/sdk/include/bluedroid/bt_target.h new file mode 100644 index 00000000..9d042a2b --- /dev/null +++ b/tools/sdk/include/bluedroid/bt_target.h @@ -0,0 +1,1801 @@ +/****************************************************************************** + * + * Copyright (c) 2014 The Android Open Source Project + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef BT_TARGET_H +#define BT_TARGET_H + +#ifndef BUILDCFG +#define BUILDCFG +#endif + +/* +#if !defined(HAS_BDROID_BUILDCFG) && !defined(HAS_NO_BDROID_BUILDCFG) +#error "An Android.mk file did not include bdroid_CFLAGS and possibly not bdorid_C_INCLUDES" +#endif +*/ + +#ifdef HAS_BDROID_BUILDCFG +#include "bdroid_buildcfg.h" +#endif + +#include "bt_types.h" /* This must be defined AFTER buildcfg.h */ + +/* Include common GKI definitions used by this platform */ +#include "gki_target.h" +#include "dyn_mem.h" /* defines static and/or dynamic memory for components */ + + +#ifndef CLASSIC_BT_INCLUDED +#define CLASSIC_BT_INCLUDED TRUE +#endif ///CLASSIC_BT_INCLUDED + +//------------------Added from bdroid_buildcfg.h--------------------- +#ifndef L2CAP_EXTFEA_SUPPORTED_MASK +#define L2CAP_EXTFEA_SUPPORTED_MASK (L2CAP_EXTFEA_ENH_RETRANS | L2CAP_EXTFEA_STREAM_MODE | L2CAP_EXTFEA_NO_CRC | L2CAP_EXTFEA_FIXED_CHNLS) +#endif + +#ifndef BTUI_OPS_FORMATS +#define BTUI_OPS_FORMATS (BTA_OP_VCARD21_MASK | BTA_OP_ANY_MASK) +#endif + +#ifndef BTA_RFC_MTU_SIZE +#define BTA_RFC_MTU_SIZE (L2CAP_MTU_SIZE-L2CAP_MIN_OFFSET-RFCOMM_DATA_OVERHEAD) +#endif + +#ifndef SBC_NO_PCM_CPY_OPTION +#define SBC_NO_PCM_CPY_OPTION FALSE +#endif + +#ifndef BT_APP_DEMO +#define BT_APP_DEMO TRUE +#endif + +#ifndef BTIF_INCLUDED +#define BTIF_INCLUDED FALSE +#endif + +#ifndef BTA_INCLUDED +#define BTA_INCLUDED TRUE +#endif + +#ifndef BTA_PAN_INCLUDED +#define BTA_PAN_INCLUDED FALSE//TRUE +#endif + +#ifndef BTA_HH_INCLUDED +#define BTA_HH_INCLUDED FALSE//TRUE +#endif + +#ifndef BTA_HH_ROLE +#define BTA_HH_ROLE BTA_MASTER_ROLE_PREF +#endif + +#ifndef BTA_HH_LE_INCLUDED +#define BTA_HH_LE_INCLUDED FALSE//TRUE +#endif + +#ifndef BTA_AR_INCLUDED +#define BTA_AR_INCLUDED FALSE//TRUE +#endif + +#ifndef BTA_AV_INCLUDED +#define BTA_AV_INCLUDED FALSE//TRUE +#endif + +#ifndef BTA_AV_SINK_INCLUDED +#define BTA_AV_SINK_INCLUDED FALSE//FALSE +#endif + +#ifndef BTA_DISABLE_DELAY +#define BTA_DISABLE_DELAY 200 /* in milliseconds */ +#endif + +// If the next wakeup time is less than this threshold, we should acquire +// a wakelock instead of setting a wake alarm so we're not bouncing in +// and out of suspend frequently. +// in millisecond +// TODO(zachoverflow): reinstate in alarm code +#ifndef GKI_TIMER_INTERVAL_FOR_WAKELOCK +#define GKI_TIMER_INTERVAL_FOR_WAKELOCK 3000 +#endif + +#ifndef BTA_SYS_TIMER_PERIOD +#define BTA_SYS_TIMER_PERIOD 100 +#endif + +#ifndef SBC_FOR_EMBEDDED_LINUX +#define SBC_FOR_EMBEDDED_LINUX TRUE +#endif + +#ifndef AVDT_VERSION +#define AVDT_VERSION 0x0102 +#endif + +#ifndef BTA_AG_AT_MAX_LEN +#define BTA_AG_AT_MAX_LEN 512 +#endif + +#ifndef BTA_AVRCP_FF_RW_SUPPORT +#define BTA_AVRCP_FF_RW_SUPPORT FALSE//TRUE +#endif + +#ifndef BTA_AG_SCO_PKT_TYPES +#define BTA_AG_SCO_PKT_TYPES (BTM_SCO_LINK_ONLY_MASK | BTM_SCO_PKT_TYPES_MASK_EV3 | BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 | BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 | BTM_SCO_PKT_TYPES_MASK_NO_3_EV5) +#endif + +#ifndef BTA_AV_RET_TOUT +#define BTA_AV_RET_TOUT 15 +#endif + +#ifndef PORCHE_PAIRING_CONFLICT +#define PORCHE_PAIRING_CONFLICT TRUE +#endif + +#ifndef BTA_AV_CO_CP_SCMS_T +#define BTA_AV_CO_CP_SCMS_T FALSE//FALSE +#endif + +/* This feature is used to eanble interleaved scan*/ +#ifndef BTA_HOST_INTERLEAVE_SEARCH +#define BTA_HOST_INTERLEAVE_SEARCH FALSE//FALSE +#endif + +#ifndef BT_USE_TRACES +#define BT_USE_TRACES TRUE +#endif + +#ifndef BT_TRACE_BTIF +#define BT_TRACE_BTIF TRUE +#endif + +#ifndef BT_TRACE_VERBOSE +#define BT_TRACE_VERBOSE FALSE +#endif + +#ifndef BTA_DM_SDP_DB_SIZE +#define BTA_DM_SDP_DB_SIZE 8000 +#endif + +#ifndef HL_INCLUDED +#define HL_INCLUDED TRUE +#endif + +#ifndef AG_VOICE_SETTINGS +#define AG_VOICE_SETTINGS HCI_DEFAULT_VOICE_SETTINGS +#endif + +#ifndef BTIF_DM_OOB_TEST +#define BTIF_DM_OOB_TEST FALSE//TRUE +#endif + +// How long to wait before activating sniff mode after entering the +// idle state for FTS, OPS connections +#ifndef BTA_FTS_OPS_IDLE_TO_SNIFF_DELAY_MS +#define BTA_FTS_OPS_IDLE_TO_SNIFF_DELAY_MS 7000 +#endif + +//------------------End added from bdroid_buildcfg.h--------------------- + + +/****************************************************************************** +** +** GKI Buffer Pools +** +******************************************************************************/ + +/* Receives HCI events from the lower-layer. */ +#ifndef HCI_CMD_POOL_ID +#define HCI_CMD_POOL_ID GKI_POOL_ID_2 +#endif + +#ifndef HCI_CMD_POOL_BUF_SIZE +#define HCI_CMD_POOL_BUF_SIZE GKI_BUF2_SIZE +#endif + +/* Receives ACL data packets from thelower-layer. */ +#ifndef HCI_ACL_POOL_ID +#define HCI_ACL_POOL_ID GKI_POOL_ID_3 +#endif + +/* Maximum number of buffers available for ACL receive data. */ +#ifndef HCI_ACL_BUF_MAX +#define HCI_ACL_BUF_MAX GKI_BUF3_MAX +#endif + +/* Receives SCO data packets from the lower-layer. */ +#ifndef HCI_SCO_POOL_ID +#define HCI_SCO_POOL_ID GKI_POOL_ID_6 +#endif + +/* Sends SDP data packets. */ +#ifndef SDP_POOL_ID +#define SDP_POOL_ID 3 +#endif + +/* Sends RFCOMM command packets. */ +#ifndef RFCOMM_CMD_POOL_ID +#define RFCOMM_CMD_POOL_ID GKI_POOL_ID_2 +#endif + +/* Sends RFCOMM data packets. */ +#ifndef RFCOMM_DATA_POOL_ID +#define RFCOMM_DATA_POOL_ID GKI_POOL_ID_3 +#endif + +#ifndef RFCOMM_DATA_POOL_BUF_SIZE +#define RFCOMM_DATA_POOL_BUF_SIZE GKI_BUF3_SIZE +#endif + +/* Sends L2CAP packets to the peer and HCI messages to the controller. */ +#ifndef L2CAP_CMD_POOL_ID +#define L2CAP_CMD_POOL_ID GKI_POOL_ID_2 +#endif + +/* Sends L2CAP segmented packets in ERTM mode */ +#ifndef L2CAP_FCR_TX_POOL_ID +#define L2CAP_FCR_TX_POOL_ID HCI_ACL_POOL_ID +#endif + +/* Receives L2CAP segmented packets in ERTM mode */ +#ifndef L2CAP_FCR_RX_POOL_ID +#define L2CAP_FCR_RX_POOL_ID HCI_ACL_POOL_ID +#endif + +/* Number of ACL buffers to assign to LE + if the HCI buffer pool is shared with BR/EDR */ +#ifndef L2C_DEF_NUM_BLE_BUF_SHARED +#define L2C_DEF_NUM_BLE_BUF_SHARED 1 +#endif + +/* Used by BTM when it sends HCI commands to the controller. */ +#ifndef BTM_CMD_POOL_ID +#define BTM_CMD_POOL_ID GKI_POOL_ID_2 +#endif + +#ifndef OBX_LRG_DATA_POOL_SIZE +#define OBX_LRG_DATA_POOL_SIZE GKI_BUF4_SIZE +#endif + +#ifndef OBX_LRG_DATA_POOL_ID +#define OBX_LRG_DATA_POOL_ID GKI_POOL_ID_4 +#endif +/* Used to send data to L2CAP. */ +#ifndef GAP_DATA_POOL_ID +#define GAP_DATA_POOL_ID GKI_POOL_ID_3 +#endif + +#ifndef SPP_DB_SIZE +#define SPP_DB_SIZE GKI_BUF3_SIZE +#endif + +/* BNEP data and protocol messages. */ +#ifndef BNEP_POOL_ID +#define BNEP_POOL_ID GKI_POOL_ID_3 +#endif + +/* RPC pool for temporary trace message buffers. */ +#ifndef RPC_SCRATCH_POOL_ID +#define RPC_SCRATCH_POOL_ID GKI_POOL_ID_2 +#endif + +/* AVDTP pool for protocol messages */ +#ifndef AVDT_CMD_POOL_ID +#define AVDT_CMD_POOL_ID GKI_POOL_ID_2 +#endif + +/* AVDTP pool size for media packets in case of fragmentation */ +#ifndef AVDT_DATA_POOL_SIZE +#define AVDT_DATA_POOL_SIZE GKI_BUF3_SIZE +#endif + +#ifndef PAN_POOL_ID +#define PAN_POOL_ID GKI_POOL_ID_3 +/* Maximum amount of the shared buffer to allocate for PAN */ +#define PAN_POOL_MAX (GKI_BUF3_MAX / 4) +#endif + +/* AVCTP pool for protocol messages */ +#ifndef AVCT_CMD_POOL_ID +#define AVCT_CMD_POOL_ID GKI_POOL_ID_1 +#endif + +/* AVRCP pool for protocol messages */ +#ifndef AVRC_CMD_POOL_ID +#define AVRC_CMD_POOL_ID GKI_POOL_ID_1 +#endif + +/* AVRCP pool size for protocol messages */ +#ifndef AVRC_CMD_POOL_SIZE +#define AVRC_CMD_POOL_SIZE GKI_BUF1_SIZE +#endif + +/* AVRCP Metadata pool for protocol messages */ +#ifndef AVRC_META_CMD_POOL_ID +#define AVRC_META_CMD_POOL_ID GKI_POOL_ID_2 +#endif + +/* AVRCP Metadata pool size for protocol messages */ +#ifndef AVRC_META_CMD_POOL_SIZE +#define AVRC_META_CMD_POOL_SIZE GKI_BUF2_SIZE +#endif + + +/* AVRCP buffer size for browsing channel messages */ +#ifndef AVRC_BROWSE_POOL_SIZE +#define AVRC_BROWSE_POOL_SIZE GKI_MAX_BUF_SIZE +#endif + +#ifndef BTA_HL_LRG_DATA_POOL_ID +#define BTA_HL_LRG_DATA_POOL_ID GKI_POOL_ID_7 +#endif + +/* GATT Server Database pool ID */ +#ifndef GATT_DB_POOL_ID +#define GATT_DB_POOL_ID GKI_POOL_ID_8 +#endif + +/* GATT Data sending buffer pool ID, use default ACL pool for fix channel data */ +#ifndef GATT_BUF_POOL_ID +#define GATT_BUF_POOL_ID HCI_ACL_POOL_ID +#endif + +/****************************************************************************** +** +** Lower Layer Interface +** +******************************************************************************/ + +/* Macro for allocating buffer for HCI commands */ +#ifndef HCI_GET_CMD_BUF +#if (!defined(HCI_USE_VARIABLE_SIZE_CMD_BUF) || (HCI_USE_VARIABLE_SIZE_CMD_BUF == FALSE)) +/* Allocate fixed-size buffer from HCI_CMD_POOL (default case) */ +#define HCI_GET_CMD_BUF(paramlen) ((BT_HDR *)GKI_getpoolbuf (HCI_CMD_POOL_ID)) +#else +/* Allocate smallest possible buffer (for platforms with limited RAM) */ +#define HCI_GET_CMD_BUF(paramlen) ((BT_HDR *)GKI_getbuf ((UINT16)(BT_HDR_SIZE + HCIC_PREAMBLE_SIZE + (paramlen)))) +#endif +#endif /* HCI_GET_CMD_BUF */ + +/****************************************************************************** +** +** HCI Services (H4) +** +******************************************************************************/ + +/* Use 2 second for low-resolution systems, override to 1 for high-resolution systems */ +#ifndef BT_1SEC_TIMEOUT +#define BT_1SEC_TIMEOUT (2) +#endif + +/* Quick Timer */ +/* if L2CAP_FCR_INCLUDED is TRUE then it should have 100 millisecond resolution */ +/* if none of them is included then QUICK_TIMER_TICKS_PER_SEC is set to 0 to exclude quick timer */ +#ifndef QUICK_TIMER_TICKS_PER_SEC +#define QUICK_TIMER_TICKS_PER_SEC 10 /* 100ms timer */ +#endif + +/****************************************************************************** +** +** BTM +** +******************************************************************************/ + +/* Cancel Inquiry on incoming SSP */ +#ifndef BTM_NO_SSP_ON_INQUIRY +#define BTM_NO_SSP_ON_INQUIRY FALSE +#endif + +/* Includes SCO if TRUE */ +#ifndef BTM_SCO_INCLUDED +#define BTM_SCO_INCLUDED FALSE //TRUE /* TRUE includes SCO code */ +#endif + +/* Includes SCO if TRUE */ +#ifndef BTM_SCO_HCI_INCLUDED +#define BTM_SCO_HCI_INCLUDED FALSE /* TRUE includes SCO over HCI code */ +#endif + +/* Includes WBS if TRUE */ +#ifndef BTM_WBS_INCLUDED +#define BTM_WBS_INCLUDED FALSE /* TRUE includes WBS code */ +#endif + +/* This is used to work around a controller bug that doesn't like Disconnect +** issued while there is a role switch in progress +*/ +#ifndef BTM_DISC_DURING_RS +#define BTM_DISC_DURING_RS TRUE +#endif + +/************************** +** Initial SCO TX credit +*************************/ +/* max TX SCO data packet size */ +#ifndef BTM_SCO_DATA_SIZE_MAX +#define BTM_SCO_DATA_SIZE_MAX 240 +#endif + +/* The size in bytes of the BTM inquiry database. 40 As Default */ +#ifndef BTM_INQ_DB_SIZE +#define BTM_INQ_DB_SIZE 32 +#endif + +/* The default scan mode */ +#ifndef BTM_DEFAULT_SCAN_TYPE +#define BTM_DEFAULT_SCAN_TYPE BTM_SCAN_TYPE_INTERLACED +#endif + +/* Should connections to unknown devices be allowed when not discoverable? */ +#ifndef BTM_ALLOW_CONN_IF_NONDISCOVER +#define BTM_ALLOW_CONN_IF_NONDISCOVER TRUE +#endif + +/* Sets the Page_Scan_Window: the length of time that the device is performing a page scan. */ +#ifndef BTM_DEFAULT_CONN_WINDOW +#define BTM_DEFAULT_CONN_WINDOW 0x0012 +#endif + +/* Sets the Page_Scan_Activity: the interval between the start of two consecutive page scans. */ +#ifndef BTM_DEFAULT_CONN_INTERVAL +#define BTM_DEFAULT_CONN_INTERVAL 0x0800 +#endif + +/* When automatic inquiry scan is enabled, this sets the inquiry scan window. */ +#ifndef BTM_DEFAULT_DISC_WINDOW +#define BTM_DEFAULT_DISC_WINDOW 0x0012 +#endif + +/* When automatic inquiry scan is enabled, this sets the inquiry scan interval. */ +#ifndef BTM_DEFAULT_DISC_INTERVAL +#define BTM_DEFAULT_DISC_INTERVAL 0x0800 +#endif + +/* Default class of device +* {SERVICE_CLASS, MAJOR_CLASS, MINOR_CLASS} +* +* SERVICE_CLASS:0x5A (Bit17 -Networking,Bit19 - Capturing,Bit20 -Object Transfer,Bit22 -Telephony) +* MAJOR_CLASS:0x02 - PHONE +* MINOR_CLASS:0x0C - SMART_PHONE +* +*/ +#ifndef BTA_DM_COD +#define BTA_DM_COD {0x5A, 0x02, 0x0C} +#endif + +/* The number of SCO links. */ +#ifndef BTM_MAX_SCO_LINKS +#define BTM_MAX_SCO_LINKS 1 //3 +#endif + +/* The preferred type of SCO links (2-eSCO, 0-SCO). */ +#ifndef BTM_DEFAULT_SCO_MODE +#define BTM_DEFAULT_SCO_MODE 2 +#endif + +/* The number of security records for peer devices. 100 AS Default*/ +#ifndef BTM_SEC_MAX_DEVICE_RECORDS +#define BTM_SEC_MAX_DEVICE_RECORDS 8 // 100 +#endif + +/* The number of security records for services. 32 AS Default*/ +#ifndef BTM_SEC_MAX_SERVICE_RECORDS +#define BTM_SEC_MAX_SERVICE_RECORDS 8 // 32 +#endif + +/* If True, force a retrieval of remote device name for each bond in case it's changed */ +#ifndef BTM_SEC_FORCE_RNR_FOR_DBOND +#define BTM_SEC_FORCE_RNR_FOR_DBOND FALSE +#endif + +/* Maximum device name length used in btm database. Up to 248*/ +#ifndef BTM_MAX_REM_BD_NAME_LEN +#define BTM_MAX_REM_BD_NAME_LEN 64 +#endif + +/* Maximum local device name length stored btm database. + '0' disables storage of the local name in BTM */ +#ifndef BTM_MAX_LOC_BD_NAME_LEN +#define BTM_MAX_LOC_BD_NAME_LEN 64 +#endif + +/* Fixed Default String. When this is defined as null string, the device's + * product model name is used as the default local name. + */ +#ifndef BTM_DEF_LOCAL_NAME +#define BTM_DEF_LOCAL_NAME "" +#endif + +/* Maximum service name stored with security authorization (0 if not needed) */ +#ifndef BTM_SEC_SERVICE_NAME_LEN +#define BTM_SEC_SERVICE_NAME_LEN BT_MAX_SERVICE_NAME_LEN +#endif + +/* Maximum length of the service name. */ +#ifndef BT_MAX_SERVICE_NAME_LEN +#define BT_MAX_SERVICE_NAME_LEN 21 +#endif + +/* ACL buffer size in HCI Host Buffer Size command. */ +#ifndef BTM_ACL_BUF_SIZE +#define BTM_ACL_BUF_SIZE 0 +#endif + +/* The maximum number of clients that can register with the power manager. */ +#ifndef BTM_MAX_PM_RECORDS +#define BTM_MAX_PM_RECORDS 2 +#endif + +/* This is set to show debug trace messages for the power manager. */ +#ifndef BTM_PM_DEBUG +#define BTM_PM_DEBUG FALSE +#endif + +/* This is set to TRUE if link is to be unparked due to BTM_CreateSCO API. */ +#ifndef BTM_SCO_WAKE_PARKED_LINK +#define BTM_SCO_WAKE_PARKED_LINK TRUE +#endif + +/* If the user does not respond to security process requests within this many seconds, + * a negative response would be sent automatically. + * 30 is LMP response timeout value */ +#ifndef BTM_SEC_TIMEOUT_VALUE +#define BTM_SEC_TIMEOUT_VALUE 35 +#endif + +/* Maximum number of callbacks that can be registered using BTM_RegisterForVSEvents */ +#ifndef BTM_MAX_VSE_CALLBACKS +#define BTM_MAX_VSE_CALLBACKS 3 +#endif + +/****************************************** +** Lisbon Features +*******************************************/ +/* This is set to TRUE if the FEC is required for EIR packet. */ +#ifndef BTM_EIR_DEFAULT_FEC_REQUIRED +#define BTM_EIR_DEFAULT_FEC_REQUIRED TRUE +#endif + +/* The IO capability of the local device (for Simple Pairing) */ +#ifndef BTM_LOCAL_IO_CAPS +#define BTM_LOCAL_IO_CAPS BTM_IO_CAP_IO +#endif + +#ifndef BTM_LOCAL_IO_CAPS_BLE +#define BTM_LOCAL_IO_CAPS_BLE BTM_IO_CAP_KBDISP +#endif + +/* The default MITM Protection Requirement (for Simple Pairing) + * Possible values are BTM_AUTH_SP_YES or BTM_AUTH_SP_NO */ +#ifndef BTM_DEFAULT_AUTH_REQ +#define BTM_DEFAULT_AUTH_REQ BTM_AUTH_SP_NO +#endif + +/* The default MITM Protection Requirement for dedicated bonding using Simple Pairing + * Possible values are BTM_AUTH_AP_YES or BTM_AUTH_AP_NO */ +#ifndef BTM_DEFAULT_DD_AUTH_REQ +#define BTM_DEFAULT_DD_AUTH_REQ BTM_AUTH_AP_YES +#endif + +/* Include Out-of-Band implementation for Simple Pairing */ +#ifndef BTM_OOB_INCLUDED +#define BTM_OOB_INCLUDED TRUE +#endif + +/* TRUE to include Sniff Subrating */ +#ifndef BTM_SSR_INCLUDED +#define BTM_SSR_INCLUDED TRUE +#endif + +/************************* +** End of Lisbon Features +**************************/ + +/* 4.1/4.2 secure connections feature */ +#ifndef SC_MODE_INCLUDED +#define SC_MODE_INCLUDED TRUE +#endif + +/* Used for conformance testing ONLY */ +#ifndef BTM_BLE_CONFORMANCE_TESTING +#define BTM_BLE_CONFORMANCE_TESTING FALSE +#endif + +/****************************************************************************** +** +** L2CAP +** +******************************************************************************/ + +#ifndef L2CAP_CLIENT_INCLUDED +#define L2CAP_CLIENT_INCLUDED FALSE +#endif + + +/* The maximum number of simultaneous links that L2CAP can support. Up to 7*/ +#ifndef MAX_ACL_CONNECTIONS +#define MAX_L2CAP_LINKS 3 +#else +#define MAX_L2CAP_LINKS MAX_ACL_CONNECTIONS +#endif + +/* The maximum number of simultaneous channels that L2CAP can support. Up to 16*/ +#ifndef MAX_L2CAP_CHANNELS +#define MAX_L2CAP_CHANNELS 8 +#endif + +/* The maximum number of simultaneous applications that can register with L2CAP. */ +#ifndef MAX_L2CAP_CLIENTS +#define MAX_L2CAP_CLIENTS 8 +#endif + +/* The number of seconds of link inactivity before a link is disconnected. */ +#ifndef L2CAP_LINK_INACTIVITY_TOUT +#define L2CAP_LINK_INACTIVITY_TOUT 4 +#endif + +/* The number of seconds of link inactivity after bonding before a link is disconnected. */ +#ifndef L2CAP_BONDING_TIMEOUT +#define L2CAP_BONDING_TIMEOUT 3 +#endif + +/* The time from the HCI connection complete to disconnect if no channel is established. */ +#ifndef L2CAP_LINK_STARTUP_TOUT +#define L2CAP_LINK_STARTUP_TOUT 60 +#endif + +/* The L2CAP MTU; must be in accord with the HCI ACL pool size. */ +#ifndef L2CAP_MTU_SIZE +#define L2CAP_MTU_SIZE 1691 +#endif + +/* The L2CAP MPS over Bluetooth; must be in accord with the FCR tx pool size and ACL down buffer size. */ +#ifndef L2CAP_MPS_OVER_BR_EDR +#define L2CAP_MPS_OVER_BR_EDR 1010 +#endif + +/* If host flow control enabled, this is the number of buffers the controller can have unacknowledged. */ +#ifndef L2CAP_HOST_FC_ACL_BUFS +#define L2CAP_HOST_FC_ACL_BUFS 20 +#endif + +/* This is set to enable L2CAP to take the ACL link out of park mode when ACL data is to be sent. */ +#ifndef L2CAP_WAKE_PARKED_LINK +#define L2CAP_WAKE_PARKED_LINK TRUE +#endif + +/* Whether link wants to be the master or the slave. */ +#ifndef L2CAP_DESIRED_LINK_ROLE +#define L2CAP_DESIRED_LINK_ROLE HCI_ROLE_SLAVE +#endif + +/* Include Non-Flushable Packet Boundary Flag feature of Lisbon */ +#ifndef L2CAP_NON_FLUSHABLE_PB_INCLUDED +#define L2CAP_NON_FLUSHABLE_PB_INCLUDED TRUE +#endif + +/* Minimum number of ACL credit for high priority link */ +#ifndef L2CAP_HIGH_PRI_MIN_XMIT_QUOTA +#define L2CAP_HIGH_PRI_MIN_XMIT_QUOTA 5 +#endif + +/* used for monitoring HCI ACL credit management */ +#ifndef L2CAP_HCI_FLOW_CONTROL_DEBUG +#define L2CAP_HCI_FLOW_CONTROL_DEBUG TRUE +#endif + +/* Used for calculating transmit buffers off of */ +#ifndef L2CAP_NUM_XMIT_BUFFS +#define L2CAP_NUM_XMIT_BUFFS HCI_ACL_BUF_MAX +#endif + +/* Unicast Connectionless Data */ +#ifndef L2CAP_UCD_INCLUDED +#define L2CAP_UCD_INCLUDED FALSE +#endif + +/* Unicast Connectionless Data MTU */ +#ifndef L2CAP_UCD_MTU +#define L2CAP_UCD_MTU L2CAP_MTU_SIZE +#endif + +/* Unicast Connectionless Data Idle Timeout */ +#ifndef L2CAP_UCD_IDLE_TIMEOUT +#define L2CAP_UCD_IDLE_TIMEOUT 2 +#endif + +/* Unicast Connectionless Data Idle Timeout */ +#ifndef L2CAP_UCD_CH_PRIORITY +#define L2CAP_UCD_CH_PRIORITY L2CAP_CHNL_PRIORITY_MEDIUM +#endif + +/* Used for features using fixed channels; set to zero if no fixed channels supported (BLE, etc.) */ +/* Excluding L2CAP signaling channel and UCD */ +#ifndef L2CAP_NUM_FIXED_CHNLS +#define L2CAP_NUM_FIXED_CHNLS 32 +#endif + +/* First fixed channel supported */ +#ifndef L2CAP_FIRST_FIXED_CHNL +#define L2CAP_FIRST_FIXED_CHNL 4 +#endif + +#ifndef L2CAP_LAST_FIXED_CHNL +#define L2CAP_LAST_FIXED_CHNL (L2CAP_FIRST_FIXED_CHNL + L2CAP_NUM_FIXED_CHNLS - 1) +#endif + +/* Round Robin service channels in link */ +#ifndef L2CAP_ROUND_ROBIN_CHANNEL_SERVICE +#define L2CAP_ROUND_ROBIN_CHANNEL_SERVICE TRUE +#endif + +/* Used for calculating transmit buffers off of */ +#ifndef L2CAP_NUM_XMIT_BUFFS +#define L2CAP_NUM_XMIT_BUFFS HCI_ACL_BUF_MAX +#endif + +/* used for monitoring eL2CAP data flow */ +#ifndef L2CAP_ERTM_STATS +#define L2CAP_ERTM_STATS FALSE +#endif + +/* Used for conformance testing ONLY: When TRUE lets scriptwrapper overwrite info response */ +#ifndef L2CAP_CONFORMANCE_TESTING +#define L2CAP_CONFORMANCE_TESTING FALSE +#endif + +/* + * Max bytes per connection to buffer locally before dropping the + * connection if local client does not receive it - default is 1MB + */ +#ifndef L2CAP_MAX_RX_BUFFER +#define L2CAP_MAX_RX_BUFFER 0x100000 +#endif + + +#ifndef TIMER_PARAM_TYPE +#define TIMER_PARAM_TYPE UINT32 +#endif + +/****************************************************************************** +** +** BLE +** +******************************************************************************/ + +#ifndef BLE_INCLUDED +#define BLE_INCLUDED TRUE +#endif + +#ifndef BLE_ANDROID_CONTROLLER_SCAN_FILTER +#define BLE_ANDROID_CONTROLLER_SCAN_FILTER TRUE +#endif + +#ifndef LOCAL_BLE_CONTROLLER_ID +#define LOCAL_BLE_CONTROLLER_ID (1) +#endif + +/* + * Toggles support for general LE privacy features such as remote address + * resolution, local address rotation etc. + */ +#ifndef BLE_PRIVACY_SPT +#define BLE_PRIVACY_SPT TRUE +#endif + +/* + * Enables or disables support for local privacy (ex. address rotation) + */ +#ifndef BLE_LOCAL_PRIVACY_ENABLED +#define BLE_LOCAL_PRIVACY_ENABLED TRUE +#endif + +/* + * Toggles support for vendor specific extensions such as RPA offloading, + * feature discovery, multi-adv etc. + */ +#ifndef BLE_VND_INCLUDED +#define BLE_VND_INCLUDED FALSE +#endif + +#ifndef BTM_BLE_ADV_TX_POWER +#define BTM_BLE_ADV_TX_POWER {-21, -15, -7, 1, 9} +#endif + + +#ifndef BLE_BATCH_SCAN_INCLUDED +#define BLE_BATCH_SCAN_INCLUDED TRUE +#endif + +/****************************************************************************** +** +** ATT/GATT Protocol/Profile Settings +** +******************************************************************************/ +#ifndef GATT_INCLUDED +#if BLE_INCLUDED == TRUE +#define GATT_INCLUDED TRUE +#else +#define GATT_INCLUDED FALSE +#endif +#endif + +#ifndef BTA_GATT_INCLUDED +#if BLE_INCLUDED == TRUE +#define BTA_GATT_INCLUDED TRUE +#else +#define BTA_GATT_INCLUDED FALSE +#endif +#endif + +#if BTA_GATT_INCLUDED == TRUE && BLE_INCLUDED == FALSE +#error "can't have GATT without BLE" +#endif + +#ifndef BLE_LLT_INCLUDED +#define BLE_LLT_INCLUDED TRUE +#endif + +#ifndef ATT_INCLUDED +#define ATT_INCLUDED TRUE +#endif + +#ifndef ATT_DEBUG +#define ATT_DEBUG FALSE//TRUE +#endif + +#ifndef BLE_PERIPHERAL_MODE_SUPPORT +#define BLE_PERIPHERAL_MODE_SUPPORT TRUE +#endif + +#ifndef BLE_DELAY_REQUEST_ENC +/* This flag is to work around IPHONE problem, We need to wait for iPhone ready + before send encryption request to iPhone */ +#define BLE_DELAY_REQUEST_ENC FALSE +#endif + +#ifndef GAP_TRANSPORT_SUPPORTED +#define GAP_TRANSPORT_SUPPORTED GATT_TRANSPORT_LE_BR_EDR +#endif + +#ifndef GATTP_TRANSPORT_SUPPORTED +#define GATTP_TRANSPORT_SUPPORTED GATT_TRANSPORT_LE_BR_EDR +#endif + +#ifndef GATT_MAX_SR_PROFILES +#define GATT_MAX_SR_PROFILES 8 /* max is 32 */ +#endif + +#ifndef GATT_MAX_APPS +#define GATT_MAX_APPS 8 /* MAX is 32 note: 2 apps used internally GATT and GAP */ +#endif + +#ifndef GATT_MAX_PHY_CHANNEL +#define GATT_MAX_PHY_CHANNEL 7 +#endif + +/* Used for conformance testing ONLY */ +#ifndef GATT_CONFORMANCE_TESTING +#define GATT_CONFORMANCE_TESTING FALSE +#endif + +/* number of background connection device allowence, ideally to be the same as WL size +*/ +#ifndef GATT_MAX_BG_CONN_DEV +#define GATT_MAX_BG_CONN_DEV 8 /*MAX is 32*/ +#endif + +/****************************************************************************** +** +** GATT +** +******************************************************************************/ +#ifndef GATTC_INCLUDED +#if BLE_INCLUDED == TRUE +#define GATTC_INCLUDED TRUE +#else +#define GATTC_INCLUDED FALSE +#endif +#endif + +#ifndef GATTS_INCLUDED +#if BLE_INCLUDED == TRUE +#define GATTS_INCLUDED TRUE +#else +#define GATTS_INCLUDED FALSE +#endif +#endif + + +#if SMP_INCLUDED == TRUE && BLE_INCLUDED == FALSE +#error "can't have SMP without BLE" +#endif + + +/****************************************************************************** +** +** SMP +** +******************************************************************************/ +#ifndef SMP_INCLUDED +#if BLE_INCLUDED == TRUE +#define SMP_INCLUDED TRUE +#else +#define SMP_INCLUDED FALSE +#endif +#endif + +#if SMP_INCLUDED == TRUE && BLE_INCLUDED == FALSE +#error "can't have SMP without BLE" +#endif + +#ifndef SMP_DEBUG +#define SMP_DEBUG FALSE +#endif + +#ifndef SMP_DEFAULT_AUTH_REQ +#define SMP_DEFAULT_AUTH_REQ SMP_AUTH_NB_ENC_ONLY +#endif + +#ifndef SMP_MAX_ENC_KEY_SIZE +#define SMP_MAX_ENC_KEY_SIZE 16 +#endif + +#ifndef SMP_MIN_ENC_KEY_SIZE +#define SMP_MIN_ENC_KEY_SIZE 7 +#endif + +/* minimum link timeout after SMP pairing is done, leave room for key exchange + and racing condition for the following service connection. + Prefer greater than 0 second, and no less than default inactivity link idle + timer(L2CAP_LINK_INACTIVITY_TOUT) in l2cap) */ +#ifndef SMP_LINK_TOUT_MIN +#if (L2CAP_LINK_INACTIVITY_TOUT > 0) +#define SMP_LINK_TOUT_MIN L2CAP_LINK_INACTIVITY_TOUT +#else +#define SMP_LINK_TOUT_MIN 2 +#endif +#endif +/****************************************************************************** +** +** SDP +** +******************************************************************************/ + +#ifndef SDP_INCLUDED +#define SDP_INCLUDED FALSE //TRUE +#endif + +/* This is set to enable SDP server functionality. */ +#ifndef SDP_SERVER_ENABLED +#if SDP_INCLUDED == TRUE +#define SDP_SERVER_ENABLED TRUE +#else +#define SDP_SERVER_ENABLED FALSE +#endif +#endif + +/* This is set to enable SDP client functionality. */ +#ifndef SDP_CLIENT_ENABLED +#if SDP_INCLUDED == TRUE +#define SDP_CLIENT_ENABLED TRUE +#else +#define SDP_CLIENT_ENABLED FALSE +#endif +#endif + +/* The maximum number of SDP records the server can support. */ +#ifndef SDP_MAX_RECORDS +#define SDP_MAX_RECORDS 15 /*max is 30*/ +#endif + +/* The maximum number of attributes in each record. */ +#ifndef SDP_MAX_REC_ATTR +#define SDP_MAX_REC_ATTR 25 +#endif + +#ifndef SDP_MAX_PAD_LEN +#define SDP_MAX_PAD_LEN 600 +#endif + +/* The maximum length, in bytes, of an attribute. */ +#ifndef SDP_MAX_ATTR_LEN +#define SDP_MAX_ATTR_LEN 400 +#endif + +/* The maximum number of attribute filters supported by SDP databases. */ +#ifndef SDP_MAX_ATTR_FILTERS +#define SDP_MAX_ATTR_FILTERS 15 +#endif + +/* The maximum number of UUID filters supported by SDP databases. */ +#ifndef SDP_MAX_UUID_FILTERS +#define SDP_MAX_UUID_FILTERS 3 +#endif + +/* The maximum number of record handles retrieved in a search. */ +#ifndef SDP_MAX_DISC_SERVER_RECS +#define SDP_MAX_DISC_SERVER_RECS 21 +#endif + +/* The size of a scratchpad buffer, in bytes, for storing the response to an attribute request. */ +#ifndef SDP_MAX_LIST_BYTE_COUNT +#define SDP_MAX_LIST_BYTE_COUNT 4096 +#endif + +/* The maximum number of parameters in an SDP protocol element. */ +#ifndef SDP_MAX_PROTOCOL_PARAMS +#define SDP_MAX_PROTOCOL_PARAMS 2 +#endif + +/* The maximum number of simultaneous client and server connections. */ +#ifndef SDP_MAX_CONNECTIONS +#define SDP_MAX_CONNECTIONS 2 // 4 +#endif + +/* The MTU size for the L2CAP configuration. */ +#ifndef SDP_MTU_SIZE +#define SDP_MTU_SIZE 672 +#endif + +/* The flush timeout for the L2CAP configuration. */ +#ifndef SDP_FLUSH_TO +#define SDP_FLUSH_TO 0xFFFF +#endif + +/* The name for security authorization. */ +#ifndef SDP_SERVICE_NAME +#define SDP_SERVICE_NAME "Service Discovery" +#endif + +/* The security level for BTM. */ +#ifndef SDP_SECURITY_LEVEL +#define SDP_SECURITY_LEVEL BTM_SEC_NONE +#endif + +/****************************************************************************** +** +** RFCOMM +** +******************************************************************************/ +#ifndef RFCOMM_INCLUDED +#define RFCOMM_INCLUDED FALSE +#endif + +/* The maximum number of ports supported. */ +#ifndef MAX_RFC_PORTS +#define MAX_RFC_PORTS 16 /*max is 30*/ +#endif + +/* The maximum simultaneous links to different devices. */ +#ifndef MAX_ACL_CONNECTIONS +#define MAX_BD_CONNECTIONS 3 /*max is 7*/ +#else +#define MAX_BD_CONNECTIONS MAX_ACL_CONNECTIONS +#endif + +/* The port receive queue low watermark level, in bytes. */ +#ifndef PORT_RX_LOW_WM +#define PORT_RX_LOW_WM (BTA_RFC_MTU_SIZE * PORT_RX_BUF_LOW_WM) +#endif + +/* The port receive queue high watermark level, in bytes. */ +#ifndef PORT_RX_HIGH_WM +#define PORT_RX_HIGH_WM (BTA_RFC_MTU_SIZE * PORT_RX_BUF_HIGH_WM) +#endif + +/* The port receive queue critical watermark level, in bytes. */ +#ifndef PORT_RX_CRITICAL_WM +#define PORT_RX_CRITICAL_WM (BTA_RFC_MTU_SIZE * PORT_RX_BUF_CRITICAL_WM) +#endif + +/* The port receive queue low watermark level, in number of buffers. */ +#ifndef PORT_RX_BUF_LOW_WM +#define PORT_RX_BUF_LOW_WM 4 +#endif + +/* The port receive queue high watermark level, in number of buffers. */ +#ifndef PORT_RX_BUF_HIGH_WM +#define PORT_RX_BUF_HIGH_WM 10 +#endif + +/* The port receive queue critical watermark level, in number of buffers. */ +#ifndef PORT_RX_BUF_CRITICAL_WM +#define PORT_RX_BUF_CRITICAL_WM 15 +#endif + +/* The port transmit queue high watermark level, in bytes. */ +#ifndef PORT_TX_HIGH_WM +#define PORT_TX_HIGH_WM (BTA_RFC_MTU_SIZE * PORT_TX_BUF_HIGH_WM) +#endif + +/* The port transmit queue critical watermark level, in bytes. */ +#ifndef PORT_TX_CRITICAL_WM +#define PORT_TX_CRITICAL_WM (BTA_RFC_MTU_SIZE * PORT_TX_BUF_CRITICAL_WM) +#endif + +/* The port transmit queue high watermark level, in number of buffers. */ +#ifndef PORT_TX_BUF_HIGH_WM +#define PORT_TX_BUF_HIGH_WM 10 +#endif + +/* The port transmit queue high watermark level, in number of buffers. */ +#ifndef PORT_TX_BUF_CRITICAL_WM +#define PORT_TX_BUF_CRITICAL_WM 15 +#endif + +/* The RFCOMM multiplexer preferred flow control mechanism. */ +#ifndef PORT_FC_DEFAULT +#define PORT_FC_DEFAULT PORT_FC_CREDIT +#endif + +/* The maximum number of credits receiver sends to peer when using credit-based flow control. */ +#ifndef PORT_CREDIT_RX_MAX +#define PORT_CREDIT_RX_MAX 16 +#endif + +/* The credit low watermark level. */ +#ifndef PORT_CREDIT_RX_LOW +#define PORT_CREDIT_RX_LOW 8 +#endif + +/* if application like BTA, Java or script test engine is running on other than BTU thread, */ +/* PORT_SCHEDULE_LOCK shall be defined as GKI_sched_lock() or GKI_disable() */ +#ifndef PORT_SCHEDULE_LOCK +#define PORT_SCHEDULE_LOCK GKI_disable() +#endif + +/* if application like BTA, Java or script test engine is running on other than BTU thread, */ +/* PORT_SCHEDULE_LOCK shall be defined as GKI_sched_unlock() or GKI_enable() */ +#ifndef PORT_SCHEDULE_UNLOCK +#define PORT_SCHEDULE_UNLOCK GKI_enable() +#endif + +/****************************************************************************** +** +** OBEX +** +******************************************************************************/ +#define OBX_14_INCLUDED FALSE + +/* The maximum number of registered servers. */ +#ifndef OBX_NUM_SERVERS +#define OBX_NUM_SERVERS 12 +#endif + +/* The maximum number of active clients. */ +#ifndef OBX_NUM_CLIENTS +#define OBX_NUM_CLIENTS 8 +#endif + +/* This option is application when OBX_14_INCLUDED=TRUE + Pool ID where to reassemble the SDU. + This Pool will allow buffers to be used that are larger than + the L2CAP_MAX_MTU. */ +#ifndef OBX_USER_RX_POOL_ID +#define OBX_USER_RX_POOL_ID OBX_LRG_DATA_POOL_ID +#endif + +/* This option is application when OBX_14_INCLUDED=TRUE + Pool ID where to hold the SDU. + This Pool will allow buffers to be used that are larger than + the L2CAP_MAX_MTU. */ +#ifndef OBX_USER_TX_POOL_ID +#define OBX_USER_TX_POOL_ID OBX_LRG_DATA_POOL_ID +#endif + +/* This option is application when OBX_14_INCLUDED=TRUE +GKI Buffer Pool ID used to hold MPS segments during SDU reassembly +*/ +#ifndef OBX_FCR_RX_POOL_ID +#define OBX_FCR_RX_POOL_ID HCI_ACL_POOL_ID +#endif + +/* This option is application when OBX_14_INCLUDED=TRUE +GKI Buffer Pool ID used to hold MPS segments used in (re)transmissions. +L2CAP_DEFAULT_ERM_POOL_ID is specified to use the HCI ACL data pool. +Note: This pool needs to have enough buffers to hold two times the window size negotiated + in the L2CA_SetFCROptions (2 * tx_win_size) to allow for retransmissions. + The size of each buffer must be able to hold the maximum MPS segment size passed in + L2CA_SetFCROptions plus BT_HDR (8) + HCI preamble (4) + L2CAP_MIN_OFFSET (11 - as of BT 2.1 + EDR Spec). +*/ +#ifndef OBX_FCR_TX_POOL_ID +#define OBX_FCR_TX_POOL_ID HCI_ACL_POOL_ID +#endif + +/* This option is application when OBX_14_INCLUDED=TRUE +Size of the transmission window when using enhanced retransmission mode. Not used +in basic and streaming modes. Range: 1 - 63 +*/ +#ifndef OBX_FCR_OPT_TX_WINDOW_SIZE_BR_EDR +#define OBX_FCR_OPT_TX_WINDOW_SIZE_BR_EDR 20 +#endif + +/* This option is application when OBX_14_INCLUDED=TRUE +Number of transmission attempts for a single I-Frame before taking +Down the connection. Used In ERTM mode only. Value is Ignored in basic and +Streaming modes. +Range: 0, 1-0xFF +0 - infinite retransmissions +1 - single transmission +*/ +#ifndef OBX_FCR_OPT_MAX_TX_B4_DISCNT +#define OBX_FCR_OPT_MAX_TX_B4_DISCNT 20 +#endif + +/* This option is application when OBX_14_INCLUDED=TRUE +Retransmission Timeout +Range: Minimum 2000 (2 secs) on BR/EDR when supporting PBF. + */ +#ifndef OBX_FCR_OPT_RETX_TOUT +#define OBX_FCR_OPT_RETX_TOUT 2000 +#endif + +/* This option is application when OBX_14_INCLUDED=TRUE +Monitor Timeout +Range: Minimum 12000 (12 secs) on BR/EDR when supporting PBF. +*/ +#ifndef OBX_FCR_OPT_MONITOR_TOUT +#define OBX_FCR_OPT_MONITOR_TOUT 12000 +#endif + +/* This option is application when OBX_14_INCLUDED=TRUE +Maximum PDU payload size. +Suggestion: The maximum amount of data that will fit into a 3-DH5 packet. +Range: 2 octets +*/ +#ifndef OBX_FCR_OPT_MAX_PDU_SIZE +#define OBX_FCR_OPT_MAX_PDU_SIZE L2CAP_MPS_OVER_BR_EDR +#endif + + +/****************************************************************************** +** +** BNEP +** +******************************************************************************/ + +#ifndef BNEP_INCLUDED +#define BNEP_INCLUDED FALSE//TRUE +#endif + +/* BNEP status API call is used mainly to get the L2CAP handle */ +#ifndef BNEP_SUPPORTS_STATUS_API +#define BNEP_SUPPORTS_STATUS_API FALSE//TRUE +#endif + +/* +** When BNEP connection changes roles after the connection is established +** we will do an authentication check again on the new role +*/ +#ifndef BNEP_DO_AUTH_FOR_ROLE_SWITCH +#define BNEP_DO_AUTH_FOR_ROLE_SWITCH FALSE//TRUE +#endif + + +/* Maximum number of protocol filters supported. */ +#ifndef BNEP_MAX_PROT_FILTERS +#define BNEP_MAX_PROT_FILTERS 5 +#endif + +/* Maximum number of multicast filters supported. */ +#ifndef BNEP_MAX_MULTI_FILTERS +#define BNEP_MAX_MULTI_FILTERS 5 +#endif + +/* Minimum MTU size. */ +#ifndef BNEP_MIN_MTU_SIZE +#define BNEP_MIN_MTU_SIZE L2CAP_MTU_SIZE +#endif + +/* Preferred MTU size. */ +#ifndef BNEP_MTU_SIZE +#define BNEP_MTU_SIZE BNEP_MIN_MTU_SIZE +#endif + +/* Maximum number of buffers allowed in transmit data queue. */ +#ifndef BNEP_MAX_XMITQ_DEPTH +#define BNEP_MAX_XMITQ_DEPTH 20 +#endif + +/* Maximum number BNEP of connections supported. */ +#ifndef BNEP_MAX_CONNECTIONS +#define BNEP_MAX_CONNECTIONS 7 +#endif + + +/****************************************************************************** +** +** AVDTP +** +******************************************************************************/ + +#ifndef AVDT_INCLUDED +#define AVDT_INCLUDED FALSE//TRUE +#endif + +/* Include reporting capability in AVDTP */ +#ifndef AVDT_REPORTING +#define AVDT_REPORTING FALSE//TRUE +#endif + +/* Include multiplexing capability in AVDTP */ +#ifndef AVDT_MULTIPLEXING +#define AVDT_MULTIPLEXING FALSE//TRUE +#endif + +/* Number of simultaneous links to different peer devices. */ +#ifndef AVDT_NUM_LINKS +#define AVDT_NUM_LINKS 2 +#endif + +/* Number of simultaneous stream endpoints. */ +#ifndef AVDT_NUM_SEPS +#define AVDT_NUM_SEPS 3 +#endif + +/* Number of transport channels setup per media stream(audio or video) */ +#ifndef AVDT_NUM_CHANNELS + +#if AVDT_REPORTING == TRUE +/* signaling, media and reporting channels */ +#define AVDT_NUM_CHANNELS 3 +#else +/* signaling and media channels */ +#define AVDT_NUM_CHANNELS 2 +#endif // AVDT_REPORTING + +#endif // AVDT_NUM_CHANNELS + +/* Number of transport channels setup by AVDT for all media streams + * AVDT_NUM_CHANNELS * Number of simultaneous streams. + */ +#ifndef AVDT_NUM_TC_TBL +#define AVDT_NUM_TC_TBL 6 +#endif + +/* Maximum size in bytes of the codec capabilities information element. */ +#ifndef AVDT_CODEC_SIZE +#define AVDT_CODEC_SIZE 10 +#endif + +/* Maximum size in bytes of the content protection information element. */ +#ifndef AVDT_PROTECT_SIZE +#define AVDT_PROTECT_SIZE 90 +#endif + +/* Maximum number of GKI buffers in the fragment queue (for video frames). + * Must be less than the number of buffers in the buffer pool of size AVDT_DATA_POOL_SIZE */ +#ifndef AVDT_MAX_FRAG_COUNT +#define AVDT_MAX_FRAG_COUNT 15 +#endif + +/****************************************************************************** +** +** PAN +** +******************************************************************************/ + +#ifndef PAN_INCLUDED +#define PAN_INCLUDED FALSE//TRUE +#endif + +/* This will enable the PANU role */ +#ifndef PAN_SUPPORTS_ROLE_PANU +#define PAN_SUPPORTS_ROLE_PANU FALSE//TRUE +#endif + +/* This will enable the GN role */ +#ifndef PAN_SUPPORTS_ROLE_GN +#define PAN_SUPPORTS_ROLE_GN FALSE//TRUE +#endif + +/* This will enable the NAP role */ +#ifndef PAN_SUPPORTS_ROLE_NAP +#define PAN_SUPPORTS_ROLE_NAP FALSE//TRUE +#endif + +/* This is just for debugging purposes */ +#ifndef PAN_SUPPORTS_DEBUG_DUMP +#define PAN_SUPPORTS_DEBUG_DUMP FALSE//TRUE +#endif + +/* Maximum number of PAN connections allowed */ +#ifndef MAX_PAN_CONNS +#define MAX_PAN_CONNS 7 +#endif + +/* Default service name for NAP role */ +#ifndef PAN_NAP_DEFAULT_SERVICE_NAME +#define PAN_NAP_DEFAULT_SERVICE_NAME "Network Access Point Service" +#endif + +/* Default service name for GN role */ +#ifndef PAN_GN_DEFAULT_SERVICE_NAME +#define PAN_GN_DEFAULT_SERVICE_NAME "Group Network Service" +#endif + +/* Default service name for PANU role */ +#ifndef PAN_PANU_DEFAULT_SERVICE_NAME +#define PAN_PANU_DEFAULT_SERVICE_NAME "PAN User Service" +#endif + +/* Default description for NAP role service */ +#ifndef PAN_NAP_DEFAULT_DESCRIPTION +#define PAN_NAP_DEFAULT_DESCRIPTION "NAP" +#endif + +/* Default description for GN role service */ +#ifndef PAN_GN_DEFAULT_DESCRIPTION +#define PAN_GN_DEFAULT_DESCRIPTION "GN" +#endif + +/* Default description for PANU role service */ +#ifndef PAN_PANU_DEFAULT_DESCRIPTION +#define PAN_PANU_DEFAULT_DESCRIPTION "PANU" +#endif + +/* Default Security level for PANU role. */ +#ifndef PAN_PANU_SECURITY_LEVEL +#define PAN_PANU_SECURITY_LEVEL 0 +#endif + +/* Default Security level for GN role. */ +#ifndef PAN_GN_SECURITY_LEVEL +#define PAN_GN_SECURITY_LEVEL 0 +#endif + +/* Default Security level for NAP role. */ +#ifndef PAN_NAP_SECURITY_LEVEL +#define PAN_NAP_SECURITY_LEVEL 0 +#endif + +/****************************************************************************** +** +** GAP +** +******************************************************************************/ + +#ifndef GAP_INCLUDED +#define GAP_INCLUDED TRUE +#endif + +/* This is set to enable use of GAP L2CAP connections. */ +#ifndef GAP_CONN_INCLUDED +#if GAP_INCLUDED == TRUE +#define GAP_CONN_INCLUDED TRUE +#else +#define GAP_CONN_INCLUDED FALSE +#endif +#endif + +/* This is set to enable posting event for data write */ +#ifndef GAP_CONN_POST_EVT_INCLUDED +#define GAP_CONN_POST_EVT_INCLUDED FALSE +#endif + +/* The maximum number of simultaneous GAP L2CAP connections. */ +#ifndef GAP_MAX_CONNECTIONS +#define GAP_MAX_CONNECTIONS 10 // 30 +#endif + +/* keep the raw data received from SDP server in database. */ +#ifndef SDP_RAW_DATA_INCLUDED +#define SDP_RAW_DATA_INCLUDED TRUE +#endif + +/* Inquiry duration in 1.28 second units. */ +#ifndef SDP_DEBUG +#define SDP_DEBUG TRUE +#endif + +/****************************************************************************** +** +** HID +** +******************************************************************************/ + +#ifndef HID_DEV_SUBCLASS +#define HID_DEV_SUBCLASS COD_MINOR_POINTING +#endif + +#ifndef HID_CONTROL_POOL_ID +#define HID_CONTROL_POOL_ID 2 +#endif + +#ifndef HID_INTERRUPT_POOL_ID +#define HID_INTERRUPT_POOL_ID 2 +#endif + +/************************************************************************* +** Definitions for Both HID-Host & Device +*/ +#ifndef HID_MAX_SVC_NAME_LEN +#define HID_MAX_SVC_NAME_LEN 32 +#endif + +#ifndef HID_MAX_SVC_DESCR_LEN +#define HID_MAX_SVC_DESCR_LEN 32 +#endif + +#ifndef HID_MAX_PROV_NAME_LEN +#define HID_MAX_PROV_NAME_LEN 32 +#endif + +/************************************************************************* +** Definitions for HID-Host +*/ +#ifndef HID_HOST_INCLUDED +#define HID_HOST_INCLUDED FALSE//TRUE +#endif + +#ifndef HID_HOST_MAX_DEVICES +#define HID_HOST_MAX_DEVICES 7 +#endif + +#ifndef HID_HOST_MTU +#define HID_HOST_MTU 640 +#endif + +#ifndef HID_HOST_FLUSH_TO +#define HID_HOST_FLUSH_TO 0xffff +#endif + +#ifndef HID_HOST_MAX_CONN_RETRY +#define HID_HOST_MAX_CONN_RETRY (3) +#endif + +#ifndef HID_HOST_REPAGE_WIN +#define HID_HOST_REPAGE_WIN (2) +#endif + +/************************************************************************* + * A2DP Definitions + */ +#ifndef A2D_INCLUDED +#define A2D_INCLUDED FALSE//TRUE +#endif + +/****************************************************************************** +** +** AVCTP +** +******************************************************************************/ + +/* Number of simultaneous ACL links to different peer devices. */ +#ifndef AVCT_NUM_LINKS +#define AVCT_NUM_LINKS 2 +#endif + +/* Number of simultaneous AVCTP connections. */ +#ifndef AVCT_NUM_CONN +#define AVCT_NUM_CONN 3 +#endif + +/****************************************************************************** +** +** AVRCP +** +******************************************************************************/ +#ifndef AVRC_INCLUDED +#define AVRC_INCLUDED FALSE +#endif + +#ifndef AVRC_METADATA_INCLUDED +#if AVRC_INCLUDED == TRUE +#define AVRC_METADATA_INCLUDED TRUE +#else +#define AVRC_METADATA_INCLUDED FALSE +#endif +#endif + +#ifndef AVRC_ADV_CTRL_INCLUDED +#if AVRC_INCLUDED == TRUE +#define AVRC_ADV_CTRL_INCLUDED TRUE +#else +#define AVRC_ADV_CTRL_INCLUDED FALSE +#endif +#endif + +#ifndef AVRC_CTLR_INCLUDED +#if AVRC_INCLUDED == TRUE +#define AVRC_CTLR_INCLUDED TRUE +#else +#define AVRC_CTLR_INCLUDED FALSE +#endif +#endif + +/****************************************************************************** +** +** MCAP +** +******************************************************************************/ +#ifndef MCA_INCLUDED +#define MCA_INCLUDED FALSE +#endif + +/* The MTU size for the L2CAP configuration on control channel. 48 is the minimal */ +#ifndef MCA_CTRL_MTU +#define MCA_CTRL_MTU 60 +#endif + +/* The maximum number of registered MCAP instances. */ +#ifndef MCA_NUM_REGS +#define MCA_NUM_REGS 12 +#endif + +/* The maximum number of control channels (to difference devices) per registered MCAP instances. */ +#ifndef MCA_NUM_LINKS +#define MCA_NUM_LINKS 3 +#endif + +/* The maximum number of MDEP (including HDP echo) per registered MCAP instances. */ +#ifndef MCA_NUM_DEPS +#define MCA_NUM_DEPS 13 +#endif + +/* The maximum number of MDL link per control channel. */ +#ifndef MCA_NUM_MDLS +#define MCA_NUM_MDLS 4 +#endif + +/* Pool ID where to reassemble the SDU. */ +#ifndef MCA_USER_RX_POOL_ID +#define MCA_USER_RX_POOL_ID HCI_ACL_POOL_ID +#endif + +/* Pool ID where to hold the SDU. */ +#ifndef MCA_USER_TX_POOL_ID +#define MCA_USER_TX_POOL_ID HCI_ACL_POOL_ID +#endif + +/* +GKI Buffer Pool ID used to hold MPS segments during SDU reassembly +*/ +#ifndef MCA_FCR_RX_POOL_ID +#define MCA_FCR_RX_POOL_ID HCI_ACL_POOL_ID +#endif + +/* +GKI Buffer Pool ID used to hold MPS segments used in (re)transmissions. +L2CAP_DEFAULT_ERM_POOL_ID is specified to use the HCI ACL data pool. +Note: This pool needs to have enough buffers to hold two times the window size negotiated + in the tL2CAP_FCR_OPTIONS (2 * tx_win_size) to allow for retransmissions. + The size of each buffer must be able to hold the maximum MPS segment size passed in + tL2CAP_FCR_OPTIONS plus BT_HDR (8) + HCI preamble (4) + L2CAP_MIN_OFFSET (11 - as of BT 2.1 + EDR Spec). +*/ +#ifndef MCA_FCR_TX_POOL_ID +#define MCA_FCR_TX_POOL_ID HCI_ACL_POOL_ID +#endif + +/* MCAP control channel FCR Option: +Size of the transmission window when using enhanced retransmission mode. +1 is defined by HDP specification for control channel. +*/ +#ifndef MCA_FCR_OPT_TX_WINDOW_SIZE +#define MCA_FCR_OPT_TX_WINDOW_SIZE 1 +#endif + +/* MCAP control channel FCR Option: +Number of transmission attempts for a single I-Frame before taking +Down the connection. Used In ERTM mode only. Value is Ignored in basic and +Streaming modes. +Range: 0, 1-0xFF +0 - infinite retransmissions +1 - single transmission +*/ +#ifndef MCA_FCR_OPT_MAX_TX_B4_DISCNT +#define MCA_FCR_OPT_MAX_TX_B4_DISCNT 20 +#endif + +/* MCAP control channel FCR Option: Retransmission Timeout +The AVRCP specification set a value in the range of 300 - 2000 ms +Timeout (in msecs) to detect Lost I-Frames. Only used in Enhanced retransmission mode. +Range: Minimum 2000 (2 secs) when supporting PBF. + */ +#ifndef MCA_FCR_OPT_RETX_TOUT +#define MCA_FCR_OPT_RETX_TOUT 2000 +#endif + +/* MCAP control channel FCR Option: Monitor Timeout +The AVRCP specification set a value in the range of 300 - 2000 ms +Timeout (in msecs) to detect Lost S-Frames. Only used in Enhanced retransmission mode. +Range: Minimum 12000 (12 secs) when supporting PBF. +*/ +#ifndef MCA_FCR_OPT_MONITOR_TOUT +#define MCA_FCR_OPT_MONITOR_TOUT 12000 +#endif + +/* MCAP control channel FCR Option: Maximum PDU payload size. +The maximum number of payload octets that the local device can receive in a single PDU. +*/ +#ifndef MCA_FCR_OPT_MPS_SIZE +#define MCA_FCR_OPT_MPS_SIZE 1000 +#endif + +/* Shared transport */ +#ifndef NFC_SHARED_TRANSPORT_ENABLED +#define NFC_SHARED_TRANSPORT_ENABLED FALSE +#endif + +/****************************************************************************** +** +** Sleep Mode (Low Power Mode) +** +******************************************************************************/ + +#ifndef HCILP_INCLUDED +#define HCILP_INCLUDED FALSE//TRUE +#endif + +/****************************************************************************** +** +** APPL - Application Task +** +******************************************************************************/ + +#define L2CAP_FEATURE_REQ_ID 73 +#define L2CAP_FEATURE_RSP_ID 173 + +/****************************************************************************** +** +** BTA +** +******************************************************************************/ +/* BTA EIR canned UUID list (default is dynamic) */ +#ifndef BTA_EIR_CANNED_UUID_LIST +#define BTA_EIR_CANNED_UUID_LIST FALSE +#endif + +/* Number of supported customer UUID in EIR */ +#ifndef BTA_EIR_SERVER_NUM_CUSTOM_UUID +#define BTA_EIR_SERVER_NUM_CUSTOM_UUID 8 +#endif + +/* CHLD override for bluedroid */ +#ifndef BTA_AG_CHLD_VAL_ECC +#define BTA_AG_CHLD_VAL_ECC "(0,1,1x,2,2x,3)" +#endif + +#ifndef BTA_AG_CHLD_VAL +#define BTA_AG_CHLD_VAL "(0,1,2,3)" +#endif + +/* Set the CIND to match HFP 1.5 */ +#ifndef BTA_AG_CIND_INFO +#define BTA_AG_CIND_INFO "(\"call\",(0,1)),(\"callsetup\",(0-3)),(\"service\",(0-1)),(\"signal\",(0-5)),(\"roam\",(0,1)),(\"battchg\",(0-5)),(\"callheld\",(0-2))" +#endif + +#ifndef BTA_DM_AVOID_A2DP_ROLESWITCH_ON_INQUIRY +#define BTA_DM_AVOID_A2DP_ROLESWITCH_ON_INQUIRY FALSE//TRUE +#endif + +/****************************************************************************** +** +** Tracing: Include trace header file here. +** +******************************************************************************/ + +/* Enable/disable BTSnoop memory logging */ +#ifndef BTSNOOP_MEM +#define BTSNOOP_MEM FALSE//TRUE +#endif + +#include "bt_trace.h" + +#endif /* BT_TARGET_H */ diff --git a/tools/sdk/include/bluedroid/bt_trace.h b/tools/sdk/include/bluedroid/bt_trace.h new file mode 100644 index 00000000..787c4c8a --- /dev/null +++ b/tools/sdk/include/bluedroid/bt_trace.h @@ -0,0 +1,470 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _BT_TRACE_H_ +#define _BT_TRACE_H_ + +#include +#include "bt_types.h" + +#include "esp_log.h" + +#define TAG "BT" + +#define BT_PRINTF(fmt, ...) ESP_LOGE(TAG, fmt, ##__VA_ARGS__) + +#ifndef assert +#define assert(x) do { if (!(x)) BT_PRINTF("bt host error %s %u\n", __FILE__, __LINE__); } while (0) +#endif + +inline void trc_dump_buffer(const char *prefix, uint8_t *data, uint16_t len) +{ + uint16_t i; + + if (!data || !len) { + return; + } + + if (prefix) { + BT_PRINTF("%s: len %d\n", prefix, len); + } + + for (i = 0; i < len; i+=16) { + BT_PRINTF("%02x, %02x, %02x, %02x, %02x, %02x, %02x, %02x, %02x, %02x, %02x, %02x, %02x, %02x, %02x, %02x\n", + *(data + i), *(data + i + 1), *(data + i + 2), *(data + i + 3), *(data + i + 4), *(data + i + 5), *(data + i + 6), *(data + i + 7), + *(data + i + 8), *(data + i + 9), *(data + i + 10), *(data + i + 11), *(data + i + 12), *(data + i + 13), *(data + i + 14), *(data + i + 15)); + } + BT_PRINTF("\n"); +} + +#ifdef BTTRC_DUMP_BUFFER +#define BTTRC_DUMP_BUFFER(_prefix, _data, _len) trc_dump_buffer(_data, _len) +#else +#define BTTRC_DUMP_BUFFER(_prefix, _data, _len) +#endif + +//static const char BTE_LOGMSG_MODULE[] = "bte_logmsg_module"; + +/* BTrgs);E tracing IDs for debug purposes */ +/* LayerIDs for stack */ +#define BTTRC_ID_STK_GKI 1 +#define BTTRC_ID_STK_BTU 2 +#define BTTRC_ID_STK_HCI 3 +#define BTTRC_ID_STK_L2CAP 4 +#define BTTRC_ID_STK_RFCM_MX 5 +#define BTTRC_ID_STK_RFCM_PRT 6 +#define BTTRC_ID_STK_OBEX_C 7 +#define BTTRC_ID_STK_OBEX_S 8 +#define BTTRC_ID_STK_AVCT 9 +#define BTTRC_ID_STK_AVDT 10 +#define BTTRC_ID_STK_AVRC 11 +#define BTTRC_ID_STK_BIC 12 +#define BTTRC_ID_STK_BIS 13 +#define BTTRC_ID_STK_BNEP 14 +#define BTTRC_ID_STK_BPP 15 +#define BTTRC_ID_STK_BTM_ACL 16 +#define BTTRC_ID_STK_BTM_PM 17 +#define BTTRC_ID_STK_BTM_DEV_CTRL 18 +#define BTTRC_ID_STK_BTM_SVC_DSC 19 +#define BTTRC_ID_STK_BTM_INQ 20 +#define BTTRC_ID_STK_BTM_SCO 21 +#define BTTRC_ID_STK_BTM_SEC 22 +#define BTTRC_ID_STK_HID 24 +#define BTTRC_ID_STK_HSP2 25 +#define BTTRC_ID_STK_CTP 26 +#define BTTRC_ID_STK_FTC 27 +#define BTTRC_ID_STK_FTS 28 +#define BTTRC_ID_STK_GAP 29 +#define BTTRC_ID_STK_HCRP 31 +#define BTTRC_ID_STK_ICP 32 +#define BTTRC_ID_STK_OPC 33 +#define BTTRC_ID_STK_OPS 34 +#define BTTRC_ID_STK_PAN 35 +#define BTTRC_ID_STK_SAP 36 +#define BTTRC_ID_STK_SDP 37 +#define BTTRC_ID_STK_SLIP 38 +#define BTTRC_ID_STK_SPP 39 +#define BTTRC_ID_STK_TCS 40 +#define BTTRC_ID_STK_VDP 41 +#define BTTRC_ID_STK_MCAP 42 +#define BTTRC_ID_STK_GATT 43 +#define BTTRC_ID_STK_SMP 44 +#define BTTRC_ID_STK_NFC 45 +#define BTTRC_ID_STK_NCI 46 +#define BTTRC_ID_STK_IDEP 47 +#define BTTRC_ID_STK_NDEP 48 +#define BTTRC_ID_STK_LLCP 49 +#define BTTRC_ID_STK_RW 50 +#define BTTRC_ID_STK_CE 51 +#define BTTRC_ID_STK_SNEP 52 +#define BTTRC_ID_STK_NDEF 53 + +/* LayerIDs for BTA */ +#define BTTRC_ID_BTA_ACC 55 /* Advanced Camera Client */ +#define BTTRC_ID_BTA_AG 56 /* audio gateway */ +#define BTTRC_ID_BTA_AV 57 /* Advanced audio */ +#define BTTRC_ID_BTA_BIC 58 /* Basic Imaging Client */ +#define BTTRC_ID_BTA_BIS 59 /* Basic Imaging Server */ +#define BTTRC_ID_BTA_BP 60 /* Basic Printing Client */ +#define BTTRC_ID_BTA_CG 61 +#define BTTRC_ID_BTA_CT 62 /* cordless telephony terminal */ +#define BTTRC_ID_BTA_DG 63 /* data gateway */ +#define BTTRC_ID_BTA_DM 64 /* device manager */ +#define BTTRC_ID_BTA_DM_SRCH 65 /* device manager search */ +#define BTTRC_ID_BTA_DM_SEC 66 /* device manager security */ +#define BTTRC_ID_BTA_FM 67 +#define BTTRC_ID_BTA_FTC 68 /* file transfer client */ +#define BTTRC_ID_BTA_FTS 69 /* file transfer server */ +#define BTTRC_ID_BTA_HIDH 70 +#define BTTRC_ID_BTA_HIDD 71 +#define BTTRC_ID_BTA_JV 72 +#define BTTRC_ID_BTA_OPC 73 /* object push client */ +#define BTTRC_ID_BTA_OPS 74 /* object push server */ +#define BTTRC_ID_BTA_PAN 75 /* Personal Area Networking */ +#define BTTRC_ID_BTA_PR 76 /* Printer client */ +#define BTTRC_ID_BTA_SC 77 /* SIM Card Access server */ +#define BTTRC_ID_BTA_SS 78 /* synchronization server */ +#define BTTRC_ID_BTA_SYS 79 /* system manager */ +#define BTTRC_ID_AVDT_SCB 80 /* avdt scb */ +#define BTTRC_ID_AVDT_CCB 81 /* avdt ccb */ + +// btla-specific ++ +/* LayerIDs added for BTL-A. Probably should modify bte_logmsg.c in future. */ +#define BTTRC_ID_STK_RFCOMM 82 +#define BTTRC_ID_STK_RFCOMM_DATA 83 +#define BTTRC_ID_STK_OBEX 84 +#define BTTRC_ID_STK_A2D 85 +#define BTTRC_ID_STK_BIP 86 + +/* LayerIDs for BT APP */ +#define BTTRC_ID_BTAPP 87 +#define BTTRC_ID_BT_PROTOCOL 88 /* this is a temporary solution to allow dynamic + enable/disable of BT_PROTOCOL_TRACE */ +#define BTTRC_ID_MAX_ID BTTRC_ID_BT_PROTOCOL +// btla-specific -- +#define BTTRC_ID_ALL_LAYERS 0xFF /* all trace layers */ +/* Parameter datatypes used in Trace APIs */ +#define BTTRC_PARAM_UINT8 1 +#define BTTRC_PARAM_UINT16 2 +#define BTTRC_PARAM_UINT32 3 + +/* Enables or disables verbose trace information. */ +#ifndef BT_TRACE_VERBOSE +#define BT_TRACE_VERBOSE FALSE +#endif + +/* Enables or disables all trace messages. */ +#ifndef BT_USE_TRACES +#define BT_USE_TRACES TRUE +#endif + +/****************************************************************************** +** +** Trace Levels +** +** The following values may be used for different levels: +** BT_TRACE_LEVEL_NONE 0 * No trace messages to be generated +** BT_TRACE_LEVEL_ERROR 1 * Error condition trace messages +** BT_TRACE_LEVEL_WARNING 2 * Warning condition trace messages +** BT_TRACE_LEVEL_API 3 * API traces +** BT_TRACE_LEVEL_EVENT 4 * Debug messages for events +** BT_TRACE_LEVEL_DEBUG 5 * Debug messages (general) +******************************************************************************/ + +// btla-specific ++ +/* Core Stack default trace levels */ +#ifndef HCI_INITIAL_TRACE_LEVEL +#define HCI_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef BTM_INITIAL_TRACE_LEVEL +#define BTM_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef L2CAP_INITIAL_TRACE_LEVEL +#define L2CAP_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef RFCOMM_INITIAL_TRACE_LEVEL +#define RFCOMM_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef SDP_INITIAL_TRACE_LEVEL +#define SDP_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef GAP_INITIAL_TRACE_LEVEL +#define GAP_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef BNEP_INITIAL_TRACE_LEVEL +#define BNEP_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef PAN_INITIAL_TRACE_LEVEL +#define PAN_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef A2D_INITIAL_TRACE_LEVEL +#define A2D_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef AVDT_INITIAL_TRACE_LEVEL +#define AVDT_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef AVCT_INITIAL_TRACE_LEVEL +#define AVCT_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef AVRC_INITIAL_TRACE_LEVEL +#define AVRC_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef MCA_INITIAL_TRACE_LEVEL +#define MCA_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef HID_INITIAL_TRACE_LEVEL +#define HID_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef APPL_INITIAL_TRACE_LEVEL +#define APPL_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef BT_TRACE_APPL +#define BT_TRACE_APPL BT_USE_TRACES +#endif + +#ifndef GATT_INITIAL_TRACE_LEVEL +#define GATT_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif + +#ifndef SMP_INITIAL_TRACE_LEVEL +#define SMP_INITIAL_TRACE_LEVEL BT_TRACE_LEVEL_WARNING +#endif +// btla-specific -- + +/* Define common tracing for all */ +#define LOG_LEVEL_ERROR 1 +#define LOG_LEVEL_WARN 2 +#define LOG_LEVEL_INFO 3 +#define LOG_LEVEL_DEBUG 4 +#define LOG_LEVEL_VERBOSE 5 +#ifndef LOG_LEVEL +#define LOG_LEVEL LOG_LEVEL_INFO +#endif +#define LOG_ERROR(fmt, args...) do {if (LOG_LEVEL >= LOG_LEVEL_ERROR) BT_PRINTF(fmt,## args);} while(0) +#define LOG_WARN(fmt, args...) do {if (LOG_LEVEL >= LOG_LEVEL_WARN) BT_PRINTF(fmt,## args);} while(0) +#define LOG_INFO(fmt, args...) do {if (LOG_LEVEL >= LOG_LEVEL_INFO) BT_PRINTF(fmt,## args);} while(0) +#define LOG_DEBUG(fmt, args...) do {if (LOG_LEVEL >= LOG_LEVEL_DEBUG) BT_PRINTF(fmt,## args);} while(0) +#define LOG_VERBOSE(fmt, args...) do {if (LOG_LEVEL >= LOG_LEVEL_VERBOSE) BT_PRINTF(fmt,## args);} while(0) + +/* Define tracing for the HCI unit +*/ +#define HCI_TRACE_ERROR(fmt, args...) {if (btu_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt,## args);} +#define HCI_TRACE_WARNING(fmt, args...) {if (btu_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt,## args);} +#define HCI_TRACE_EVENT(fmt, args...) {if (btu_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt,## args);} +#define HCI_TRACE_DEBUG(fmt, args...) {if (btu_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt,## args);} + +/* Define tracing for BTM +*/ +#define BTM_TRACE_ERROR(fmt, args...) {if (btm_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define BTM_TRACE_WARNING(fmt, args...) {if (btm_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define BTM_TRACE_API(fmt, args...) {if (btm_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define BTM_TRACE_EVENT(fmt, args...) {if (btm_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define BTM_TRACE_DEBUG(fmt, args...) {if (btm_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} + +/* Define tracing for the L2CAP unit +*/ +#define L2CAP_TRACE_ERROR(fmt, args...) {if (l2cb.l2cap_trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define L2CAP_TRACE_WARNING(fmt, args...) {if (l2cb.l2cap_trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define L2CAP_TRACE_API(fmt, args...) {if (l2cb.l2cap_trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define L2CAP_TRACE_EVENT(fmt, args...) {if (l2cb.l2cap_trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define L2CAP_TRACE_DEBUG(fmt, args...) {if (l2cb.l2cap_trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} + +/* Define tracing for the SDP unit +*/ +#define SDP_TRACE_ERROR(fmt, args...) {if (sdp_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define SDP_TRACE_WARNING(fmt, args...) {if (sdp_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define SDP_TRACE_API(fmt, args...) {if (sdp_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define SDP_TRACE_EVENT(fmt, args...) {if (sdp_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define SDP_TRACE_DEBUG(fmt, args...) {if (sdp_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} + +/* Define tracing for the RFCOMM unit +*/ +#define RFCOMM_TRACE_ERROR(fmt, args...) {if (rfc_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define RFCOMM_TRACE_WARNING(fmt, args...) {if (rfc_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define RFCOMM_TRACE_API(fmt, args...) {if (rfc_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define RFCOMM_TRACE_EVENT(fmt, args...) {if (rfc_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define RFCOMM_TRACE_DEBUG(fmt, args...) {if (rfc_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} + +/* Generic Access Profile traces */ +#define GAP_TRACE_ERROR(fmt, args...) {if (gap_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define GAP_TRACE_EVENT(fmt, args...) {if (gap_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define GAP_TRACE_API(fmt, args...) {if (gap_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define GAP_TRACE_WARNING(fmt, args...) {if (gap_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} + +/* define traces for HID Host */ +#define HIDH_TRACE_ERROR(fmt, args...) {if (hh_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define HIDH_TRACE_WARNING(fmt, args...) {if (hh_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define HIDH_TRACE_API(fmt, args...) {if (hh_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define HIDH_TRACE_EVENT(fmt, args...) {if (hh_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define HIDH_TRACE_DEBUG(fmt, args...) {if (hh_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} + +/* define traces for BNEP */ + +#define BNEP_TRACE_ERROR(fmt, args...) {if (bnep_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define BNEP_TRACE_WARNING(fmt, args...) {if (bnep_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define BNEP_TRACE_API(fmt, args...) {if (bnep_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define BNEP_TRACE_EVENT(fmt, args...) {if (bnep_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define BNEP_TRACE_DEBUG(fmt, args...) {if (bnep_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} + +/* define traces for PAN */ + +#define PAN_TRACE_ERROR(fmt, args...) {if (pan_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define PAN_TRACE_WARNING(fmt, args...) {if (pan_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define PAN_TRACE_API(fmt, args...) {if (pan_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define PAN_TRACE_EVENT(fmt, args...) {if (pan_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define PAN_TRACE_DEBUG(fmt, args...) {if (pan_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} + +/* Define tracing for the A2DP profile +*/ +#define A2D_TRACE_ERROR(fmt, args...) {if (a2d_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define A2D_TRACE_WARNING(fmt, args...) {if (a2d_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define A2D_TRACE_EVENT(fmt, args...) {if (a2d_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define A2D_TRACE_DEBUG(fmt, args...) {if (a2d_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} +#define A2D_TRACE_API(fmt, args...) {if (a2d_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} + +/* AVDTP +*/ +#define AVDT_TRACE_ERROR(fmt, args...) {if (avdt_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define AVDT_TRACE_WARNING(fmt, args...) {if (avdt_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define AVDT_TRACE_EVENT(fmt, args...) {if (avdt_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define AVDT_TRACE_DEBUG(fmt, args...) {if (avdt_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} +#define AVDT_TRACE_API(fmt, args...) {if (avdt_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} + +/* Define tracing for the AVCTP protocol +*/ +#define AVCT_TRACE_ERROR(fmt, args...) {if (avct_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define AVCT_TRACE_WARNING(fmt, args...) {if (avct_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define AVCT_TRACE_EVENT(fmt, args...) {if (avct_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define AVCT_TRACE_DEBUG(fmt, args...) {if (avct_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} +#define AVCT_TRACE_API(fmt, args...) {if (avct_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} + +/* Define tracing for the AVRCP profile +*/ +#define AVRC_TRACE_ERROR(fmt, args...) {if (avrc_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define AVRC_TRACE_WARNING(fmt, args...) {if (avrc_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define AVRC_TRACE_EVENT(fmt, args...) {if (avrc_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define AVRC_TRACE_DEBUG(fmt, args...) {if (avrc_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} +#define AVRC_TRACE_API(fmt, args...) {if (avrc_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} + +/* MCAP +*/ +#define MCA_TRACE_ERROR(fmt, args...) {if (mca_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define MCA_TRACE_WARNING(fmt, args...) {if (mca_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define MCA_TRACE_EVENT(fmt, args...) {if (mca_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define MCA_TRACE_DEBUG(fmt, args...) {if (mca_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} +#define MCA_TRACE_API(fmt, args...) {if (mca_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} + +/* Define tracing for the ATT/GATT unit +*/ +#define GATT_TRACE_ERROR(fmt, args...) {if (gatt_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define GATT_TRACE_WARNING(fmt, args...) {if (gatt_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define GATT_TRACE_API(fmt, args...) {if (gatt_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define GATT_TRACE_EVENT(fmt, args...) {if (gatt_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define GATT_TRACE_DEBUG(fmt, args...) {if (gatt_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} + +/* Define tracing for the SMP unit +*/ +#define SMP_TRACE_ERROR(fmt, args...) {if (smp_cb.trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define SMP_TRACE_WARNING(fmt, args...) {if (smp_cb.trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define SMP_TRACE_API(fmt, args...) {if (smp_cb.trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define SMP_TRACE_EVENT(fmt, args...) {if (smp_cb.trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define SMP_TRACE_DEBUG(fmt, args...) {if (smp_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} + +extern UINT8 btif_trace_level; + +// define traces for application +#define BTIF_TRACE_ERROR(fmt, args...) {if (btif_trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define BTIF_TRACE_WARNING(fmt, args...) {if (btif_trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define BTIF_TRACE_API(fmt, args...) {if (btif_trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define BTIF_TRACE_EVENT(fmt, args...) {if (btif_trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define BTIF_TRACE_DEBUG(fmt, args...) {if (btif_trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} +#define BTIF_TRACE_VERBOSE(fmt, args...) {if (btif_trace_level >= BT_TRACE_LEVEL_VERBOSE)BT_PRINTF(fmt, ## args);} + +/* define traces for application */ + +#define APPL_TRACE_ERROR(fmt, args...) {if (appl_trace_level >= BT_TRACE_LEVEL_ERROR) BT_PRINTF(fmt, ## args);} +#define APPL_TRACE_WARNING(fmt, args...) {if (appl_trace_level >= BT_TRACE_LEVEL_WARNING) BT_PRINTF(fmt, ## args);} +#define APPL_TRACE_API(fmt, args...) {if (appl_trace_level >= BT_TRACE_LEVEL_API) BT_PRINTF(fmt, ## args);} +#define APPL_TRACE_EVENT(fmt, args...) {if (appl_trace_level >= BT_TRACE_LEVEL_EVENT) BT_PRINTF(fmt, ## args);} +#define APPL_TRACE_DEBUG(fmt, args...) {if (appl_trace_level >= BT_TRACE_LEVEL_DEBUG) BT_PRINTF(fmt, ## args);} +#define APPL_TRACE_VERBOSE(fmt, args...) {if (appl_trace_level >= BT_TRACE_LEVEL_VERBOSE) BT_PRINTF(fmt, ## args);} + +/* Simplified Trace Helper Macro +*/ +#define bdld(fmt, args...) \ + do{\ + if((MY_LOG_LEVEL) >= BT_TRACE_LEVEL_DEBUG) \ + BT_PRINTF(fmt, ## args); \ + }while(0) + +#define bdlw(fmt, args...) \ + do{\ + if((MY_LOG_LEVEL) >= BT_TRACE_LEVEL_DEBUG) \ + BT_PRINTF(fmt, ## args); \ + }while(0) + +#define bdle(fmt, args...) \ + do{\ + if((MY_LOG_LEVEL) >= BT_TRACE_LEVEL_DEBUG) \ + BT_PRINTF(fmt, ## args); \ + }while(0) + +#define bdla(assert_if) \ + do{\ + if(((MY_LOG_LEVEL) >= BT_TRACE_LEVEL_ERROR) && !(assert_if)) \ + BT_PRINTF("%s: assert failed\n", #assert_if); \ + }while(0) + +typedef UINT8 tBTTRC_PARAM_TYPE; +typedef UINT8 tBTTRC_LAYER_ID; +typedef UINT8 tBTTRC_TYPE; + +typedef struct { + tBTTRC_LAYER_ID layer_id; + tBTTRC_TYPE type; /* TODO: use tBTTRC_TYPE instead of "classical level 0-5" */ +} tBTTRC_LEVEL; + +typedef UINT8 (tBTTRC_SET_TRACE_LEVEL)( UINT8 ); + +typedef struct { + const tBTTRC_LAYER_ID layer_id_start; + const tBTTRC_LAYER_ID layer_id_end; + tBTTRC_SET_TRACE_LEVEL *p_f; + const char *trc_name; + UINT8 trace_level; +} tBTTRC_FUNC_MAP; + +/* External declaration for appl_trace_level here to avoid to add the declaration in all the files using APPL_TRACExxx macros */ +extern UINT8 appl_trace_level; + +#endif /*_BT_TRACE_H_*/ diff --git a/tools/sdk/include/bluedroid/bt_types.h b/tools/sdk/include/bluedroid/bt_types.h new file mode 100644 index 00000000..f2110150 --- /dev/null +++ b/tools/sdk/include/bluedroid/bt_types.h @@ -0,0 +1,789 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef BT_TYPES_H +#define BT_TYPES_H + +#include +#include + +#ifndef FALSE +# define FALSE false +#endif + +#ifndef TRUE +# define TRUE true +#endif + +typedef uint8_t UINT8; +typedef uint16_t UINT16; +typedef uint32_t UINT32; +typedef uint64_t UINT64; + +typedef int8_t INT8; +typedef int16_t INT16; +typedef int32_t INT32; +typedef bool BOOLEAN; + +#define PACKED __packed +#define INLINE __inline + +#define BCM_STRCPY_S(x1,x2,x3) strcpy((x1),(x3)) +#define BCM_STRNCPY_S(x1,x2,x3,x4) strncpy((x1),(x3),(x4)) + +/* READ WELL !! +** +** This section defines global events. These are events that cross layers. +** Any event that passes between layers MUST be one of these events. Tasks +** can use their own events internally, but a FUNDAMENTAL design issue is +** that global events MUST be one of these events defined below. +** +** The convention used is the the event name contains the layer that the +** event is going to. +*/ +#define BT_EVT_MASK 0xFF00 +#define BT_SUB_EVT_MASK 0x00FF +/* To Bluetooth Upper Layers */ +/************************************/ +#define BT_EVT_TO_BTU_L2C_EVT 0x0900 /* L2CAP event */ +#define BT_EVT_TO_BTU_HCI_EVT 0x1000 /* HCI Event */ +#define BT_EVT_TO_BTU_HCI_BR_EDR_EVT (0x0000 | BT_EVT_TO_BTU_HCI_EVT) /* event from BR/EDR controller */ +#define BT_EVT_TO_BTU_HCI_AMP1_EVT (0x0001 | BT_EVT_TO_BTU_HCI_EVT) /* event from local AMP 1 controller */ +#define BT_EVT_TO_BTU_HCI_AMP2_EVT (0x0002 | BT_EVT_TO_BTU_HCI_EVT) /* event from local AMP 2 controller */ +#define BT_EVT_TO_BTU_HCI_AMP3_EVT (0x0003 | BT_EVT_TO_BTU_HCI_EVT) /* event from local AMP 3 controller */ + +#define BT_EVT_TO_BTU_HCI_ACL 0x1100 /* ACL Data from HCI */ +#define BT_EVT_TO_BTU_HCI_SCO 0x1200 /* SCO Data from HCI */ +#define BT_EVT_TO_BTU_HCIT_ERR 0x1300 /* HCI Transport Error */ + +#define BT_EVT_TO_BTU_SP_EVT 0x1400 /* Serial Port Event */ +#define BT_EVT_TO_BTU_SP_DATA 0x1500 /* Serial Port Data */ + +#define BT_EVT_TO_BTU_HCI_CMD 0x1600 /* HCI command from upper layer */ + + +#define BT_EVT_TO_BTU_L2C_SEG_XMIT 0x1900 /* L2CAP segment(s) transmitted */ + +#define BT_EVT_PROXY_INCOMING_MSG 0x1A00 /* BlueStackTester event: incoming message from target */ + +#define BT_EVT_BTSIM 0x1B00 /* Insight BTSIM event */ +#define BT_EVT_BTISE 0x1C00 /* Insight Script Engine event */ + +/* To LM */ +/************************************/ +#define BT_EVT_TO_LM_HCI_CMD 0x2000 /* HCI Command */ +#define BT_EVT_TO_LM_HCI_ACL 0x2100 /* HCI ACL Data */ +#define BT_EVT_TO_LM_HCI_SCO 0x2200 /* HCI SCO Data */ +#define BT_EVT_TO_LM_HCIT_ERR 0x2300 /* HCI Transport Error */ +#define BT_EVT_TO_LM_LC_EVT 0x2400 /* LC event */ +#define BT_EVT_TO_LM_LC_LMP 0x2500 /* LC Received LMP command frame */ +#define BT_EVT_TO_LM_LC_ACL 0x2600 /* LC Received ACL data */ +#define BT_EVT_TO_LM_LC_SCO 0x2700 /* LC Received SCO data (not used) */ +#define BT_EVT_TO_LM_LC_ACL_TX 0x2800 /* LMP data transmit complete */ +#define BT_EVT_TO_LM_LC_LMPC_TX 0x2900 /* LMP Command transmit complete */ +#define BT_EVT_TO_LM_LOCAL_ACL_LB 0x2a00 /* Data to be locally loopbacked */ +#define BT_EVT_TO_LM_HCI_ACL_ACK 0x2b00 /* HCI ACL Data ack (not used) */ +#define BT_EVT_TO_LM_DIAG 0x2c00 /* LM Diagnostics commands */ + + +#define BT_EVT_TO_BTM_CMDS 0x2f00 +#define BT_EVT_TO_BTM_PM_MDCHG_EVT (0x0001 | BT_EVT_TO_BTM_CMDS) + +#define BT_EVT_TO_TCS_CMDS 0x3000 + +#define BT_EVT_TO_CTP_CMDS 0x3300 + +/* ftp events */ +#define BT_EVT_TO_FTP_SRVR_CMDS 0x3600 +#define BT_EVT_TO_FTP_CLNT_CMDS 0x3700 + +#define BT_EVT_TO_BTU_SAP 0x3800 /* SIM Access Profile events */ + +/* opp events */ +#define BT_EVT_TO_OPP_SRVR_CMDS 0x3900 +#define BT_EVT_TO_OPP_CLNT_CMDS 0x3a00 + +/* gap events */ +#define BT_EVT_TO_GAP_MSG 0x3b00 + +/* for NFC */ +/************************************/ +#define BT_EVT_TO_NFC_NCI 0x4000 /* NCI Command, Notification or Data*/ +#define BT_EVT_TO_NFC_INIT 0x4100 /* Initialization message */ +#define BT_EVT_TO_NCI_LP 0x4200 /* Low power */ +#define BT_EVT_TO_NFC_ERR 0x4300 /* Error notification to NFC Task */ + +#define BT_EVT_TO_NFCCSIM_NCI 0x4a00 /* events to NFCC simulation (NCI packets) */ + +/* HCISU Events */ + +#define BT_EVT_HCISU 0x5000 + +// btla-specific ++ +#define BT_EVT_TO_HCISU_RECONFIG_EVT (0x0001 | BT_EVT_HCISU) +#define BT_EVT_TO_HCISU_UPDATE_BAUDRATE_EVT (0x0002 | BT_EVT_HCISU) +#define BT_EVT_TO_HCISU_LP_ENABLE_EVT (0x0003 | BT_EVT_HCISU) +#define BT_EVT_TO_HCISU_LP_DISABLE_EVT (0x0004 | BT_EVT_HCISU) +// btla-specific -- +#define BT_EVT_TO_HCISU_LP_APP_SLEEPING_EVT (0x0005 | BT_EVT_HCISU) +#define BT_EVT_TO_HCISU_LP_ALLOW_BT_SLEEP_EVT (0x0006 | BT_EVT_HCISU) +#define BT_EVT_TO_HCISU_LP_WAKEUP_HOST_EVT (0x0007 | BT_EVT_HCISU) +#define BT_EVT_TO_HCISU_LP_RCV_H4IBSS_EVT (0x0008 | BT_EVT_HCISU) +#define BT_EVT_TO_HCISU_H5_RESET_EVT (0x0009 | BT_EVT_HCISU) +#define BT_EVT_HCISU_START_QUICK_TIMER (0x000a | BT_EVT_HCISU) + +#define BT_EVT_DATA_TO_AMP_1 0x5100 +#define BT_EVT_DATA_TO_AMP_15 0x5f00 + +/* HSP Events */ + +#define BT_EVT_BTU_HSP2 0x6000 + +#define BT_EVT_TO_BTU_HSP2_EVT (0x0001 | BT_EVT_BTU_HSP2) + +/* BPP Events */ +#define BT_EVT_TO_BPP_PR_CMDS 0x6100 /* Printer Events */ +#define BT_EVT_TO_BPP_SND_CMDS 0x6200 /* BPP Sender Events */ + +/* BIP Events */ +#define BT_EVT_TO_BIP_CMDS 0x6300 + +/* HCRP Events */ + +#define BT_EVT_BTU_HCRP 0x7000 + +#define BT_EVT_TO_BTU_HCRP_EVT (0x0001 | BT_EVT_BTU_HCRP) +#define BT_EVT_TO_BTU_HCRPM_EVT (0x0002 | BT_EVT_BTU_HCRP) + + +#define BT_EVT_BTU_HFP 0x8000 +#define BT_EVT_TO_BTU_HFP_EVT (0x0001 | BT_EVT_BTU_HFP) + +#define BT_EVT_BTU_IPC_EVT 0x9000 +#define BT_EVT_BTU_IPC_LOGMSG_EVT (0x0000 | BT_EVT_BTU_IPC_EVT) +#define BT_EVT_BTU_IPC_ACL_EVT (0x0001 | BT_EVT_BTU_IPC_EVT) +#define BT_EVT_BTU_IPC_BTU_EVT (0x0002 | BT_EVT_BTU_IPC_EVT) +#define BT_EVT_BTU_IPC_L2C_EVT (0x0003 | BT_EVT_BTU_IPC_EVT) +#define BT_EVT_BTU_IPC_L2C_MSG_EVT (0x0004 | BT_EVT_BTU_IPC_EVT) +#define BT_EVT_BTU_IPC_BTM_EVT (0x0005 | BT_EVT_BTU_IPC_EVT) +#define BT_EVT_BTU_IPC_AVDT_EVT (0x0006 | BT_EVT_BTU_IPC_EVT) +#define BT_EVT_BTU_IPC_SLIP_EVT (0x0007 | BT_EVT_BTU_IPC_EVT) +#define BT_EVT_BTU_IPC_MGMT_EVT (0x0008 | BT_EVT_BTU_IPC_EVT) +#define BT_EVT_BTU_IPC_BTTRC_EVT (0x0009 | BT_EVT_BTU_IPC_EVT) +#define BT_EVT_BTU_IPC_BURST_EVT (0x000A | BT_EVT_BTU_IPC_EVT) + + +/* BTIF Events */ +#define BT_EVT_BTIF 0xA000 +#define BT_EVT_CONTEXT_SWITCH_EVT (0x0001 | BT_EVT_BTIF) + +/* Define the header of each buffer used in the Bluetooth stack. +*/ +typedef struct { + uint16_t event; + uint16_t len; + uint16_t offset; + uint16_t layer_specific; + uint8_t data[]; +} BT_HDR; + +#define BT_HDR_SIZE (sizeof (BT_HDR)) + +#define BT_PSM_SDP 0x0001 +#define BT_PSM_RFCOMM 0x0003 +#define BT_PSM_TCS 0x0005 +#define BT_PSM_CTP 0x0007 +#define BT_PSM_BNEP 0x000F +#define BT_PSM_HIDC 0x0011 +#define BT_PSM_HIDI 0x0013 +#define BT_PSM_UPNP 0x0015 +#define BT_PSM_AVCTP 0x0017 +#define BT_PSM_AVDTP 0x0019 +#define BT_PSM_AVCTP_13 0x001B /* Advanced Control - Browsing */ +#define BT_PSM_UDI_CP 0x001D /* Unrestricted Digital Information Profile C-Plane */ +#define BT_PSM_ATT 0x001F /* Attribute Protocol */ + + +/* These macros extract the HCI opcodes from a buffer +*/ +#define HCI_GET_CMD_HDR_OPCODE(p) (UINT16)((*((UINT8 *)((p) + 1) + p->offset) + \ + (*((UINT8 *)((p) + 1) + p->offset + 1) << 8))) +#define HCI_GET_CMD_HDR_PARAM_LEN(p) (UINT8) (*((UINT8 *)((p) + 1) + p->offset + 2)) + +#define HCI_GET_EVT_HDR_OPCODE(p) (UINT8)(*((UINT8 *)((p) + 1) + p->offset)) +#define HCI_GET_EVT_HDR_PARAM_LEN(p) (UINT8) (*((UINT8 *)((p) + 1) + p->offset + 1)) + + +/******************************************************************************** +** Macros to get and put bytes to and from a stream (Little Endian format). +*/ +#define UINT32_TO_STREAM(p, u32) {*(p)++ = (UINT8)(u32); *(p)++ = (UINT8)((u32) >> 8); *(p)++ = (UINT8)((u32) >> 16); *(p)++ = (UINT8)((u32) >> 24);} +#define UINT24_TO_STREAM(p, u24) {*(p)++ = (UINT8)(u24); *(p)++ = (UINT8)((u24) >> 8); *(p)++ = (UINT8)((u24) >> 16);} +#define UINT16_TO_STREAM(p, u16) {*(p)++ = (UINT8)(u16); *(p)++ = (UINT8)((u16) >> 8);} +#define UINT8_TO_STREAM(p, u8) {*(p)++ = (UINT8)(u8);} +#define INT8_TO_STREAM(p, u8) {*(p)++ = (INT8)(u8);} +#define ARRAY32_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < 32; ijk++) *(p)++ = (UINT8) a[31 - ijk];} +#define ARRAY16_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < 16; ijk++) *(p)++ = (UINT8) a[15 - ijk];} +#define ARRAY8_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < 8; ijk++) *(p)++ = (UINT8) a[7 - ijk];} +#define BDADDR_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < BD_ADDR_LEN; ijk++) *(p)++ = (UINT8) a[BD_ADDR_LEN - 1 - ijk];} +#define LAP_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < LAP_LEN; ijk++) *(p)++ = (UINT8) a[LAP_LEN - 1 - ijk];} +#define DEVCLASS_TO_STREAM(p, a) {register int ijk; for (ijk = 0; ijk < DEV_CLASS_LEN;ijk++) *(p)++ = (UINT8) a[DEV_CLASS_LEN - 1 - ijk];} +#define ARRAY_TO_STREAM(p, a, len) {register int ijk; for (ijk = 0; ijk < len; ijk++) *(p)++ = (UINT8) a[ijk];} +#define REVERSE_ARRAY_TO_STREAM(p, a, len) {register int ijk; for (ijk = 0; ijk < len; ijk++) *(p)++ = (UINT8) a[len - 1 - ijk];} + +#define STREAM_TO_UINT8(u8, p) {u8 = (UINT8)(*(p)); (p) += 1;} +#define STREAM_TO_UINT16(u16, p) {u16 = ((UINT16)(*(p)) + (((UINT16)(*((p) + 1))) << 8)); (p) += 2;} +#define STREAM_TO_UINT24(u32, p) {u32 = (((UINT32)(*(p))) + ((((UINT32)(*((p) + 1)))) << 8) + ((((UINT32)(*((p) + 2)))) << 16) ); (p) += 3;} +#define STREAM_TO_UINT32(u32, p) {u32 = (((UINT32)(*(p))) + ((((UINT32)(*((p) + 1)))) << 8) + ((((UINT32)(*((p) + 2)))) << 16) + ((((UINT32)(*((p) + 3)))) << 24)); (p) += 4;} +#define STREAM_TO_BDADDR(a, p) {register int ijk; register UINT8 *pbda = (UINT8 *)a + BD_ADDR_LEN - 1; for (ijk = 0; ijk < BD_ADDR_LEN; ijk++) *pbda-- = *p++;} +#define STREAM_TO_ARRAY32(a, p) {register int ijk; register UINT8 *_pa = (UINT8 *)a + 31; for (ijk = 0; ijk < 32; ijk++) *_pa-- = *p++;} +#define STREAM_TO_ARRAY16(a, p) {register int ijk; register UINT8 *_pa = (UINT8 *)a + 15; for (ijk = 0; ijk < 16; ijk++) *_pa-- = *p++;} +#define STREAM_TO_ARRAY8(a, p) {register int ijk; register UINT8 *_pa = (UINT8 *)a + 7; for (ijk = 0; ijk < 8; ijk++) *_pa-- = *p++;} +#define STREAM_TO_DEVCLASS(a, p) {register int ijk; register UINT8 *_pa = (UINT8 *)a + DEV_CLASS_LEN - 1; for (ijk = 0; ijk < DEV_CLASS_LEN; ijk++) *_pa-- = *p++;} +#define STREAM_TO_LAP(a, p) {register int ijk; register UINT8 *plap = (UINT8 *)a + LAP_LEN - 1; for (ijk = 0; ijk < LAP_LEN; ijk++) *plap-- = *p++;} +#define STREAM_TO_ARRAY(a, p, len) {register int ijk; for (ijk = 0; ijk < len; ijk++) ((UINT8 *) a)[ijk] = *p++;} +#define REVERSE_STREAM_TO_ARRAY(a, p, len) {register int ijk; register UINT8 *_pa = (UINT8 *)a + len - 1; for (ijk = 0; ijk < len; ijk++) *_pa-- = *p++;} + +#define STREAM_SKIP_UINT8(p) do { (p) += 1; } while (0) +#define STREAM_SKIP_UINT16(p) do { (p) += 2; } while (0) + +/******************************************************************************** +** Macros to get and put bytes to and from a field (Little Endian format). +** These are the same as to stream, except the pointer is not incremented. +*/ +#define UINT32_TO_FIELD(p, u32) {*(UINT8 *)(p) = (UINT8)(u32); *((UINT8 *)(p)+1) = (UINT8)((u32) >> 8); *((UINT8 *)(p)+2) = (UINT8)((u32) >> 16); *((UINT8 *)(p)+3) = (UINT8)((u32) >> 24);} +#define UINT24_TO_FIELD(p, u24) {*(UINT8 *)(p) = (UINT8)(u24); *((UINT8 *)(p)+1) = (UINT8)((u24) >> 8); *((UINT8 *)(p)+2) = (UINT8)((u24) >> 16);} +#define UINT16_TO_FIELD(p, u16) {*(UINT8 *)(p) = (UINT8)(u16); *((UINT8 *)(p)+1) = (UINT8)((u16) >> 8);} +#define UINT8_TO_FIELD(p, u8) {*(UINT8 *)(p) = (UINT8)(u8);} + + +/******************************************************************************** +** Macros to get and put bytes to and from a stream (Big Endian format) +*/ +#define UINT32_TO_BE_STREAM(p, u32) {*(p)++ = (UINT8)((u32) >> 24); *(p)++ = (UINT8)((u32) >> 16); *(p)++ = (UINT8)((u32) >> 8); *(p)++ = (UINT8)(u32); } +#define UINT24_TO_BE_STREAM(p, u24) {*(p)++ = (UINT8)((u24) >> 16); *(p)++ = (UINT8)((u24) >> 8); *(p)++ = (UINT8)(u24);} +#define UINT16_TO_BE_STREAM(p, u16) {*(p)++ = (UINT8)((u16) >> 8); *(p)++ = (UINT8)(u16);} +#define UINT8_TO_BE_STREAM(p, u8) {*(p)++ = (UINT8)(u8);} +#define ARRAY_TO_BE_STREAM(p, a, len) {register int ijk; for (ijk = 0; ijk < len; ijk++) *(p)++ = (UINT8) a[ijk];} +#define ARRAY_TO_BE_STREAM_REVERSE(p, a, len) {register int ijk; for (ijk = 0; ijk < len; ijk++) *(p)++ = (UINT8) a[len - ijk - 1];} + +#define BE_STREAM_TO_UINT8(u8, p) {u8 = (UINT8)(*(p)); (p) += 1;} +#define BE_STREAM_TO_UINT16(u16, p) {u16 = (UINT16)(((UINT16)(*(p)) << 8) + (UINT16)(*((p) + 1))); (p) += 2;} +#define BE_STREAM_TO_UINT24(u32, p) {u32 = (((UINT32)(*((p) + 2))) + ((UINT32)(*((p) + 1)) << 8) + ((UINT32)(*(p)) << 16)); (p) += 3;} +#define BE_STREAM_TO_UINT32(u32, p) {u32 = ((UINT32)(*((p) + 3)) + ((UINT32)(*((p) + 2)) << 8) + ((UINT32)(*((p) + 1)) << 16) + ((UINT32)(*(p)) << 24)); (p) += 4;} +#define BE_STREAM_TO_ARRAY(p, a, len) {register int ijk; for (ijk = 0; ijk < len; ijk++) ((UINT8 *) a)[ijk] = *p++;} + + +/******************************************************************************** +** Macros to get and put bytes to and from a field (Big Endian format). +** These are the same as to stream, except the pointer is not incremented. +*/ +#define UINT32_TO_BE_FIELD(p, u32) {*(UINT8 *)(p) = (UINT8)((u32) >> 24); *((UINT8 *)(p)+1) = (UINT8)((u32) >> 16); *((UINT8 *)(p)+2) = (UINT8)((u32) >> 8); *((UINT8 *)(p)+3) = (UINT8)(u32); } +#define UINT24_TO_BE_FIELD(p, u24) {*(UINT8 *)(p) = (UINT8)((u24) >> 16); *((UINT8 *)(p)+1) = (UINT8)((u24) >> 8); *((UINT8 *)(p)+2) = (UINT8)(u24);} +#define UINT16_TO_BE_FIELD(p, u16) {*(UINT8 *)(p) = (UINT8)((u16) >> 8); *((UINT8 *)(p)+1) = (UINT8)(u16);} +#define UINT8_TO_BE_FIELD(p, u8) {*(UINT8 *)(p) = (UINT8)(u8);} + + +/* Common Bluetooth field definitions */ +#define BD_ADDR_LEN 6 /* Device address length */ +typedef UINT8 BD_ADDR[BD_ADDR_LEN]; /* Device address */ +typedef UINT8 *BD_ADDR_PTR; /* Pointer to Device Address */ + +#define AMP_KEY_TYPE_GAMP 0 +#define AMP_KEY_TYPE_WIFI 1 +#define AMP_KEY_TYPE_UWB 2 +typedef UINT8 tAMP_KEY_TYPE; + +#define BT_OCTET8_LEN 8 +typedef UINT8 BT_OCTET8[BT_OCTET8_LEN]; /* octet array: size 16 */ + +#define LINK_KEY_LEN 16 +typedef UINT8 LINK_KEY[LINK_KEY_LEN]; /* Link Key */ + +#define AMP_LINK_KEY_LEN 32 +typedef UINT8 AMP_LINK_KEY[AMP_LINK_KEY_LEN]; /* Dedicated AMP and GAMP Link Keys */ + +#define BT_OCTET16_LEN 16 +typedef UINT8 BT_OCTET16[BT_OCTET16_LEN]; /* octet array: size 16 */ + +#define PIN_CODE_LEN 16 +typedef UINT8 PIN_CODE[PIN_CODE_LEN]; /* Pin Code (upto 128 bits) MSB is 0 */ +typedef UINT8 *PIN_CODE_PTR; /* Pointer to Pin Code */ + +#define BT_OCTET32_LEN 32 +typedef UINT8 BT_OCTET32[BT_OCTET32_LEN]; /* octet array: size 32 */ + +#define DEV_CLASS_LEN 3 +typedef UINT8 DEV_CLASS[DEV_CLASS_LEN]; /* Device class */ +typedef UINT8 *DEV_CLASS_PTR; /* Pointer to Device class */ + +#define EXT_INQ_RESP_LEN 3 +typedef UINT8 EXT_INQ_RESP[EXT_INQ_RESP_LEN];/* Extended Inquiry Response */ +typedef UINT8 *EXT_INQ_RESP_PTR; /* Pointer to Extended Inquiry Response */ + +#define BD_NAME_LEN 248 +typedef UINT8 BD_NAME[BD_NAME_LEN + 1]; /* Device name */ +typedef UINT8 *BD_NAME_PTR; /* Pointer to Device name */ + +#define BD_FEATURES_LEN 8 +typedef UINT8 BD_FEATURES[BD_FEATURES_LEN]; /* LMP features supported by device */ + +#define BT_EVENT_MASK_LEN 8 +typedef UINT8 BT_EVENT_MASK[BT_EVENT_MASK_LEN]; /* Event Mask */ + +#define LAP_LEN 3 +typedef UINT8 LAP[LAP_LEN]; /* IAC as passed to Inquiry (LAP) */ +typedef UINT8 INQ_LAP[LAP_LEN]; /* IAC as passed to Inquiry (LAP) */ + +#define RAND_NUM_LEN 16 +typedef UINT8 RAND_NUM[RAND_NUM_LEN]; + +#define ACO_LEN 12 +typedef UINT8 ACO[ACO_LEN]; /* Authenticated ciphering offset */ + +#define COF_LEN 12 +typedef UINT8 COF[COF_LEN]; /* ciphering offset number */ + +typedef struct { + UINT8 qos_flags; /* TBD */ + UINT8 service_type; /* see below */ + UINT32 token_rate; /* bytes/second */ + UINT32 token_bucket_size; /* bytes */ + UINT32 peak_bandwidth; /* bytes/second */ + UINT32 latency; /* microseconds */ + UINT32 delay_variation; /* microseconds */ +} FLOW_SPEC; + +/* Values for service_type */ +#define NO_TRAFFIC 0 +#define BEST_EFFORT 1 +#define GUARANTEED 2 + +/* Service class of the CoD */ +#define SERV_CLASS_NETWORKING (1 << 1) +#define SERV_CLASS_RENDERING (1 << 2) +#define SERV_CLASS_CAPTURING (1 << 3) +#define SERV_CLASS_OBJECT_TRANSFER (1 << 4) +#define SERV_CLASS_OBJECT_AUDIO (1 << 5) +#define SERV_CLASS_OBJECT_TELEPHONY (1 << 6) +#define SERV_CLASS_OBJECT_INFORMATION (1 << 7) + +/* Second byte */ +#define SERV_CLASS_LIMITED_DISC_MODE (0x20) + +/* Field size definitions. Note that byte lengths are rounded up. */ +#define ACCESS_CODE_BIT_LEN 72 +#define ACCESS_CODE_BYTE_LEN 9 +#define SHORTENED_ACCESS_CODE_BIT_LEN 68 + +typedef UINT8 ACCESS_CODE[ACCESS_CODE_BYTE_LEN]; + +#define SYNTH_TX 1 /* want synth code to TRANSMIT at this freq */ +#define SYNTH_RX 2 /* want synth code to RECEIVE at this freq */ + +#define SYNC_REPS 1 /* repeats of sync word transmitted to start of burst */ + +/* Bluetooth CLK27 */ +#define BT_CLK27 (2 << 26) + +/* Bluetooth CLK12 is 1.28 sec */ +#define BT_CLK12_TO_MS(x) ((x) * 1280) +#define BT_MS_TO_CLK12(x) ((x) / 1280) +#define BT_CLK12_TO_SLOTS(x) ((x) << 11) + +/* Bluetooth CLK is 0.625 msec */ +#define BT_CLK_TO_MS(x) (((x) * 5 + 3) / 8) +#define BT_MS_TO_CLK(x) (((x) * 8 + 2) / 5) + +#define BT_CLK_TO_MICROSECS(x) (((x) * 5000 + 3) / 8) +#define BT_MICROSECS_TO_CLK(x) (((x) * 8 + 2499) / 5000) + +/* Maximum UUID size - 16 bytes, and structure to hold any type of UUID. */ +#define MAX_UUID_SIZE 16 +typedef struct { +#define LEN_UUID_16 2 +#define LEN_UUID_32 4 +#define LEN_UUID_128 16 + + UINT16 len; + + union { + UINT16 uuid16; + UINT32 uuid32; + UINT8 uuid128[MAX_UUID_SIZE]; + } uu; + +} tBT_UUID; + +#define BT_EIR_FLAGS_TYPE 0x01 +#define BT_EIR_MORE_16BITS_UUID_TYPE 0x02 +#define BT_EIR_COMPLETE_16BITS_UUID_TYPE 0x03 +#define BT_EIR_MORE_32BITS_UUID_TYPE 0x04 +#define BT_EIR_COMPLETE_32BITS_UUID_TYPE 0x05 +#define BT_EIR_MORE_128BITS_UUID_TYPE 0x06 +#define BT_EIR_COMPLETE_128BITS_UUID_TYPE 0x07 +#define BT_EIR_SHORTENED_LOCAL_NAME_TYPE 0x08 +#define BT_EIR_COMPLETE_LOCAL_NAME_TYPE 0x09 +#define BT_EIR_TX_POWER_LEVEL_TYPE 0x0A +#define BT_EIR_OOB_BD_ADDR_TYPE 0x0C +#define BT_EIR_OOB_COD_TYPE 0x0D +#define BT_EIR_OOB_SSP_HASH_C_TYPE 0x0E +#define BT_EIR_OOB_SSP_RAND_R_TYPE 0x0F +#define BT_EIR_MANUFACTURER_SPECIFIC_TYPE 0xFF + +#define BT_OOB_COD_SIZE 3 +#define BT_OOB_HASH_C_SIZE 16 +#define BT_OOB_RAND_R_SIZE 16 + +/* Broadcom proprietary UUIDs and reserved PSMs +** +** The lowest 4 bytes byte of the UUID or GUID depends on the feature. Typically, +** the value of those bytes will be the PSM or SCN, but it is up to the features. +*/ +#define BRCM_PROPRIETARY_UUID_BASE 0xDA, 0x23, 0x41, 0x02, 0xA3, 0xBB, 0xC1, 0x71, 0xBA, 0x09, 0x6f, 0x21 +#define BRCM_PROPRIETARY_GUID_BASE 0xda23, 0x4102, 0xa3, 0xbb, 0xc1, 0x71, 0xba, 0x09, 0x6f, 0x21 + +/* We will not allocate a PSM in the reserved range to 3rd party apps +*/ +#define BRCM_RESERVED_PSM_START 0x5AE1 +#define BRCM_RESERVED_PSM_END 0x5AFF + +#define BRCM_UTILITY_SERVICE_PSM 0x5AE1 +#define BRCM_MATCHER_PSM 0x5AE3 + +/* Connection statistics +*/ + +/* Structure to hold connection stats */ +#ifndef BT_CONN_STATS_DEFINED +#define BT_CONN_STATS_DEFINED + +/* These bits are used in the bIsConnected field */ +#define BT_CONNECTED_USING_BREDR 1 +#define BT_CONNECTED_USING_AMP 2 + +typedef struct { + UINT32 is_connected; + INT32 rssi; + UINT32 bytes_sent; + UINT32 bytes_rcvd; + UINT32 duration; +} tBT_CONN_STATS; + +#endif + + +/***************************************************************************** +** Low Energy definitions +** +** Address types +*/ +#define BLE_ADDR_PUBLIC 0x00 +#define BLE_ADDR_RANDOM 0x01 +#define BLE_ADDR_PUBLIC_ID 0x02 +#define BLE_ADDR_RANDOM_ID 0x03 +typedef UINT8 tBLE_ADDR_TYPE; +#define BLE_ADDR_TYPE_MASK (BLE_ADDR_RANDOM | BLE_ADDR_PUBLIC) + +#define BT_TRANSPORT_INVALID 0 +#define BT_TRANSPORT_BR_EDR 1 +#define BT_TRANSPORT_LE 2 +typedef UINT8 tBT_TRANSPORT; + +#define BLE_ADDR_IS_STATIC(x) ((x[0] & 0xC0) == 0xC0) + +typedef struct { + tBLE_ADDR_TYPE type; + BD_ADDR bda; +} tBLE_BD_ADDR; + +/* Device Types +*/ +#define BT_DEVICE_TYPE_BREDR 0x01 +#define BT_DEVICE_TYPE_BLE 0x02 +#define BT_DEVICE_TYPE_DUMO 0x03 +typedef UINT8 tBT_DEVICE_TYPE; +/*****************************************************************************/ + + +/* Define trace levels */ +#define BT_TRACE_LEVEL_NONE 0 /* No trace messages to be generated */ +#define BT_TRACE_LEVEL_ERROR 1 /* Error condition trace messages */ +#define BT_TRACE_LEVEL_WARNING 2 /* Warning condition trace messages */ +#define BT_TRACE_LEVEL_API 3 /* API traces */ +#define BT_TRACE_LEVEL_EVENT 4 /* Debug messages for events */ +#define BT_TRACE_LEVEL_DEBUG 5 /* Full debug messages */ +#define BT_TRACE_LEVEL_VERBOSE 6 /* Verbose debug messages */ + +#define MAX_TRACE_LEVEL 6 + + +/* Define New Trace Type Definition */ +/* TRACE_CTRL_TYPE 0x^^000000*/ +#define TRACE_CTRL_MASK 0xff000000 +#define TRACE_GET_CTRL(x) ((((UINT32)(x)) & TRACE_CTRL_MASK) >> 24) + +#define TRACE_CTRL_GENERAL 0x00000000 +#define TRACE_CTRL_STR_RESOURCE 0x01000000 +#define TRACE_CTRL_SEQ_FLOW 0x02000000 +#define TRACE_CTRL_MAX_NUM 3 + +/* LAYER SPECIFIC 0x00^^0000*/ +#define TRACE_LAYER_MASK 0x00ff0000 +#define TRACE_GET_LAYER(x) ((((UINT32)(x)) & TRACE_LAYER_MASK) >> 16) + +#define TRACE_LAYER_NONE 0x00000000 +#define TRACE_LAYER_USB 0x00010000 +#define TRACE_LAYER_SERIAL 0x00020000 +#define TRACE_LAYER_SOCKET 0x00030000 +#define TRACE_LAYER_RS232 0x00040000 +#define TRACE_LAYER_TRANS_MAX_NUM 5 +#define TRACE_LAYER_TRANS_ALL 0x007f0000 +#define TRACE_LAYER_LC 0x00050000 +#define TRACE_LAYER_LM 0x00060000 +#define TRACE_LAYER_HCI 0x00070000 +#define TRACE_LAYER_L2CAP 0x00080000 +#define TRACE_LAYER_RFCOMM 0x00090000 +#define TRACE_LAYER_SDP 0x000a0000 +#define TRACE_LAYER_TCS 0x000b0000 +#define TRACE_LAYER_OBEX 0x000c0000 +#define TRACE_LAYER_BTM 0x000d0000 +#define TRACE_LAYER_GAP 0x000e0000 +#define TRACE_LAYER_ICP 0x00110000 +#define TRACE_LAYER_HSP2 0x00120000 +#define TRACE_LAYER_SPP 0x00130000 +#define TRACE_LAYER_CTP 0x00140000 +#define TRACE_LAYER_BPP 0x00150000 +#define TRACE_LAYER_HCRP 0x00160000 +#define TRACE_LAYER_FTP 0x00170000 +#define TRACE_LAYER_OPP 0x00180000 +#define TRACE_LAYER_BTU 0x00190000 +#define TRACE_LAYER_GKI 0x001a0000 +#define TRACE_LAYER_BNEP 0x001b0000 +#define TRACE_LAYER_PAN 0x001c0000 +#define TRACE_LAYER_HFP 0x001d0000 +#define TRACE_LAYER_HID 0x001e0000 +#define TRACE_LAYER_BIP 0x001f0000 +#define TRACE_LAYER_AVP 0x00200000 +#define TRACE_LAYER_A2D 0x00210000 +#define TRACE_LAYER_SAP 0x00220000 +#define TRACE_LAYER_AMP 0x00230000 +#define TRACE_LAYER_MCA 0x00240000 +#define TRACE_LAYER_ATT 0x00250000 +#define TRACE_LAYER_SMP 0x00260000 +#define TRACE_LAYER_NFC 0x00270000 +#define TRACE_LAYER_NCI 0x00280000 +#define TRACE_LAYER_LLCP 0x00290000 +#define TRACE_LAYER_NDEF 0x002a0000 +#define TRACE_LAYER_RW 0x002b0000 +#define TRACE_LAYER_CE 0x002c0000 +#define TRACE_LAYER_P2P 0x002d0000 +#define TRACE_LAYER_SNEP 0x002e0000 +#define TRACE_LAYER_CHO 0x002f0000 +#define TRACE_LAYER_NFA 0x00300000 + +#define TRACE_LAYER_MAX_NUM 0x0031 + + +/* TRACE_ORIGINATOR 0x0000^^00*/ +#define TRACE_ORG_MASK 0x0000ff00 +#define TRACE_GET_ORG(x) ((((UINT32)(x)) & TRACE_ORG_MASK) >> 8) + +#define TRACE_ORG_STACK 0x00000000 +#define TRACE_ORG_HCI_TRANS 0x00000100 +#define TRACE_ORG_PROTO_DISP 0x00000200 +#define TRACE_ORG_RPC 0x00000300 +#define TRACE_ORG_GKI 0x00000400 +#define TRACE_ORG_APPL 0x00000500 +#define TRACE_ORG_SCR_WRAPPER 0x00000600 +#define TRACE_ORG_SCR_ENGINE 0x00000700 +#define TRACE_ORG_USER_SCR 0x00000800 +#define TRACE_ORG_TESTER 0x00000900 +#define TRACE_ORG_MAX_NUM 10 /* 32-bit mask; must be < 32 */ +#define TRACE_LITE_ORG_MAX_NUM 6 +#define TRACE_ORG_ALL 0x03ff +#define TRACE_ORG_RPC_TRANS 0x04 + +#define TRACE_ORG_REG 0x00000909 +#define TRACE_ORG_REG_SUCCESS 0x0000090a + +/* TRACE_TYPE 0x000000^^*/ +#define TRACE_TYPE_MASK 0x000000ff +#define TRACE_GET_TYPE(x) (((UINT32)(x)) & TRACE_TYPE_MASK) + +#define TRACE_TYPE_ERROR 0x00000000 +#define TRACE_TYPE_WARNING 0x00000001 +#define TRACE_TYPE_API 0x00000002 +#define TRACE_TYPE_EVENT 0x00000003 +#define TRACE_TYPE_DEBUG 0x00000004 +#define TRACE_TYPE_STACK_ONLY_MAX TRACE_TYPE_DEBUG +#define TRACE_TYPE_TX 0x00000005 +#define TRACE_TYPE_RX 0x00000006 +#define TRACE_TYPE_DEBUG_ASSERT 0x00000007 +#define TRACE_TYPE_GENERIC 0x00000008 +#define TRACE_TYPE_REG 0x00000009 +#define TRACE_TYPE_REG_SUCCESS 0x0000000a +#define TRACE_TYPE_CMD_TX 0x0000000b +#define TRACE_TYPE_EVT_TX 0x0000000c +#define TRACE_TYPE_ACL_TX 0x0000000d +#define TRACE_TYPE_CMD_RX 0x0000000e +#define TRACE_TYPE_EVT_RX 0x0000000f +#define TRACE_TYPE_ACL_RX 0x00000010 +#define TRACE_TYPE_TARGET_TRACE 0x00000011 +#define TRACE_TYPE_SCO_TX 0x00000012 +#define TRACE_TYPE_SCO_RX 0x00000013 + + +#define TRACE_TYPE_MAX_NUM 20 +#define TRACE_TYPE_ALL 0xffff + +/* Define color for script type */ +#define SCR_COLOR_DEFAULT 0 +#define SCR_COLOR_TYPE_COMMENT 1 +#define SCR_COLOR_TYPE_COMMAND 2 +#define SCR_COLOR_TYPE_EVENT 3 +#define SCR_COLOR_TYPE_SELECT 4 + +/* Define protocol trace flag values */ +#define SCR_PROTO_TRACE_HCI_SUMMARY 0x00000001 +#define SCR_PROTO_TRACE_HCI_DATA 0x00000002 +#define SCR_PROTO_TRACE_L2CAP 0x00000004 +#define SCR_PROTO_TRACE_RFCOMM 0x00000008 +#define SCR_PROTO_TRACE_SDP 0x00000010 +#define SCR_PROTO_TRACE_TCS 0x00000020 +#define SCR_PROTO_TRACE_OBEX 0x00000040 +#define SCR_PROTO_TRACE_OAPP 0x00000080 /* OBEX Application Profile */ +#define SCR_PROTO_TRACE_AMP 0x00000100 +#define SCR_PROTO_TRACE_BNEP 0x00000200 +#define SCR_PROTO_TRACE_AVP 0x00000400 +#define SCR_PROTO_TRACE_MCA 0x00000800 +#define SCR_PROTO_TRACE_ATT 0x00001000 +#define SCR_PROTO_TRACE_SMP 0x00002000 +#define SCR_PROTO_TRACE_NCI 0x00004000 +#define SCR_PROTO_TRACE_LLCP 0x00008000 +#define SCR_PROTO_TRACE_NDEF 0x00010000 +#define SCR_PROTO_TRACE_RW 0x00020000 +#define SCR_PROTO_TRACE_CE 0x00040000 +#define SCR_PROTO_TRACE_SNEP 0x00080000 +#define SCR_PROTO_TRACE_CHO 0x00100000 +#define SCR_PROTO_TRACE_ALL 0x001fffff +#define SCR_PROTO_TRACE_HCI_LOGGING_VSE 0x0800 /* Brcm vs event for logmsg and protocol traces */ + +#define MAX_SCRIPT_TYPE 5 + +#define TCS_PSM_INTERCOM 5 +#define TCS_PSM_CORDLESS 7 +#define BT_PSM_BNEP 0x000F +/* Define PSMs HID uses */ +#define HID_PSM_CONTROL 0x0011 +#define HID_PSM_INTERRUPT 0x0013 + +/* Define a function for logging */ +typedef void (BT_LOG_FUNC) (int trace_type, const char *fmt_str, ...); + +/* bd addr length and type */ +#ifndef BD_ADDR_LEN +#define BD_ADDR_LEN 6 +typedef uint8_t BD_ADDR[BD_ADDR_LEN]; +#endif + +// From bd.c + +/***************************************************************************** +** Constants +*****************************************************************************/ + +/* global constant for "any" bd addr */ +static const BD_ADDR bd_addr_any = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; +static const BD_ADDR bd_addr_null = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +/***************************************************************************** +** Functions +*****************************************************************************/ + +/******************************************************************************* +** +** Function bdcpy +** +** Description Copy bd addr b to a. +** +** +** Returns void +** +*******************************************************************************/ +static inline void bdcpy(BD_ADDR a, const BD_ADDR b) +{ + int i; + + for (i = BD_ADDR_LEN; i != 0; i--) { + *a++ = *b++; + } +} + +/******************************************************************************* +** +** Function bdcmp +** +** Description Compare bd addr b to a. +** +** +** Returns Zero if b==a, nonzero otherwise (like memcmp). +** +*******************************************************************************/ +static inline int bdcmp(const BD_ADDR a, const BD_ADDR b) +{ + int i; + + for (i = BD_ADDR_LEN; i != 0; i--) { + if (*a++ != *b++) { + return -1; + } + } + return 0; +} + +/******************************************************************************* +** +** Function bdcmpany +** +** Description Compare bd addr to "any" bd addr. +** +** +** Returns Zero if a equals bd_addr_any. +** +*******************************************************************************/ +static inline int bdcmpany(const BD_ADDR a) +{ + return bdcmp(a, bd_addr_any); +} + +/******************************************************************************* +** +** Function bdsetany +** +** Description Set bd addr to "any" bd addr. +** +** +** Returns void +** +*******************************************************************************/ +static inline void bdsetany(BD_ADDR a) +{ + bdcpy(a, bd_addr_any); +} +#endif diff --git a/tools/sdk/include/bluedroid/bt_vendor_lib.h b/tools/sdk/include/bluedroid/bt_vendor_lib.h new file mode 100644 index 00000000..e3a8ec8d --- /dev/null +++ b/tools/sdk/include/bluedroid/bt_vendor_lib.h @@ -0,0 +1,362 @@ +/****************************************************************************** + * + * Copyright (C) 2009-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef BT_VENDOR_LIB_H +#define BT_VENDOR_LIB_H + +#include +//#include +//#include + +/** Struct types */ + + +/** Typedefs and defines */ + +/** Vendor specific operations OPCODE */ +typedef enum { + /* [operation] + * Power on or off the BT Controller. + * [input param] + * A pointer to int type with content of bt_vendor_power_state_t. + * Typecasting conversion: (int *) param. + * [return] + * 0 - default, don't care. + * [callback] + * None. + */ + BT_VND_OP_POWER_CTRL, + + /* [operation] + * Perform any vendor specific initialization or configuration + * on the BT Controller. This is called before stack initialization. + * [input param] + * None. + * [return] + * 0 - default, don't care. + * [callback] + * Must call fwcfg_cb to notify the stack of the completion of vendor + * specific initialization once it has been done. + */ + BT_VND_OP_FW_CFG, + + /* [operation] + * Perform any vendor specific SCO/PCM configuration on the BT Controller. + * This is called after stack initialization. + * [input param] + * None. + * [return] + * 0 - default, don't care. + * [callback] + * Must call scocfg_cb to notify the stack of the completion of vendor + * specific SCO configuration once it has been done. + */ + BT_VND_OP_SCO_CFG, + + /* [operation] + * Open UART port on where the BT Controller is attached. + * This is called before stack initialization. + * [input param] + * A pointer to int array type for open file descriptors. + * The mapping of HCI channel to fd slot in the int array is given in + * bt_vendor_hci_channels_t. + * And, it requires the vendor lib to fill up the content before returning + * the call. + * Typecasting conversion: (int (*)[]) param. + * [return] + * Numbers of opened file descriptors. + * Valid number: + * 1 - CMD/EVT/ACL-In/ACL-Out via the same fd (e.g. UART) + * 2 - CMD/EVT on one fd, and ACL-In/ACL-Out on the other fd + * 4 - CMD, EVT, ACL-In, ACL-Out are on their individual fd + * [callback] + * None. + */ + BT_VND_OP_USERIAL_OPEN, + + /* [operation] + * Close the previously opened UART port. + * [input param] + * None. + * [return] + * 0 - default, don't care. + * [callback] + * None. + */ + BT_VND_OP_USERIAL_CLOSE, + + /* [operation] + * Get the LPM idle timeout in milliseconds. + * The stack uses this information to launch a timer delay before it + * attempts to de-assert LPM WAKE signal once downstream HCI packet + * has been delivered. + * [input param] + * A pointer to uint32_t type which is passed in by the stack. And, it + * requires the vendor lib to fill up the content before returning + * the call. + * Typecasting conversion: (uint32_t *) param. + * [return] + * 0 - default, don't care. + * [callback] + * None. + */ + BT_VND_OP_GET_LPM_IDLE_TIMEOUT, + + /* [operation] + * Enable or disable LPM mode on BT Controller. + * [input param] + * A pointer to uint8_t type with content of bt_vendor_lpm_mode_t. + * Typecasting conversion: (uint8_t *) param. + * [return] + * 0 - default, don't care. + * [callback] + * Must call lpm_cb to notify the stack of the completion of LPM + * disable/enable process once it has been done. + */ + BT_VND_OP_LPM_SET_MODE, + + /* [operation] + * Assert or Deassert LPM WAKE on BT Controller. + * [input param] + * A pointer to uint8_t type with content of bt_vendor_lpm_wake_state_t. + * Typecasting conversion: (uint8_t *) param. + * [return] + * 0 - default, don't care. + * [callback] + * None. + */ + BT_VND_OP_LPM_WAKE_SET_STATE, + + /* [operation] + * Perform any vendor specific commands related to audio state changes. + * [input param] + * a pointer to bt_vendor_op_audio_state_t indicating what audio state is + * set. + * [return] + * 0 - default, don't care. + * [callback] + * None. + */ + BT_VND_OP_SET_AUDIO_STATE, + + /* [operation] + * The epilog call to the vendor module so that it can perform any + * vendor-specific processes (e.g. send a HCI_RESET to BT Controller) + * before the caller calls for cleanup(). + * [input param] + * None. + * [return] + * 0 - default, don't care. + * [callback] + * Must call epilog_cb to notify the stack of the completion of vendor + * specific epilog process once it has been done. + */ + BT_VND_OP_EPILOG, +} bt_vendor_opcode_t; + +/** Power on/off control states */ +typedef enum { + BT_VND_PWR_OFF, + BT_VND_PWR_ON, +} bt_vendor_power_state_t; + +/** Define HCI channel identifier in the file descriptors array + used in BT_VND_OP_USERIAL_OPEN operation. + */ +typedef enum { + CH_CMD, // HCI Command channel + CH_EVT, // HCI Event channel + CH_ACL_OUT, // HCI ACL downstream channel + CH_ACL_IN, // HCI ACL upstream channel + + CH_MAX // Total channels +} bt_vendor_hci_channels_t; + +/** LPM disable/enable request */ +typedef enum { + BT_VND_LPM_DISABLE, + BT_VND_LPM_ENABLE, +} bt_vendor_lpm_mode_t; + +/** LPM WAKE set state request */ +typedef enum { + BT_VND_LPM_WAKE_ASSERT, + BT_VND_LPM_WAKE_DEASSERT, +} bt_vendor_lpm_wake_state_t; + +/** Callback result values */ +typedef enum { + BT_VND_OP_RESULT_SUCCESS, + BT_VND_OP_RESULT_FAIL, +} bt_vendor_op_result_t; + +/** audio (SCO) state changes triggering VS commands for configuration */ +typedef struct { + uint16_t handle; + uint16_t peer_codec; + uint16_t state; +} bt_vendor_op_audio_state_t; + +/* + * Bluetooth Host/Controller Vendor callback structure. + */ + +/* vendor initialization/configuration callback */ +typedef void (*cfg_result_cb)(bt_vendor_op_result_t result); + +/* datapath buffer allocation callback (callout) + * + * Vendor lib needs to request a buffer through the alloc callout function + * from HCI lib if the buffer is for constructing a HCI Command packet which + * will be sent through xmit_cb to BT Controller. + * + * For each buffer allocation, the requested size needs to be big enough to + * accommodate the below header plus a complete HCI packet -- + * typedef struct + * { + * uint16_t event; + * uint16_t len; + * uint16_t offset; + * uint16_t layer_specific; + * } HC_BT_HDR; + * + * HCI lib returns a pointer to the buffer where Vendor lib should use to + * construct a HCI command packet as below format: + * + * -------------------------------------------- + * | HC_BT_HDR | HCI command | + * -------------------------------------------- + * where + * HC_BT_HDR.event = 0x2000; + * HC_BT_HDR.len = Length of HCI command; + * HC_BT_HDR.offset = 0; + * HC_BT_HDR.layer_specific = 0; + * + * For example, a HCI_RESET Command will be formed as + * ------------------------ + * | HC_BT_HDR |03|0c|00| + * ------------------------ + * with + * HC_BT_HDR.event = 0x2000; + * HC_BT_HDR.len = 3; + * HC_BT_HDR.offset = 0; + * HC_BT_HDR.layer_specific = 0; + */ +typedef void *(*malloc_cb)(int size); + +/* datapath buffer deallocation callback (callout) */ +typedef void (*mdealloc_cb)(void *p_buf); + +/* define callback of the cmd_xmit_cb + * + * The callback function which HCI lib will call with the return of command + * complete packet. Vendor lib is responsible for releasing the buffer passed + * in at the p_mem parameter by calling dealloc callout function. + */ +typedef void (*tINT_CMD_CBACK)(void *p_mem); + +/* hci command packet transmit callback (callout) + * + * Vendor lib calls xmit_cb callout function in order to send a HCI Command + * packet to BT Controller. The buffer carrying HCI Command packet content + * needs to be first allocated through the alloc callout function. + * HCI lib will release the buffer for Vendor lib once it has delivered the + * packet content to BT Controller. + * + * Vendor lib needs also provide a callback function (p_cback) which HCI lib + * will call with the return of command complete packet. + * + * The opcode parameter gives the HCI OpCode (combination of OGF and OCF) of + * HCI Command packet. For example, opcode = 0x0c03 for the HCI_RESET command + * packet. + */ +typedef uint8_t (*cmd_xmit_cb)(uint16_t opcode, void *p_buf, tINT_CMD_CBACK p_cback); + +typedef struct { + /** set to sizeof(bt_vendor_callbacks_t) */ + size_t size; + + /* + * Callback and callout functions have implemented in HCI libray + * (libbt-hci.so). + */ + + /* notifies caller result of firmware configuration request */ + cfg_result_cb fwcfg_cb; + + /* notifies caller result of sco configuration request */ + cfg_result_cb scocfg_cb; + + /* notifies caller result of lpm enable/disable */ + cfg_result_cb lpm_cb; + + /* notifies the result of codec setting */ + cfg_result_cb audio_state_cb; + + /* buffer allocation request */ + malloc_cb alloc; + + /* buffer deallocation request */ + mdealloc_cb dealloc; + + /* hci command packet transmit request */ + cmd_xmit_cb xmit_cb; + + /* notifies caller completion of epilog process */ + cfg_result_cb epilog_cb; +} bt_vendor_callbacks_t; + +/* + * Bluetooth Host/Controller VENDOR Interface + */ +typedef struct { + /** Set to sizeof(bt_vndor_interface_t) */ + size_t size; + + /* + * Functions need to be implemented in Vendor libray (libbt-vendor.so). + */ + + /** + * Caller will open the interface and pass in the callback routines + * to the implemenation of this interface. + */ + int (*init)(const bt_vendor_callbacks_t *p_cb, unsigned char *local_bdaddr); + + /** Vendor specific operations */ + int (*op)(bt_vendor_opcode_t opcode, void *param); + + /** Closes the interface */ + void (*cleanup)(void); +} bt_vendor_interface_t; + + +/* + * External shared lib functions/data + */ + +/* Entry point of DLib -- + * Vendor library needs to implement the body of bt_vendor_interface_t + * structure and uses the below name as the variable name. HCI library + * will use this symbol name to get address of the object through the + * dlsym call. + */ +//extern const bt_vendor_interface_t BLUETOOTH_VENDOR_LIB_INTERFACE; + +#endif /* BT_VENDOR_LIB_H */ + diff --git a/tools/sdk/include/bluedroid/bta_api.h b/tools/sdk/include/bluedroid/bta_api.h new file mode 100644 index 00000000..1b97dc4f --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_api.h @@ -0,0 +1,2399 @@ +/****************************************************************************** + * + * Copyright (C) 2003-2014 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the public interface file for BTA, Broadcom's Bluetooth + * application layer for mobile phones. + * + ******************************************************************************/ +#ifndef BTA_API_H +#define BTA_API_H + +#include "bt_target.h" +#include "bt_types.h" +#include "btm_api.h" +// #include "uipc_msg.h" +#include "sdp_api.h" + +#if BLE_INCLUDED == TRUE +#include "btm_ble_api.h" +#endif + +/***************************************************************************** +** Constants and data types +*****************************************************************************/ + +/* Status Return Value */ +#define BTA_SUCCESS 0 /* Successful operation. */ +#define BTA_FAILURE 1 /* Generic failure. */ +#define BTA_PENDING 2 /* API cannot be completed right now */ +#define BTA_BUSY 3 +#define BTA_NO_RESOURCES 4 +#define BTA_WRONG_MODE 5 + +typedef UINT8 tBTA_STATUS; + +/* + * Service ID + * + * NOTES: When you add a new Service ID for BTA AND require to change the value of BTA_MAX_SERVICE_ID, + * make sure that the correct security ID of the new service from Security service definitions (btm_api.h) + * should be added to bta_service_id_to_btm_srv_id_lkup_tbl table in bta_dm_act.c. + */ + +#define BTA_RES_SERVICE_ID 0 /* Reserved */ +#define BTA_SPP_SERVICE_ID 1 /* Serial port profile. */ +#define BTA_DUN_SERVICE_ID 2 /* Dial-up networking profile. */ +#define BTA_A2DP_SOURCE_SERVICE_ID 3 /* A2DP Source profile. */ +#define BTA_LAP_SERVICE_ID 4 /* LAN access profile. */ +#define BTA_HSP_SERVICE_ID 5 /* Headset profile. */ +#define BTA_HFP_SERVICE_ID 6 /* Hands-free profile. */ +#define BTA_OPP_SERVICE_ID 7 /* Object push */ +#define BTA_FTP_SERVICE_ID 8 /* File transfer */ +#define BTA_CTP_SERVICE_ID 9 /* Cordless Terminal */ +#define BTA_ICP_SERVICE_ID 10 /* Intercom Terminal */ +#define BTA_SYNC_SERVICE_ID 11 /* Synchronization */ +#define BTA_BPP_SERVICE_ID 12 /* Basic printing profile */ +#define BTA_BIP_SERVICE_ID 13 /* Basic Imaging profile */ +#define BTA_PANU_SERVICE_ID 14 /* PAN User */ +#define BTA_NAP_SERVICE_ID 15 /* PAN Network access point */ +#define BTA_GN_SERVICE_ID 16 /* PAN Group Ad-hoc networks */ +#define BTA_SAP_SERVICE_ID 17 /* SIM Access profile */ +#define BTA_A2DP_SINK_SERVICE_ID 18 /* A2DP Sink */ +#define BTA_AVRCP_SERVICE_ID 19 /* A/V remote control */ +#define BTA_HID_SERVICE_ID 20 /* HID */ +#define BTA_VDP_SERVICE_ID 21 /* Video distribution */ +#define BTA_PBAP_SERVICE_ID 22 /* PhoneBook Access Server*/ +#define BTA_HSP_HS_SERVICE_ID 23 /* HFP HS role */ +#define BTA_HFP_HS_SERVICE_ID 24 /* HSP HS role */ +#define BTA_MAP_SERVICE_ID 25 /* Message Access Profile */ +#define BTA_MN_SERVICE_ID 26 /* Message Notification Service */ +#define BTA_HDP_SERVICE_ID 27 /* Health Device Profile */ +#define BTA_PCE_SERVICE_ID 28 /* PhoneBook Access Client*/ +#define BTA_SDP_SERVICE_ID 29 /* SDP Search*/ +#if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE +/* BLE profile service ID */ +#define BTA_BLE_SERVICE_ID 30 /* GATT profile */ + +// btla-specific ++ +#define BTA_USER_SERVICE_ID 31 /* User requested UUID */ + +#define BTA_MAX_SERVICE_ID 32 +// btla-specific -- +#else +#define BTA_USER_SERVICE_ID 30 /* User requested UUID */ +#define BTA_MAX_SERVICE_ID 31 +#endif +/* service IDs (BTM_SEC_SERVICE_FIRST_EMPTY + 1) to (BTM_SEC_MAX_SERVICES - 1) + * are used by BTA JV */ +#define BTA_FIRST_JV_SERVICE_ID (BTM_SEC_SERVICE_FIRST_EMPTY + 1) +#define BTA_LAST_JV_SERVICE_ID (BTM_SEC_MAX_SERVICES - 1) + +typedef UINT8 tBTA_SERVICE_ID; + +/* Service ID Mask */ +#define BTA_RES_SERVICE_MASK 0x00000001 /* Reserved */ +#define BTA_SPP_SERVICE_MASK 0x00000002 /* Serial port profile. */ +#define BTA_DUN_SERVICE_MASK 0x00000004 /* Dial-up networking profile. */ +#define BTA_FAX_SERVICE_MASK 0x00000008 /* Fax profile. */ +#define BTA_LAP_SERVICE_MASK 0x00000010 /* LAN access profile. */ +#define BTA_HSP_SERVICE_MASK 0x00000020 /* HSP AG role. */ +#define BTA_HFP_SERVICE_MASK 0x00000040 /* HFP AG role */ +#define BTA_OPP_SERVICE_MASK 0x00000080 /* Object push */ +#define BTA_FTP_SERVICE_MASK 0x00000100 /* File transfer */ +#define BTA_CTP_SERVICE_MASK 0x00000200 /* Cordless Terminal */ +#define BTA_ICP_SERVICE_MASK 0x00000400 /* Intercom Terminal */ +#define BTA_SYNC_SERVICE_MASK 0x00000800 /* Synchronization */ +#define BTA_BPP_SERVICE_MASK 0x00001000 /* Print server */ +#define BTA_BIP_SERVICE_MASK 0x00002000 /* Basic Imaging */ +#define BTA_PANU_SERVICE_MASK 0x00004000 /* PAN User */ +#define BTA_NAP_SERVICE_MASK 0x00008000 /* PAN Network access point */ +#define BTA_GN_SERVICE_MASK 0x00010000 /* PAN Group Ad-hoc networks */ +#define BTA_SAP_SERVICE_MASK 0x00020000 /* PAN Group Ad-hoc networks */ +#define BTA_A2DP_SERVICE_MASK 0x00040000 /* Advanced audio distribution */ +#define BTA_AVRCP_SERVICE_MASK 0x00080000 /* A/V remote control */ +#define BTA_HID_SERVICE_MASK 0x00100000 /* HID */ +#define BTA_VDP_SERVICE_MASK 0x00200000 /* Video distribution */ +#define BTA_PBAP_SERVICE_MASK 0x00400000 /* Phone Book Server */ +#define BTA_HSP_HS_SERVICE_MASK 0x00800000 /* HFP HS role */ +#define BTA_HFP_HS_SERVICE_MASK 0x01000000 /* HSP HS role */ +#define BTA_MAS_SERVICE_MASK 0x02000000 /* Message Access Profile */ +#define BTA_MN_SERVICE_MASK 0x04000000 /* Message Notification Profile */ +#define BTA_HL_SERVICE_MASK 0x08000000 /* Health Device Profile */ +#define BTA_PCE_SERVICE_MASK 0x10000000 /* Phone Book Client */ + +#if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE +#define BTA_BLE_SERVICE_MASK 0x20000000 /* GATT based service */ +// btla-specific ++ +#define BTA_USER_SERVICE_MASK 0x40000000 /* Message Notification Profile */ +// btla-specific -- +#else +// btla-specific ++ +#define BTA_USER_SERVICE_MASK 0x20000000 /* Message Notification Profile */ +// btla-specific -- +#endif + +#if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE +#define BTA_ALL_SERVICE_MASK 0x3FFFFFFF /* All services supported by BTA. */ +#else +#define BTA_ALL_SERVICE_MASK 0x1FFFFFFF /* All services supported by BTA. */ +#endif + +typedef UINT32 tBTA_SERVICE_MASK; + +/* extended service mask, including mask with one or more GATT UUID */ +typedef struct { + tBTA_SERVICE_MASK srvc_mask; + UINT8 num_uuid; + tBT_UUID *p_uuid; +} tBTA_SERVICE_MASK_EXT; + +/* Security Setting Mask */ +#define BTA_SEC_NONE BTM_SEC_NONE /* No security. */ +#define BTA_SEC_AUTHORIZE (BTM_SEC_IN_AUTHORIZE ) /* Authorization required (only needed for out going connection )*/ +#define BTA_SEC_AUTHENTICATE (BTM_SEC_IN_AUTHENTICATE | BTM_SEC_OUT_AUTHENTICATE) /* Authentication required. */ +#define BTA_SEC_ENCRYPT (BTM_SEC_IN_ENCRYPT | BTM_SEC_OUT_ENCRYPT) /* Encryption required. */ +#define BTA_SEC_MODE4_LEVEL4 (BTM_SEC_MODE4_LEVEL4) /* Mode 4 level 4 service, i.e. incoming/outgoing MITM and P-256 encryption */ +#define BTA_SEC_MITM (BTM_SEC_IN_MITM | BTM_SEC_OUT_MITM) /* Man-In-The_Middle protection */ +#define BTA_SEC_IN_16_DIGITS (BTM_SEC_IN_MIN_16_DIGIT_PIN) /* Min 16 digit for pin code */ + +typedef UINT16 tBTA_SEC; + +/* Ignore for Discoverable, Connectable, Pairable and Connectable Paired only device modes */ +#define BTA_DM_IGNORE 0x00FF + +/* Ignore for Discoverable, Connectable only for LE modes */ +#define BTA_DM_LE_IGNORE 0xFF00 + +#define BTA_APP_ID_PAN_MULTI 0xFE /* app id for pan multiple connection */ +#define BTA_ALL_APP_ID 0xFF + +/* Discoverable Modes */ +#define BTA_DM_NON_DISC BTM_NON_DISCOVERABLE /* Device is not discoverable. */ +#define BTA_DM_GENERAL_DISC BTM_GENERAL_DISCOVERABLE /* General discoverable. */ +#define BTA_DM_LIMITED_DISC BTM_LIMITED_DISCOVERABLE /* Limited discoverable. */ +#if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) +#define BTA_DM_BLE_NON_DISCOVERABLE BTM_BLE_NON_DISCOVERABLE /* Device is not LE discoverable */ +#define BTA_DM_BLE_GENERAL_DISCOVERABLE BTM_BLE_GENERAL_DISCOVERABLE /* Device is LE General discoverable */ +#define BTA_DM_BLE_LIMITED_DISCOVERABLE BTM_BLE_LIMITED_DISCOVERABLE /* Device is LE Limited discoverable */ +#endif +typedef UINT16 tBTA_DM_DISC; /* this discoverability mode is a bit mask among BR mode and LE mode */ + +/* Connectable Modes */ +#define BTA_DM_NON_CONN BTM_NON_CONNECTABLE /* Device is not connectable. */ +#define BTA_DM_CONN BTM_CONNECTABLE /* Device is connectable. */ +#if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) +#define BTA_DM_BLE_NON_CONNECTABLE BTM_BLE_NON_CONNECTABLE /* Device is LE non-connectable. */ +#define BTA_DM_BLE_CONNECTABLE BTM_BLE_CONNECTABLE /* Device is LE connectable. */ +#endif + +// btla-specific ++ +typedef UINT16 tBTA_DM_CONN; + +#define BTA_TRANSPORT_UNKNOWN 0 +#define BTA_TRANSPORT_BR_EDR BT_TRANSPORT_BR_EDR +#define BTA_TRANSPORT_LE BT_TRANSPORT_LE +typedef tBT_TRANSPORT tBTA_TRANSPORT; + +/* Pairable Modes */ +#define BTA_DM_PAIRABLE 1 +#define BTA_DM_NON_PAIRABLE 0 + +/* Connectable Paired Only Mode */ +#define BTA_DM_CONN_ALL 0 +#define BTA_DM_CONN_PAIRED 1 + +/* Inquiry Modes */ +#define BTA_DM_INQUIRY_NONE BTM_INQUIRY_NONE /*No BR inquiry. */ +#define BTA_DM_GENERAL_INQUIRY BTM_GENERAL_INQUIRY /* Perform general inquiry. */ +#define BTA_DM_LIMITED_INQUIRY BTM_LIMITED_INQUIRY /* Perform limited inquiry. */ + +#if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) +#define BTA_BLE_INQUIRY_NONE BTM_BLE_INQUIRY_NONE +#define BTA_BLE_GENERAL_INQUIRY BTM_BLE_GENERAL_INQUIRY /* Perform LE general inquiry. */ +#define BTA_BLE_LIMITED_INQUIRY BTM_BLE_LIMITED_INQUIRY /* Perform LE limited inquiry. */ +#endif +typedef UINT8 tBTA_DM_INQ_MODE; + +/* Inquiry Filter Type */ +#define BTA_DM_INQ_CLR BTM_CLR_INQUIRY_FILTER /* Clear inquiry filter. */ +#define BTA_DM_INQ_DEV_CLASS BTM_FILTER_COND_DEVICE_CLASS /* Filter on device class. */ +#define BTA_DM_INQ_BD_ADDR BTM_FILTER_COND_BD_ADDR /* Filter on a specific BD address. */ + +typedef UINT8 tBTA_DM_INQ_FILT; + +/* Authorize Response */ +#define BTA_DM_AUTH_PERM 0 /* Authorized for future connections to the service */ +#define BTA_DM_AUTH_TEMP 1 /* Authorized for current connection only */ +#define BTA_DM_NOT_AUTH 2 /* Not authorized for the service */ + +typedef UINT8 tBTA_AUTH_RESP; + +/* M/S preferred roles */ +#define BTA_ANY_ROLE 0x00 +#define BTA_MASTER_ROLE_PREF 0x01 +#define BTA_MASTER_ROLE_ONLY 0x02 +#define BTA_SLAVE_ROLE_ONLY 0x03 /* Used for PANU only, skip role switch to master */ + +typedef UINT8 tBTA_PREF_ROLES; + +enum { + + BTA_DM_NO_SCATTERNET, /* Device doesn't support scatternet, it might + support "role switch during connection" for + an incoming connection, when it already has + another connection in master role */ + BTA_DM_PARTIAL_SCATTERNET, /* Device supports partial scatternet. It can have + simulateous connection in Master and Slave roles + for short period of time */ + BTA_DM_FULL_SCATTERNET /* Device can have simultaneous connection in master + and slave roles */ + +}; + + +/* Inquiry filter device class condition */ +typedef struct { + DEV_CLASS dev_class; /* device class of interest */ + DEV_CLASS dev_class_mask; /* mask to determine the bits of device class of interest */ +} tBTA_DM_COD_COND; + + +/* Inquiry Filter Condition */ +typedef union { + BD_ADDR bd_addr; /* BD address of device to filter. */ + tBTA_DM_COD_COND dev_class_cond; /* Device class filter condition */ +} tBTA_DM_INQ_COND; + +/* Inquiry Parameters */ +typedef struct { + tBTA_DM_INQ_MODE mode; /* Inquiry mode, limited or general. */ + UINT8 duration; /* Inquiry duration in 1.28 sec units. */ + UINT8 max_resps; /* Maximum inquiry responses. Set to zero for unlimited responses. */ + BOOLEAN report_dup; /* report duplicated inquiry response with higher RSSI value */ + tBTA_DM_INQ_FILT filter_type; /* Filter condition type. */ + tBTA_DM_INQ_COND filter_cond; /* Filter condition data. */ +#if (defined(BTA_HOST_INTERLEAVE_SEARCH) && BTA_HOST_INTERLEAVE_SEARCH == TRUE) + UINT8 intl_duration[4];/*duration array storing the interleave scan's time portions*/ +#endif +} tBTA_DM_INQ; + +typedef struct { + UINT8 bta_dm_eir_min_name_len; /* minimum length of local name when it is shortened */ +#if (BTA_EIR_CANNED_UUID_LIST == TRUE) + UINT8 bta_dm_eir_uuid16_len; /* length of 16-bit UUIDs */ + UINT8 *bta_dm_eir_uuid16; /* 16-bit UUIDs */ +#else + UINT32 uuid_mask[BTM_EIR_SERVICE_ARRAY_SIZE]; /* mask of UUID list in EIR */ +#endif + INT8 *bta_dm_eir_inq_tx_power; /* Inquiry TX power */ + UINT8 bta_dm_eir_flag_len; /* length of flags in bytes */ + UINT8 *bta_dm_eir_flags; /* flags for EIR */ + UINT8 bta_dm_eir_manufac_spec_len; /* length of manufacturer specific in bytes */ + UINT8 *bta_dm_eir_manufac_spec; /* manufacturer specific */ + UINT8 bta_dm_eir_additional_len; /* length of additional data in bytes */ + UINT8 *bta_dm_eir_additional; /* additional data */ +} tBTA_DM_EIR_CONF; + +#if BLE_INCLUDED == TRUE +/* ADV data flag bit definition used for BTM_BLE_AD_TYPE_FLAG */ +#define BTA_BLE_LIMIT_DISC_FLAG BTM_BLE_LIMIT_DISC_FLAG +#define BTA_BLE_GEN_DISC_FLAG BTM_BLE_GEN_DISC_FLAG +#define BTA_BLE_BREDR_NOT_SPT BTM_BLE_BREDR_NOT_SPT +#define BTA_BLE_DMT_CONTROLLER_SPT BTM_BLE_DMT_CONTROLLER_SPT +#define BTA_BLE_DMT_HOST_SPT BTM_BLE_DMT_HOST_SPT +#define BTA_BLE_NON_LIMIT_DISC_FLAG BTM_BLE_NON_LIMIT_DISC_FLAG +#define BTA_BLE_ADV_FLAG_MASK BTM_BLE_ADV_FLAG_MASK +#define BTA_BLE_LIMIT_DISC_MASK BTM_BLE_LIMIT_DISC_MASK + +/* ADV data bit mask */ +#define BTA_BLE_AD_BIT_DEV_NAME BTM_BLE_AD_BIT_DEV_NAME +#define BTA_BLE_AD_BIT_FLAGS BTM_BLE_AD_BIT_FLAGS +#define BTA_BLE_AD_BIT_MANU BTM_BLE_AD_BIT_MANU +#define BTA_BLE_AD_BIT_TX_PWR BTM_BLE_AD_BIT_TX_PWR +#define BTA_BLE_AD_BIT_INT_RANGE BTM_BLE_AD_BIT_INT_RANGE +#define BTA_BLE_AD_BIT_SERVICE BTM_BLE_AD_BIT_SERVICE +#define BTA_BLE_AD_BIT_APPEARANCE BTM_BLE_AD_BIT_APPEARANCE +#define BTA_BLE_AD_BIT_PROPRIETARY BTM_BLE_AD_BIT_PROPRIETARY +#define BTA_DM_BLE_AD_BIT_SERVICE_SOL BTM_BLE_AD_BIT_SERVICE_SOL +#define BTA_DM_BLE_AD_BIT_SERVICE_DATA BTM_BLE_AD_BIT_SERVICE_DATA +#define BTA_DM_BLE_AD_BIT_SIGN_DATA BTM_BLE_AD_BIT_SIGN_DATA +#define BTA_DM_BLE_AD_BIT_SERVICE_128SOL BTM_BLE_AD_BIT_SERVICE_128SOL +#define BTA_DM_BLE_AD_BIT_PUBLIC_ADDR BTM_BLE_AD_BIT_PUBLIC_ADDR +#define BTA_DM_BLE_AD_BIT_RANDOM_ADDR BTM_BLE_AD_BIT_RANDOM_ADDR +#define BTA_DM_BLE_AD_BIT_SERVICE_128 BTM_BLE_AD_BIT_SERVICE_128 /*128-bit Service UUIDs*/ + +typedef tBTM_BLE_AD_MASK tBTA_BLE_AD_MASK; + +/* slave preferred connection interval range */ +typedef struct { + UINT16 low; + UINT16 hi; + +} tBTA_BLE_INT_RANGE; + +/* Service tag supported in the device */ +typedef struct { + UINT8 num_service; + BOOLEAN list_cmpl; + UINT16 *p_uuid; +} tBTA_BLE_SERVICE; + + +typedef struct { + UINT8 len; + UINT8 *p_val; +} tBTA_BLE_MANU; + +typedef struct { + UINT8 adv_type; + UINT8 len; + UINT8 *p_val; /* number of len byte */ +} tBTA_BLE_PROP_ELEM; + +/* vendor proprietary adv type */ +typedef struct { + UINT8 num_elem; + tBTA_BLE_PROP_ELEM *p_elem; +} tBTA_BLE_PROPRIETARY; + +typedef struct { + tBT_UUID service_uuid; + UINT8 len; + UINT8 *p_val; +} tBTA_BLE_SERVICE_DATA; + +typedef tBTM_BLE_128SERVICE tBTA_BLE_128SERVICE; +typedef tBTM_BLE_32SERVICE tBTA_BLE_32SERVICE; + +typedef struct { + tBTA_BLE_INT_RANGE int_range; /* slave prefered conn interval range */ + tBTA_BLE_MANU *p_manu; /* manufacturer data */ + tBTA_BLE_SERVICE *p_services; /* 16 bits services */ + tBTA_BLE_128SERVICE *p_services_128b; /* 128 bits service */ + tBTA_BLE_32SERVICE *p_service_32b; /* 32 bits Service UUID */ + tBTA_BLE_SERVICE *p_sol_services; /* 16 bits services Solicitation UUIDs */ + tBTA_BLE_32SERVICE *p_sol_service_32b; /* List of 32 bit Service Solicitation UUIDs */ + tBTA_BLE_128SERVICE *p_sol_service_128b;/* List of 128 bit Service Solicitation UUIDs */ + tBTA_BLE_PROPRIETARY *p_proprietary; /* proprietary data */ + tBTA_BLE_SERVICE_DATA *p_service_data; /* service data */ + UINT16 appearance; /* appearance data */ + UINT8 flag; + UINT8 tx_power; +} tBTA_BLE_ADV_DATA; + +typedef void (tBTA_SET_ADV_DATA_CMPL_CBACK) (tBTA_STATUS status); + +/* advertising channel map */ +#define BTA_BLE_ADV_CHNL_37 BTM_BLE_ADV_CHNL_37 +#define BTA_BLE_ADV_CHNL_38 BTM_BLE_ADV_CHNL_38 +#define BTA_BLE_ADV_CHNL_39 BTM_BLE_ADV_CHNL_39 +typedef tBTM_BLE_ADV_CHNL_MAP tBTA_BLE_ADV_CHNL_MAP; /* use as a bit mask */ + +/* advertising filter policy */ +typedef tBTM_BLE_AFP tBTA_BLE_AFP; + +/* adv event type */ +#define BTA_BLE_CONNECT_EVT BTM_BLE_CONNECT_EVT /* Connectable undirected advertising */ +#define BTA_BLE_CONNECT_DIR_EVT BTM_BLE_CONNECT_DIR_EVT /* Connectable directed advertising */ +#define BTA_BLE_DISCOVER_EVT BTM_BLE_DISCOVER_EVT /* Scannable undirected advertising */ +#define BTA_BLE_NON_CONNECT_EVT BTM_BLE_NON_CONNECT_EVT /* Non connectable undirected advertising */ +typedef UINT8 tBTA_BLE_ADV_EVT; + +/* adv tx power level */ +#define BTA_BLE_ADV_TX_POWER_MIN 0 /* minimum tx power */ +#define BTA_BLE_ADV_TX_POWER_LOW 1 /* low tx power */ +#define BTA_BLE_ADV_TX_POWER_MID 2 /* middle tx power */ +#define BTA_BLE_ADV_TX_POWER_UPPER 3 /* upper tx power */ +#define BTA_BLE_ADV_TX_POWER_MAX 4 /* maximum tx power */ +typedef UINT8 tBTA_BLE_ADV_TX_POWER; + +/* advertising instance parameters */ +typedef struct { + UINT16 adv_int_min; /* minimum adv interval */ + UINT16 adv_int_max; /* maximum adv interval */ + tBTA_BLE_ADV_EVT adv_type; /* adv event type */ + tBTA_BLE_ADV_CHNL_MAP channel_map; /* adv channel map */ + tBTA_BLE_AFP adv_filter_policy; /* advertising filter policy */ + tBTA_BLE_ADV_TX_POWER tx_power; /* adv tx power */ +} tBTA_BLE_ADV_PARAMS; + +/* These are the fields returned in each device adv packet. It +** is returned in the results callback if registered. +*/ +typedef struct { + UINT8 conn_mode; + tBTA_BLE_AD_MASK ad_mask; /* mask of the valid adv data field */ + UINT8 flag; + UINT8 tx_power_level; + UINT8 remote_name_len; + UINT8 *p_remote_name; + tBTA_BLE_SERVICE service; +} tBTA_BLE_INQ_DATA; + +enum { + BTA_BLE_BATCH_SCAN_MODE_PASS = 1, + BTA_BLE_BATCH_SCAN_MODE_ACTI = 2, + BTA_BLE_BATCH_SCAN_MODE_PASS_ACTI = 3 +}; +typedef UINT8 tBTA_BLE_BATCH_SCAN_MODE; + +enum { + BTA_BLE_DISCARD_OLD_ITEMS = 0, + BTA_BLE_DISCARD_LOWER_RSSI_ITEMS = 1 +}; +typedef UINT8 tBTA_BLE_DISCARD_RULE; + +enum { + BTA_BLE_ADV_SEEN_FIRST_TIME = 0, + BTA_BLE_ADV_TRACKING_TIMEOUT = 1 +}; +typedef UINT8 tBTA_BLE_ADV_CHANGE_REASON; + +enum { + BTA_BLE_BATCH_SCAN_ENB_EVT = 1, + BTA_BLE_BATCH_SCAN_CFG_STRG_EVT = 2, + BTA_BLE_BATCH_SCAN_DATA_EVT = 3, + BTA_BLE_BATCH_SCAN_THRES_EVT = 4, + BTA_BLE_BATCH_SCAN_PARAM_EVT = 5, + BTA_BLE_BATCH_SCAN_DIS_EVT = 6 +}; +typedef tBTM_BLE_BATCH_SCAN_EVT tBTA_BLE_BATCH_SCAN_EVT; + +typedef tBTM_BLE_TRACK_ADV_ACTION tBTA_BLE_TRACK_ADV_ACTION; +#endif + +/* BLE customer specific feature function type definitions */ +/* data type used on customer specific feature for RSSI monitoring */ +#define BTA_BLE_RSSI_ALERT_HI 0 +#define BTA_BLE_RSSI_ALERT_RANGE 1 +#define BTA_BLE_RSSI_ALERT_LO 2 +typedef UINT8 tBTA_DM_BLE_RSSI_ALERT_TYPE; + +#define BTA_BLE_RSSI_ALERT_NONE BTM_BLE_RSSI_ALERT_NONE /* (0) */ +#define BTA_BLE_RSSI_ALERT_HI_BIT BTM_BLE_RSSI_ALERT_HI_BIT /* (1) */ +#define BTA_BLE_RSSI_ALERT_RANGE_BIT BTM_BLE_RSSI_ALERT_RANGE_BIT /* (1 << 1) */ +#define BTA_BLE_RSSI_ALERT_LO_BIT BTM_BLE_RSSI_ALERT_LO_BIT /* (1 << 2) */ +typedef UINT8 tBTA_DM_BLE_RSSI_ALERT_MASK; + + +typedef void (tBTA_DM_BLE_RSSI_CBACK) (BD_ADDR bd_addr, tBTA_DM_BLE_RSSI_ALERT_TYPE alert_type, INT8 rssi); + +/* max number of filter spot for different filter type */ +#define BTA_DM_BLE_MAX_UUID_FILTER BTM_BLE_MAX_UUID_FILTER /* 8 */ +#define BTA_DM_BLE_MAX_ADDR_FILTER BTM_BLE_MAX_ADDR_FILTER /* 8 */ +#define BTA_DM_BLE_PF_STR_COND_MAX BTM_BLE_PF_STR_COND_MAX /* 4 apply to manu data , or local name */ +#define BTA_DM_BLE_PF_STR_LEN_MAX BTM_BLE_PF_STR_LEN_MAX /* match for first 20 bytes */ + +#define BTA_DM_BLE_PF_LOGIC_OR 0 +#define BTA_DM_BLE_PF_LOGIC_AND 1 +typedef UINT8 tBTA_DM_BLE_PF_LOGIC_TYPE; + +enum { + BTA_DM_BLE_SCAN_COND_ADD, + BTA_DM_BLE_SCAN_COND_DELETE, + BTA_DM_BLE_SCAN_COND_CLEAR = 2 +}; +typedef UINT8 tBTA_DM_BLE_SCAN_COND_OP; + +/* ADV payload filtering vendor specific call event */ +enum { + BTA_BLE_SCAN_PF_ENABLE_EVT = 7, + BTA_BLE_SCAN_PF_COND_EVT +}; + +/* filter selection bit index */ +#define BTA_DM_BLE_PF_ADDR_FILTER BTM_BLE_PF_ADDR_FILTER +#define BTA_DM_BLE_PF_SRVC_DATA BTM_BLE_PF_SRVC_DATA +#define BTA_DM_BLE_PF_SRVC_UUID BTM_BLE_PF_SRVC_UUID +#define BTA_DM_BLE_PF_SRVC_SOL_UUID BTM_BLE_PF_SRVC_SOL_UUID +#define BTA_DM_BLE_PF_LOCAL_NAME BTM_BLE_PF_LOCAL_NAME +#define BTA_DM_BLE_PF_MANU_DATA BTM_BLE_PF_MANU_DATA +#define BTA_DM_BLE_PF_SRVC_DATA_PATTERN BTM_BLE_PF_SRVC_DATA_PATTERN +#define BTA_DM_BLE_PF_TYPE_ALL BTM_BLE_PF_TYPE_ALL +#define BTA_DM_BLE_PF_TYPE_MAX BTM_BLE_PF_TYPE_MAX +typedef UINT8 tBTA_DM_BLE_PF_COND_TYPE; + +typedef union { + UINT16 uuid16_mask; + UINT32 uuid32_mask; + UINT8 uuid128_mask[LEN_UUID_128]; +} tBTA_DM_BLE_PF_COND_MASK; + +typedef struct { + tBLE_BD_ADDR *p_target_addr; /* target address, if NULL, generic UUID filter */ + tBT_UUID uuid; /* UUID condition */ + tBTA_DM_BLE_PF_LOGIC_TYPE cond_logic; /* AND/OR */ + tBTA_DM_BLE_PF_COND_MASK *p_uuid_mask; /* UUID condition mask, if NULL, match exact as UUID condition */ +} tBTA_DM_BLE_PF_UUID_COND; + +typedef struct { + UINT8 data_len; /* <= 20 bytes */ + UINT8 *p_data; +} tBTA_DM_BLE_PF_LOCAL_NAME_COND; + +typedef struct { + UINT16 company_id; /* company ID */ + UINT8 data_len; /* <= 20 bytes */ + UINT8 *p_pattern; + UINT16 company_id_mask; /* UUID value mask */ + UINT8 *p_pattern_mask; /* Manufacturer data matching mask, same length + as data pattern, set to all 0xff, match exact data */ +} tBTA_DM_BLE_PF_MANU_COND; + +typedef struct { + UINT16 uuid; /* service ID */ + UINT8 data_len; /* <= 20 bytes */ + UINT8 *p_pattern; + UINT8 *p_pattern_mask; /* Service data matching mask, same length + as data pattern, set to all 0xff, match exact data */ +} tBTA_DM_BLE_PF_SRVC_PATTERN_COND; + +typedef union { + tBLE_BD_ADDR target_addr; + tBTA_DM_BLE_PF_LOCAL_NAME_COND local_name; /* lcoal name filtering */ + tBTA_DM_BLE_PF_MANU_COND manu_data; /* manufactuer data filtering */ + tBTA_DM_BLE_PF_UUID_COND srvc_uuid; /* service UUID filtering */ + tBTA_DM_BLE_PF_UUID_COND solicitate_uuid; /* solicitated service UUID filtering */ + tBTA_DM_BLE_PF_SRVC_PATTERN_COND srvc_data; /* service data pattern */ +} tBTA_DM_BLE_PF_COND_PARAM; + +typedef UINT8 tBTA_DM_BLE_PF_FILT_INDEX; +typedef UINT8 tBTA_DM_BLE_PF_AVBL_SPACE; + +typedef INT8 tBTA_DM_RSSI_VALUE; +typedef UINT8 tBTA_DM_LINK_QUALITY_VALUE; + + +typedef UINT8 tBTA_SIG_STRENGTH_MASK; + + +/* Security Callback Events */ +#define BTA_DM_ENABLE_EVT 0 /* Enable Event */ +#define BTA_DM_DISABLE_EVT 1 /* Disable Event */ +#define BTA_DM_PIN_REQ_EVT 2 /* PIN request. */ +#define BTA_DM_AUTH_CMPL_EVT 3 /* Authentication complete indication. */ +#define BTA_DM_AUTHORIZE_EVT 4 /* Authorization request. */ +#define BTA_DM_LINK_UP_EVT 5 /* Connection UP event */ +#define BTA_DM_LINK_DOWN_EVT 6 /* Connection DOWN event */ +#define BTA_DM_SIG_STRENGTH_EVT 7 /* Signal strength for bluetooth connection */ +#define BTA_DM_BUSY_LEVEL_EVT 8 /* System busy level */ +#define BTA_DM_BOND_CANCEL_CMPL_EVT 9 /* Bond cancel complete indication */ +#define BTA_DM_SP_CFM_REQ_EVT 10 /* Simple Pairing User Confirmation request. */ +#define BTA_DM_SP_KEY_NOTIF_EVT 11 /* Simple Pairing Passkey Notification */ +#define BTA_DM_SP_RMT_OOB_EVT 12 /* Simple Pairing Remote OOB Data request. */ +#define BTA_DM_SP_KEYPRESS_EVT 13 /* Key press notification event. */ +#define BTA_DM_ROLE_CHG_EVT 14 /* Role Change event. */ +#define BTA_DM_BLE_KEY_EVT 15 /* BLE SMP key event for peer device keys */ +#define BTA_DM_BLE_SEC_REQ_EVT 16 /* BLE SMP security request */ +#define BTA_DM_BLE_PASSKEY_NOTIF_EVT 17 /* SMP passkey notification event */ +#define BTA_DM_BLE_PASSKEY_REQ_EVT 18 /* SMP passkey request event */ +#define BTA_DM_BLE_OOB_REQ_EVT 19 /* SMP OOB request event */ +#define BTA_DM_BLE_LOCAL_IR_EVT 20 /* BLE local IR event */ +#define BTA_DM_BLE_LOCAL_ER_EVT 21 /* BLE local ER event */ +#define BTA_DM_BLE_NC_REQ_EVT 22 /* SMP Numeric Comparison request event */ +// btla-specific ++ +#define BTA_DM_SP_RMT_OOB_EXT_EVT 23 /* Simple Pairing Remote OOB Extended Data request. */ +#define BTA_DM_BLE_AUTH_CMPL_EVT 24 /* BLE Auth complete */ +// btla-specific -- +#define BTA_DM_DEV_UNPAIRED_EVT 25 +#define BTA_DM_HW_ERROR_EVT 26 /* BT Chip H/W error */ +#define BTA_DM_LE_FEATURES_READ 27 /* Cotroller specific LE features are read */ +#define BTA_DM_ENER_INFO_READ 28 /* Energy info read */ +typedef UINT8 tBTA_DM_SEC_EVT; + +/* Structure associated with BTA_DM_ENABLE_EVT */ +typedef struct { + tBTA_STATUS status; +} tBTA_DM_ENABLE; + +/* Structure associated with BTA_DM_PIN_REQ_EVT */ +typedef struct { + /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in order */ + BD_ADDR bd_addr; /* BD address peer device. */ + DEV_CLASS dev_class; /* Class of Device */ + BD_NAME bd_name; /* Name of peer device. */ + BOOLEAN min_16_digit; /* TRUE if the pin returned must be at least 16 digits */ +} tBTA_DM_PIN_REQ; + +/* BLE related definition */ + +#define BTA_DM_AUTH_FAIL_BASE (HCI_ERR_MAX_ERR + 10) +#define BTA_DM_AUTH_CONVERT_SMP_CODE(x) (BTA_DM_AUTH_FAIL_BASE + (x)) +#define BTA_DM_AUTH_SMP_PASSKEY_FAIL BTA_DM_AUTH_CONVERT_SMP_CODE (SMP_PASSKEY_ENTRY_FAIL) +#define BTA_DM_AUTH_SMP_OOB_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_OOB_FAIL) +#define BTA_DM_AUTH_SMP_PAIR_AUTH_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_AUTH_FAIL) +#define BTA_DM_AUTH_SMP_CONFIRM_VALUE_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_VALUE_ERR) +#define BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_NOT_SUPPORT) +#define BTA_DM_AUTH_SMP_ENC_KEY_SIZE (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_KEY_SIZE) +#define BTA_DM_AUTH_SMP_INVALID_CMD (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_CMD) +#define BTA_DM_AUTH_SMP_UNKNOWN_ERR (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_FAIL_UNKNOWN) +#define BTA_DM_AUTH_SMP_REPEATED_ATTEMPT (BTA_DM_AUTH_FAIL_BASE + SMP_REPEATED_ATTEMPTS) +#define BTA_DM_AUTH_SMP_INVALID_PARAMETERS (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_PARAMETERS) +#define BTA_DM_AUTH_SMP_INTERNAL_ERR (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_INTERNAL_ERR) +#define BTA_DM_AUTH_SMP_UNKNOWN_IO (BTA_DM_AUTH_FAIL_BASE + SMP_UNKNOWN_IO_CAP) +#define BTA_DM_AUTH_SMP_INIT_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_INIT_FAIL) +#define BTA_DM_AUTH_SMP_CONFIRM_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_FAIL) +#define BTA_DM_AUTH_SMP_BUSY (BTA_DM_AUTH_FAIL_BASE + SMP_BUSY) +#define BTA_DM_AUTH_SMP_ENC_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_FAIL) +#define BTA_DM_AUTH_SMP_RSP_TIMEOUT (BTA_DM_AUTH_FAIL_BASE + SMP_RSP_TIMEOUT) + +/* connection parameter boundary value and dummy value */ +#define BTA_DM_BLE_SCAN_INT_MIN BTM_BLE_SCAN_INT_MIN +#define BTA_DM_BLE_SCAN_INT_MAX BTM_BLE_SCAN_INT_MAX +#define BTA_DM_BLE_SCAN_WIN_MIN BTM_BLE_SCAN_WIN_MIN +#define BTA_DM_BLE_SCAN_WIN_MAX BTM_BLE_SCAN_WIN_MAX +#define BTA_DM_BLE_CONN_INT_MIN BTM_BLE_CONN_INT_MIN +#define BTA_DM_BLE_CONN_INT_MAX BTM_BLE_CONN_INT_MAX +#define BTA_DM_BLE_CONN_LATENCY_MAX BTM_BLE_CONN_LATENCY_MAX +#define BTA_DM_BLE_CONN_SUP_TOUT_MIN BTM_BLE_CONN_SUP_TOUT_MIN +#define BTA_DM_BLE_CONN_SUP_TOUT_MAX BTM_BLE_CONN_SUP_TOUT_MAX +#define BTA_DM_BLE_CONN_PARAM_UNDEF BTM_BLE_CONN_PARAM_UNDEF /* use this value when a specific value not to be overwritten */ + + +#define BTA_LE_KEY_PENC BTM_LE_KEY_PENC /* encryption information of peer device */ +#define BTA_LE_KEY_PID BTM_LE_KEY_PID /* identity key of the peer device */ +#define BTA_LE_KEY_PCSRK BTM_LE_KEY_PCSRK /* peer SRK */ +#define BTA_LE_KEY_LENC BTM_LE_KEY_LENC /* master role security information:div */ +#define BTA_LE_KEY_LID BTM_LE_KEY_LID /* master device ID key */ +#define BTA_LE_KEY_LCSRK BTM_LE_KEY_LCSRK /* local CSRK has been deliver to peer */ +typedef UINT8 tBTA_LE_KEY_TYPE; /* can be used as a bit mask */ + + +typedef tBTM_LE_PENC_KEYS tBTA_LE_PENC_KEYS ; +typedef tBTM_LE_PCSRK_KEYS tBTA_LE_PCSRK_KEYS; +typedef tBTM_LE_LENC_KEYS tBTA_LE_LENC_KEYS ; +typedef tBTM_LE_LCSRK_KEYS tBTA_LE_LCSRK_KEYS ; +typedef tBTM_LE_PID_KEYS tBTA_LE_PID_KEYS ; + +typedef union { + tBTA_LE_PENC_KEYS penc_key; /* received peer encryption key */ + tBTA_LE_PCSRK_KEYS psrk_key; /* received peer device SRK */ + tBTA_LE_PID_KEYS pid_key; /* peer device ID key */ + tBTA_LE_LENC_KEYS lenc_key; /* local encryption reproduction keys LTK = = d1(ER,DIV,0)*/ + tBTA_LE_LCSRK_KEYS lcsrk_key; /* local device CSRK = d1(ER,DIV,1)*/ + tBTA_LE_PID_KEYS lid_key; /* local device ID key for the particular remote */ +} tBTA_LE_KEY_VALUE; + +#define BTA_BLE_LOCAL_KEY_TYPE_ID 1 +#define BTA_BLE_LOCAL_KEY_TYPE_ER 2 +typedef UINT8 tBTA_DM_BLE_LOCAL_KEY_MASK; + +typedef struct { + BT_OCTET16 ir; + BT_OCTET16 irk; + BT_OCTET16 dhk; +} tBTA_BLE_LOCAL_ID_KEYS; + +#define BTA_DM_SEC_GRANTED BTA_SUCCESS +#define BTA_DM_SEC_PAIR_NOT_SPT BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT +#define BTA_DM_SEC_REP_ATTEMPTS BTA_DM_AUTH_SMP_REPEATED_ATTEMPT +typedef UINT8 tBTA_DM_BLE_SEC_GRANT; + + +#define BTA_DM_BLE_ONN_NONE BTM_BLE_CONN_NONE +#define BTA_DM_BLE_CONN_AUTO BTM_BLE_CONN_AUTO +#define BTA_DM_BLE_CONN_SELECTIVE BTM_BLE_CONN_SELECTIVE +typedef UINT8 tBTA_DM_BLE_CONN_TYPE; + +typedef BOOLEAN (tBTA_DM_BLE_SEL_CBACK)(BD_ADDR random_bda, UINT8 *p_remote_name); + +/* Structure associated with BTA_DM_BLE_SEC_REQ_EVT */ +typedef struct { + BD_ADDR bd_addr; /* peer address */ + BD_NAME bd_name; /* peer device name */ +} tBTA_DM_BLE_SEC_REQ; + +typedef struct { + BD_ADDR bd_addr; /* peer address */ + tBTM_LE_KEY_TYPE key_type; + tBTM_LE_KEY_VALUE *p_key_value; +} tBTA_DM_BLE_KEY; + +/* Structure associated with BTA_DM_AUTH_CMPL_EVT */ +typedef struct { + BD_ADDR bd_addr; /* BD address peer device. */ + BD_NAME bd_name; /* Name of peer device. */ + BOOLEAN key_present; /* Valid link key value in key element */ + LINK_KEY key; /* Link key associated with peer device. */ + UINT8 key_type; /* The type of Link Key */ + BOOLEAN success; /* TRUE of authentication succeeded, FALSE if failed. */ + UINT8 fail_reason; /* The HCI reason/error code for when success=FALSE */ + tBLE_ADDR_TYPE addr_type; /* Peer device address type */ + tBT_DEVICE_TYPE dev_type; +} tBTA_DM_AUTH_CMPL; + + +/* Structure associated with BTA_DM_AUTHORIZE_EVT */ +typedef struct { + BD_ADDR bd_addr; /* BD address peer device. */ + BD_NAME bd_name; /* Name of peer device. */ + tBTA_SERVICE_ID service; /* Service ID to authorize. */ +// btla-specific ++ + DEV_CLASS dev_class; +// btla-specific -- +} tBTA_DM_AUTHORIZE; + +/* Structure associated with BTA_DM_LINK_UP_EVT */ +typedef struct { + BD_ADDR bd_addr; /* BD address peer device. */ +#if BLE_INCLUDED == TRUE + tBTA_TRANSPORT link_type; +#endif +} tBTA_DM_LINK_UP; + +/* Structure associated with BTA_DM_LINK_DOWN_EVT */ +typedef struct { + BD_ADDR bd_addr; /* BD address peer device. */ + UINT8 status; /* connection open/closed */ + BOOLEAN is_removed; /* TRUE if device is removed when link is down */ +#if BLE_INCLUDED == TRUE + tBTA_TRANSPORT link_type; +#endif +} tBTA_DM_LINK_DOWN; + +/* Structure associated with BTA_DM_ROLE_CHG_EVT */ +typedef struct { + BD_ADDR bd_addr; /* BD address peer device. */ + UINT8 new_role; /* the new connection role */ +} tBTA_DM_ROLE_CHG; + +/* Structure associated with BTA_DM_BUSY_LEVEL_EVT */ +typedef struct { + UINT8 level; /* when paging or inquiring, level is 10. + Otherwise, the number of ACL links */ + UINT8 level_flags; /* indicates individual flags */ +} tBTA_DM_BUSY_LEVEL; + +#define BTA_IO_CAP_OUT BTM_IO_CAP_OUT /* 0 DisplayOnly */ +#define BTA_IO_CAP_IO BTM_IO_CAP_IO /* 1 DisplayYesNo */ +#define BTA_IO_CAP_IN BTM_IO_CAP_IN /* 2 KeyboardOnly */ +#define BTA_IO_CAP_NONE BTM_IO_CAP_NONE /* 3 NoInputNoOutput */ +#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE +#define BTA_IO_CAP_KBDISP BTM_IO_CAP_KBDISP /* 4 Keyboard display */ +#endif +typedef tBTM_IO_CAP tBTA_IO_CAP; + +#define BTA_AUTH_SP_NO BTM_AUTH_SP_NO /* 0 MITM Protection Not Required - Single Profile/non-bonding + Numeric comparison with automatic accept allowed */ +#define BTA_AUTH_SP_YES BTM_AUTH_SP_YES /* 1 MITM Protection Required - Single Profile/non-bonding + Use IO Capabilities to determine authentication procedure */ +#define BTA_AUTH_AP_NO BTM_AUTH_AP_NO /* 2 MITM Protection Not Required - All Profiles/dedicated bonding + Numeric comparison with automatic accept allowed */ +#define BTA_AUTH_AP_YES BTM_AUTH_AP_YES /* 3 MITM Protection Required - All Profiles/dedicated bonding + Use IO Capabilities to determine authentication procedure */ +#define BTA_AUTH_SPGB_NO BTM_AUTH_SPGB_NO /* 4 MITM Protection Not Required - Single Profiles/general bonding + Numeric comparison with automatic accept allowed */ +#define BTA_AUTH_SPGB_YES BTM_AUTH_SPGB_YES /* 5 MITM Protection Required - Single Profiles/general bonding + Use IO Capabilities to determine authentication procedure */ +typedef tBTM_AUTH_REQ tBTA_AUTH_REQ; + +#define BTA_AUTH_DD_BOND BTM_AUTH_DD_BOND /* 2 this bit is set for dedicated bonding */ +#define BTA_AUTH_GEN_BOND BTM_AUTH_SPGB_NO /* 4 this bit is set for general bonding */ +#define BTA_AUTH_BONDS BTM_AUTH_BONDS /* 6 the general/dedicated bonding bits */ + +#define BTA_LE_AUTH_NO_BOND BTM_LE_AUTH_REQ_NO_BOND /* 0*/ +#define BTA_LE_AUTH_BOND BTM_LE_AUTH_REQ_BOND /* 1 << 0 */ +#define BTA_LE_AUTH_REQ_MITM BTM_LE_AUTH_REQ_MITM /* 1 << 2 */ + +#define BTA_LE_AUTH_REQ_SC_ONLY BTM_LE_AUTH_REQ_SC_ONLY /* 1 << 3 */ +#define BTA_LE_AUTH_REQ_SC_BOND BTM_LE_AUTH_REQ_SC_BOND /* 1001 */ +#define BTA_LE_AUTH_REQ_SC_MITM BTM_LE_AUTH_REQ_SC_MITM /* 1100 */ +#define BTA_LE_AUTH_REQ_SC_MITM_BOND BTM_LE_AUTH_REQ_SC_MITM_BOND /* 1101 */ +typedef tBTM_LE_AUTH_REQ tBTA_LE_AUTH_REQ; /* combination of the above bit pattern */ + +#define BTA_OOB_NONE BTM_OOB_NONE +#define BTA_OOB_PRESENT BTM_OOB_PRESENT +#if BTM_OOB_INCLUDED == TRUE +#define BTA_OOB_UNKNOWN BTM_OOB_UNKNOWN +#endif +typedef tBTM_OOB_DATA tBTA_OOB_DATA; + +/* Structure associated with BTA_DM_SP_CFM_REQ_EVT */ +typedef struct { + /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in order */ + BD_ADDR bd_addr; /* peer address */ + DEV_CLASS dev_class; /* peer CoD */ + BD_NAME bd_name; /* peer device name */ + UINT32 num_val; /* the numeric value for comparison. If just_works, do not show this number to UI */ + BOOLEAN just_works; /* TRUE, if "Just Works" association model */ + tBTA_AUTH_REQ loc_auth_req; /* Authentication required for local device */ + tBTA_AUTH_REQ rmt_auth_req; /* Authentication required for peer device */ + tBTA_IO_CAP loc_io_caps; /* IO Capabilities of local device */ + tBTA_AUTH_REQ rmt_io_caps; /* IO Capabilities of remote device */ +} tBTA_DM_SP_CFM_REQ; + +enum { + BTA_SP_KEY_STARTED, /* passkey entry started */ + BTA_SP_KEY_ENTERED, /* passkey digit entered */ + BTA_SP_KEY_ERASED, /* passkey digit erased */ + BTA_SP_KEY_CLEARED, /* passkey cleared */ + BTA_SP_KEY_COMPLT /* passkey entry completed */ +}; +typedef UINT8 tBTA_SP_KEY_TYPE; + +/* Structure associated with BTA_DM_SP_KEYPRESS_EVT */ +typedef struct { + BD_ADDR bd_addr; /* peer address */ + tBTA_SP_KEY_TYPE notif_type; +} tBTA_DM_SP_KEY_PRESS; + +/* Structure associated with BTA_DM_SP_KEY_NOTIF_EVT */ +typedef struct { + /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in order */ + BD_ADDR bd_addr; /* peer address */ + DEV_CLASS dev_class; /* peer CoD */ + BD_NAME bd_name; /* peer device name */ + UINT32 passkey; /* the numeric value for comparison. If just_works, do not show this number to UI */ +} tBTA_DM_SP_KEY_NOTIF; + +/* Structure associated with BTA_DM_SP_RMT_OOB_EVT */ +typedef struct { + /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in order */ + BD_ADDR bd_addr; /* peer address */ + DEV_CLASS dev_class; /* peer CoD */ + BD_NAME bd_name; /* peer device name */ +} tBTA_DM_SP_RMT_OOB; + +/* Structure associated with BTA_DM_BOND_CANCEL_CMPL_EVT */ +typedef struct { + tBTA_STATUS result; /* TRUE of bond cancel succeeded, FALSE if failed. */ +} tBTA_DM_BOND_CANCEL_CMPL; + +/* Union of all security callback structures */ +typedef union { + tBTA_DM_ENABLE enable; /* BTA enabled */ + tBTA_DM_PIN_REQ pin_req; /* PIN request. */ + tBTA_DM_AUTH_CMPL auth_cmpl; /* Authentication complete indication. */ + tBTA_DM_AUTHORIZE authorize; /* Authorization request. */ + tBTA_DM_LINK_UP link_up; /* ACL connection down event */ + tBTA_DM_LINK_DOWN link_down; /* ACL connection down event */ + tBTA_DM_BUSY_LEVEL busy_level; /* System busy level */ + tBTA_DM_SP_CFM_REQ cfm_req; /* user confirm request */ + tBTA_DM_SP_KEY_NOTIF key_notif; /* passkey notification */ + tBTA_DM_SP_RMT_OOB rmt_oob; /* remote oob */ + tBTA_DM_BOND_CANCEL_CMPL bond_cancel_cmpl; /* Bond Cancel Complete indication */ + tBTA_DM_SP_KEY_PRESS key_press; /* key press notification event */ + tBTA_DM_ROLE_CHG role_chg; /* role change event */ + tBTA_DM_BLE_SEC_REQ ble_req; /* BLE SMP related request */ + tBTA_DM_BLE_KEY ble_key; /* BLE SMP keys used when pairing */ + tBTA_BLE_LOCAL_ID_KEYS ble_id_keys; /* IR event */ + BT_OCTET16 ble_er; /* ER event data */ +} tBTA_DM_SEC; + +/* Security callback */ +typedef void (tBTA_DM_SEC_CBACK)(tBTA_DM_SEC_EVT event, tBTA_DM_SEC *p_data); + +#define BTA_BLE_MULTI_ADV_ILLEGAL 0 + +/* multi adv callback event */ +#define BTA_BLE_MULTI_ADV_ENB_EVT 1 +#define BTA_BLE_MULTI_ADV_DISABLE_EVT 2 +#define BTA_BLE_MULTI_ADV_PARAM_EVT 3 +#define BTA_BLE_MULTI_ADV_DATA_EVT 4 + +typedef UINT8 tBTA_BLE_MULTI_ADV_EVT; + +/* multi adv callback */ +typedef void (tBTA_BLE_MULTI_ADV_CBACK)(tBTA_BLE_MULTI_ADV_EVT event, + UINT8 inst_id, void *p_ref, tBTA_STATUS status); +typedef UINT32 tBTA_DM_BLE_REF_VALUE; + +#define BTA_DM_BLE_PF_ENABLE_EVT BTM_BLE_PF_ENABLE +#define BTA_DM_BLE_PF_CONFIG_EVT BTM_BLE_PF_CONFIG +typedef UINT8 tBTA_DM_BLE_PF_EVT; + +#define BTA_DM_BLE_PF_ENABLE 1 +#define BTA_DM_BLE_PF_CONFIG 2 +typedef UINT8 tBTA_DM_BLE_PF_ACTION; + +/* Config callback */ +typedef void (tBTA_DM_BLE_PF_CFG_CBACK) (tBTA_DM_BLE_PF_ACTION action, + tBTA_DM_BLE_PF_COND_TYPE cfg_cond, + tBTA_DM_BLE_PF_AVBL_SPACE avbl_space, tBTA_STATUS status, + tBTA_DM_BLE_REF_VALUE ref_value); +/* Param callback */ +typedef void (tBTA_DM_BLE_PF_PARAM_CBACK) (UINT8 action_type, tBTA_DM_BLE_PF_AVBL_SPACE avbl_space, + tBTA_DM_BLE_REF_VALUE ref_value, tBTA_STATUS status); + +/* Status callback */ +typedef void (tBTA_DM_BLE_PF_STATUS_CBACK) (UINT8 action, tBTA_STATUS status, + tBTA_DM_BLE_REF_VALUE ref_value); + + +#define BTA_DM_BLE_PF_BRDCAST_ADDR_FILT 1 +#define BTA_DM_BLE_PF_SERV_DATA_CHG_FILT 2 +#define BTA_DM_BLE_PF_SERV_UUID 4 +#define BTA_DM_BLE_PF_SERV_SOLC_UUID 8 +#define BTA_DM_BLE_PF_LOC_NAME_CHECK 16 +#define BTA_DM_BLE_PF_MANUF_NAME_CHECK 32 +#define BTA_DM_BLE_PF_SERV_DATA_CHECK 64 +typedef UINT16 tBTA_DM_BLE_PF_FEAT_SEL; + +#define BTA_DM_BLE_PF_LIST_LOGIC_OR 1 +#define BTA_DM_BLE_PF_LIST_LOGIC_AND 2 +typedef UINT16 tBTA_DM_BLE_PF_LIST_LOGIC_TYPE; + +#define BTA_DM_BLE_PF_FILT_LOGIC_OR 0 +#define BTA_DM_BLE_PF_FILT_LOGIC_AND 1 +typedef UINT16 tBTA_DM_BLE_PF_FILT_LOGIC_TYPE; + +typedef UINT8 tBTA_DM_BLE_PF_RSSI_THRESHOLD; +typedef UINT8 tBTA_DM_BLE_PF_DELIVERY_MODE; +typedef UINT16 tBTA_DM_BLE_PF_TIMEOUT; +typedef UINT8 tBTA_DM_BLE_PF_TIMEOUT_CNT; +typedef UINT16 tBTA_DM_BLE_PF_ADV_TRACK_ENTRIES; + +typedef struct { + tBTA_DM_BLE_PF_FEAT_SEL feat_seln; + tBTA_DM_BLE_PF_LIST_LOGIC_TYPE list_logic_type; + tBTA_DM_BLE_PF_FILT_LOGIC_TYPE filt_logic_type; + tBTA_DM_BLE_PF_RSSI_THRESHOLD rssi_high_thres; + tBTA_DM_BLE_PF_RSSI_THRESHOLD rssi_low_thres; + tBTA_DM_BLE_PF_DELIVERY_MODE dely_mode; + tBTA_DM_BLE_PF_TIMEOUT found_timeout; + tBTA_DM_BLE_PF_TIMEOUT lost_timeout; + tBTA_DM_BLE_PF_TIMEOUT_CNT found_timeout_cnt; + tBTA_DM_BLE_PF_ADV_TRACK_ENTRIES num_of_tracking_entries; +} tBTA_DM_BLE_PF_FILT_PARAMS; + +/* Search callback events */ +#define BTA_DM_INQ_RES_EVT 0 /* Inquiry result for a peer device. */ +#define BTA_DM_INQ_CMPL_EVT 1 /* Inquiry complete. */ +#define BTA_DM_DISC_RES_EVT 2 /* Discovery result for a peer device. */ +#define BTA_DM_DISC_BLE_RES_EVT 3 /* Discovery result for BLE GATT based servoce on a peer device. */ +#define BTA_DM_DISC_CMPL_EVT 4 /* Discovery complete. */ +#define BTA_DM_DI_DISC_CMPL_EVT 5 /* Discovery complete. */ +#define BTA_DM_SEARCH_CANCEL_CMPL_EVT 6 /* Search cancelled */ + +typedef UINT8 tBTA_DM_SEARCH_EVT; + +#define BTA_DM_INQ_RES_IGNORE_RSSI BTM_INQ_RES_IGNORE_RSSI /* 0x7f RSSI value not supplied (ignore it) */ + +/* Structure associated with BTA_DM_INQ_RES_EVT */ +typedef struct { + BD_ADDR bd_addr; /* BD address peer device. */ + DEV_CLASS dev_class; /* Device class of peer device. */ + BOOLEAN remt_name_not_required; /* Application sets this flag if it already knows the name of the device */ + /* If the device name is known to application BTA skips the remote name request */ + BOOLEAN is_limited; /* TRUE, if the limited inquiry bit is set in the CoD */ + INT8 rssi; /* The rssi value */ + UINT8 *p_eir; /* received EIR */ +#if (BLE_INCLUDED == TRUE) + UINT8 inq_result_type; + UINT8 ble_addr_type; + tBTM_BLE_EVT_TYPE ble_evt_type; + tBT_DEVICE_TYPE device_type; + UINT8 flag; +#endif + +} tBTA_DM_INQ_RES; + +/* Structure associated with BTA_DM_INQ_CMPL_EVT */ +typedef struct { + UINT8 num_resps; /* Number of inquiry responses. */ +} tBTA_DM_INQ_CMPL; + +/* Structure associated with BTA_DM_DI_DISC_CMPL_EVT */ +typedef struct { + BD_ADDR bd_addr; /* BD address peer device. */ + UINT8 num_record; /* Number of DI record */ + tBTA_STATUS result; +} tBTA_DM_DI_DISC_CMPL; + +/* Structure associated with BTA_DM_DISC_RES_EVT */ +typedef struct { + BD_ADDR bd_addr; /* BD address peer device. */ + BD_NAME bd_name; /* Name of peer device. */ + tBTA_SERVICE_MASK services; /* Services found on peer device. */ +// btla-specific ++ + UINT8 *p_raw_data; /* Raw data for discovery DB */ + UINT32 raw_data_size; /* size of raw data */ + tBT_DEVICE_TYPE device_type; /* device type in case it is BLE device */ + UINT32 num_uuids; + UINT8 *p_uuid_list; +// btla-specific -- + tBTA_STATUS result; +} tBTA_DM_DISC_RES; + +/* Structure associated with tBTA_DM_DISC_BLE_RES */ +typedef struct { + BD_ADDR bd_addr; /* BD address peer device. */ + BD_NAME bd_name; /* Name of peer device. */ + tBT_UUID service; /* GATT based Services UUID found on peer device. */ +} tBTA_DM_DISC_BLE_RES; + + +/* Union of all search callback structures */ +typedef union { + tBTA_DM_INQ_RES inq_res; /* Inquiry result for a peer device. */ + tBTA_DM_INQ_CMPL inq_cmpl; /* Inquiry complete. */ + tBTA_DM_DISC_RES disc_res; /* Discovery result for a peer device. */ + tBTA_DM_DISC_BLE_RES disc_ble_res; /* discovery result for GATT based service */ + tBTA_DM_DI_DISC_CMPL di_disc; /* DI discovery result for a peer device */ + +} tBTA_DM_SEARCH; + +/* Search callback */ +typedef void (tBTA_DM_SEARCH_CBACK)(tBTA_DM_SEARCH_EVT event, tBTA_DM_SEARCH *p_data); + +/* Execute call back */ +typedef void (tBTA_DM_EXEC_CBACK) (void *p_param); + +/* Encryption callback*/ +typedef void (tBTA_DM_ENCRYPT_CBACK) (BD_ADDR bd_addr, tBTA_TRANSPORT transport, tBTA_STATUS result); + +#if BLE_INCLUDED == TRUE +#define BTA_DM_BLE_SEC_NONE BTM_BLE_SEC_NONE +#define BTA_DM_BLE_SEC_ENCRYPT BTM_BLE_SEC_ENCRYPT +#define BTA_DM_BLE_SEC_NO_MITM BTM_BLE_SEC_ENCRYPT_NO_MITM +#define BTA_DM_BLE_SEC_MITM BTM_BLE_SEC_ENCRYPT_MITM +typedef tBTM_BLE_SEC_ACT tBTA_DM_BLE_SEC_ACT; + +typedef tBTM_BLE_TX_TIME_MS tBTA_DM_BLE_TX_TIME_MS; +typedef tBTM_BLE_RX_TIME_MS tBTA_DM_BLE_RX_TIME_MS; +typedef tBTM_BLE_IDLE_TIME_MS tBTA_DM_BLE_IDLE_TIME_MS; +typedef tBTM_BLE_ENERGY_USED tBTA_DM_BLE_ENERGY_USED; + +#define BTA_DM_CONTRL_UNKNOWN 0 /* Unknown state */ +#define BTA_DM_CONTRL_ACTIVE 1 /* ACL link on, SCO link ongoing, sniff mode */ +#define BTA_DM_CONTRL_SCAN 2 /* Scan state - paging/inquiry/trying to connect*/ +#define BTA_DM_CONTRL_IDLE 3 /* Idle state - page scan, LE advt, inquiry scan */ + +typedef UINT8 tBTA_DM_CONTRL_STATE; + +typedef UINT8 tBTA_DM_BLE_ADV_STATE; +typedef UINT8 tBTA_DM_BLE_ADV_INFO_PRESENT; +typedef UINT8 tBTA_DM_BLE_RSSI_VALUE; +typedef UINT16 tBTA_DM_BLE_ADV_INFO_TIMESTAMP; + +typedef tBTM_BLE_TRACK_ADV_DATA tBTA_DM_BLE_TRACK_ADV_DATA; + +typedef void (tBTA_BLE_SCAN_THRESHOLD_CBACK)(tBTA_DM_BLE_REF_VALUE ref_value); + +typedef void (tBTA_BLE_SCAN_REP_CBACK) (tBTA_DM_BLE_REF_VALUE ref_value, UINT8 report_format, + UINT8 num_records, UINT16 data_len, + UINT8 *p_rep_data, tBTA_STATUS status); + +typedef void (tBTA_BLE_SCAN_SETUP_CBACK) (tBTA_BLE_BATCH_SCAN_EVT evt, + tBTA_DM_BLE_REF_VALUE ref_value, + tBTA_STATUS status); + +typedef void (tBTA_BLE_TRACK_ADV_CMPL_CBACK)(int action, tBTA_STATUS status, + tBTA_DM_BLE_PF_AVBL_SPACE avbl_space, + tBTA_DM_BLE_REF_VALUE ref_value); + +typedef void (tBTA_BLE_TRACK_ADV_CBACK)(tBTA_DM_BLE_TRACK_ADV_DATA *p_adv_data); + +typedef void (tBTA_BLE_ENERGY_INFO_CBACK)(tBTA_DM_BLE_TX_TIME_MS tx_time, + tBTA_DM_BLE_RX_TIME_MS rx_time, + tBTA_DM_BLE_IDLE_TIME_MS idle_time, + tBTA_DM_BLE_ENERGY_USED energy_used, + tBTA_DM_CONTRL_STATE ctrl_state, + tBTA_STATUS status); + +#else +typedef UINT8 tBTA_DM_BLE_SEC_ACT; +#endif + +/* Maximum service name length */ +#define BTA_SERVICE_NAME_LEN 35 +#define BTA_SERVICE_DESP_LEN BTA_SERVICE_NAME_LEN +#define BTA_PROVIDER_NAME_LEN BTA_SERVICE_NAME_LEN + + +/* link policy masks */ +#define BTA_DM_LP_SWITCH HCI_ENABLE_MASTER_SLAVE_SWITCH +#define BTA_DM_LP_HOLD HCI_ENABLE_HOLD_MODE +#define BTA_DM_LP_SNIFF HCI_ENABLE_SNIFF_MODE +#define BTA_DM_LP_PARK HCI_ENABLE_PARK_MODE +typedef UINT16 tBTA_DM_LP_MASK; + +/* power mode actions */ +#define BTA_DM_PM_NO_ACTION 0x00 /* no change to the current pm setting */ +#define BTA_DM_PM_PARK 0x10 /* prefers park mode */ +#define BTA_DM_PM_SNIFF 0x20 /* prefers sniff mode */ +#define BTA_DM_PM_SNIFF1 0x21 /* prefers sniff1 mode */ +#define BTA_DM_PM_SNIFF2 0x22 /* prefers sniff2 mode */ +#define BTA_DM_PM_SNIFF3 0x23 /* prefers sniff3 mode */ +#define BTA_DM_PM_SNIFF4 0x24 /* prefers sniff4 mode */ +#define BTA_DM_PM_SNIFF5 0x25 /* prefers sniff5 mode */ +#define BTA_DM_PM_SNIFF6 0x26 /* prefers sniff6 mode */ +#define BTA_DM_PM_SNIFF7 0x27 /* prefers sniff7 mode */ +#define BTA_DM_PM_SNIFF_USER0 0x28 /* prefers user-defined sniff0 mode (testtool only) */ +#define BTA_DM_PM_SNIFF_USER1 0x29 /* prefers user-defined sniff1 mode (testtool only) */ +#define BTA_DM_PM_ACTIVE 0x40 /* prefers active mode */ +#define BTA_DM_PM_RETRY 0x80 /* retry power mode based on current settings */ +#define BTA_DM_PM_SUSPEND 0x04 /* prefers suspend mode */ +#define BTA_DM_PM_NO_PREF 0x01 /* service has no prefernce on power mode setting. eg. connection to service got closed */ + +typedef UINT8 tBTA_DM_PM_ACTION; + +/* index to bta_dm_ssr_spec */ +#define BTA_DM_PM_SSR0 0 +#define BTA_DM_PM_SSR1 1 /* BTA_DM_PM_SSR1 will be dedicated for + HH SSR setting entry, no other profile can use it */ +#define BTA_DM_PM_SSR2 2 +#define BTA_DM_PM_SSR3 3 +#define BTA_DM_PM_SSR4 4 +#define BTA_DM_PM_SSR5 5 +#define BTA_DM_PM_SSR6 6 + +#define BTA_DM_PM_NUM_EVTS 9 + +#ifndef BTA_DM_PM_PARK_IDX +#define BTA_DM_PM_PARK_IDX 5 /* the actual index to bta_dm_pm_md[] for PARK mode */ +#endif + +#ifndef BTA_DM_PM_SNIFF_A2DP_IDX +#define BTA_DM_PM_SNIFF_A2DP_IDX BTA_DM_PM_SNIFF +#endif + +#ifndef BTA_DM_PM_SNIFF_HD_IDLE_IDX +#define BTA_DM_PM_SNIFF_HD_IDLE_IDX BTA_DM_PM_SNIFF2 +#endif + +#ifndef BTA_DM_PM_SNIFF_SCO_OPEN_IDX +#define BTA_DM_PM_SNIFF_SCO_OPEN_IDX BTA_DM_PM_SNIFF3 +#endif + +#ifndef BTA_DM_PM_SNIFF_HD_ACTIVE_IDX +#define BTA_DM_PM_SNIFF_HD_ACTIVE_IDX BTA_DM_PM_SNIFF4 +#endif + +#ifndef BTA_DM_PM_SNIFF_HH_OPEN_IDX +#define BTA_DM_PM_SNIFF_HH_OPEN_IDX BTA_DM_PM_SNIFF2 +#endif + +#ifndef BTA_DM_PM_SNIFF_HH_ACTIVE_IDX +#define BTA_DM_PM_SNIFF_HH_ACTIVE_IDX BTA_DM_PM_SNIFF2 +#endif + +#ifndef BTA_DM_PM_SNIFF_HH_IDLE_IDX +#define BTA_DM_PM_SNIFF_HH_IDLE_IDX BTA_DM_PM_SNIFF2 +#endif + + +#ifndef BTA_DM_PM_HH_OPEN_DELAY +#define BTA_DM_PM_HH_OPEN_DELAY 30000 +#endif + +#ifndef BTA_DM_PM_HH_ACTIVE_DELAY +#define BTA_DM_PM_HH_ACTIVE_DELAY 30000 +#endif + +#ifndef BTA_DM_PM_HH_IDLE_DELAY +#define BTA_DM_PM_HH_IDLE_DELAY 30000 +#endif + +/* The Sniff Parameters defined below must be ordered from highest + * latency (biggest interval) to lowest latency. If there is a conflict + * among the connected services the setting with the lowest latency will + * be selected. If a device should override a sniff parameter then it + * must insure that order is maintained. + */ +#ifndef BTA_DM_PM_SNIFF_MAX +#define BTA_DM_PM_SNIFF_MAX 800 +#define BTA_DM_PM_SNIFF_MIN 400 +#define BTA_DM_PM_SNIFF_ATTEMPT 4 +#define BTA_DM_PM_SNIFF_TIMEOUT 1 +#endif + +#ifndef BTA_DM_PM_SNIFF1_MAX +#define BTA_DM_PM_SNIFF1_MAX 400 +#define BTA_DM_PM_SNIFF1_MIN 200 +#define BTA_DM_PM_SNIFF1_ATTEMPT 4 +#define BTA_DM_PM_SNIFF1_TIMEOUT 1 +#endif + +#ifndef BTA_DM_PM_SNIFF2_MAX +#define BTA_DM_PM_SNIFF2_MAX 180 +#define BTA_DM_PM_SNIFF2_MIN 150 +#define BTA_DM_PM_SNIFF2_ATTEMPT 4 +#define BTA_DM_PM_SNIFF2_TIMEOUT 1 +#endif + +#ifndef BTA_DM_PM_SNIFF3_MAX +#define BTA_DM_PM_SNIFF3_MAX 150 +#define BTA_DM_PM_SNIFF3_MIN 50 +#define BTA_DM_PM_SNIFF3_ATTEMPT 4 +#define BTA_DM_PM_SNIFF3_TIMEOUT 1 +#endif + +#ifndef BTA_DM_PM_SNIFF4_MAX +#define BTA_DM_PM_SNIFF4_MAX 54 +#define BTA_DM_PM_SNIFF4_MIN 30 +#define BTA_DM_PM_SNIFF4_ATTEMPT 4 +#define BTA_DM_PM_SNIFF4_TIMEOUT 1 +#endif + +#ifndef BTA_DM_PM_SNIFF5_MAX +#define BTA_DM_PM_SNIFF5_MAX 36 +#define BTA_DM_PM_SNIFF5_MIN 30 +#define BTA_DM_PM_SNIFF5_ATTEMPT 2 +#define BTA_DM_PM_SNIFF5_TIMEOUT 0 +#endif + +#ifndef BTA_DM_PM_PARK_MAX +#define BTA_DM_PM_PARK_MAX 800 +#define BTA_DM_PM_PARK_MIN 400 +#define BTA_DM_PM_PARK_ATTEMPT 0 +#define BTA_DM_PM_PARK_TIMEOUT 0 +#endif + + +/* Switch callback events */ +#define BTA_DM_SWITCH_CMPL_EVT 0 /* Completion of the Switch API */ + +typedef UINT8 tBTA_DM_SWITCH_EVT; +typedef void (tBTA_DM_SWITCH_CBACK)(tBTA_DM_SWITCH_EVT event, tBTA_STATUS status); + +/* Audio routing out configuration */ +#define BTA_DM_ROUTE_NONE 0x00 /* No Audio output */ +#define BTA_DM_ROUTE_DAC 0x01 /* routing over analog output */ +#define BTA_DM_ROUTE_I2S 0x02 /* routing over digital (I2S) output */ +#define BTA_DM_ROUTE_BT_MONO 0x04 /* routing over SCO */ +#define BTA_DM_ROUTE_BT_STEREO 0x08 /* routing over BT Stereo */ +#define BTA_DM_ROUTE_HOST 0x10 /* routing over Host */ +#define BTA_DM_ROUTE_FMTX 0x20 /* routing over FMTX */ +#define BTA_DM_ROUTE_FMRX 0x40 /* routing over FMRX */ +#define BTA_DM_ROUTE_BTSNK 0x80 /* routing over BT SNK */ + +typedef UINT8 tBTA_DM_ROUTE_PATH; + + +/* Device Identification (DI) data structure +*/ +/* Used to set the DI record */ +typedef tSDP_DI_RECORD tBTA_DI_RECORD; +/* Used to get the DI record */ +typedef tSDP_DI_GET_RECORD tBTA_DI_GET_RECORD; +/* SDP discovery database */ +typedef tSDP_DISCOVERY_DB tBTA_DISCOVERY_DB; + +#ifndef BTA_DI_NUM_MAX +#define BTA_DI_NUM_MAX 3 +#endif + +/* Device features mask definitions */ +#define BTA_FEATURE_BYTES_PER_PAGE BTM_FEATURE_BYTES_PER_PAGE +#define BTA_EXT_FEATURES_PAGE_MAX BTM_EXT_FEATURES_PAGE_MAX +/* ACL type +*/ +#define BTA_DM_LINK_TYPE_BR_EDR 0x01 +#define BTA_DM_LINK_TYPE_LE 0x02 +#define BTA_DM_LINK_TYPE_ALL 0xFF +typedef UINT8 tBTA_DM_LINK_TYPE; + +#define IMMEDIATE_DELY_MODE 0x00 +#define ONFOUND_DELY_MODE 0x01 +#define BATCH_DELY_MODE 0x02 +#define ALLOW_ALL_FILTER 0x00 +#define LOWEST_RSSI_VALUE 129 + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif + +/******************************************************************************* +** +** Function BTA_EnableBluetooth +** +** Description This function initializes BTA and prepares BTA and the +** Bluetooth protocol stack for use. This function is +** typically called at startup or when Bluetooth services +** are required by the phone. This function must be called +** before calling any other API function. +** +** +** Returns BTA_SUCCESS if successful. +** BTA_FAIL if internal failure. +** +*******************************************************************************/ +extern tBTA_STATUS BTA_EnableBluetooth(tBTA_DM_SEC_CBACK *p_cback); + +/******************************************************************************* +** +** Function BTA_DisableBluetooth +** +** Description This function disables BTA and the Bluetooth protocol +** stack. It is called when BTA is no longer being used +** by any application in the system. +** +** +** Returns void +** +*******************************************************************************/ +extern tBTA_STATUS BTA_DisableBluetooth(void); + +/******************************************************************************* +** +** Function BTA_EnableTestMode +** +** Description Enables bluetooth device under test mode +** +** +** Returns tBTA_STATUS +** +*******************************************************************************/ +extern tBTA_STATUS BTA_EnableTestMode(void); + +/******************************************************************************* +** +** Function BTA_DisableTestMode +** +** Description Disable bluetooth device under test mode +** +** +** Returns None +** +*******************************************************************************/ +extern void BTA_DisableTestMode(void); + +/******************************************************************************* +** +** Function BTA_DmSetDeviceName +** +** Description This function sets the Bluetooth name of the local device. +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmSetDeviceName(char *p_name); + +/******************************************************************************* +** +** Function BTA_DmSetVisibility +** +** Description This function sets the Bluetooth connectable,discoverable, +** pairable and conn paired only modesmodes of the local device. +** This controls whether other Bluetooth devices can find and connect to +** the local device. +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmSetVisibility(tBTA_DM_DISC disc_mode, tBTA_DM_CONN conn_mode, UINT8 pairable_mode, UINT8 conn_filter); + +/******************************************************************************* +** +** Function BTA_DmSearch +** +** Description This function searches for peer Bluetooth devices. It +** first performs an inquiry; for each device found from the +** inquiry it gets the remote name of the device. If +** parameter services is nonzero, service discovery will be +** performed on each device for the services specified. +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmSearch(tBTA_DM_INQ *p_dm_inq, tBTA_SERVICE_MASK services, + tBTA_DM_SEARCH_CBACK *p_cback); + +/******************************************************************************* +** +** Function BTA_DmSearchCancel +** +** Description This function cancels a search that has been initiated +** by calling BTA_DmSearch(). +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmSearchCancel(void); + +/******************************************************************************* +** +** Function BTA_DmDiscover +** +** Description This function performs service discovery for the services +** of a particular peer device. +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmDiscover(BD_ADDR bd_addr, tBTA_SERVICE_MASK services, + tBTA_DM_SEARCH_CBACK *p_cback, BOOLEAN sdp_search); + +// btla-specific ++ +/******************************************************************************* +** +** Function BTA_DmDiscoverUUID +** +** Description This function performs service discovery for the services +** of a particular peer device. +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmDiscoverUUID(BD_ADDR bd_addr, tSDP_UUID *uuid, + tBTA_DM_SEARCH_CBACK *p_cback, BOOLEAN sdp_search); + +/******************************************************************************* +** +** Function BTA_DmGetCachedRemoteName +** +** Description Retieve cached remote name if available +** +** Returns BTA_SUCCESS if cached name was retrieved +** BTA_FAILURE if cached name is not available +** +*******************************************************************************/ +tBTA_STATUS BTA_DmGetCachedRemoteName(BD_ADDR remote_device, UINT8 **pp_cached_name); +// btla-specific -- + +/******************************************************************************* +** +** Function BTA_DmBond +** +** Description This function initiates a bonding procedure with a peer +** device. The bonding procedure enables authentication +** and optionally encryption on the Bluetooth link. +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBond(BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function BTA_DmBondByTransport +** +** Description This function initiates a bonding procedure with a peer +** device by designated transport. The bonding procedure enables +** authentication and optionally encryption on the Bluetooth link. +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBondByTransport(BD_ADDR bd_addr, tBTA_TRANSPORT transport); + + +/******************************************************************************* +** +** Function BTA_DmBondCancel +** +** Description This function cancels a bonding procedure with a peer +** device. +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBondCancel(BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function BTA_DmPinReply +** +** Description This function provides a PIN when one is requested by DM +** during a bonding procedure. The application should call +** this function after the security callback is called with +** a BTA_DM_PIN_REQ_EVT. +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmPinReply(BD_ADDR bd_addr, BOOLEAN accept, UINT8 pin_len, + UINT8 *p_pin); + +#if (BTM_OOB_INCLUDED == TRUE) +/******************************************************************************* +** +** Function BTA_DmLocalOob +** +** Description This function retrieves the OOB data from local controller. +** The result is reported by bta_dm_co_loc_oob(). +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmLocalOob(void); +#endif /* BTM_OOB_INCLUDED */ + +/******************************************************************************* +** +** Function BTA_DmConfirm +** +** Description This function accepts or rejects the numerical value of the +** Simple Pairing process on BTA_DM_SP_CFM_REQ_EVT +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmConfirm(BD_ADDR bd_addr, BOOLEAN accept); + +/******************************************************************************* +** +** Function BTA_DmAddDevice +** +** Description This function adds a device to the security database list +** of peer devices. This function would typically be called +** at system startup to initialize the security database with +** known peer devices. This is a direct execution function +** that may lock task scheduling on some platforms. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmAddDevice(BD_ADDR bd_addr, DEV_CLASS dev_class, + LINK_KEY link_key, tBTA_SERVICE_MASK trusted_mask, + BOOLEAN is_trusted, UINT8 key_type, + tBTA_IO_CAP io_cap, UINT8 pin_length); + +/******************************************************************************* +** +** Function BTA_DmRemoveDevice +** +** Description This function removes a device from the security database. +** This is a direct execution function that may lock task +** scheduling on some platforms. +** +** +** Returns BTA_SUCCESS if successful. +** BTA_FAIL if operation failed. +** +*******************************************************************************/ +extern tBTA_STATUS BTA_DmRemoveDevice(BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function BTA_GetEirService +** +** Description This function is called to get BTA service mask from EIR. +** +** Parameters p_eir - pointer of EIR significant part +** p_services - return the BTA service mask +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GetEirService( UINT8 *p_eir, tBTA_SERVICE_MASK *p_services ); + +/******************************************************************************* +** +** Function BTA_DmGetConnectionState +** +** Description Returns whether the remote device is currently connected. +** +** Returns 0 if the device is NOT connected. +** +*******************************************************************************/ +extern UINT16 BTA_DmGetConnectionState( BD_ADDR bd_addr ); + + +/******************************************************************************* +** +** Function BTA_DmSetLocalDiRecord +** +** Description This function adds a DI record to the local SDP database. +** +** Returns BTA_SUCCESS if record set sucessfully, otherwise error code. +** +*******************************************************************************/ +extern tBTA_STATUS BTA_DmSetLocalDiRecord( tBTA_DI_RECORD *p_device_info, + UINT32 *p_handle ); + +/******************************************************************************* +** +** +** Function BTA_DmCloseACL +** +** Description This function force to close an ACL connection and remove the +** device from the security database list of known devices. +** +** Parameters: bd_addr - Address of the peer device +** remove_dev - remove device or not after link down +** transport - which transport to close + +** +** Returns void. +** +*******************************************************************************/ +extern void BTA_DmCloseACL(BD_ADDR bd_addr, BOOLEAN remove_dev, tBTA_TRANSPORT transport); + +/******************************************************************************* +** +** Function bta_dmexecutecallback +** +** Description This function will request BTA to execute a call back in the context of BTU task +** This API was named in lower case because it is only intended +** for the internal customers(like BTIF). +** +** Returns void +** +*******************************************************************************/ +extern void bta_dmexecutecallback (tBTA_DM_EXEC_CBACK *p_callback, void *p_param); + +#if (BTM_SCO_HCI_INCLUDED == TRUE) +/******************************************************************************* +** +** Function BTA_DmPcmInitSamples +** +** Description initialize the down sample converter. +** +** src_sps: original samples per second (source audio data) +** (ex. 44100, 48000) +** bits: number of bits per pcm sample (16) +** n_channels: number of channels (i.e. mono(1), stereo(2)...) +** +** Returns none +** +*******************************************************************************/ +extern void BTA_DmPcmInitSamples (UINT32 src_sps, UINT32 bits, UINT32 n_channels); + +/************************************************************************************** +** Function BTA_DmPcmResample +** +** Description Down sampling utility to convert higher sampling rate into 8K/16bits +** PCM samples. +** +** Parameters p_src: pointer to the buffer where the original sampling PCM +** are stored. +** in_bytes: Length of the input PCM sample buffer in byte. +** p_dst: pointer to the buffer which is to be used to store +** the converted PCM samples. +** +** +** Returns INT32: number of samples converted. +** +**************************************************************************************/ +extern INT32 BTA_DmPcmResample (void *p_src, UINT32 in_bytes, void *p_dst); +#endif + +#if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) +/* BLE related API functions */ +/******************************************************************************* +** +** Function BTA_DmBleSecurityGrant +** +** Description Grant security request access. +** +** Parameters: bd_addr - BD address of the peer +** res - security grant status. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBleSecurityGrant(BD_ADDR bd_addr, tBTA_DM_BLE_SEC_GRANT res); + + + +/******************************************************************************* +** +** Function BTA_DmBleSetBgConnType +** +** Description This function is called to set BLE connectable mode for a +** peripheral device. +** +** Parameters bg_conn_type: it can be auto connection, or selective connection. +** p_select_cback: callback function when selective connection procedure +** is being used. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBleSetBgConnType(tBTA_DM_BLE_CONN_TYPE bg_conn_type, tBTA_DM_BLE_SEL_CBACK *p_select_cback); + +/******************************************************************************* +** +** Function BTA_DmBlePasskeyReply +** +** Description Send BLE SMP passkey reply. +** +** Parameters: bd_addr - BD address of the peer +** accept - passkey entry sucessful or declined. +** passkey - passkey value, must be a 6 digit number, +** can be lead by 0. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBlePasskeyReply(BD_ADDR bd_addr, BOOLEAN accept, UINT32 passkey); + +/******************************************************************************* +** +** Function BTA_DmBleConfirmReply +** +** Description Send BLE SMP SC user confirmation reply. +** +** Parameters: bd_addr - BD address of the peer +** accept - numbers to compare are the same or different. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBleConfirmReply(BD_ADDR bd_addr, BOOLEAN accept); + +/******************************************************************************* +** +** Function BTA_DmAddBleDevice +** +** Description Add a BLE device. This function will be normally called +** during host startup to restore all required information +** for a LE device stored in the NVRAM. +** +** Parameters: bd_addr - BD address of the peer +** dev_type - Remote device's device type. +** addr_type - LE device address type. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmAddBleDevice(BD_ADDR bd_addr, tBLE_ADDR_TYPE addr_type, + tBT_DEVICE_TYPE dev_type); + + +/******************************************************************************* +** +** Function BTA_DmAddBleKey +** +** Description Add/modify LE device information. This function will be +** normally called during host startup to restore all required +** information stored in the NVRAM. +** +** Parameters: bd_addr - BD address of the peer +** p_le_key - LE key values. +** key_type - LE SMP key type. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmAddBleKey (BD_ADDR bd_addr, + tBTA_LE_KEY_VALUE *p_le_key, + tBTA_LE_KEY_TYPE key_type); + +/******************************************************************************* +** +** Function BTA_DmSetBlePrefConnParams +** +** Description This function is called to set the preferred connection +** parameters when default connection parameter is not desired. +** +** Parameters: bd_addr - BD address of the peripheral +** min_conn_int - minimum preferred connection interval +** max_conn_int - maximum preferred connection interval +** slave_latency - preferred slave latency +** supervision_tout - preferred supervision timeout +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmSetBlePrefConnParams(BD_ADDR bd_addr, + UINT16 min_conn_int, UINT16 max_conn_int, + UINT16 slave_latency, UINT16 supervision_tout ); + +/******************************************************************************* +** +** Function BTA_DmSetBleConnScanParams +** +** Description This function is called to set scan parameters used in +** BLE connection request +** +** Parameters: scan_interval - scan interval +** scan_window - scan window +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmSetBleConnScanParams(UINT32 scan_interval, + UINT32 scan_window); + +/******************************************************************************* +** +** Function BTA_DmSetBleScanParams +** +** Description This function is called to set scan parameters +** +** Parameters: client_if - Client IF +** scan_interval - scan interval +** scan_window - scan window +** scan_mode - scan mode +** scan_param_setup_status_cback - Set scan param status callback +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmSetBleScanParams(tGATT_IF client_if, UINT32 scan_interval, + UINT32 scan_window, tBLE_SCAN_MODE scan_mode, + tBLE_SCAN_PARAM_SETUP_CBACK scan_param_setup_status_cback); + + +/******************************************************************************* +** +** Function BTA_DmSetBleScanFilterParams +** +** Description This function is called to set scan parameters +** +** Parameters: client_if - Client IF +** scan_interval - scan interval +** scan_window - scan window +** scan_mode - scan mode +** scan_param_setup_status_cback - Set scan param status callback +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmSetBleScanFilterParams(tGATT_IF client_if, UINT32 scan_interval, + UINT32 scan_window, tBLE_SCAN_MODE scan_mode, UINT8 scan_fil_poilcy, + UINT8 addr_type_own, tBLE_SCAN_PARAM_SETUP_CBACK scan_param_setup_cback); + + +/******************************************************************************* +** +** Function BTA_DmSetBleAdvParams +** +** Description This function sets the advertising parameters BLE functionality. +** It is to be called when device act in peripheral or broadcaster +** role. +** +** Parameters: adv_int_min - adv interval minimum +** adv_int_max - adv interval max +** p_dir_bda - directed adv initator address +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmSetBleAdvParams (UINT16 adv_int_min, UINT16 adv_int_max, + tBLE_BD_ADDR *p_dir_bda); + +extern void BTA_DmSetBleAdvParamsAll (UINT16 adv_int_min, UINT16 adv_int_max, + UINT8 adv_type, tBLE_ADDR_TYPE addr_type_own, + tBTM_BLE_ADV_CHNL_MAP chnl_map, tBTM_BLE_AFP adv_fil_pol, + tBLE_BD_ADDR *p_dir_bda); + + +/******************************************************************************* +** +** Function BTA_DmSearchExt +** +** Description This function searches for peer Bluetooth devices. It performs +** an inquiry and gets the remote name for devices. Service +** discovery is done if services is non zero +** +** Parameters p_dm_inq: inquiry conditions +** services: if service is not empty, service discovery will be done. +** for all GATT based service condition, put num_uuid, and +** p_uuid is the pointer to the list of UUID values. +** p_cback: callback functino when search is completed. +** +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmSearchExt(tBTA_DM_INQ *p_dm_inq, tBTA_SERVICE_MASK_EXT *p_services, + tBTA_DM_SEARCH_CBACK *p_cback); + +/******************************************************************************* +** +** Function BTA_DmDiscoverExt +** +** Description This function does service discovery for services of a +** peer device. When services.num_uuid is 0, it indicates all +** GATT based services are to be searched; other wise a list of +** UUID of interested services should be provided through +** services.p_uuid. +** +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmDiscoverExt(BD_ADDR bd_addr, tBTA_SERVICE_MASK_EXT *p_services, + tBTA_DM_SEARCH_CBACK *p_cback, BOOLEAN sdp_search); + +/******************************************************************************* +** +** Function BTA_DmDiscoverByTransport +** +** Description This function does service discovery on particular transport +** for services of a +** peer device. When services.num_uuid is 0, it indicates all +** GATT based services are to be searched; other wise a list of +** UUID of interested services should be provided through +** p_services->p_uuid. +** +** +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmDiscoverByTransport(BD_ADDR bd_addr, tBTA_SERVICE_MASK_EXT *p_services, + tBTA_DM_SEARCH_CBACK *p_cback, BOOLEAN sdp_search, + tBTA_TRANSPORT transport); + +/******************************************************************************* +** +** Function BTA_DmSetEncryption +** +** Description This function is called to ensure that connection is +** encrypted. Should be called only on an open connection. +** Typically only needed for connections that first want to +** bring up unencrypted links, then later encrypt them. +** +** Parameters: bd_addr - Address of the peer device +** transport - transport of the link to be encruypted +** p_callback - Pointer to callback function to indicat the +** link encryption status +** sec_act - This is the security action to indicate +** what knid of BLE security level is required for +** the BLE link if the BLE is supported +** Note: This parameter is ignored for the BR/EDR link +** or the BLE is not supported +** +** Returns void +** +** +*******************************************************************************/ +extern void BTA_DmSetEncryption(BD_ADDR bd_addr, tBTA_TRANSPORT transport, + tBTA_DM_ENCRYPT_CBACK *p_callback, + tBTA_DM_BLE_SEC_ACT sec_act); + + +/******************************************************************************* +** +** Function BTA_DmBleObserve +** +** Description This procedure keep the device listening for advertising +** events from a broadcast device. +** +** Parameters start: start or stop observe. +** duration : Duration of the scan. Continuous scan if 0 is passed +** p_results_cb: Callback to be called with scan results +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBleObserve(BOOLEAN start, UINT8 duration, + tBTA_DM_SEARCH_CBACK *p_results_cb); + +extern void BTA_DmBleStopAdvertising(void); + +extern void BTA_DmSetRandAddress(BD_ADDR rand_addr); + +#endif + +#if BLE_INCLUDED == TRUE +// btla-specific -- +/******************************************************************************* +** +** Function BTA_DmBleConfigLocalPrivacy +** +** Description Enable/disable privacy on the local device +** +** Parameters: privacy_enable - enable/disabe privacy on remote device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBleConfigLocalPrivacy(BOOLEAN privacy_enable); + +/******************************************************************************* +** +** Function BTA_DmBleEnableRemotePrivacy +** +** Description Enable/disable privacy on a remote device +** +** Parameters: bd_addr - BD address of the peer +** privacy_enable - enable/disabe privacy on remote device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBleEnableRemotePrivacy(BD_ADDR bd_addr, BOOLEAN privacy_enable); + + +/******************************************************************************* +** +** Function BTA_DmBleSetAdvConfig +** +** Description This function is called to override the BTA default ADV parameters. +** +** Parameters Pointer to User defined ADV data structure +** +** Returns None +** +*******************************************************************************/ +extern void BTA_DmBleSetAdvConfig (tBTA_BLE_AD_MASK data_mask, + tBTA_BLE_ADV_DATA *p_adv_cfg, + tBTA_SET_ADV_DATA_CMPL_CBACK *p_adv_data_cback); + +/******************************************************************************* +** +** Function BTA_DmBleSetAdvConfigRaw +** +** Description This function is called to set raw Advertising data +** +** Parameters p_raw_adv : raw advertising data. +** raw_adv_len : raw advertising data length. +** p_adv_data_cback : set adv data complete callback. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_DmBleSetAdvConfigRaw (UINT8 *p_raw_adv, UINT32 raw_adv_len, + tBTA_SET_ADV_DATA_CMPL_CBACK *p_adv_data_cback); + +/******************************************************************************* +** +** Function BTA_DmBleSetScanRsp +** +** Description This function is called to override the BTA scan response. +** +** Parameters Pointer to User defined ADV data structure +** +** Returns None +** +*******************************************************************************/ +extern void BTA_DmBleSetScanRsp (tBTA_BLE_AD_MASK data_mask, + tBTA_BLE_ADV_DATA *p_adv_cfg, + tBTA_SET_ADV_DATA_CMPL_CBACK *p_adv_data_cback); + +/******************************************************************************* +** +** Function BTA_DmBleSetScanRspRaw +** +** Description This function is called to set raw scan response data +** +** Parameters p_raw_scan_rsp : raw scan_rspertising data. +** raw_scan_rsp_len : raw scan_rspertising data length. +** p_scan_rsp_data_cback : set scan_rsp data complete callback. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_DmBleSetScanRspRaw (UINT8 *p_raw_scan_rsp, UINT32 raw_scan_rsp_len, + tBTA_SET_ADV_DATA_CMPL_CBACK *p_scan_rsp_data_cback); + +/******************************************************************************* +** +** Function BTA_DmBleBroadcast +** +** Description This function starts or stops LE broadcasting. +** +** Parameters start: start or stop broadcast. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_DmBleBroadcast (BOOLEAN start); + + +/******************************************************************************* +** +** Function BTA_BleEnableAdvInstance +** +** Description This function enables the Multi ADV instance feature +** +** Parameters p_params Pointer to ADV param user defined structure +** p_cback Pointer to Multi ADV callback structure +** p_ref - Reference pointer +** +** Returns None +** +*******************************************************************************/ +extern void BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, + tBTA_BLE_MULTI_ADV_CBACK *p_cback, void *p_ref); + +/******************************************************************************* +** +** Function BTA_BleUpdateAdvInstParam +** +** Description This function updates the Multi ADV instance params +** +** Parameters inst_id Instance ID +** p_params Pointer to ADV param user defined structure +** +** Returns None +** +*******************************************************************************/ +extern void BTA_BleUpdateAdvInstParam (UINT8 inst_id, + tBTA_BLE_ADV_PARAMS *p_params); + +/******************************************************************************* +** +** Function BTA_BleCfgAdvInstData +** +** Description This function is called to configure the ADV instance data +** +** Parameters inst_id - Instance ID +** is_scan_rsp - Boolean value Scan response +** Pointer to User defined ADV data structure +** Returns None +** +*******************************************************************************/ +extern void BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, + tBTA_BLE_AD_MASK data_mask, tBTA_BLE_ADV_DATA *p_data); + +/******************************************************************************* +** +** Function BTA_BleDisableAdvInstance +** +** Description This function is called to disable the ADV instance +** +** Parameters inst_id - Instance ID to be disabled +** +** Returns None +** +*******************************************************************************/ +extern void BTA_BleDisableAdvInstance(UINT8 inst_id); + +/******************************************************************************* +** +** Function BTA_DmBleUpdateConnectionParams +** +** Description Update connection parameters, can only be used when connection is up. +** +** Parameters: bd_addr - BD address of the peer +** min_int - minimum connection interval, [0x0004~ 0x4000] +** max_int - maximum connection interval, [0x0004~ 0x4000] +** latency - slave latency [0 ~ 500] +** timeout - supervision timeout [0x000a ~ 0xc80] +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBleUpdateConnectionParams(BD_ADDR bd_addr, UINT16 min_int, + UINT16 max_int, UINT16 latency, UINT16 timeout); + +/******************************************************************************* +** +** Function BTA_DmBleSetDataLength +** +** Description This function is to set maximum LE data packet size +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBleSetDataLength(BD_ADDR remote_device, UINT16 tx_data_length); + +/******************************************************************************* +** +** Function BTA_DmBleSetStorageParams +** +** Description This function is called to set the storage parameters +** +** Parameters batch_scan_full_max -Max storage space (in %) allocated to full scanning +** batch_scan_trunc_max -Max storage space (in %) allocated to truncated scanning +** batch_scan_notify_threshold - Setup notification level based on total space +** consumed by both pools. Setting it to 0 will disable threshold notification +** p_setup_cback - Setup callback +** p_thres_cback - Threshold callback +** p_rep_cback - Reports callback +** ref_value - Reference value +** +** Returns None +** +*******************************************************************************/ +extern void BTA_DmBleSetStorageParams(UINT8 batch_scan_full_max, + UINT8 batch_scan_trunc_max, + UINT8 batch_scan_notify_threshold, + tBTA_BLE_SCAN_SETUP_CBACK *p_setup_cback, + tBTA_BLE_SCAN_THRESHOLD_CBACK *p_thres_cback, + tBTA_BLE_SCAN_REP_CBACK *p_rep_cback, + tBTA_DM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTA_DmBleEnableBatchScan +** +** Description This function is called to enable the batch scan +** +** Parameters scan_mode -Batch scan mode +** scan_interval - Scan interval +** scan_window - Scan window +** discard_rule -Discard rules +** addr_type - Address type +** ref_value - Reference value +** +** Returns None +** +*******************************************************************************/ +extern void BTA_DmBleEnableBatchScan(tBTA_BLE_BATCH_SCAN_MODE scan_mode, + UINT32 scan_interval, UINT32 scan_window, + tBTA_BLE_DISCARD_RULE discard_rule, + tBLE_ADDR_TYPE addr_type, + tBTA_DM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTA_DmBleReadScanReports +** +** Description This function is called to read the batch scan reports +** +** Parameters scan_mode -Batch scan mode +** ref_value - Reference value +** +** Returns None +** +*******************************************************************************/ +extern void BTA_DmBleReadScanReports(tBTA_BLE_BATCH_SCAN_MODE scan_type, + tBTA_DM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTA_DmBleDisableBatchScan +** +** Description This function is called to disable the batch scanning +** +** Parameters ref_value - Reference value +** +** Returns None +** +*******************************************************************************/ +extern void BTA_DmBleDisableBatchScan(tBTA_DM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTA_DmEnableScanFilter +** +** Description This function is called to enable the adv data payload filter +** +** Parameters action - enable or disable the APCF feature +** p_cmpl_cback - Command completed callback +** ref_value - Reference value +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmEnableScanFilter(UINT8 action, + tBTA_DM_BLE_PF_STATUS_CBACK *p_cmpl_cback, + tBTA_DM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTA_DmBleScanFilterSetup +** +** Description This function is called to setup the filter params +** +** Parameters p_target: enable the filter condition on a target device; if NULL +** filt_index - Filter index +** p_filt_params -Filter parameters +** ref_value - Reference value +** action - Add, delete or clear +** p_cmpl_back - Command completed callback +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBleScanFilterSetup(UINT8 action, + tBTA_DM_BLE_PF_FILT_INDEX filt_index, + tBTA_DM_BLE_PF_FILT_PARAMS *p_filt_params, + tBLE_BD_ADDR *p_target, + tBTA_DM_BLE_PF_PARAM_CBACK *p_cmpl_cback, + tBTA_DM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTA_DmBleCfgFilterCondition +** +** Description This function is called to configure the adv data payload filter +** condition. +** +** Parameters action: to read/write/clear +** cond_type: filter condition type +** filt_index - Filter index +** p_cond: filter condition parameter +** p_cmpl_back - Command completed callback +** ref_value - Reference value +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBleCfgFilterCondition(tBTA_DM_BLE_SCAN_COND_OP action, + tBTA_DM_BLE_PF_COND_TYPE cond_type, + tBTA_DM_BLE_PF_FILT_INDEX filt_index, + tBTA_DM_BLE_PF_COND_PARAM *p_cond, + tBTA_DM_BLE_PF_CFG_CBACK *p_cmpl_cback, + tBTA_DM_BLE_REF_VALUE ref_value); + + +/******************************************************************************* +** +** Function BTA_DmBleTrackAdvertiser +** +** Description This function is called to track the advertiser +** +** Parameters ref_value - Reference value +** p_track_adv_cback - ADV callback +** +** Returns None +** +*******************************************************************************/ +extern void BTA_DmBleTrackAdvertiser(tBTA_DM_BLE_REF_VALUE ref_value, + tBTA_BLE_TRACK_ADV_CBACK *p_track_adv_cback); + +/******************************************************************************* +** +** Function BTA_DmBleGetEnergyInfo +** +** Description This function is called to obtain the energy info +** +** Parameters p_cmpl_cback - Command complete callback +** +** Returns void +** +*******************************************************************************/ +extern void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK *p_cmpl_cback); + +/******************************************************************************* +** +** Function BTA_BrcmInit +** +** Description This function initializes Broadcom specific VS handler in BTA +** +** Returns void +** +*******************************************************************************/ +extern void BTA_VendorInit (void); + +/******************************************************************************* +** +** Function BTA_BrcmCleanup +** +** Description This function frees up Broadcom specific VS specific dynamic memory +** +** Returns void +** +*******************************************************************************/ +extern void BTA_VendorCleanup (void); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* BTA_API_H */ diff --git a/tools/sdk/include/bluedroid/bta_dm_ci.h b/tools/sdk/include/bluedroid/bta_dm_ci.h new file mode 100644 index 00000000..9f8a8743 --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_dm_ci.h @@ -0,0 +1,80 @@ +/****************************************************************************** + * + * Copyright (C) 2006-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the interface file for device mananger call-in functions. + * + ******************************************************************************/ +#ifndef BTA_DM_CI_H +#define BTA_DM_CI_H + +#include "bta_api.h" + +/***************************************************************************** +** Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif + +/******************************************************************************* +** +** Function bta_dm_ci_io_req +** +** Description This function must be called in response to function +** bta_dm_co_io_req(), if *p_oob_data is set to BTA_OOB_UNKNOWN +** by bta_dm_co_io_req(). +** +** Returns void +** +*******************************************************************************/ +extern void bta_dm_ci_io_req(BD_ADDR bd_addr, tBTA_IO_CAP io_cap, + tBTA_OOB_DATA oob_data, tBTA_AUTH_REQ auth_req); + +/******************************************************************************* +** +** Function bta_dm_ci_rmt_oob +** +** Description This function must be called in response to function +** bta_dm_co_rmt_oob() to provide the OOB data associated +** with the remote device. +** +** Returns void +** +*******************************************************************************/ +extern void bta_dm_ci_rmt_oob(BOOLEAN accept, BD_ADDR bd_addr, + BT_OCTET16 c, BT_OCTET16 r); +/******************************************************************************* +** +** Function bta_dm_sco_ci_data_ready +** +** Description This function sends an event to indicating that the phone +** has SCO data ready.. +** +** Returns void +** +*******************************************************************************/ +extern void bta_dm_sco_ci_data_ready(UINT16 event, UINT16 sco_handle); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/tools/sdk/include/bluedroid/bta_dm_co.h b/tools/sdk/include/bluedroid/bta_dm_co.h new file mode 100644 index 00000000..c3202496 --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_dm_co.h @@ -0,0 +1,273 @@ +/****************************************************************************** + * + * Copyright (C) 2006-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the interface file for device mananger callout functions. + * + ******************************************************************************/ +#ifndef BTA_DM_CO_H +#define BTA_DM_CO_H + +#include "bta_sys.h" + + +#ifndef BTA_SCO_OUT_PKT_SIZE +#define BTA_SCO_OUT_PKT_SIZE BTM_SCO_DATA_SIZE_MAX +#endif + +#define BTA_SCO_CODEC_PCM 0 /* used for regular SCO */ +#define BTA_SCO_CODEC_SBC 1 /* used for WBS */ +typedef UINT8 tBTA_SCO_CODEC_TYPE; + +#define BTA_DM_SCO_SAMP_RATE_8K 8000 +#define BTA_DM_SCO_SAMP_RATE_16K 16000 + +/* SCO codec information */ +typedef struct { + tBTA_SCO_CODEC_TYPE codec_type; +} tBTA_CODEC_INFO; + +#define BTA_DM_SCO_ROUTE_PCM BTM_SCO_ROUTE_PCM +#define BTA_DM_SCO_ROUTE_HCI BTM_SCO_ROUTE_HCI + +typedef tBTM_SCO_ROUTE_TYPE tBTA_DM_SCO_ROUTE_TYPE; + + +/***************************************************************************** +** Function Declarations +*****************************************************************************/ + +/******************************************************************************* +** +** Function bta_dm_co_io_req +** +** Description This callout function is executed by DM to get IO capabilities +** of the local device for the Simple Pairing process +** +** Parameters bd_addr - The peer device +** *p_io_cap - The local Input/Output capabilities +** *p_oob_data - TRUE, if OOB data is available for the peer device. +** *p_auth_req - TRUE, if MITM protection is required. +** +** Returns void. +** +*******************************************************************************/ +extern void bta_dm_co_io_req(BD_ADDR bd_addr, tBTA_IO_CAP *p_io_cap, + tBTA_OOB_DATA *p_oob_data, tBTA_AUTH_REQ *p_auth_req, + BOOLEAN is_orig); + +/******************************************************************************* +** +** Function bta_dm_co_io_rsp +** +** Description This callout function is executed by DM to report IO capabilities +** of the peer device for the Simple Pairing process +** +** Parameters bd_addr - The peer device +** io_cap - The remote Input/Output capabilities +** oob_data - TRUE, if OOB data is available for the peer device. +** auth_req - TRUE, if MITM protection is required. +** +** Returns void. +** +*******************************************************************************/ +extern void bta_dm_co_io_rsp(BD_ADDR bd_addr, tBTA_IO_CAP io_cap, + tBTA_OOB_DATA oob_data, tBTA_AUTH_REQ auth_req); + +/******************************************************************************* +** +** Function bta_dm_co_lk_upgrade +** +** Description This callout function is executed by DM to check if the +** platform wants allow link key upgrade +** +** Parameters bd_addr - The peer device +** *p_upgrade - TRUE, if link key upgrade is desired. +** +** Returns void. +** +*******************************************************************************/ +extern void bta_dm_co_lk_upgrade(BD_ADDR bd_addr, BOOLEAN *p_upgrade ); + +/******************************************************************************* +** +** Function bta_dm_co_loc_oob +** +** Description This callout function is executed by DM to report the OOB +** data of the local device for the Simple Pairing process +** +** Parameters valid - TRUE, if the local OOB data is retrieved from LM +** c - Simple Pairing Hash C +** r - Simple Pairing Randomnizer R +** +** Returns void. +** +*******************************************************************************/ +extern void bta_dm_co_loc_oob(BOOLEAN valid, BT_OCTET16 c, BT_OCTET16 r); + +/******************************************************************************* +** +** Function bta_dm_co_rmt_oob +** +** Description This callout function is executed by DM to request the OOB +** data for the remote device for the Simple Pairing process +** +** Parameters bd_addr - The peer device +** +** Returns void. +** +*******************************************************************************/ +extern void bta_dm_co_rmt_oob(BD_ADDR bd_addr); + +/***************************************************************************** +** SCO over HCI Function Declarations +*****************************************************************************/ +/******************************************************************************* +** +** Function bta_dm_sco_co_init +** +** Description This function can be used by the phone to initialize audio +** codec or for other initialization purposes before SCO connection +** is opened. +** +** +** Returns Void. +** +*******************************************************************************/ +extern tBTA_DM_SCO_ROUTE_TYPE bta_dm_sco_co_init(UINT32 rx_bw, UINT32 tx_bw, + tBTA_CODEC_INFO *p_codec_info, UINT8 app_id); + + +/******************************************************************************* +** +** Function bta_dm_sco_co_open +** +** Description This function is executed when a SCO connection is open. +** +** +** Returns void +** +*******************************************************************************/ +extern void bta_dm_sco_co_open(UINT16 handle, UINT8 pkt_size, UINT16 event); + +/******************************************************************************* +** +** Function bta_dm_sco_co_close +** +** Description This function is called when a SCO connection is closed +** +** +** Returns void +** +*******************************************************************************/ +extern void bta_dm_sco_co_close(void); + +/******************************************************************************* +** +** Function bta_dm_sco_co_out_data +** +** Description This function is called to send SCO data over HCI. +** +** Returns void +** +*******************************************************************************/ +extern void bta_dm_sco_co_out_data(BT_HDR **p_buf); + +/******************************************************************************* +** +** Function bta_dm_sco_co_in_data +** +** Description This function is called to send incoming SCO data to application. +** +** Returns void +** +*******************************************************************************/ +extern void bta_dm_sco_co_in_data(BT_HDR *p_buf, tBTM_SCO_DATA_FLAG status); + + + +/******************************************************************************* +** +** Function bta_dm_co_ble_io_req +** +** Description This callout function is executed by DM to get BLE IO capabilities +** before SMP pairing gets going. +** +** Parameters bd_addr - The peer device +** *p_io_cap - The local Input/Output capabilities +** *p_oob_data - TRUE, if OOB data is available for the peer device. +** *p_auth_req - Auth request setting (Bonding and MITM required or not) +** *p_max_key_size - max key size local device supported. +** *p_init_key - initiator keys. +** *p_resp_key - responder keys. +** +** Returns void. +** +*******************************************************************************/ +extern void bta_dm_co_ble_io_req(BD_ADDR bd_addr, tBTA_IO_CAP *p_io_cap, + tBTA_OOB_DATA *p_oob_data, + tBTA_LE_AUTH_REQ *p_auth_req, + UINT8 *p_max_key_size, + tBTA_LE_KEY_TYPE *p_init_key, + tBTA_LE_KEY_TYPE *p_resp_key ); + + +/******************************************************************************* +** +** Function bta_dm_co_ble_local_key_reload +** +** Description This callout function is to load the local BLE keys if available +** on the device. +** +** Parameters none +** +** Returns void. +** +*******************************************************************************/ +extern void bta_dm_co_ble_load_local_keys (tBTA_DM_BLE_LOCAL_KEY_MASK *p_key_mask, BT_OCTET16 er, + tBTA_BLE_LOCAL_ID_KEYS *p_id_keys); + +// btla-specific ++ +/******************************************************************************* +** +** Function bta_dm_co_ble_io_req +** +** Description This callout function is executed by DM to get BLE IO capabilities +** before SMP pairing gets going. +** +** Parameters bd_addr - The peer device +** *p_io_cap - The local Input/Output capabilities +** *p_oob_data - TRUE, if OOB data is available for the peer device. +** *p_auth_req - Auth request setting (Bonding and MITM required or not) +** *p_max_key_size - max key size local device supported. +** *p_init_key - initiator keys. +** *p_resp_key - responder keys. +** +** Returns void. +** +*******************************************************************************/ +extern void bta_dm_co_ble_io_req(BD_ADDR bd_addr, tBTA_IO_CAP *p_io_cap, + tBTA_OOB_DATA *p_oob_data, + tBTA_LE_AUTH_REQ *p_auth_req, + UINT8 *p_max_key_size, + tBTA_LE_KEY_TYPE *p_init_key, + tBTA_LE_KEY_TYPE *p_resp_key ); +// btla-specific -- + +#endif diff --git a/tools/sdk/include/bluedroid/bta_gatt_api.h b/tools/sdk/include/bluedroid/bta_gatt_api.h new file mode 100644 index 00000000..f4c0e06f --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_gatt_api.h @@ -0,0 +1,1416 @@ +/****************************************************************************** + * + * Copyright (C) 2003-2013 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the public interface file for BTA GATT. + * + ******************************************************************************/ + +#ifndef BTA_GATT_API_H +#define BTA_GATT_API_H + +#include "bta_api.h" +#include "gatt_api.h" + +#ifndef BTA_GATT_INCLUDED +#warning BTA_GATT_INCLUDED not defined +#define BTA_GATT_INCLUDED FALSE +#endif + +#if ((BLE_INCLUDED == FALSE) && (BTA_GATT_INCLUDED == TRUE)) +#undef BTA_GATT_INCLUDED +#define BTA_GATT_INCLUDED FALSE +#endif + + +#ifndef BTA_GATT_DEBUG +#define BTA_GATT_DEBUG FALSE +#endif + +/***************************************************************************** +** Constants and data types +*****************************************************************************/ +/************************** +** Common Definitions +***************************/ +/* GATT ID */ +typedef struct { + tBT_UUID uuid; /* uuid of the attribute */ + UINT8 inst_id; /* instance ID */ +} __attribute__((packed)) tBTA_GATT_ID; + +/* Success code and error codes */ +#define BTA_GATT_OK GATT_SUCCESS +#define BTA_GATT_INVALID_HANDLE GATT_INVALID_HANDLE /* 0x0001 */ +#define BTA_GATT_READ_NOT_PERMIT GATT_READ_NOT_PERMIT /* 0x0002 */ +#define BTA_GATT_WRITE_NOT_PERMIT GATT_WRITE_NOT_PERMIT /* 0x0003 */ +#define BTA_GATT_INVALID_PDU GATT_INVALID_PDU /* 0x0004 */ +#define BTA_GATT_INSUF_AUTHENTICATION GATT_INSUF_AUTHENTICATION /* 0x0005 */ +#define BTA_GATT_REQ_NOT_SUPPORTED GATT_REQ_NOT_SUPPORTED /* 0x0006 */ +#define BTA_GATT_INVALID_OFFSET GATT_INVALID_OFFSET /* 0x0007 */ +#define BTA_GATT_INSUF_AUTHORIZATION GATT_INSUF_AUTHORIZATION /* 0x0008 */ +#define BTA_GATT_PREPARE_Q_FULL GATT_PREPARE_Q_FULL /* 0x0009 */ +#define BTA_GATT_NOT_FOUND GATT_NOT_FOUND /* 0x000a */ +#define BTA_GATT_NOT_LONG GATT_NOT_LONG /* 0x000b */ +#define BTA_GATT_INSUF_KEY_SIZE GATT_INSUF_KEY_SIZE /* 0x000c */ +#define BTA_GATT_INVALID_ATTR_LEN GATT_INVALID_ATTR_LEN /* 0x000d */ +#define BTA_GATT_ERR_UNLIKELY GATT_ERR_UNLIKELY /* 0x000e */ +#define BTA_GATT_INSUF_ENCRYPTION GATT_INSUF_ENCRYPTION /* 0x000f */ +#define BTA_GATT_UNSUPPORT_GRP_TYPE GATT_UNSUPPORT_GRP_TYPE /* 0x0010 */ +#define BTA_GATT_INSUF_RESOURCE GATT_INSUF_RESOURCE /* 0x0011 */ + + +#define BTA_GATT_NO_RESOURCES GATT_NO_RESOURCES /* 0x80 */ +#define BTA_GATT_INTERNAL_ERROR GATT_INTERNAL_ERROR /* 0x81 */ +#define BTA_GATT_WRONG_STATE GATT_WRONG_STATE /* 0x82 */ +#define BTA_GATT_DB_FULL GATT_DB_FULL /* 0x83 */ +#define BTA_GATT_BUSY GATT_BUSY /* 0x84 */ +#define BTA_GATT_ERROR GATT_ERROR /* 0x85 */ +#define BTA_GATT_CMD_STARTED GATT_CMD_STARTED /* 0x86 */ +#define BTA_GATT_ILLEGAL_PARAMETER GATT_ILLEGAL_PARAMETER /* 0x87 */ +#define BTA_GATT_PENDING GATT_PENDING /* 0x88 */ +#define BTA_GATT_AUTH_FAIL GATT_AUTH_FAIL /* 0x89 */ +#define BTA_GATT_MORE GATT_MORE /* 0x8a */ +#define BTA_GATT_INVALID_CFG GATT_INVALID_CFG /* 0x8b */ +#define BTA_GATT_SERVICE_STARTED GATT_SERVICE_STARTED /* 0x8c */ +#define BTA_GATT_ENCRYPED_MITM GATT_ENCRYPED_MITM /* GATT_SUCCESS */ +#define BTA_GATT_ENCRYPED_NO_MITM GATT_ENCRYPED_NO_MITM /* 0x8d */ +#define BTA_GATT_NOT_ENCRYPTED GATT_NOT_ENCRYPTED /* 0x8e */ +#define BTA_GATT_CONGESTED GATT_CONGESTED /* 0x8f */ + +#define BTA_GATT_DUP_REG 0x90 /* 0x90 */ +#define BTA_GATT_ALREADY_OPEN 0x91 /* 0x91 */ +#define BTA_GATT_CANCEL 0x92 /* 0x92 */ + +/* 0xE0 ~ 0xFC reserved for future use */ +#define BTA_GATT_CCC_CFG_ERR GATT_CCC_CFG_ERR /* 0xFD Client Characteristic Configuration Descriptor Improperly Configured */ +#define BTA_GATT_PRC_IN_PROGRESS GATT_PRC_IN_PROGRESS /* 0xFE Procedure Already in progress */ +#define BTA_GATT_OUT_OF_RANGE GATT_OUT_OF_RANGE /* 0xFFAttribute value out of range */ + +typedef UINT8 tBTA_GATT_STATUS; + +#define BTA_GATT_INVALID_CONN_ID GATT_INVALID_CONN_ID + + +/* Client callback function events */ +#define BTA_GATTC_REG_EVT 0 /* GATT client is registered. */ +#define BTA_GATTC_DEREG_EVT 1 /* GATT client deregistered event */ +#define BTA_GATTC_OPEN_EVT 2 /* GATTC open request status event */ +#define BTA_GATTC_READ_CHAR_EVT 3 /* GATT read characteristic event */ +#define BTA_GATTC_WRITE_CHAR_EVT 4 /* GATT write characteristic or char descriptor event */ +#define BTA_GATTC_CLOSE_EVT 5 /* GATTC close request status event */ +#define BTA_GATTC_SEARCH_CMPL_EVT 6 /* GATT discovery complete event */ +#define BTA_GATTC_SEARCH_RES_EVT 7 /* GATT discovery result event */ +#define BTA_GATTC_READ_DESCR_EVT 8 /* GATT read characterisitc descriptor event */ +#define BTA_GATTC_WRITE_DESCR_EVT 9 /* GATT write characteristic descriptor event */ +#define BTA_GATTC_NOTIF_EVT 10 /* GATT attribute notification event */ +#define BTA_GATTC_PREP_WRITE_EVT 11 /* GATT prepare write event */ +#define BTA_GATTC_EXEC_EVT 12 /* execute write complete event */ +#define BTA_GATTC_ACL_EVT 13 /* ACL up event */ +#define BTA_GATTC_CANCEL_OPEN_EVT 14 /* cancel open event */ +#define BTA_GATTC_SRVC_CHG_EVT 15 /* service change event */ +#define BTA_GATTC_LISTEN_EVT 16 /* listen event */ +#define BTA_GATTC_ENC_CMPL_CB_EVT 17 /* encryption complete callback event */ +#define BTA_GATTC_CFG_MTU_EVT 18 /* configure MTU complete event */ +#define BTA_GATTC_ADV_DATA_EVT 19 /* ADV data event */ +#define BTA_GATTC_MULT_ADV_ENB_EVT 20 /* Enable Multi ADV event */ +#define BTA_GATTC_MULT_ADV_UPD_EVT 21 /* Update parameter event */ +#define BTA_GATTC_MULT_ADV_DATA_EVT 22 /* Multi ADV data event */ +#define BTA_GATTC_MULT_ADV_DIS_EVT 23 /* Disable Multi ADV event */ +#define BTA_GATTC_CONGEST_EVT 24 /* Congestion event */ +#define BTA_GATTC_BTH_SCAN_ENB_EVT 25 /* Enable batch scan event */ +#define BTA_GATTC_BTH_SCAN_CFG_EVT 26 /* Config storage event */ +#define BTA_GATTC_BTH_SCAN_RD_EVT 27 /* Batch scan reports read event */ +#define BTA_GATTC_BTH_SCAN_THR_EVT 28 /* Batch scan threshold event */ +#define BTA_GATTC_BTH_SCAN_PARAM_EVT 29 /* Batch scan param event */ +#define BTA_GATTC_BTH_SCAN_DIS_EVT 30 /* Disable batch scan event */ +#define BTA_GATTC_SCAN_FLT_CFG_EVT 31 /* Scan filter config event */ +#define BTA_GATTC_SCAN_FLT_PARAM_EVT 32 /* Param filter event */ +#define BTA_GATTC_SCAN_FLT_STATUS_EVT 33 /* Filter status event */ +#define BTA_GATTC_ADV_VSC_EVT 34 /* ADV VSC event */ + +typedef UINT8 tBTA_GATTC_EVT; + +typedef tGATT_IF tBTA_GATTC_IF; + +typedef struct { + UINT16 unit; /* as UUIUD defined by SIG */ + UINT16 descr; /* as UUID as defined by SIG */ + tGATT_FORMAT format; + INT8 exp; + UINT8 name_spc; /* The name space of the description */ +} tBTA_GATT_CHAR_PRES; + +#define BTA_GATT_CLT_CONFIG_NONE GATT_CLT_CONFIG_NONE /* 0x0000 */ +#define BTA_GATT_CLT_CONFIG_NOTIFICATION GATT_CLT_CONFIG_NOTIFICATION /* 0x0001 */ +#define BTA_GATT_CLT_CONFIG_INDICATION GATT_CLT_CONFIG_INDICATION /* 0x0002 */ +typedef UINT16 tBTA_GATT_CLT_CHAR_CONFIG; + +/* characteristic descriptor: server configuration value +*/ +#define BTA_GATT_SVR_CONFIG_NONE GATT_SVR_CONFIG_NONE /* 0x0000 */ +#define BTA_GATT_SVR_CONFIG_BROADCAST GATT_SVR_CONFIG_BROADCAST /* 0x0001 */ +typedef UINT16 tBTA_GATT_SVR_CHAR_CONFIG; + +/* Characteristic Aggregate Format attribute value +*/ +#define BTA_GATT_AGGR_HANDLE_NUM_MAX 10 +typedef struct { + UINT8 num_handle; + UINT16 handle_list[BTA_GATT_AGGR_HANDLE_NUM_MAX]; +} tBTA_GATT_CHAR_AGGRE; +typedef tGATT_VALID_RANGE tBTA_GATT_VALID_RANGE; + +typedef struct { + UINT16 len; + UINT8 *p_value; +} tBTA_GATT_UNFMT; + +#define BTA_GATT_MAX_ATTR_LEN GATT_MAX_ATTR_LEN + +#define BTA_GATTC_TYPE_WRITE GATT_WRITE +#define BTA_GATTC_TYPE_WRITE_NO_RSP GATT_WRITE_NO_RSP +typedef UINT8 tBTA_GATTC_WRITE_TYPE; + +#define BTA_GATT_CONN_UNKNOWN 0 +#define BTA_GATT_CONN_L2C_FAILURE GATT_CONN_L2C_FAILURE /* general l2cap resource failure */ +#define BTA_GATT_CONN_TIMEOUT GATT_CONN_TIMEOUT /* 0x08 connection timeout */ +#define BTA_GATT_CONN_TERMINATE_PEER_USER GATT_CONN_TERMINATE_PEER_USER /* 0x13 connection terminate by peer user */ +#define BTA_GATT_CONN_TERMINATE_LOCAL_HOST GATT_CONN_TERMINATE_LOCAL_HOST/* 0x16 connectionterminated by local host */ +#define BTA_GATT_CONN_FAIL_ESTABLISH GATT_CONN_FAIL_ESTABLISH /* 0x03E connection fail to establish */ +#define BTA_GATT_CONN_LMP_TIMEOUT GATT_CONN_LMP_TIMEOUT /* 0x22 connection fail for LMP response tout */ +#define BTA_GATT_CONN_CANCEL GATT_CONN_CANCEL /* 0x0100 L2CAP connection cancelled */ +#define BTA_GATT_CONN_NONE 0x0101 /* 0x0101 no connection to cancel */ +typedef UINT16 tBTA_GATT_REASON; + +typedef struct { + tBTA_GATT_ID id; + BOOLEAN is_primary; +} tBTA_GATT_SRVC_ID; + +typedef struct { + tBTA_GATT_SRVC_ID srvc_id; + tBTA_GATT_ID char_id; +} tBTA_GATTC_CHAR_ID; + +typedef struct { + tBTA_GATTC_CHAR_ID char_id; + tBTA_GATT_ID descr_id; +} tBTA_GATTC_CHAR_DESCR_ID; + +typedef struct { + tBTA_GATT_SRVC_ID srvc_id; + tBTA_GATT_SRVC_ID incl_svc_id; +} tBTA_GATTC_INCL_SVC_ID; + +#define BTA_GATT_TYPE_CHAR 0 +#define BTA_GATT_TYPE_CHAR_DESCR 1 +typedef UINT8 tBTA_GATT_ID_TYPE; + +typedef struct { + tBTA_GATT_ID_TYPE id_type; + union { + tBTA_GATTC_CHAR_ID char_id; + tBTA_GATTC_CHAR_DESCR_ID char_descr_id; + + } id_value; +} tBTA_GATTC_ATTR_ID; + +#define BTA_GATTC_MULTI_MAX GATT_MAX_READ_MULTI_HANDLES + +typedef struct { + UINT8 num_attr; + tBTA_GATTC_ATTR_ID id_list[BTA_GATTC_MULTI_MAX]; + +} tBTA_GATTC_MULTI; + +#define BTA_GATT_AUTH_REQ_NONE GATT_AUTH_REQ_NONE +#define BTA_GATT_AUTH_REQ_NO_MITM GATT_AUTH_REQ_NO_MITM /* unauthenticated encryption */ +#define BTA_GATT_AUTH_REQ_MITM GATT_AUTH_REQ_MITM /* authenticated encryption */ +#define BTA_GATT_AUTH_REQ_SIGNED_NO_MITM GATT_AUTH_REQ_SIGNED_NO_MITM +#define BTA_GATT_AUTH_REQ_SIGNED_MITM GATT_AUTH_REQ_SIGNED_MITM + +typedef tGATT_AUTH_REQ tBTA_GATT_AUTH_REQ; + +enum { + BTA_GATTC_ATTR_TYPE_INCL_SRVC, + BTA_GATTC_ATTR_TYPE_CHAR, + BTA_GATTC_ATTR_TYPE_CHAR_DESCR, + BTA_GATTC_ATTR_TYPE_SRVC +}; +typedef UINT8 tBTA_GATTC_ATTR_TYPE; + + +typedef struct { + tBT_UUID uuid; + UINT16 s_handle; + UINT16 e_handle; /* used for service only */ + UINT8 attr_type; + UINT8 id; + UINT8 prop; /* used when attribute type is characteristic */ + BOOLEAN is_primary; /* used when attribute type is service */ +} tBTA_GATTC_NV_ATTR; + +/* callback data structure */ +typedef struct { + tBTA_GATT_STATUS status; + tBTA_GATTC_IF client_if; +// btla-specific ++ + tBT_UUID app_uuid; +// btla-specific -- +} tBTA_GATTC_REG; + +typedef struct { + UINT8 num_pres_fmt; /* number of presentation format aggregated*/ + tBTA_GATTC_CHAR_DESCR_ID pre_format[BTA_GATTC_MULTI_MAX]; +} tBTA_GATT_CHAR_AGGRE_VALUE; + +typedef union { + tBTA_GATT_CHAR_AGGRE_VALUE aggre_value; + tBTA_GATT_UNFMT unformat; + +} tBTA_GATT_READ_VAL; + +typedef struct { + UINT16 conn_id; + tBTA_GATT_STATUS status; + tBTA_GATT_SRVC_ID srvc_id; + tBTA_GATT_ID char_id; + tBTA_GATT_ID descr_type; + tBTA_GATT_READ_VAL *p_value; +} tBTA_GATTC_READ; + +typedef struct { + UINT16 conn_id; + tBTA_GATT_STATUS status; + tBTA_GATT_SRVC_ID srvc_id; + tBTA_GATT_ID char_id; + tBTA_GATT_ID descr_type; +} tBTA_GATTC_WRITE; + +typedef struct { + UINT16 conn_id; + tBTA_GATT_STATUS status; +} tBTA_GATTC_EXEC_CMPL; + +typedef struct { + UINT16 conn_id; + tBTA_GATT_STATUS status; +} tBTA_GATTC_SEARCH_CMPL; + +typedef struct { + UINT16 conn_id; + tBTA_GATT_SRVC_ID service_uuid; +} tBTA_GATTC_SRVC_RES; + +typedef struct { + UINT16 conn_id; + tBTA_GATT_STATUS status; + UINT16 mtu; +} tBTA_GATTC_CFG_MTU; + +typedef struct { + tBTA_GATT_STATUS status; + UINT16 conn_id; + tBTA_GATTC_IF client_if; + BD_ADDR remote_bda; + tBTA_TRANSPORT transport; + UINT16 mtu; +} tBTA_GATTC_OPEN; + +typedef struct { + tBTA_GATT_STATUS status; + UINT16 conn_id; + tBTA_GATTC_IF client_if; + BD_ADDR remote_bda; + tBTA_GATT_REASON reason; /* disconnect reason code, not useful when connect event is reported */ +} tBTA_GATTC_CLOSE; + +typedef struct { + UINT16 conn_id; + BD_ADDR bda; + tBTA_GATTC_CHAR_ID char_id; + tBTA_GATT_ID descr_type; + UINT16 len; + UINT8 value[BTA_GATT_MAX_ATTR_LEN]; + BOOLEAN is_notify; +} tBTA_GATTC_NOTIFY; + +typedef struct { + UINT16 conn_id; + BOOLEAN congested; /* congestion indicator */ +} tBTA_GATTC_CONGEST; + +// btla-specific ++ +typedef struct { + tBTA_GATT_STATUS status; + tBTA_GATTC_IF client_if; + UINT16 conn_id; + BD_ADDR remote_bda; +} tBTA_GATTC_OPEN_CLOSE; +// btla-specific -- + +typedef struct { + tBTA_GATTC_IF client_if; + BD_ADDR remote_bda; +} tBTA_GATTC_ENC_CMPL_CB; + +typedef union { + tBTA_GATT_STATUS status; + + tBTA_GATTC_SEARCH_CMPL search_cmpl; /* discovery complete */ + tBTA_GATTC_SRVC_RES srvc_res; /* discovery result */ + tBTA_GATTC_REG reg_oper; /* registration data */ + tBTA_GATTC_OPEN open; + tBTA_GATTC_CLOSE close; + tBTA_GATTC_READ read; /* read attribute/descriptor data */ + tBTA_GATTC_WRITE write; /* write complete data */ + tBTA_GATTC_EXEC_CMPL exec_cmpl; /* execute complete */ + tBTA_GATTC_NOTIFY notify; /* notification/indication event data */ + tBTA_GATTC_ENC_CMPL_CB enc_cmpl; + BD_ADDR remote_bda; /* service change event */ + tBTA_GATTC_CFG_MTU cfg_mtu; /* configure MTU operation */ + tBTA_GATTC_CONGEST congest; +} tBTA_GATTC; + +/* GATTC enable callback function */ +typedef void (tBTA_GATTC_ENB_CBACK)(tBTA_GATT_STATUS status); + +/* Client callback function */ +typedef void (tBTA_GATTC_CBACK)(tBTA_GATTC_EVT event, tBTA_GATTC *p_data); + +/* GATT Server Data Structure */ +/* Server callback function events */ +#define BTA_GATTS_REG_EVT 0 +#define BTA_GATTS_READ_EVT GATTS_REQ_TYPE_READ /* 1 */ +#define BTA_GATTS_WRITE_EVT GATTS_REQ_TYPE_WRITE /* 2 */ +#define BTA_GATTS_EXEC_WRITE_EVT GATTS_REQ_TYPE_WRITE_EXEC /* 3 */ +#define BTA_GATTS_MTU_EVT GATTS_REQ_TYPE_MTU /* 4 */ +#define BTA_GATTS_CONF_EVT GATTS_REQ_TYPE_CONF /* 5 */ +#define BTA_GATTS_DEREG_EVT 6 +#define BTA_GATTS_CREATE_EVT 7 +#define BTA_GATTS_ADD_INCL_SRVC_EVT 8 +#define BTA_GATTS_ADD_CHAR_EVT 9 +#define BTA_GATTS_ADD_CHAR_DESCR_EVT 10 +#define BTA_GATTS_DELELTE_EVT 11 +#define BTA_GATTS_START_EVT 12 +#define BTA_GATTS_STOP_EVT 13 +#define BTA_GATTS_CONNECT_EVT 14 +#define BTA_GATTS_DISCONNECT_EVT 15 +#define BTA_GATTS_OPEN_EVT 16 +#define BTA_GATTS_CANCEL_OPEN_EVT 17 +#define BTA_GATTS_CLOSE_EVT 18 +#define BTA_GATTS_LISTEN_EVT 19 +#define BTA_GATTS_CONGEST_EVT 20 +#define BTA_GATTS_SET_ATTR_VAL_EVT 21 + +typedef UINT8 tBTA_GATTS_EVT; +typedef tGATT_IF tBTA_GATTS_IF; + +/* Attribute permissions +*/ +#define BTA_GATT_PERM_READ GATT_PERM_READ /* bit 0 - 0x0001 */ +#define BTA_GATT_PERM_READ_ENCRYPTED GATT_PERM_READ_ENCRYPTED /* bit 1 - 0x0002 */ +#define BTA_GATT_PERM_READ_ENC_MITM GATT_PERM_READ_ENC_MITM /* bit 2 - 0x0004 */ +#define BTA_GATT_PERM_WRITE GATT_PERM_WRITE /* bit 4 - 0x0010 */ +#define BTA_GATT_PERM_WRITE_ENCRYPTED GATT_PERM_WRITE_ENCRYPTED /* bit 5 - 0x0020 */ +#define BTA_GATT_PERM_WRITE_ENC_MITM GATT_PERM_WRITE_ENC_MITM /* bit 6 - 0x0040 */ +#define BTA_GATT_PERM_WRITE_SIGNED GATT_PERM_WRITE_SIGNED /* bit 7 - 0x0080 */ +#define BTA_GATT_PERM_WRITE_SIGNED_MITM GATT_PERM_WRITE_SIGNED_MITM /* bit 8 - 0x0100 */ +typedef UINT16 tBTA_GATT_PERM; +typedef tGATT_ATTR_VAL tBTA_GATT_ATTR_VAL; +typedef tGATTS_ATTR_CONTROL tBTA_GATTS_ATTR_CONTROL; + +#define BTA_GATTS_INVALID_APP 0xff + +#define BTA_GATTS_INVALID_IF 0 + +/* definition of characteristic properties */ +#define BTA_GATT_CHAR_PROP_BIT_BROADCAST GATT_CHAR_PROP_BIT_BROADCAST /* 0x01 */ +#define BTA_GATT_CHAR_PROP_BIT_READ GATT_CHAR_PROP_BIT_READ /* 0x02 */ +#define BTA_GATT_CHAR_PROP_BIT_WRITE_NR GATT_CHAR_PROP_BIT_WRITE_NR /* 0x04 */ +#define BTA_GATT_CHAR_PROP_BIT_WRITE GATT_CHAR_PROP_BIT_WRITE /* 0x08 */ +#define BTA_GATT_CHAR_PROP_BIT_NOTIFY GATT_CHAR_PROP_BIT_NOTIFY /* 0x10 */ +#define BTA_GATT_CHAR_PROP_BIT_INDICATE GATT_CHAR_PROP_BIT_INDICATE /* 0x20 */ +#define BTA_GATT_CHAR_PROP_BIT_AUTH GATT_CHAR_PROP_BIT_AUTH /* 0x40 */ +#define BTA_GATT_CHAR_PROP_BIT_EXT_PROP GATT_CHAR_PROP_BIT_EXT_PROP /* 0x80 */ +typedef UINT8 tBTA_GATT_CHAR_PROP; + +#ifndef BTA_GATTC_CHAR_DESCR_MAX +#define BTA_GATTC_CHAR_DESCR_MAX 7 +#endif + +/*********************** NV callback Data Definitions ********************** +*/ +typedef struct { + tBT_UUID app_uuid128; + tBT_UUID svc_uuid; + UINT16 svc_inst; + UINT16 s_handle; + UINT16 e_handle; + BOOLEAN is_primary; /* primary service or secondary */ +} tBTA_GATTS_HNDL_RANGE; + +#define BTA_GATTS_SRV_CHG_CMD_ADD_CLIENT GATTS_SRV_CHG_CMD_ADD_CLIENT +#define BTA_GATTS_SRV_CHG_CMD_UPDATE_CLIENT GATTS_SRV_CHG_CMD_UPDATE_CLIENT +#define BTA_GATTS_SRV_CHG_CMD_REMOVE_CLIENT GATTS_SRV_CHG_CMD_REMOVE_CLIENT +#define BTA_GATTS_SRV_CHG_CMD_READ_NUM_CLENTS GATTS_SRV_CHG_CMD_READ_NUM_CLENTS +#define BTA_GATTS_SRV_CHG_CMD_READ_CLENT GATTS_SRV_CHG_CMD_READ_CLENT +typedef tGATTS_SRV_CHG_CMD tBTA_GATTS_SRV_CHG_CMD; + +typedef tGATTS_SRV_CHG tBTA_GATTS_SRV_CHG; +typedef tGATTS_SRV_CHG_REQ tBTA_GATTS_SRV_CHG_REQ; +typedef tGATTS_SRV_CHG_RSP tBTA_GATTS_SRV_CHG_RSP; + +#define BTA_GATT_TRANSPORT_LE GATT_TRANSPORT_LE +#define BTA_GATT_TRANSPORT_BR_EDR GATT_TRANSPORT_BR_EDR +#define BTA_GATT_TRANSPORT_LE_BR_EDR GATT_TRANSPORT_LE_BR_EDR +typedef UINT8 tBTA_GATT_TRANSPORT; + +/* attribute value */ +typedef tGATT_VALUE tBTA_GATT_VALUE; + +/* attribute response data */ +typedef tGATTS_RSP tBTA_GATTS_RSP; + +/* attribute request data from the client */ +#define BTA_GATT_PREP_WRITE_CANCEL 0x00 +#define BTA_GATT_PREP_WRITE_EXEC 0x01 +typedef tGATT_EXEC_FLAG tBTA_GATT_EXEC_FLAG; + +/* read request always based on UUID */ +typedef tGATT_READ_REQ tBTA_GATT_READ_REQ; + +/* write request data */ +typedef tGATT_WRITE_REQ tBTA_GATT_WRITE_REQ; + +/* callback data for server access request from client */ +typedef tGATTS_DATA tBTA_GATTS_REQ_DATA; + +typedef struct { + tBTA_GATT_STATUS status; + BD_ADDR remote_bda; + UINT32 trans_id; + UINT16 conn_id; + tBTA_GATTS_REQ_DATA *p_data; +} tBTA_GATTS_REQ; + +typedef struct { + tBTA_GATTS_IF server_if; + tBTA_GATT_STATUS status; +// btla-specific ++ + tBT_UUID uuid; +// btla-specific -- +} tBTA_GATTS_REG_OPER; + + +typedef struct { + tBTA_GATTS_IF server_if; + UINT16 service_id; +// btla-specific ++ + UINT16 svc_instance; + BOOLEAN is_primary; + tBTA_GATT_STATUS status; + tBT_UUID uuid; +// btla-specific -- +} tBTA_GATTS_CREATE; + +typedef struct { + tBTA_GATTS_IF server_if; + UINT16 service_id; + UINT16 attr_id; + tBTA_GATT_STATUS status; +// btla-specific ++ + tBT_UUID char_uuid; +// btla-specific -- +} tBTA_GATTS_ADD_RESULT; + +typedef struct{ + tBTA_GATTS_IF server_if; + UINT16 service_id; + UINT16 attr_id; + tBTA_GATT_STATUS status; +}tBAT_GATTS_ATTR_VAL_RESULT; + +typedef struct { + tBTA_GATTS_IF server_if; + UINT16 service_id; + tBTA_GATT_STATUS status; +} tBTA_GATTS_SRVC_OPER; + + +typedef struct { + tBTA_GATTS_IF server_if; + BD_ADDR remote_bda; + UINT16 conn_id; + tBTA_GATT_REASON reason; /* report disconnect reason */ + tBTA_GATT_TRANSPORT transport; +} tBTA_GATTS_CONN; + +typedef struct { + UINT16 conn_id; + BOOLEAN congested; /* report channel congestion indicator */ +} tBTA_GATTS_CONGEST; + +typedef struct { + UINT16 conn_id; /* connection ID */ + tBTA_GATT_STATUS status; /* notification/indication status */ +} tBTA_GATTS_CONF; + +/* GATTS callback data */ +typedef union { + tBTA_GATTS_REG_OPER reg_oper; + tBTA_GATTS_CREATE create; + tBTA_GATTS_SRVC_OPER srvc_oper; + tBTA_GATT_STATUS status; /* BTA_GATTS_LISTEN_EVT */ + tBTA_GATTS_ADD_RESULT add_result; /* add included service: BTA_GATTS_ADD_INCL_SRVC_EVT + add char : BTA_GATTS_ADD_CHAR_EVT + add char descriptor: BTA_GATTS_ADD_CHAR_DESCR_EVT */ + tBAT_GATTS_ATTR_VAL_RESULT attr_val; + tBTA_GATTS_REQ req_data; + tBTA_GATTS_CONN conn; /* BTA_GATTS_CONN_EVT */ + tBTA_GATTS_CONGEST congest; /* BTA_GATTS_CONGEST_EVT callback data */ + tBTA_GATTS_CONF confirm; /* BTA_GATTS_CONF_EVT callback data */ +} tBTA_GATTS; + +/* GATTS enable callback function */ +typedef void (tBTA_GATTS_ENB_CBACK)(tBTA_GATT_STATUS status); + +/* Server callback function */ +typedef void (tBTA_GATTS_CBACK)(tBTA_GATTS_EVT event, tBTA_GATTS *p_data); + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif + +/************************** +** Client Functions +***************************/ + +/******************************************************************************* +** +** Function BTA_GATTC_Disable +** +** Description This function is called to disable the GATTC module +** +** Parameters None. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_Disable(void); + +/******************************************************************************* +** +** Function BTA_GATTC_AppRegister +** +** Description This function is called to register application callbacks +** with BTA GATTC module. +** +** Parameters p_app_uuid - applicaiton UUID +** p_client_cb - pointer to the application callback function. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_AppRegister(tBT_UUID *p_app_uuid, tBTA_GATTC_CBACK *p_client_cb); + +/******************************************************************************* +** +** Function BTA_GATTC_AppDeregister +** +** Description This function is called to deregister an application +** from BTA GATTC module. +** +** Parameters client_if - client interface identifier. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_AppDeregister (tBTA_GATTC_IF client_if); + +/******************************************************************************* +** +** Function BTA_GATTC_Open +** +** Description Open a direct connection or add a background auto connection +** bd address +** +** Parameters client_if: server interface. +** remote_bda: remote device BD address. +** is_direct: direct connection or background auto connection +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTC_Open(tBTA_GATTC_IF client_if, BD_ADDR remote_bda, + BOOLEAN is_direct, tBTA_GATT_TRANSPORT transport); + +/******************************************************************************* +** +** Function BTA_GATTC_CancelOpen +** +** Description Open a direct connection or add a background auto connection +** bd address +** +** Parameters client_if: server interface. +** remote_bda: remote device BD address. +** is_direct: direct connection or background auto connection +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTC_CancelOpen(tBTA_GATTC_IF client_if, BD_ADDR remote_bda, BOOLEAN is_direct); + +/******************************************************************************* +** +** Function BTA_GATTC_Close +** +** Description Close a connection to a GATT server. +** +** Parameters conn_id: connection ID to be closed. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTC_Close(UINT16 conn_id); + +/******************************************************************************* +** +** Function BTA_GATTC_ServiceSearchRequest +** +** Description This function is called to request a GATT service discovery +** on a GATT server. This function report service search result +** by a callback event, and followed by a service search complete +** event. +** +** Parameters conn_id: connection ID. +** p_srvc_uuid: a UUID of the service application is interested in. +** If Null, discover for all services. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_ServiceSearchRequest(UINT16 conn_id, tBT_UUID *p_srvc_uuid); + +/******************************************************************************* +** +** Function BTA_GATTC_GetFirstChar +** +** Description This function is called to find the first charatceristic of the +** service on the given server. +** +** Parameters conn_id: connection ID which identify the server. +** p_srvc_id: the service ID of which the characteristic is belonged to. +** p_char_uuid_cond: Characteristic UUID, if NULL find the first available +** characteristic. +** p_char_result: output parameter which will store the GATT +** characteristic ID. +** p_property: output parameter to carry the characteristic property. +** +** Returns returns status. +** +*******************************************************************************/ +extern tBTA_GATT_STATUS BTA_GATTC_GetFirstChar (UINT16 conn_id, + tBTA_GATT_SRVC_ID *p_srvc_id, + tBT_UUID *p_char_uuid_cond, + tBTA_GATTC_CHAR_ID *p_char_result, + tBTA_GATT_CHAR_PROP *p_property); + +/******************************************************************************* +** +** Function BTA_GATTC_GetNextChar +** +** Description This function is called to find the next charatceristic of the +** service on the given server. +** +** Parameters conn_id: connection ID which identify the server. +** p_start_char_id: start the characteristic search from the next record +** after the one identified by char_id. +** p_char_uuid_cond: Characteristic UUID, if NULL find the first available +** characteristic. +** p_char_result: output parameter which will store the GATT +** characteristic ID. +** p_property: output parameter, characteristic property. +** +** Returns returns status. +** +*******************************************************************************/ +extern tBTA_GATT_STATUS BTA_GATTC_GetNextChar (UINT16 conn_id, + tBTA_GATTC_CHAR_ID *p_start_char_id, + tBT_UUID *p_char_uuid_cond, + tBTA_GATTC_CHAR_ID *p_char_result, + tBTA_GATT_CHAR_PROP *p_property); + +/******************************************************************************* +** +** Function BTA_GATTC_GetFirstCharDescr +** +** Description This function is called to find the first charatceristic descriptor of the +** charatceristic on the given server. +** +** Parameters conn_id: connection ID which identify the server. +** p_char_id: the characteristic ID of which the descriptor is belonged to. +** p_descr_uuid_cond: Characteristic Descr UUID, if NULL find the first available +** characteristic. +** p_descr_result: output parameter which will store the GATT +** characteristic descriptor ID. +** +** Returns returns status. +** +*******************************************************************************/ +extern tBTA_GATT_STATUS BTA_GATTC_GetFirstCharDescr (UINT16 conn_id, tBTA_GATTC_CHAR_ID *p_char_id, + tBT_UUID *p_descr_uuid_cond, + tBTA_GATTC_CHAR_DESCR_ID *p_descr_result); + +/******************************************************************************* +** +** Function BTA_GATTC_GetNextCharDescr +** +** Description This function is called to find the next charatceristic of the +** service on the given server. +** +** Parameters conn_id: connection ID which identify the server. +** p_start_descr_id: start the characteristic search from the next record +** after the one identified by p_start_descr_id. +** p_descr_uuid_cond: Characteristic descriptor UUID, if NULL find +** the first available characteristic descriptor. +** p_descr_result: output parameter which will store the GATT +** characteristic descriptor ID. +** +** Returns returns status. +** +*******************************************************************************/ +extern tBTA_GATT_STATUS BTA_GATTC_GetNextCharDescr (UINT16 conn_id, + tBTA_GATTC_CHAR_DESCR_ID *p_start_descr_id, + tBT_UUID *p_descr_uuid_cond, + tBTA_GATTC_CHAR_DESCR_ID *p_descr_result); + + +/******************************************************************************* +** +** Function BTA_GATTC_GetFirstIncludedService +** +** Description This function is called to find the first included service of the +** service on the given server. +** +** Parameters conn_id: connection ID which identify the server. +** p_srvc_id: the service ID of which the included service is belonged to. +** p_uuid_cond: include service UUID, if NULL find the first available +** included service. +** p_result: output parameter which will store the GATT ID +** of the included service found. +** +** Returns returns status. +** +*******************************************************************************/ +extern tBTA_GATT_STATUS BTA_GATTC_GetFirstIncludedService(UINT16 conn_id, + tBTA_GATT_SRVC_ID *p_srvc_id, + tBT_UUID *p_uuid_cond, + tBTA_GATTC_INCL_SVC_ID *p_result); + +/******************************************************************************* +** +** Function BTA_GATTC_GetNextIncludedService +** +** Description This function is called to find the next included service of the +** service on the given server. +** +** Parameters conn_id: connection ID which identify the server. +** p_start_id: start the search from the next record +** after the one identified by p_start_id. +** p_uuid_cond: Included service UUID, if NULL find the first available +** included service. +** p_result: output parameter which will store the GATT ID +** of the included service found. +** +** Returns returns status. +** +*******************************************************************************/ +extern tBTA_GATT_STATUS BTA_GATTC_GetNextIncludedService(UINT16 conn_id, + tBTA_GATTC_INCL_SVC_ID *p_start_id, + tBT_UUID *p_uuid_cond, + tBTA_GATTC_INCL_SVC_ID *p_result); + +/******************************************************************************* +** +** Function BTA_GATTC_ReadCharacteristic +** +** Description This function is called to read a service's characteristics of +** the given characteritisc ID. +** +** Parameters conn_id - connection ID. +** p_char_id - characteritic ID to read. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_ReadCharacteristic (UINT16 conn_id, + tBTA_GATTC_CHAR_ID *p_char_id, + tBTA_GATT_AUTH_REQ auth_req); + +/******************************************************************************* +** +** Function BTA_GATTC_ReadCharDescr +** +** Description This function is called to read a characteristics descriptor. +** +** Parameters conn_id - connection ID. +** p_char_descr_id - characteritic descriptor ID to read. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_ReadCharDescr (UINT16 conn_id, + tBTA_GATTC_CHAR_DESCR_ID *p_char_descr_id, + tBTA_GATT_AUTH_REQ auth_req); + +/******************************************************************************* +** +** Function BTA_GATTC_WriteCharValue +** +** Description This function is called to write characteristic value. +** +** Parameters conn_id - connection ID. +** p_char_id - characteristic ID to write. +** write_type - type of write. +** len: length of the data to be written. +** p_value - the value to be written. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_WriteCharValue (UINT16 conn_id, + tBTA_GATTC_CHAR_ID *p_char_id, + tBTA_GATTC_WRITE_TYPE write_type, + UINT16 len, + UINT8 *p_value, + tBTA_GATT_AUTH_REQ auth_req); + +/******************************************************************************* +** +** Function BTA_GATTC_WriteCharDescr +** +** Description This function is called to write characteristic descriptor value. +** +** Parameters conn_id - connection ID +** p_char_descr_id - characteristic descriptor ID to write. +** write_type - type of write. +** p_value - the value to be written. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_WriteCharDescr (UINT16 conn_id, + tBTA_GATTC_CHAR_DESCR_ID *p_char_descr_id, + tBTA_GATTC_WRITE_TYPE write_type, + tBTA_GATT_UNFMT *p_data, + tBTA_GATT_AUTH_REQ auth_req); + +/******************************************************************************* +** +** Function BTA_GATTC_SendIndConfirm +** +** Description This function is called to send handle value confirmation. +** +** Parameters conn_id - connection ID. +** p_char_id - characteristic ID to confrim. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_SendIndConfirm (UINT16 conn_id, tBTA_GATTC_CHAR_ID *p_char_id); + +/******************************************************************************* +** +** Function BTA_GATTC_RegisterForNotifications +** +** Description This function is called to register for notification of a service. +** +** Parameters client_if - client interface. +** remote_bda - target GATT server. +** p_char_id - pointer to GATT characteristic ID. +** +** Returns OK if registration succeed, otherwise failed. +** +*******************************************************************************/ +extern tBTA_GATT_STATUS BTA_GATTC_RegisterForNotifications (tBTA_GATTC_IF client_if, + BD_ADDR remote_bda, + tBTA_GATTC_CHAR_ID *p_char_id); + + +/******************************************************************************* +** +** Function BTA_GATTC_DeregisterForNotifications +** +** Description This function is called to de-register for notification of a servbice. +** +** Parameters client_if - client interface. +** remote_bda - target GATT server. +** p_char_id - pointer to a GATT characteristic ID. +** +** Returns OK if deregistration succeed, otherwise failed. +** +*******************************************************************************/ +extern tBTA_GATT_STATUS BTA_GATTC_DeregisterForNotifications (tBTA_GATTC_IF client_if, + BD_ADDR remote_bda, + tBTA_GATTC_CHAR_ID *p_char_id); + +/******************************************************************************* +** +** Function BTA_GATTC_PrepareWrite +** +** Description This function is called to prepare write a characteristic value. +** +** Parameters conn_id - connection ID. +** p_char_id - GATT characteritic ID of the service. +** offset - offset of the write value. +** len: length of the data to be written. +** p_value - the value to be written. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_PrepareWrite (UINT16 conn_id, + tBTA_GATTC_CHAR_ID *p_char_id, + UINT16 offset, + UINT16 len, + UINT8 *p_value, + tBTA_GATT_AUTH_REQ auth_req); + +/******************************************************************************* +** +** Function BTA_GATTC_ExecuteWrite +** +** Description This function is called to execute write a prepare write sequence. +** +** Parameters conn_id - connection ID. +** is_execute - execute or cancel. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_ExecuteWrite (UINT16 conn_id, BOOLEAN is_execute); + +/******************************************************************************* +** +** Function BTA_GATTC_ReadMultiple +** +** Description This function is called to read multiple characteristic or +** characteristic descriptors. +** +** Parameters conn_id - connection ID. +** p_read_multi - read multiple parameters. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTC_ReadMultiple(UINT16 conn_id, tBTA_GATTC_MULTI *p_read_multi, + tBTA_GATT_AUTH_REQ auth_req); + + +/******************************************************************************* +** +** Function BTA_GATTC_Refresh +** +** Description Refresh the server cache of the remote device +** +** Parameters remote_bda: remote device BD address. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTC_Refresh(BD_ADDR remote_bda); + + +/******************************************************************************* +** +** Function BTA_GATTC_Listen +** +** Description Start advertisement to listen for connection request. +** +** Parameters client_if: server interface. +** start: to start or stop listening for connection +** remote_bda: remote device BD address, if listen to all device +** use NULL. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTC_Listen(tBTA_GATTC_IF client_if, BOOLEAN start, BD_ADDR_PTR target_bda); + +/******************************************************************************* +** +** Function BTA_GATTC_Broadcast +** +** Description Start broadcasting (non-connectable advertisements) +** +** Parameters client_if: client interface. +** start: to start or stop listening for connection +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTC_Broadcast(tBTA_GATTC_IF client_if, BOOLEAN start); + + +/******************************************************************************* +** +** Function BTA_GATTC_ConfigureMTU +** +** Description Configure the MTU size in the GATT channel. This can be done +** only once per connection. +** +** Parameters conn_id: connection ID. +** mtu: desired MTU size to use. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTC_ConfigureMTU (UINT16 conn_id, UINT16 mtu); + +/******************************************************************************* +** BTA GATT Server API +********************************************************************************/ + +/******************************************************************************* +** +** Function BTA_GATTS_Init +** +** Description This function is called to initalize GATTS module +** +** Parameters None +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTS_Init(); + +/******************************************************************************* +** +** Function BTA_GATTS_Disable +** +** Description This function is called to disable GATTS module +** +** Parameters None. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTS_Disable(void); + +/******************************************************************************* +** +** Function BTA_GATTS_AppRegister +** +** Description This function is called to register application callbacks +** with BTA GATTS module. +** +** Parameters p_app_uuid - applicaiton UUID +** p_cback - pointer to the application callback function. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTS_AppRegister(tBT_UUID *p_app_uuid, tBTA_GATTS_CBACK *p_cback); + + +/******************************************************************************* +** +** Function BTA_GATTS_AppDeregister +** +** Description De-register with BTA GATT Server. +** +** Parameters server_if: server interface +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTS_AppDeregister(tBTA_GATTS_IF server_if); + +/******************************************************************************* +** +** Function BTA_GATTS_CreateService +** +** Description Create a service. When service creation is done, a callback +** event BTA_GATTS_CREATE_SRVC_EVT is called to report status +** and service ID to the profile. The service ID obtained in +** the callback function needs to be used when adding included +** service and characteristics/descriptors into the service. +** +** Parameters server_if: server interface. +** p_service_uuid: service UUID. +** inst: instance ID number of this service. +** num_handle: numble of handle requessted for this service. +** is_primary: is this service a primary one or not. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTS_CreateService(tBTA_GATTS_IF server_if, tBT_UUID *p_service_uuid, + UINT8 inst, UINT16 num_handle, BOOLEAN is_primary); + +/******************************************************************************* +** +** Function BTA_GATTS_AddIncludeService +** +** Description This function is called to add an included service. After included +** service is included, a callback event BTA_GATTS_ADD_INCL_SRVC_EVT +** is reported the included service ID. +** +** Parameters service_id: service ID to which this included service is to +** be added. +** included_service_id: the service ID to be included. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTS_AddIncludeService(UINT16 service_id, UINT16 included_service_id); + +/******************************************************************************* +** +** Function BTA_GATTS_AddCharacteristic +** +** Description This function is called to add a characteristic into a service. +** +** Parameters service_id: service ID to which this included service is to +** be added. +** p_char_uuid : Characteristic UUID. +** perm : Characteristic value declaration attribute permission. +** property : Characteristic Properties +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTS_AddCharacteristic (UINT16 service_id, tBT_UUID *p_char_uuid, + tBTA_GATT_PERM perm, tBTA_GATT_CHAR_PROP property, tGATT_ATTR_VAL *attr_val, + tBTA_GATTS_ATTR_CONTROL *control); + +/******************************************************************************* +** +** Function BTA_GATTS_AddCharDescriptor +** +** Description This function is called to add characteristic descriptor. When +** it's done, a callback event BTA_GATTS_ADD_DESCR_EVT is called +** to report the status and an ID number for this descriptor. +** +** Parameters service_id: service ID to which this charatceristic descriptor is to +** be added. +** perm: descriptor access permission. +** p_descr_uuid: descriptor UUID. +** p_descr_params: descriptor value if it's read only descriptor. +** +** Returns returns status. +** +*******************************************************************************/ +extern void BTA_GATTS_AddCharDescriptor (UINT16 service_id, + tBTA_GATT_PERM perm, + tBT_UUID *p_descr_uuid, tBTA_GATT_ATTR_VAL *attr_val, + tBTA_GATTS_ATTR_CONTROL *control); + +/******************************************************************************* +** +** Function BTA_GATTS_DeleteService +** +** Description This function is called to delete a service. When this is done, +** a callback event BTA_GATTS_DELETE_EVT is report with the status. +** +** Parameters service_id: service_id to be deleted. +** +** Returns returns none. +** +*******************************************************************************/ +extern void BTA_GATTS_DeleteService(UINT16 service_id); + +/******************************************************************************* +** +** Function BTA_GATTS_StartService +** +** Description This function is called to start a service. +** +** Parameters service_id: the service ID to be started. +** sup_transport: supported trasnport. +** +** Returns None. +** +*******************************************************************************/ +extern void BTA_GATTS_StartService(UINT16 service_id, tBTA_GATT_TRANSPORT sup_transport); + +/******************************************************************************* +** +** Function BTA_GATTS_StopService +** +** Description This function is called to stop a service. +** +** Parameters service_id - service to be topped. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTS_StopService(UINT16 service_id); + +/******************************************************************************* +** +** Function BTA_GATTS_HandleValueIndication +** +** Description This function is called to read a characteristics descriptor. +** +** Parameters conn_id - connection identifier. +** attr_id - attribute ID to indicate. +** data_len - indicate data length. +** p_data: data to indicate. +** need_confirm - if this indication expects a confirmation or not. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTS_HandleValueIndication (UINT16 conn_id, UINT16 attr_id, + UINT16 data_len, + UINT8 *p_data, + BOOLEAN need_confirm); + +/******************************************************************************* +** +** Function BTA_GATTS_SendRsp +** +** Description This function is called to send a response to a request. +** +** Parameters conn_id - connection identifier. +** trans_id - transaction ID. +** status - response status +** p_msg - response data. +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GATTS_SendRsp (UINT16 conn_id, UINT32 trans_id, + tBTA_GATT_STATUS status, tBTA_GATTS_RSP *p_msg); + + + +/******************************************************************************* +** +** Function BTA_SetAttributeValue +** +** Description This function is called to set the attribute value in the gatt database +** +** Parameters attr_handle - the attribute value handle. +** length - the value length which has been set to the attribute. +** value - the pointer to the value +** +** Returns None +** +*******************************************************************************/ +extern void BTA_SetAttributeValue(UINT16 attr_handle, UINT16 length, UINT8 *value); + + +/******************************************************************************* +** +** Function BTA_GetAttributeValue +** +** Description This function is called to get the attribute value in the gatt database +** +** Parameters attr_handle - the attribute value handle. +** length - the value length which has been set to the attribute. +** value - the pointer to the value +** +** Returns None +** +*******************************************************************************/ +extern void BTA_GetAttributeValue(UINT16 attr_handle, UINT16 *length, UINT8 **value); + +/******************************************************************************* +** +** Function BTA_GATTS_Open +** +** Description Open a direct open connection or add a background auto connection +** bd address +** +** Parameters server_if: server interface. +** remote_bda: remote device BD address. +** is_direct: direct connection or background auto connection +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTS_Open(tBTA_GATTS_IF server_if, BD_ADDR remote_bda, + BOOLEAN is_direct, tBTA_GATT_TRANSPORT transport); + + +/******************************************************************************* +** +** Function BTA_GATTS_CancelOpen +** +** Description Cancel a direct open connection or remove a background auto connection +** bd address +** +** Parameters server_if: server interface. +** remote_bda: remote device BD address. +** is_direct: direct connection or background auto connection +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTS_CancelOpen(tBTA_GATTS_IF server_if, BD_ADDR remote_bda, BOOLEAN is_direct); + + +/******************************************************************************* +** +** Function BTA_GATTS_Close +** +** Description Close a connection a remote device. +** +** Parameters conn_id: connection ID to be closed. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTS_Close(UINT16 conn_id); + +/******************************************************************************* +** +** Function BTA_GATTS_Listen +** +** Description Start advertisement to listen for connection request for a +** GATT server +** +** Parameters server_if: server interface. +** start: to start or stop listening for connection +** remote_bda: remote device BD address, if listen to all device +** use NULL. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_GATTS_Listen(tBTA_GATTS_IF server_if, BOOLEAN start, + BD_ADDR_PTR target_bda); + + +#ifdef __cplusplus + +} +#endif + + +#endif /* BTA_GATT_API_H */ diff --git a/tools/sdk/include/bluedroid/bta_gattc_ci.h b/tools/sdk/include/bluedroid/bta_gattc_ci.h new file mode 100644 index 00000000..12b3a421 --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_gattc_ci.h @@ -0,0 +1,117 @@ +/****************************************************************************** + * + * Copyright (C) 2003-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the interface file for GATT call-in functions. + * + ******************************************************************************/ +#ifndef BTA_GATTC_CI_H +#define BTA_GATTC_CI_H + +#include "bta_gatt_api.h" + +/***************************************************************************** +** Constants and data types +*****************************************************************************/ + +/* Open Complete Event */ +typedef struct { + BT_HDR hdr; + tBTA_GATT_STATUS status; +} tBTA_GATTC_CI_EVT; + +#define BTA_GATTC_NV_LOAD_MAX 10 + +/* Read Ready Event */ +typedef struct { + BT_HDR hdr; + tBTA_GATT_STATUS status; + UINT16 num_attr; + tBTA_GATTC_NV_ATTR attr[BTA_GATTC_NV_LOAD_MAX]; +} tBTA_GATTC_CI_LOAD; + + +/***************************************************************************** +** Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif + +/******************************************************************************* +** +** Function bta_gattc_ci_cache_open +** +** Description This function sends an event to indicate server cache open +** completed. +** +** Parameters server_bda - server BDA of this cache. +** status - BTA_GATT_OK if full buffer of data, +** BTA_GATT_FAIL if an error has occurred. +** +** Returns void +** +*******************************************************************************/ +extern void bta_gattc_ci_cache_open(BD_ADDR server_bda, UINT16 evt, + tBTA_GATT_STATUS status, UINT16 conn_id); + +/******************************************************************************* +** +** Function bta_gattc_ci_cache_load +** +** Description This function sends an event to BTA indicating the phone has +** load the servere cache and ready to send it to the stack. +** +** Parameters server_bda - server BDA of this cache. +** num_bytes_read - number of bytes read into the buffer +** specified in the read callout-function. +** status - BTA_GATT_OK if full buffer of data, +** BTA_GATT_FAIL if an error has occurred. +** +** Returns void +** +*******************************************************************************/ +extern void bta_gattc_ci_cache_load(BD_ADDR server_bda, UINT16 evt, + UINT16 num_attr, tBTA_GATTC_NV_ATTR *p_atrr, + tBTA_GATT_STATUS status, UINT16 conn_id); + +/******************************************************************************* +** +** Function bta_gattc_ci_save +** +** Description This function sends an event to BTA indicating the phone has +** save the server cache. +** +** Parameters server_bda - server BDA of this cache. +** status - BTA_GATT_OK if full buffer of data, +** BTA_GATT_FAIL if an error has occurred. +** +** Returns void +** +*******************************************************************************/ +extern void bta_gattc_ci_cache_save(BD_ADDR server_bda, UINT16 evt, + tBTA_GATT_STATUS status, UINT16 conn_id); + + +#ifdef __cplusplus +} +#endif + +#endif /* BTA_GATTC_CI_H */ diff --git a/tools/sdk/include/bluedroid/bta_gattc_co.h b/tools/sdk/include/bluedroid/bta_gattc_co.h new file mode 100644 index 00000000..f84f9d35 --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_gattc_co.h @@ -0,0 +1,114 @@ +/****************************************************************************** + * + * Copyright (C) 2009-2013 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the interface file for BTA GATT client call-out functions. + * + ******************************************************************************/ +#ifndef BTA_GATTC_CO_H +#define BTA_GATTC_CO_H + +#include "bta_gatt_api.h" + +/******************************************************************************* +** +** Function bta_gattc_co_cache_open +** +** Description This callout function is executed by GATTC when a GATT server +** cache is ready to be sent. +** +** Parameter server_bda: server bd address of this cache belongs to +** evt: call in event to be passed in when cache open is done. +** conn_id: connection ID of this cache operation attach to. +** to_save: open cache to save or to load. +** +** Returns void. +** +*******************************************************************************/ +extern void bta_gattc_co_cache_open(BD_ADDR server_bda, UINT16 evt, + UINT16 conn_id, BOOLEAN to_save); + +/******************************************************************************* +** +** Function bta_gattc_co_cache_close +** +** Description This callout function is executed by GATTC when a GATT server +** cache is written completely. +** +** Parameter server_bda: server bd address of this cache belongs to +** conn_id: connection ID of this cache operation attach to. +** +** Returns void. +** +*******************************************************************************/ +extern void bta_gattc_co_cache_close(BD_ADDR server_bda, UINT16 conn_id); + +/******************************************************************************* +** +** Function bta_gattc_co_cache_save +** +** Description This callout function is executed by GATT when a server cache +** is available to save. +** +** Parameter server_bda: server bd address of this cache belongs to +** evt: call in event to be passed in when cache save is done. +** num_attr: number of attribute to be save. +** p_attr: pointer to the list of attributes to save. +** attr_index: starting attribute index of the save operation. +** conn_id: connection ID of this cache operation attach to. +** Returns +** +*******************************************************************************/ +extern void bta_gattc_co_cache_save(BD_ADDR server_bda, UINT16 evt, + UINT16 num_attr, tBTA_GATTC_NV_ATTR *p_attr, + UINT16 attr_index, UINT16 conn_id); + +/******************************************************************************* +** +** Function bta_gattc_co_cache_load +** +** Description This callout function is executed by GATT when server cache +** is required to load. +** +** Parameter server_bda: server bd address of this cache belongs to +** evt: call in event to be passed in when cache save is done. +** num_attr: number of attribute to be save. +** attr_index: starting attribute index of the save operation. +** conn_id: connection ID of this cache operation attach to. +** Returns +** +*******************************************************************************/ +extern void bta_gattc_co_cache_load(BD_ADDR server_bda, UINT16 evt, + UINT16 start_index, UINT16 conn_id); + +/******************************************************************************* +** +** Function bta_gattc_co_cache_reset +** +** Description This callout function is executed by GATTC to reset cache in +** application +** +** Parameter server_bda: server bd address of this cache belongs to +** +** Returns void. +** +*******************************************************************************/ +extern void bta_gattc_co_cache_reset(BD_ADDR server_bda); + +#endif /* BTA_GATT_CO_H */ diff --git a/tools/sdk/include/bluedroid/bta_gattc_int.h b/tools/sdk/include/bluedroid/bta_gattc_int.h new file mode 100644 index 00000000..d50c6622 --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_gattc_int.h @@ -0,0 +1,525 @@ +/****************************************************************************** + * + * Copyright (C) 2003-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the private file for the file transfer client (FTC). + * + ******************************************************************************/ +#ifndef BTA_GATTC_INT_H +#define BTA_GATTC_INT_H + +#include "bt_target.h" +#include "bta_sys.h" +#include "bta_gatt_api.h" +#include "bta_gattc_ci.h" +#include "bta_gattc_co.h" + +#include "gki.h" + +/***************************************************************************** +** Constants and data types +*****************************************************************************/ +enum { + BTA_GATTC_API_OPEN_EVT = BTA_SYS_EVT_START(BTA_ID_GATTC), + BTA_GATTC_INT_OPEN_FAIL_EVT, + BTA_GATTC_API_CANCEL_OPEN_EVT, + BTA_GATTC_INT_CANCEL_OPEN_OK_EVT, + + BTA_GATTC_API_READ_EVT, + BTA_GATTC_API_WRITE_EVT, + BTA_GATTC_API_EXEC_EVT, + BTA_GATTC_API_CFG_MTU_EVT, + + BTA_GATTC_API_CLOSE_EVT, + + BTA_GATTC_API_SEARCH_EVT, + BTA_GATTC_API_CONFIRM_EVT, + BTA_GATTC_API_READ_MULTI_EVT, + BTA_GATTC_API_REFRESH_EVT, + + BTA_GATTC_INT_CONN_EVT, + BTA_GATTC_INT_DISCOVER_EVT, + BTA_GATTC_DISCOVER_CMPL_EVT, + BTA_GATTC_OP_CMPL_EVT, + BTA_GATTC_INT_DISCONN_EVT, + + /* for cache loading/saving */ + BTA_GATTC_START_CACHE_EVT, + BTA_GATTC_CI_CACHE_OPEN_EVT, + BTA_GATTC_CI_CACHE_LOAD_EVT, + BTA_GATTC_CI_CACHE_SAVE_EVT, + + BTA_GATTC_INT_START_IF_EVT, + BTA_GATTC_API_REG_EVT, + BTA_GATTC_API_DEREG_EVT, + BTA_GATTC_API_LISTEN_EVT, + BTA_GATTC_API_BROADCAST_EVT, + BTA_GATTC_API_DISABLE_EVT, + BTA_GATTC_ENC_CMPL_EVT +}; +typedef UINT16 tBTA_GATTC_INT_EVT; + +/* max client application GATTC can support */ +#ifndef BTA_GATTC_CL_MAX +#define BTA_GATTC_CL_MAX 3 // 32 +#endif + +/* max known devices GATTC can support */ +#ifndef BTA_GATTC_KNOWN_SR_MAX +#define BTA_GATTC_KNOWN_SR_MAX 3 // 10 +#endif + +#define BTA_GATTC_CONN_MAX GATT_MAX_PHY_CHANNEL + +#ifndef BTA_GATTC_CLCB_MAX +#define BTA_GATTC_CLCB_MAX GATT_CL_MAX_LCB +#endif + +#define BTA_GATTC_WRITE_PREPARE GATT_WRITE_PREPARE + + +/* internal strucutre for GATTC register API */ +typedef struct { + BT_HDR hdr; + tBT_UUID app_uuid; + tBTA_GATTC_CBACK *p_cback; +} tBTA_GATTC_API_REG; + +typedef struct { + BT_HDR hdr; + tBTA_GATTC_IF client_if; +} tBTA_GATTC_INT_START_IF; + +typedef tBTA_GATTC_INT_START_IF tBTA_GATTC_API_DEREG; +typedef tBTA_GATTC_INT_START_IF tBTA_GATTC_INT_DEREG; + +typedef struct { + BT_HDR hdr; + BD_ADDR remote_bda; + tBTA_GATTC_IF client_if; + BOOLEAN is_direct; + tBTA_TRANSPORT transport; +} tBTA_GATTC_API_OPEN; + +typedef tBTA_GATTC_API_OPEN tBTA_GATTC_API_CANCEL_OPEN; + +typedef struct { + BT_HDR hdr; + tBTA_GATT_AUTH_REQ auth_req; + tBTA_GATT_SRVC_ID srvc_id; + tBTA_GATT_ID char_id; + tBTA_GATT_ID *p_descr_type; +} tBTA_GATTC_API_READ; + +typedef struct { + BT_HDR hdr; + tBTA_GATT_AUTH_REQ auth_req; + tBTA_GATT_SRVC_ID srvc_id; + tBTA_GATT_ID char_id; + tBTA_GATT_ID *p_descr_type; + tBTA_GATTC_WRITE_TYPE write_type; + UINT16 offset; + UINT16 len; + UINT8 *p_value; +} tBTA_GATTC_API_WRITE; + +typedef struct { + BT_HDR hdr; + BOOLEAN is_execute; +} tBTA_GATTC_API_EXEC; + +typedef struct { + BT_HDR hdr; + tBTA_GATT_SRVC_ID srvc_id; + tBTA_GATT_ID char_id; +} tBTA_GATTC_API_CONFIRM; + +typedef tGATT_CL_COMPLETE tBTA_GATTC_CMPL; + +typedef struct { + BT_HDR hdr; + UINT8 op_code; + tGATT_STATUS status; + tBTA_GATTC_CMPL *p_cmpl; +} tBTA_GATTC_OP_CMPL; + +typedef struct { + BT_HDR hdr; + tBT_UUID *p_srvc_uuid; +} tBTA_GATTC_API_SEARCH; + +typedef struct { + BT_HDR hdr; + tBTA_GATT_AUTH_REQ auth_req; + UINT8 num_attr; + tBTA_GATTC_ATTR_ID *p_id_list; +} tBTA_GATTC_API_READ_MULTI; + +typedef struct { + BT_HDR hdr; + BD_ADDR_PTR remote_bda; + tBTA_GATTC_IF client_if; + BOOLEAN start; +} tBTA_GATTC_API_LISTEN; + + +typedef struct { + BT_HDR hdr; + UINT16 mtu; +} tBTA_GATTC_API_CFG_MTU; + +typedef struct { + BT_HDR hdr; + BD_ADDR remote_bda; + tBTA_GATTC_IF client_if; + UINT8 role; + tBT_TRANSPORT transport; + tGATT_DISCONN_REASON reason; +} tBTA_GATTC_INT_CONN; + +typedef struct { + BT_HDR hdr; + BD_ADDR remote_bda; + tBTA_GATTC_IF client_if; +} tBTA_GATTC_ENC_CMPL; + +typedef union { + BT_HDR hdr; + tBTA_GATTC_API_REG api_reg; + tBTA_GATTC_API_DEREG api_dereg; + tBTA_GATTC_API_OPEN api_conn; + tBTA_GATTC_API_CANCEL_OPEN api_cancel_conn; + tBTA_GATTC_API_READ api_read; + tBTA_GATTC_API_SEARCH api_search; + tBTA_GATTC_API_WRITE api_write; + tBTA_GATTC_API_CONFIRM api_confirm; + tBTA_GATTC_API_EXEC api_exec; + tBTA_GATTC_API_READ_MULTI api_read_multi; + tBTA_GATTC_API_CFG_MTU api_mtu; + tBTA_GATTC_OP_CMPL op_cmpl; + tBTA_GATTC_CI_EVT ci_open; + tBTA_GATTC_CI_EVT ci_save; + tBTA_GATTC_CI_LOAD ci_load; + tBTA_GATTC_INT_CONN int_conn; + tBTA_GATTC_ENC_CMPL enc_cmpl; + + tBTA_GATTC_INT_START_IF int_start_if; + tBTA_GATTC_INT_DEREG int_dereg; + /* if peripheral role is supported */ + tBTA_GATTC_API_LISTEN api_listen; + +} tBTA_GATTC_DATA; + + +/* GATT server cache on the client */ +typedef union { + UINT8 uuid128[LEN_UUID_128]; + UINT16 uuid16; +} tBTA_GATTC_UUID; + +typedef struct gattc_attr_cache { + tBTA_GATTC_UUID *p_uuid; + struct gattc_attr_cache *p_next; + UINT16 uuid_len; + UINT16 attr_handle; + UINT8 inst_id; + tBTA_GATT_CHAR_PROP property; /* if characteristic, it is char property; + if included service, flag primary, + if descriptor, not used */ + tBTA_GATTC_ATTR_TYPE attr_type; +// btla-specific ++ +} __attribute__((packed)) tBTA_GATTC_CACHE_ATTR; +// btla-specific -- + +typedef struct gattc_svc_cache { + tBTA_GATT_SRVC_ID service_uuid; + tBTA_GATTC_CACHE_ATTR *p_attr; + tBTA_GATTC_CACHE_ATTR *p_last_attr; + UINT16 s_handle; + UINT16 e_handle; + struct gattc_svc_cache *p_next; + tBTA_GATTC_CACHE_ATTR *p_cur_char; +// btla-specific ++ +} __attribute__((packed)) tBTA_GATTC_CACHE; +// btla-specific -- + +typedef struct { + tBT_UUID uuid; + UINT16 s_handle; + UINT16 e_handle; + BOOLEAN is_primary; + UINT8 srvc_inst_id; + tBTA_GATT_CHAR_PROP property; +} tBTA_GATTC_ATTR_REC; + + +#define BTA_GATTC_MAX_CACHE_CHAR 40 +#define BTA_GATTC_ATTR_LIST_SIZE (BTA_GATTC_MAX_CACHE_CHAR * sizeof(tBTA_GATTC_ATTR_REC)) + +#ifndef BTA_GATTC_CACHE_SRVR_SIZE +#define BTA_GATTC_CACHE_SRVR_SIZE 600 +#endif + +enum { + BTA_GATTC_IDLE_ST = 0, /* Idle */ + BTA_GATTC_W4_CONN_ST, /* Wait for connection - (optional) */ + BTA_GATTC_CONN_ST, /* connected state */ + BTA_GATTC_DISCOVER_ST /* discover is in progress */ +}; +typedef UINT8 tBTA_GATTC_STATE; + +typedef struct { + BOOLEAN in_use; + BD_ADDR server_bda; + BOOLEAN connected; + +#define BTA_GATTC_SERV_IDLE 0 +#define BTA_GATTC_SERV_LOAD 1 +#define BTA_GATTC_SERV_SAVE 2 +#define BTA_GATTC_SERV_DISC 3 +#define BTA_GATTC_SERV_DISC_ACT 4 + + UINT8 state; + + tBTA_GATTC_CACHE *p_srvc_cache; + tBTA_GATTC_CACHE *p_cur_srvc; + BUFFER_Q cache_buffer; /* buffer queue used for storing the cache data */ + UINT8 *p_free; /* starting point to next available byte */ + UINT16 free_byte; /* number of available bytes in server cache buffer */ + UINT8 update_count; /* indication received */ + UINT8 num_clcb; /* number of associated CLCB */ + + + tBTA_GATTC_ATTR_REC *p_srvc_list; + UINT8 cur_srvc_idx; + UINT8 cur_char_idx; + UINT8 next_avail_idx; + UINT8 total_srvc; + UINT8 total_char; + + UINT8 srvc_hdl_chg; /* service handle change indication pending */ + UINT16 attr_index; /* cahce NV saving/loading attribute index */ + + UINT16 mtu; +} tBTA_GATTC_SERV; + +#ifndef BTA_GATTC_NOTIF_REG_MAX +#define BTA_GATTC_NOTIF_REG_MAX 15 +#endif + +typedef struct { + BOOLEAN in_use; + BD_ADDR remote_bda; + tBTA_GATTC_CHAR_ID char_id; +} tBTA_GATTC_NOTIF_REG; + +typedef struct { + tBTA_GATTC_CBACK *p_cback; + BOOLEAN in_use; + tBTA_GATTC_IF client_if; /* client interface with BTE stack for this application */ + UINT8 num_clcb; /* number of associated CLCB */ + BOOLEAN dereg_pending; + tBT_UUID app_uuid; + tBTA_GATTC_NOTIF_REG notif_reg[BTA_GATTC_NOTIF_REG_MAX]; +} tBTA_GATTC_RCB; + +/* client channel is a mapping between a BTA client(cl_id) and a remote BD address */ +typedef struct { + UINT16 bta_conn_id; /* client channel ID, unique for clcb */ + BD_ADDR bda; + tBTA_TRANSPORT transport; /* channel transport */ + tBTA_GATTC_RCB *p_rcb; /* pointer to the registration CB */ + tBTA_GATTC_SERV *p_srcb; /* server cache CB */ + tBTA_GATTC_DATA *p_q_cmd; /* command in queue waiting for execution */ + +#define BTA_GATTC_NO_SCHEDULE 0 +#define BTA_GATTC_DISC_WAITING 0x01 +#define BTA_GATTC_REQ_WAITING 0x10 + + UINT8 auto_update; /* auto update is waiting */ + BOOLEAN disc_active; + BOOLEAN in_use; + tBTA_GATTC_STATE state; + tBTA_GATT_STATUS status; + UINT16 reason; +} tBTA_GATTC_CLCB; + +/* back ground connection tracking information */ +#if GATT_MAX_APPS <= 8 +typedef UINT8 tBTA_GATTC_CIF_MASK ; +#elif GATT_MAX_APPS <= 16 +typedef UINT16 tBTA_GATTC_CIF_MASK; +#elif GATT_MAX_APPS <= 32 +typedef UINT32 tBTA_GATTC_CIF_MASK; +#endif + +typedef struct { + BOOLEAN in_use; + BD_ADDR remote_bda; + tBTA_GATTC_CIF_MASK cif_mask; + tBTA_GATTC_CIF_MASK cif_adv_mask; + +} tBTA_GATTC_BG_TCK; + +typedef struct { + BOOLEAN in_use; + BD_ADDR remote_bda; +} tBTA_GATTC_CONN; + +enum { + BTA_GATTC_STATE_DISABLED, + BTA_GATTC_STATE_ENABLING, + BTA_GATTC_STATE_ENABLED, + BTA_GATTC_STATE_DISABLING +}; + +typedef struct { + UINT8 state; + + tBTA_GATTC_CONN conn_track[BTA_GATTC_CONN_MAX]; + tBTA_GATTC_BG_TCK bg_track[BTA_GATTC_KNOWN_SR_MAX]; + tBTA_GATTC_RCB cl_rcb[BTA_GATTC_CL_MAX]; + + tBTA_GATTC_CLCB clcb[BTA_GATTC_CLCB_MAX]; + tBTA_GATTC_SERV known_server[BTA_GATTC_KNOWN_SR_MAX]; + + tSDP_DISCOVERY_DB *p_sdp_db; + UINT16 sdp_conn_id; +} tBTA_GATTC_CB; + +/***************************************************************************** +** Global data +*****************************************************************************/ + +/* GATTC control block */ +#if BTA_DYNAMIC_MEMORY == FALSE +extern tBTA_GATTC_CB bta_gattc_cb; +#else +extern tBTA_GATTC_CB *bta_gattc_cb_ptr; +#define bta_gattc_cb (*bta_gattc_cb_ptr) +#endif + +/***************************************************************************** +** Function prototypes +*****************************************************************************/ +extern BOOLEAN bta_gattc_hdl_event(BT_HDR *p_msg); +extern BOOLEAN bta_gattc_sm_execute(tBTA_GATTC_CLCB *p_clcb, UINT16 event, tBTA_GATTC_DATA *p_data); + +/* function processed outside SM */ +extern void bta_gattc_disable(tBTA_GATTC_CB *p_cb); +extern void bta_gattc_register(tBTA_GATTC_CB *p_cb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_start_if(tBTA_GATTC_CB *p_cb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_process_api_open (tBTA_GATTC_CB *p_cb, tBTA_GATTC_DATA *p_msg); +extern void bta_gattc_process_api_open_cancel (tBTA_GATTC_CB *p_cb, tBTA_GATTC_DATA *p_msg); +extern void bta_gattc_deregister(tBTA_GATTC_CB *p_cb, tBTA_GATTC_RCB *p_clreg); +extern void bta_gattc_process_enc_cmpl(tBTA_GATTC_CB *p_cb, tBTA_GATTC_DATA *p_msg); + +/* function within state machine */ +extern void bta_gattc_open(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_open_fail(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_open_error(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); + +extern void bta_gattc_cancel_open(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_cancel_open_ok(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_cancel_open_error(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); + +extern void bta_gattc_conn(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); + +extern void bta_gattc_close(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_close_fail(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_disc_close(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); + +extern void bta_gattc_start_discover(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_disc_cmpl(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_read(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_write(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_op_cmpl(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_q_cmd(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_search(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_fail(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_confirm(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_execute(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_read_multi(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_ci_open(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_ci_load(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_ci_close(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_ci_save(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_cache_open(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_ignore_op_cmpl(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +extern void bta_gattc_restart_discover(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_msg); +extern void bta_gattc_init_bk_conn(tBTA_GATTC_API_OPEN *p_data, tBTA_GATTC_RCB *p_clreg); +extern void bta_gattc_cancel_bk_conn(tBTA_GATTC_API_CANCEL_OPEN *p_data); +extern void bta_gattc_send_open_cback( tBTA_GATTC_RCB *p_clreg, tBTA_GATT_STATUS status, + BD_ADDR remote_bda, UINT16 conn_id, tBTA_TRANSPORT transport, UINT16 mtu); +extern void bta_gattc_process_api_refresh(tBTA_GATTC_CB *p_cb, tBTA_GATTC_DATA *p_msg); +extern void bta_gattc_cfg_mtu(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); +#if BLE_INCLUDED == TRUE +extern void bta_gattc_listen(tBTA_GATTC_CB *p_cb, tBTA_GATTC_DATA *p_msg); +extern void bta_gattc_broadcast(tBTA_GATTC_CB *p_cb, tBTA_GATTC_DATA *p_msg); +#endif +/* utility functions */ +extern tBTA_GATTC_CLCB *bta_gattc_find_clcb_by_cif (UINT8 client_if, BD_ADDR remote_bda, tBTA_TRANSPORT transport); +extern tBTA_GATTC_CLCB *bta_gattc_find_clcb_by_conn_id (UINT16 conn_id); +extern tBTA_GATTC_CLCB *bta_gattc_clcb_alloc(tBTA_GATTC_IF client_if, BD_ADDR remote_bda, tBTA_TRANSPORT transport); +extern void bta_gattc_clcb_dealloc(tBTA_GATTC_CLCB *p_clcb); +extern tBTA_GATTC_CLCB *bta_gattc_find_alloc_clcb(tBTA_GATTC_IF client_if, BD_ADDR remote_bda, tBTA_TRANSPORT transport); +extern tBTA_GATTC_RCB *bta_gattc_cl_get_regcb(UINT8 client_if); +extern tBTA_GATTC_SERV *bta_gattc_find_srcb(BD_ADDR bda); +extern tBTA_GATTC_SERV *bta_gattc_srcb_alloc(BD_ADDR bda); +extern tBTA_GATTC_SERV *bta_gattc_find_scb_by_cid (UINT16 conn_id); +extern tBTA_GATTC_CLCB *bta_gattc_find_int_conn_clcb(tBTA_GATTC_DATA *p_msg); +extern tBTA_GATTC_CLCB *bta_gattc_find_int_disconn_clcb(tBTA_GATTC_DATA *p_msg); + +extern BOOLEAN bta_gattc_enqueue(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data); + +extern UINT16 bta_gattc_id2handle(tBTA_GATTC_SERV *p_srcb, tBTA_GATT_SRVC_ID *p_service_id, tBTA_GATT_ID *p_char_id, tBTA_GATT_ID *p_descr_uuid); +extern BOOLEAN bta_gattc_handle2id(tBTA_GATTC_SERV *p_srcb, UINT16 handle, tBTA_GATT_SRVC_ID *service_id, tBTA_GATT_ID *char_id, tBTA_GATT_ID *p_type); +extern BOOLEAN bta_gattc_uuid_compare (tBT_UUID *p_src, tBT_UUID *p_tar, BOOLEAN is_precise); +extern void bta_gattc_pack_attr_uuid(tBTA_GATTC_CACHE_ATTR *p_attr, tBT_UUID *p_uuid); +extern BOOLEAN bta_gattc_check_notif_registry(tBTA_GATTC_RCB *p_clreg, tBTA_GATTC_SERV *p_srcb, tBTA_GATTC_NOTIFY *p_notify); +extern tBTA_GATT_STATUS bta_gattc_pack_read_cb_data(tBTA_GATTC_SERV *p_srcb, tBT_UUID *p_descr_uuid, tGATT_VALUE *p_attr, tBTA_GATT_READ_VAL *p_value); +extern BOOLEAN bta_gattc_mark_bg_conn (tBTA_GATTC_IF client_if, BD_ADDR_PTR remote_bda, BOOLEAN add, BOOLEAN is_listen); +extern BOOLEAN bta_gattc_check_bg_conn (tBTA_GATTC_IF client_if, BD_ADDR remote_bda, UINT8 role); +extern UINT8 bta_gattc_num_reg_app(void); +extern void bta_gattc_clear_notif_registration(UINT16 conn_id); +extern tBTA_GATTC_SERV *bta_gattc_find_srvr_cache(BD_ADDR bda); +extern BOOLEAN bta_gattc_charid_compare(tBTA_GATTC_CHAR_ID *p_src, tBTA_GATTC_CHAR_ID *p_tar); +extern BOOLEAN bta_gattc_srvcid_compare(tBTA_GATT_SRVC_ID *p_src, tBTA_GATT_SRVC_ID *p_tar); +extern void bta_gattc_cpygattid(tBTA_GATT_ID *p_des, tBTA_GATT_ID *p_src); + +/* discovery functions */ +extern void bta_gattc_disc_res_cback (UINT16 conn_id, tGATT_DISC_TYPE disc_type, tGATT_DISC_RES *p_data); +extern void bta_gattc_disc_cmpl_cback (UINT16 conn_id, tGATT_DISC_TYPE disc_type, tGATT_STATUS status); +extern tBTA_GATT_STATUS bta_gattc_discover_procedure(UINT16 conn_id, tBTA_GATTC_SERV *p_server_cb, UINT8 disc_type); +extern tBTA_GATT_STATUS bta_gattc_discover_pri_service(UINT16 conn_id, tBTA_GATTC_SERV *p_server_cb, UINT8 disc_type); +extern void bta_gattc_search_service(tBTA_GATTC_CLCB *p_clcb, tBT_UUID *p_uuid); +extern tBTA_GATT_STATUS bta_gattc_query_cache(UINT16 conn_id, UINT8 query_type, tBTA_GATT_SRVC_ID *p_srvc_id, + tBTA_GATT_ID *p_start_rec, tBT_UUID *p_uuid_cond, + tBTA_GATT_ID *p_output, void *p_param); +extern tBTA_GATT_STATUS bta_gattc_init_cache(tBTA_GATTC_SERV *p_srvc_cb); +extern void bta_gattc_rebuild_cache(tBTA_GATTC_SERV *p_srcv, UINT16 num_attr, tBTA_GATTC_NV_ATTR *p_attr, UINT16 attr_index); +extern BOOLEAN bta_gattc_cache_save(tBTA_GATTC_SERV *p_srvc_cb, UINT16 conn_id); + + +extern tBTA_GATTC_CONN *bta_gattc_conn_alloc(BD_ADDR remote_bda); +extern tBTA_GATTC_CONN *bta_gattc_conn_find(BD_ADDR remote_bda); +extern tBTA_GATTC_CONN *bta_gattc_conn_find_alloc(BD_ADDR remote_bda); +extern BOOLEAN bta_gattc_conn_dealloc(BD_ADDR remote_bda); + +#endif /* BTA_GATTC_INT_H */ diff --git a/tools/sdk/include/bluedroid/bta_gatts_co.h b/tools/sdk/include/bluedroid/bta_gatts_co.h new file mode 100644 index 00000000..78e001b7 --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_gatts_co.h @@ -0,0 +1,81 @@ +/****************************************************************************** + * + * Copyright (C) 2010-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the interface file for BTA GATT server call-out functions. + * + ******************************************************************************/ +#ifndef BTA_GATTS_CO_H +#define BTA_GATTS_CO_H + +#include "bta_gatt_api.h" + +/******************************************************************************* +** +** Function bta_gatts_co_update_handle_range +** +** Description This callout function is executed by GATTS when a GATT server +** handle range ios to be added or removed. +** +** Parameter is_add: true is to add a handle range; otherwise is to delete. +** p_hndl_range: handle range. +** +** Returns void. +** +*******************************************************************************/ +extern void bta_gatts_co_update_handle_range(BOOLEAN is_add, tBTA_GATTS_HNDL_RANGE *p_hndl_range); + +/******************************************************************************* +** +** Function bta_gatts_co_srv_chg +** +** Description This call-out is to read/write/remove service change related +** informaiton. The request consists of the cmd and p_req and the +** response is returned in p_rsp +** +** Parameter cmd - request command +** p_req - request paramters +** p_rsp - response data for the request +** +** Returns TRUE - if the request is processed successfully and +** the response is returned in p_rsp. +** FASLE - if the request can not be processed +** +*******************************************************************************/ +extern BOOLEAN bta_gatts_co_srv_chg(tBTA_GATTS_SRV_CHG_CMD cmd, + tBTA_GATTS_SRV_CHG_REQ *p_req, + tBTA_GATTS_SRV_CHG_RSP *p_rsp); + +/******************************************************************************* +** +** Function bta_gatts_co_load_handle_range +** +** Description This callout function is executed by GATTS when a GATT server +** handle range is requested to be loaded from NV. +** +** Parameter +** +** Returns void. +** +*******************************************************************************/ +extern BOOLEAN bta_gatts_co_load_handle_range(UINT8 index, + tBTA_GATTS_HNDL_RANGE *p_handle); + + +#endif /* BTA_GATTS_CO_H */ diff --git a/tools/sdk/include/bluedroid/bta_gatts_int.h b/tools/sdk/include/bluedroid/bta_gatts_int.h new file mode 100644 index 00000000..0f9e689a --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_gatts_int.h @@ -0,0 +1,256 @@ +/****************************************************************************** + * + * Copyright (C) 2003-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the private file for the BTA GATT server. + * + ******************************************************************************/ +#ifndef BTA_GATTS_INT_H +#define BTA_GATTS_INT_H + +#include "bt_target.h" +#include "bta_sys.h" +#include "bta_gatt_api.h" +#include "gatt_api.h" + +#include "gki.h" + +/***************************************************************************** +** Constants and data types +*****************************************************************************/ +enum { + BTA_GATTS_API_REG_EVT = BTA_SYS_EVT_START(BTA_ID_GATTS), + BTA_GATTS_INT_START_IF_EVT, + BTA_GATTS_API_DEREG_EVT, + BTA_GATTS_API_CREATE_SRVC_EVT, + BTA_GATTS_API_INDICATION_EVT, + + BTA_GATTS_API_ADD_INCL_SRVC_EVT, + BTA_GATTS_API_ADD_CHAR_EVT, + BTA_GATTS_API_ADD_DESCR_EVT, + BTA_GATTS_API_DEL_SRVC_EVT, + BTA_GATTS_API_START_SRVC_EVT, + BTA_GATTS_API_STOP_SRVC_EVT, + BTA_GATTS_API_RSP_EVT, + BTA_GATTS_API_SET_ATTR_VAL_EVT, + BTA_GATTS_API_OPEN_EVT, + BTA_GATTS_API_CANCEL_OPEN_EVT, + BTA_GATTS_API_CLOSE_EVT, + BTA_GATTS_API_LISTEN_EVT, + BTA_GATTS_API_DISABLE_EVT +}; +typedef UINT16 tBTA_GATTS_INT_EVT; + +/* max number of application allowed on device */ +#define BTA_GATTS_MAX_APP_NUM GATT_MAX_SR_PROFILES + +/* max number of services allowed in the device */ +#define BTA_GATTS_MAX_SRVC_NUM GATT_MAX_SR_PROFILES + +/* internal strucutre for GATTC register API */ +typedef struct { + BT_HDR hdr; + tBT_UUID app_uuid; + tBTA_GATTS_CBACK *p_cback; +} tBTA_GATTS_API_REG; + +typedef struct { + BT_HDR hdr; + tBTA_GATTS_IF server_if; +} tBTA_GATTS_INT_START_IF; + +typedef tBTA_GATTS_INT_START_IF tBTA_GATTS_API_DEREG; + +typedef struct { + BT_HDR hdr; + tBTA_GATTS_IF server_if; + tBT_UUID service_uuid; + UINT16 num_handle; + UINT8 inst; + BOOLEAN is_pri; + +} tBTA_GATTS_API_CREATE_SRVC; + +typedef struct { + BT_HDR hdr; + tBT_UUID char_uuid; + tBTA_GATT_PERM perm; + tBTA_GATT_CHAR_PROP property; + tBTA_GATTS_ATTR_CONTROL control; + tBTA_GATT_ATTR_VAL attr_val; +} tBTA_GATTS_API_ADD_CHAR; + +typedef struct { + BT_HDR hdr; + UINT16 included_service_id; +} tBTA_GATTS_API_ADD_INCL_SRVC; + +typedef struct { + BT_HDR hdr; + tBT_UUID descr_uuid; + tBTA_GATT_PERM perm; + tBTA_GATTS_ATTR_CONTROL control; + tBTA_GATT_ATTR_VAL attr_val; +} tBTA_GATTS_API_ADD_DESCR; + +typedef struct { + BT_HDR hdr; + UINT16 attr_id; + UINT16 len; + BOOLEAN need_confirm; + UINT8 value[BTA_GATT_MAX_ATTR_LEN]; +} tBTA_GATTS_API_INDICATION; + +typedef struct { + BT_HDR hdr; + UINT32 trans_id; + tBTA_GATT_STATUS status; + tBTA_GATTS_RSP *p_rsp; +} tBTA_GATTS_API_RSP; + +typedef struct{ + BT_HDR hdr; + UINT16 length; + UINT8 *value; +}tBTA_GATTS_API_SET_ATTR_VAL; + +typedef struct { + BT_HDR hdr; + tBTA_GATT_TRANSPORT transport; +} tBTA_GATTS_API_START; + + +typedef struct { + BT_HDR hdr; + BD_ADDR remote_bda; + tBTA_GATTS_IF server_if; + BOOLEAN is_direct; + tBTA_GATT_TRANSPORT transport; + +} tBTA_GATTS_API_OPEN; + +typedef tBTA_GATTS_API_OPEN tBTA_GATTS_API_CANCEL_OPEN; + +typedef struct { + BT_HDR hdr; + BD_ADDR_PTR remote_bda; + tBTA_GATTS_IF server_if; + BOOLEAN start; +} tBTA_GATTS_API_LISTEN; + +typedef union { + BT_HDR hdr; + tBTA_GATTS_API_REG api_reg; + tBTA_GATTS_API_DEREG api_dereg; + tBTA_GATTS_API_CREATE_SRVC api_create_svc; + tBTA_GATTS_API_ADD_INCL_SRVC api_add_incl_srvc; + tBTA_GATTS_API_ADD_CHAR api_add_char; + tBTA_GATTS_API_ADD_DESCR api_add_char_descr; + tBTA_GATTS_API_START api_start; + tBTA_GATTS_API_INDICATION api_indicate; + tBTA_GATTS_API_RSP api_rsp; + tBTA_GATTS_API_SET_ATTR_VAL api_set_val; + tBTA_GATTS_API_OPEN api_open; + tBTA_GATTS_API_CANCEL_OPEN api_cancel_open; + + tBTA_GATTS_INT_START_IF int_start_if; + /* if peripheral role is supported */ + tBTA_GATTS_API_LISTEN api_listen; +} tBTA_GATTS_DATA; + +/* application registration control block */ +typedef struct { + BOOLEAN in_use; + tBT_UUID app_uuid; + tBTA_GATTS_CBACK *p_cback; + tBTA_GATTS_IF gatt_if; +} tBTA_GATTS_RCB; + +/* service registration control block */ +typedef struct { + tBT_UUID service_uuid; /* service UUID */ + UINT16 service_id; /* service handle */ + UINT8 inst_num; /* instance ID */ + UINT8 rcb_idx; + UINT8 idx; /* self index of serviec CB */ + BOOLEAN in_use; + +} tBTA_GATTS_SRVC_CB; + + +/* GATT server control block */ +typedef struct { + BOOLEAN enabled; + tBTA_GATTS_RCB rcb[BTA_GATTS_MAX_APP_NUM]; + tBTA_GATTS_SRVC_CB srvc_cb[BTA_GATTS_MAX_SRVC_NUM]; +} tBTA_GATTS_CB; + + + +/***************************************************************************** +** Global data +*****************************************************************************/ + +/* GATTC control block */ +#if BTA_DYNAMIC_MEMORY == FALSE +extern tBTA_GATTS_CB bta_gatts_cb; +#else +extern tBTA_GATTS_CB *bta_gatts_cb_ptr; +#define bta_gatts_cb (*bta_gatts_cb_ptr) +#endif + +/***************************************************************************** +** Function prototypes +*****************************************************************************/ +extern BOOLEAN bta_gatts_hdl_event(BT_HDR *p_msg); + +extern void bta_gatts_api_disable(tBTA_GATTS_CB *p_cb); +extern void bta_gatts_api_enable(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_data); +extern void bta_gatts_register(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_start_if(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_deregister(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_create_srvc(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_add_include_srvc(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_add_char(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_add_char_descr(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_set_attr_value(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_get_attr_value(UINT16 attr_handle, UINT16 *length, UINT8 **value); +extern void bta_gatts_delete_service(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_start_service(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_stop_service(tBTA_GATTS_SRVC_CB *p_srvc_cb, tBTA_GATTS_DATA *p_msg); + +extern void bta_gatts_send_rsp(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_indicate_handle (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); + + +extern void bta_gatts_open (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_cancel_open (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_close (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); +extern void bta_gatts_listen(tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg); + +extern BOOLEAN bta_gatts_uuid_compare(tBT_UUID tar, tBT_UUID src); +extern tBTA_GATTS_RCB *bta_gatts_find_app_rcb_by_app_if(tBTA_GATTS_IF server_if); +extern UINT8 bta_gatts_find_app_rcb_idx_by_app_if(tBTA_GATTS_CB *p_cb, tBTA_GATTS_IF server_if); +extern UINT8 bta_gatts_alloc_srvc_cb(tBTA_GATTS_CB *p_cb, UINT8 rcb_idx); +extern tBTA_GATTS_SRVC_CB *bta_gatts_find_srvc_cb_by_srvc_id(tBTA_GATTS_CB *p_cb, UINT16 service_id); +extern tBTA_GATTS_SRVC_CB *bta_gatts_find_srvc_cb_by_attr_id(tBTA_GATTS_CB *p_cb, UINT16 attr_id); + + +#endif /* BTA_GATTS_INT_H */ + diff --git a/tools/sdk/include/bluedroid/bta_hh_api.h b/tools/sdk/include/bluedroid/bta_hh_api.h new file mode 100644 index 00000000..d6b31740 --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_hh_api.h @@ -0,0 +1,541 @@ +/****************************************************************************** + * + * Copyright (C) 2002-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ +#ifndef BTA_HH_API_H +#define BTA_HH_API_H + +#include "bta_api.h" +#include "hidh_api.h" + +#if (defined BTA_HH_LE_INCLUDED && BTA_HH_LE_INCLUDED == TRUE) +#include "gatt_api.h" +#endif + +/***************************************************************************** +** Constants and Type Definitions +*****************************************************************************/ +#ifndef BTA_HH_DEBUG +#define BTA_HH_DEBUG TRUE +#endif + +#ifndef BTA_HH_SSR_MAX_LATENCY_DEF +#define BTA_HH_SSR_MAX_LATENCY_DEF 800 /* 500 ms*/ +#endif + +#ifndef BTA_HH_SSR_MIN_TOUT_DEF +#define BTA_HH_SSR_MIN_TOUT_DEF 2 +#endif + +/* BTA HID Host callback events */ +#define BTA_HH_ENABLE_EVT 0 /* HH enabled */ +#define BTA_HH_DISABLE_EVT 1 /* HH disabled */ +#define BTA_HH_OPEN_EVT 2 /* connection opened */ +#define BTA_HH_CLOSE_EVT 3 /* connection closed */ +#define BTA_HH_GET_RPT_EVT 4 /* BTA_HhGetReport callback */ +#define BTA_HH_SET_RPT_EVT 5 /* BTA_HhSetReport callback */ +#define BTA_HH_GET_PROTO_EVT 6 /* BTA_GetProtoMode callback */ +#define BTA_HH_SET_PROTO_EVT 7 /* BTA_HhSetProtoMode callback */ +#define BTA_HH_GET_IDLE_EVT 8 /* BTA_HhGetIdle comes callback */ +#define BTA_HH_SET_IDLE_EVT 9 /* BTA_HhSetIdle finish callback */ +#define BTA_HH_GET_DSCP_EVT 10 /* Get report descriptor */ +#define BTA_HH_ADD_DEV_EVT 11 /* Add Device callback */ +#define BTA_HH_RMV_DEV_EVT 12 /* remove device finished */ +#define BTA_HH_VC_UNPLUG_EVT 13 /* virtually unplugged */ +#define BTA_HH_DATA_EVT 15 +#define BTA_HH_API_ERR_EVT 16 /* API error is caught */ +#define BTA_HH_UPDATE_SCPP_EVT 17 /* update scan paramter complete */ + +typedef UINT16 tBTA_HH_EVT; + +/* application ID(none-zero) for each type of device */ +#define BTA_HH_APP_ID_MI 1 +#define BTA_HH_APP_ID_KB 2 +#define BTA_HH_APP_ID_RMC 3 +#define BTA_HH_APP_ID_3DSG 4 +#define BTA_HH_APP_ID_JOY 5 +#define BTA_HH_APP_ID_GPAD 6 +#define BTA_HH_APP_ID_LE 0xff + +/* defined the minimum offset */ +#define BTA_HH_MIN_OFFSET L2CAP_MIN_OFFSET+1 + +/* HID_HOST_MAX_DEVICES can not exceed 15 for th design of BTA HH */ +#define BTA_HH_IDX_INVALID 0xff +#define BTA_HH_MAX_KNOWN HID_HOST_MAX_DEVICES + +#if (defined BTA_HH_LE_INCLUDED && BTA_HH_LE_INCLUDED == TRUE) +/* GATT_MAX_PHY_CHANNEL can not exceed 14 for the design of BTA HH */ +#define BTA_HH_LE_MAX_KNOWN GATT_MAX_PHY_CHANNEL +#define BTA_HH_MAX_DEVICE (HID_HOST_MAX_DEVICES + GATT_MAX_PHY_CHANNEL) +#else +#define BTA_HH_MAX_DEVICE HID_HOST_MAX_DEVICES +#endif +/* invalid device handle */ +#define BTA_HH_INVALID_HANDLE 0xff + +/* type of protocol mode */ +#define BTA_HH_PROTO_RPT_MODE (0x00) +#define BTA_HH_PROTO_BOOT_MODE (0x01) +#define BTA_HH_PROTO_UNKNOWN (0xff) +typedef UINT8 tBTA_HH_PROTO_MODE; + +enum { + BTA_HH_KEYBD_RPT_ID = 1, + BTA_HH_MOUSE_RPT_ID +}; +typedef UINT8 tBTA_HH_BOOT_RPT_ID; + +/* type of devices, bit mask */ +#define BTA_HH_DEVT_UNKNOWN 0x00 +#define BTA_HH_DEVT_JOS 0x01 /* joy stick */ +#define BTA_HH_DEVT_GPD 0x02 /* game pad */ +#define BTA_HH_DEVT_RMC 0x03 /* remote control */ +#define BTA_HH_DEVT_SED 0x04 /* sensing device */ +#define BTA_HH_DEVT_DGT 0x05 /* Digitizer tablet */ +#define BTA_HH_DEVT_CDR 0x06 /* card reader */ +#define BTA_HH_DEVT_KBD 0x10 /* keyboard */ +#define BTA_HH_DEVT_MIC 0x20 /* pointing device */ +#define BTA_HH_DEVT_COM 0x30 /* Combo keyboard/pointing */ +#define BTA_HH_DEVT_OTHER 0x80 +typedef UINT8 tBTA_HH_DEVT; + +enum { + BTA_HH_OK, + BTA_HH_HS_HID_NOT_READY, /* handshake error : device not ready */ + BTA_HH_HS_INVALID_RPT_ID, /* handshake error : invalid report ID */ + BTA_HH_HS_TRANS_NOT_SPT, /* handshake error : transaction not spt */ + BTA_HH_HS_INVALID_PARAM, /* handshake error : invalid paremter */ + BTA_HH_HS_ERROR, /* handshake error : unspecified HS error */ + BTA_HH_ERR, /* general BTA HH error */ + BTA_HH_ERR_SDP, /* SDP error */ + BTA_HH_ERR_PROTO, /* SET_Protocol error, + only used in BTA_HH_OPEN_EVT callback */ + + BTA_HH_ERR_DB_FULL, /* device database full error, used in + BTA_HH_OPEN_EVT/BTA_HH_ADD_DEV_EVT */ + BTA_HH_ERR_TOD_UNSPT, /* type of device not supported */ + BTA_HH_ERR_NO_RES, /* out of system resources */ + BTA_HH_ERR_AUTH_FAILED, /* authentication fail */ + BTA_HH_ERR_HDL, + BTA_HH_ERR_SEC +}; +typedef UINT8 tBTA_HH_STATUS; + + +#define BTA_HH_VIRTUAL_CABLE HID_VIRTUAL_CABLE +#define BTA_HH_NORMALLY_CONNECTABLE HID_NORMALLY_CONNECTABLE +#define BTA_HH_RECONN_INIT HID_RECONN_INIT +#define BTA_HH_SDP_DISABLE HID_SDP_DISABLE +#define BTA_HH_BATTERY_POWER HID_BATTERY_POWER +#define BTA_HH_REMOTE_WAKE HID_REMOTE_WAKE +#define BTA_HH_SUP_TOUT_AVLBL HID_SUP_TOUT_AVLBL +#define BTA_HH_SEC_REQUIRED HID_SEC_REQUIRED +typedef UINT16 tBTA_HH_ATTR_MASK; + +/* supported type of device and corresponding application ID */ +typedef struct { + tBTA_HH_DEVT tod; /* type of device */ + UINT8 app_id; /* corresponding application ID */ +} tBTA_HH_SPT_TOD; + +/* configuration struct */ +typedef struct { + UINT8 max_devt_spt; /* max number of types of devices spt */ + tBTA_HH_SPT_TOD *p_devt_list; /* supported types of device list */ + UINT16 sdp_db_size; +} tBTA_HH_CFG; + +enum { + BTA_HH_RPTT_RESRV, /* reserved */ + BTA_HH_RPTT_INPUT, /* input report */ + BTA_HH_RPTT_OUTPUT, /* output report */ + BTA_HH_RPTT_FEATURE /* feature report */ +}; +typedef UINT8 tBTA_HH_RPT_TYPE; + +/* HID_CONTROL operation code used in BTA_HhSendCtrl() +*/ +enum { + BTA_HH_CTRL_NOP = 0 + HID_PAR_CONTROL_NOP ,/* mapping from BTE */ + BTA_HH_CTRL_HARD_RESET, /* hard reset */ + BTA_HH_CTRL_SOFT_RESET, /* soft reset */ + BTA_HH_CTRL_SUSPEND, /* enter suspend */ + BTA_HH_CTRL_EXIT_SUSPEND, /* exit suspend */ + BTA_HH_CTRL_VIRTUAL_CABLE_UNPLUG /* virtual unplug */ +}; +typedef UINT8 tBTA_HH_TRANS_CTRL_TYPE; + +typedef tHID_DEV_DSCP_INFO tBTA_HH_DEV_DESCR; + +#define BTA_HH_SSR_PARAM_INVALID HID_SSR_PARAM_INVALID + +/* id DI is not existing in remote device, vendor_id in tBTA_HH_DEV_DSCP_INFO will be set to 0xffff */ +#define BTA_HH_VENDOR_ID_INVALID 0xffff + + +/* report descriptor information */ +typedef struct { + UINT16 vendor_id; /* vendor ID */ + UINT16 product_id; /* product ID */ + UINT16 version; /* version */ + UINT16 ssr_max_latency; /* SSR max latency, BTA_HH_SSR_PARAM_INVALID if unknown */ + UINT16 ssr_min_tout; /* SSR min timeout, BTA_HH_SSR_PARAM_INVALID if unknown */ + UINT8 ctry_code; /*Country Code.*/ +#if (defined BTA_HH_LE_INCLUDED && BTA_HH_LE_INCLUDED == TRUE) +#define BTA_HH_LE_REMOTE_WAKE 0x01 +#define BTA_HH_LE_NORMAL_CONN 0x02 + + UINT8 flag; +#endif + tBTA_HH_DEV_DESCR descriptor; +} tBTA_HH_DEV_DSCP_INFO; + +/* callback event data for BTA_HH_OPEN_EVT */ +typedef struct { + BD_ADDR bda; /* HID device bd address */ + tBTA_HH_STATUS status; /* operation status */ + UINT8 handle; /* device handle */ +#if (defined BTA_HH_LE_INCLUDED && BTA_HH_LE_INCLUDED == TRUE) + BOOLEAN le_hid; /* is LE devices? */ + BOOLEAN scps_supported; /* scan parameter service supported */ +#endif + +} tBTA_HH_CONN; + +typedef tBTA_HH_CONN tBTA_HH_DEV_INFO; + +/* callback event data */ +typedef struct { + tBTA_HH_STATUS status; /* operation status */ + UINT8 handle; /* device handle */ +} tBTA_HH_CBDATA; + +enum { + BTA_HH_MOD_CTRL_KEY, + BTA_HH_MOD_SHFT_KEY, + BTA_HH_MOD_ALT_KEY, + BTA_HH_MOD_GUI_KEY, + BTA_HH_MOD_MAX_KEY +}; + +/* parsed boot mode keyboard report */ +typedef struct { + UINT8 this_char[6]; /* virtual key code */ + BOOLEAN mod_key[BTA_HH_MOD_MAX_KEY]; + /* ctrl, shift, Alt, GUI */ + /* modifier key: is Shift key pressed */ + /* modifier key: is Ctrl key pressed */ + /* modifier key: is Alt key pressed */ + /* modifier key: GUI up/down */ + BOOLEAN caps_lock; /* is caps locked */ + BOOLEAN num_lock; /* is Num key pressed */ +} tBTA_HH_KEYBD_RPT; + +/* parsed boot mode mouse report */ +typedef struct { + UINT8 mouse_button; /* mouse button is clicked */ + INT8 delta_x; /* displacement x */ + INT8 delta_y; /* displacement y */ +} tBTA_HH_MICE_RPT; + +/* parsed Boot report */ +typedef struct { + tBTA_HH_BOOT_RPT_ID dev_type; /* type of device report */ + union { + tBTA_HH_KEYBD_RPT keybd_rpt; /* keyboard report */ + tBTA_HH_MICE_RPT mice_rpt; /* mouse report */ + } data_rpt; +} tBTA_HH_BOOT_RPT; + +/* handshake data */ +typedef struct { + tBTA_HH_STATUS status; /* handshake status */ + UINT8 handle; /* device handle */ + union { + tBTA_HH_PROTO_MODE proto_mode; /* GET_PROTO_EVT :protocol mode */ + BT_HDR *p_rpt_data; /* GET_RPT_EVT : report data */ + UINT8 idle_rate; /* GET_IDLE_EVT : idle rate */ + } rsp_data; + +} tBTA_HH_HSDATA; + +/* union of data associated with HD callback */ +typedef union { + tBTA_HH_DEV_INFO dev_info; /* BTA_HH_ADD_DEV_EVT, BTA_HH_RMV_DEV_EVT */ + tBTA_HH_CONN conn; /* BTA_HH_OPEN_EVT */ + tBTA_HH_CBDATA dev_status; /* BTA_HH_CLOSE_EVT, + BTA_HH_SET_PROTO_EVT + BTA_HH_SET_RPT_EVT + BTA_HH_SET_IDLE_EVT + BTA_HH_UPDATE_SCPP_EVT */ + + tBTA_HH_STATUS status; /* BTA_HH_ENABLE_EVT */ + tBTA_HH_DEV_DSCP_INFO dscp_info; /* BTA_HH_GET_DSCP_EVT */ + tBTA_HH_HSDATA hs_data; /* GET_ transaction callback + BTA_HH_GET_RPT_EVT + BTA_HH_GET_PROTO_EVT + BTA_HH_GET_IDLE_EVT */ +} tBTA_HH; + +/* BTA HH callback function */ +typedef void (tBTA_HH_CBACK) (tBTA_HH_EVT event, tBTA_HH *p_data); + + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif + +/******************************************************************************* +** +** Function BTA_HhRegister +** +** Description This function enable HID host and registers HID-Host with +** lower layers. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhEnable(tBTA_SEC sec_mask, tBTA_HH_CBACK *p_cback); + +/******************************************************************************* +** +** Function BTA_HhDeregister +** +** Description This function is called when the host is about power down. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhDisable(void); + +/******************************************************************************* +** +** Function BTA_HhOpen +** +** Description This function is called to start an inquiry and read SDP +** record of responding devices; connect to a device if only +** one active HID device is found. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhOpen (BD_ADDR dev_bda, tBTA_HH_PROTO_MODE mode, + tBTA_SEC sec_mask); + +/******************************************************************************* +** +** Function BTA_HhClose +** +** Description This function disconnects the device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhClose(UINT8 dev_handle); + +/******************************************************************************* +** +** Function BTA_HhSetProtoMode +** +** Description This function set the protocol mode at specified HID handle +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhSetProtoMode(UINT8 handle, tBTA_HH_PROTO_MODE t_type); + +/******************************************************************************* +** +** Function BTA_HhGetProtoMode +** +** Description This function get the protocol mode of a specified HID device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhGetProtoMode(UINT8 dev_handle); +/******************************************************************************* +** +** Function BTA_HhSetReport +** +** Description send SET_REPORT to device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhSetReport(UINT8 dev_handle, tBTA_HH_RPT_TYPE r_type, + BT_HDR *p_data); + +/******************************************************************************* +** +** Function BTA_HhGetReport +** +** Description Send a GET_REPORT to HID device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhGetReport(UINT8 dev_handle, tBTA_HH_RPT_TYPE r_type, + UINT8 rpt_id, UINT16 buf_size); +/******************************************************************************* +** +** Function BTA_HhSetIdle +** +** Description send SET_IDLE to device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhSetIdle(UINT8 dev_handle, UINT16 idle_rate); + +/******************************************************************************* +** +** Function BTA_HhGetIdle +** +** Description Send a GET_IDLE to HID device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhGetIdle(UINT8 dev_handle); + +/******************************************************************************* +** +** Function BTA_HhSendCtrl +** +** Description Send HID_CONTROL request to a HID device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhSendCtrl(UINT8 dev_handle, + tBTA_HH_TRANS_CTRL_TYPE c_type); + +/******************************************************************************* +** +** Function BTA_HhSetIdle +** +** Description send SET_IDLE to device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhSetIdle(UINT8 dev_handle, UINT16 idle_rate); + + +/******************************************************************************* +** +** Function BTA_HhGetIdle +** +** Description Send a GET_IDLE from HID device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhGetIdle(UINT8 dev_handle); + +/******************************************************************************* +** +** Function BTA_HhSendData +** +** Description Send DATA transaction to a HID device. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhSendData(UINT8 dev_handle, BD_ADDR dev_bda, BT_HDR *p_buf); + +/******************************************************************************* +** +** Function BTA_HhGetDscpInfo +** +** Description Get report descriptor of the device +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhGetDscpInfo(UINT8 dev_handle); + +/******************************************************************************* +** Function BTA_HhAddDev +** +** Description Add a virtually cabled device into HID-Host device list +** to manage and assign a device handle for future API call, +** host applciation call this API at start-up to initialize its +** virtually cabled devices. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhAddDev(BD_ADDR bda, tBTA_HH_ATTR_MASK attr_mask, + UINT8 sub_class, UINT8 app_id, + tBTA_HH_DEV_DSCP_INFO dscp_info); +/******************************************************************************* +** +** Function BTA_HhRemoveDev +** +** Description Remove a device from the HID host devices list. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhRemoveDev(UINT8 dev_handle ); + +/******************************************************************************* +** +** Parsing Utility Functions +** +*******************************************************************************/ +/******************************************************************************* +** +** Function BTA_HhParseBootRpt +** +** Description This utility function parse a boot mode report. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhParseBootRpt(tBTA_HH_BOOT_RPT *p_data, UINT8 *p_report, + UINT16 report_len); + +#if BTA_HH_LE_INCLUDED == TRUE +/******************************************************************************* +** +** Function BTA_HhUpdateLeScanParam +** +** Description Update the scan paramteters if connected to a LE hid device as +** report host. +** +** Returns void +** +*******************************************************************************/ +extern void BTA_HhUpdateLeScanParam(UINT8 dev_handle, UINT16 scan_int, UINT16 scan_win); +#endif +/* test commands */ +extern void bta_hh_le_hid_read_rpt_clt_cfg(BD_ADDR bd_addr, UINT8 rpt_id); + + + +#ifdef __cplusplus +} +#endif + +#endif /* BTA_HH_API_H */ diff --git a/tools/sdk/include/bluedroid/bta_hh_co.h b/tools/sdk/include/bluedroid/bta_hh_co.h new file mode 100644 index 00000000..9cbb1550 --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_hh_co.h @@ -0,0 +1,132 @@ +/****************************************************************************** + * + * Copyright (C) 2005-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the interface file for hid host call-out functions. + * + ******************************************************************************/ +#ifndef BTA_HH_CO_H +#define BTA_HH_CO_H + +#include "bta_hh_api.h" + +typedef struct { + UINT16 rpt_uuid; + UINT8 rpt_id; + tBTA_HH_RPT_TYPE rpt_type; + UINT8 inst_id; + UINT8 prop; +} tBTA_HH_RPT_CACHE_ENTRY; + +/******************************************************************************* +** +** Function bta_hh_co_data +** +** Description This callout function is executed by HH when data is received +** in interupt channel. +** +** +** Returns void. +** +*******************************************************************************/ +extern void bta_hh_co_data(UINT8 dev_handle, UINT8 *p_rpt, UINT16 len, + tBTA_HH_PROTO_MODE mode, UINT8 sub_class, + UINT8 ctry_code, BD_ADDR peer_addr, UINT8 app_id); + +/******************************************************************************* +** +** Function bta_hh_co_open +** +** Description This callout function is executed by HH when connection is +** opened, and application may do some device specific +** initialization. +** +** Returns void. +** +*******************************************************************************/ +extern void bta_hh_co_open(UINT8 dev_handle, UINT8 sub_class, + UINT16 attr_mask, UINT8 app_id); + +/******************************************************************************* +** +** Function bta_hh_co_close +** +** Description This callout function is executed by HH when connection is +** closed, and device specific finalizatio nmay be needed. +** +** Returns void. +** +*******************************************************************************/ +extern void bta_hh_co_close(UINT8 dev_handle, UINT8 app_id); + +#if (BLE_INCLUDED == TRUE && BTA_HH_LE_INCLUDED == TRUE) +/******************************************************************************* +** +** Function bta_hh_le_co_rpt_info +** +** Description This callout function is to convey the report information on +** a HOGP device to the application. Application can save this +** information in NV if device is bonded and load it back when +** stack reboot. +** +** Parameters remote_bda - remote device address +** p_entry - report entry pointer +** app_id - application id +** +** Returns void. +** +*******************************************************************************/ +extern void bta_hh_le_co_rpt_info(BD_ADDR remote_bda, + tBTA_HH_RPT_CACHE_ENTRY *p_entry, + UINT8 app_id); + +/******************************************************************************* +** +** Function bta_hh_le_co_cache_load +** +** Description This callout function is to request the application to load the +** cached HOGP report if there is any. When cache reading is completed, +** bta_hh_le_ci_cache_load() is called by the application. +** +** Parameters remote_bda - remote device address +** p_num_rpt: number of cached report +** app_id - application id +** +** Returns the acched report array +** +*******************************************************************************/ +extern tBTA_HH_RPT_CACHE_ENTRY *bta_hh_le_co_cache_load (BD_ADDR remote_bda, + UINT8 *p_num_rpt, + UINT8 app_id); + +/******************************************************************************* +** +** Function bta_hh_le_co_reset_rpt_cache +** +** Description This callout function is to reset the HOGP device cache. +** +** Parameters remote_bda - remote device address +** +** Returns none +** +*******************************************************************************/ +extern void bta_hh_le_co_reset_rpt_cache (BD_ADDR remote_bda, UINT8 app_id); + +#endif /* #if (BLE_INCLUDED == TRUE && BTA_HH_LE_INCLUDED == TRUE) */ +#endif /* BTA_HH_CO_H */ diff --git a/tools/sdk/include/bluedroid/bta_sdp_api.h b/tools/sdk/include/bluedroid/bta_sdp_api.h new file mode 100644 index 00000000..c2df4bb9 --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_sdp_api.h @@ -0,0 +1,142 @@ +/****************************************************************************** + * + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the public interface file for the BTA SDP I/F + * + ******************************************************************************/ +#ifndef BTA_SDP_API_H +#define BTA_SDP_API_H + +#include "bt_sdp.h" +#include "bt_target.h" +#include "bt_types.h" +#include "bta_api.h" +#include "btm_api.h" + +/* status values */ +#define BTA_SDP_SUCCESS 0 /* Successful operation. */ +#define BTA_SDP_FAILURE 1 /* Generic failure. */ +#define BTA_SDP_BUSY 2 /* Temporarily can not handle this request. */ + +typedef UINT8 tBTA_SDP_STATUS; + +/* SDP I/F callback events */ +/* events received by tBTA_SDP_DM_CBACK */ +#define BTA_SDP_ENABLE_EVT 0 /* SDP service i/f enabled*/ +#define BTA_SDP_SEARCH_EVT 1 /* SDP Service started */ +#define BTA_SDP_SEARCH_COMP_EVT 2 /* SDP search complete */ +#define BTA_SDP_CREATE_RECORD_USER_EVT 3 /* SDP search complete */ +#define BTA_SDP_REMOVE_RECORD_USER_EVT 4 /* SDP search complete */ +#define BTA_SDP_MAX_EVT 5 /* max number of SDP events */ + +#define BTA_SDP_MAX_RECORDS 15 + +typedef UINT16 tBTA_SDP_EVT; + +/* data associated with BTA_SDP_DISCOVERY_COMP_EVT */ +typedef struct { + tBTA_SDP_STATUS status; + BD_ADDR remote_addr; + tBT_UUID uuid; + int record_count; + bluetooth_sdp_record records[BTA_SDP_MAX_RECORDS]; +} tBTA_SDP_SEARCH_COMP; + +typedef union { + tBTA_SDP_STATUS status; /* BTA_SDP_SEARCH_EVT */ + tBTA_SDP_SEARCH_COMP sdp_search_comp; /* BTA_SDP_SEARCH_COMP_EVT */ +} tBTA_SDP; + +/* SDP DM Interface callback */ +typedef void (tBTA_SDP_DM_CBACK)(tBTA_SDP_EVT event, tBTA_SDP *p_data, void *user_data); + +/* MCE configuration structure */ +typedef struct { + UINT16 sdp_db_size; /* The size of p_sdp_db */ + tSDP_DISCOVERY_DB *p_sdp_db; /* The data buffer to keep SDP database */ +} tBTA_SDP_CFG; + +#ifdef __cplusplus +extern "C" +{ +#endif +/******************************************************************************* +** +** Function BTA_SdpEnable +** +** Description Enable the SDP I/F service. When the enable +** operation is complete the callback function will be +** called with a BTA_SDP_ENABLE_EVT. This function must +** be called before other functions in the MCE API are +** called. +** +** Returns BTA_SDP_SUCCESS if successful. +** BTA_SDP_FAIL if internal failure. +** +*******************************************************************************/ +extern tBTA_SDP_STATUS BTA_SdpEnable(tBTA_SDP_DM_CBACK *p_cback); + +/******************************************************************************* +** +** Function BTA_SdpSearch +** +** Description Start a search for sdp records for a specific BD_ADDR with a +** specific profile uuid. +** When the search operation is completed, the callback function +** will be called with a BTA_SDP_SEARCH_EVT. +** Returns BTA_SDP_SUCCESS if successful. +** BTA_SDP_FAIL if internal failure. +** +*******************************************************************************/ +extern tBTA_SDP_STATUS BTA_SdpSearch(BD_ADDR bd_addr, tSDP_UUID *uuid); + +/******************************************************************************* +** +** Function BTA_SdpCreateRecordByUser +** +** Description This function is used to request a callback to create a SDP +** record. The registered callback will be called with event +** BTA_SDP_CREATE_RECORD_USER_EVT. +** +** Returns BTA_SDP_SUCCESS, if the request is being processed. +** BTA_SDP_FAILURE, otherwise. +** +*******************************************************************************/ +extern tBTA_SDP_STATUS BTA_SdpCreateRecordByUser(void *user_data); + +/******************************************************************************* +** +** Function BTA_SdpRemoveRecordByUser +** +** Description This function is used to request a callback to remove a SDP +** record. The registered callback will be called with event +** BTA_SDP_REMOVE_RECORD_USER_EVT. +** +** Returns BTA_SDP_SUCCESS, if the request is being processed. +** BTA_SDP_FAILURE, otherwise. +** +*******************************************************************************/ +extern tBTA_SDP_STATUS BTA_SdpRemoveRecordByUser(void *user_data); + +#ifdef __cplusplus +} +#endif + +#endif /* BTA_SDP_API_H */ diff --git a/tools/sdk/include/bluedroid/bta_sys.h b/tools/sdk/include/bluedroid/bta_sys.h new file mode 100644 index 00000000..808edbb4 --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_sys.h @@ -0,0 +1,282 @@ +/****************************************************************************** + * + * Copyright (C) 2003-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the public interface file for the BTA system manager. + * + ******************************************************************************/ +#ifndef BTA_SYS_H +#define BTA_SYS_H + +#include "bt_target.h" +#include "gki.h" + +/***************************************************************************** +** Constants and data types +*****************************************************************************/ + +/* vendor specific event handler function type */ +typedef BOOLEAN (tBTA_SYS_VS_EVT_HDLR)(UINT16 evt, void *p); + +/* event handler function type */ +typedef BOOLEAN (tBTA_SYS_EVT_HDLR)(BT_HDR *p_msg); + +/* disable function type */ +typedef void (tBTA_SYS_DISABLE)(void); + + +/* HW modules */ +enum { + BTA_SYS_HW_BLUETOOTH, + BTA_SYS_HW_RT, + + BTA_SYS_MAX_HW_MODULES +}; + +typedef UINT16 tBTA_SYS_HW_MODULE; + +#ifndef BTA_DM_NUM_JV_ID +#define BTA_DM_NUM_JV_ID 2 +#endif + +/* SW sub-systems */ +#define BTA_ID_SYS 0 /* system manager */ +/* BLUETOOTH PART - from 0 to BTA_ID_BLUETOOTH_MAX */ +#define BTA_ID_DM 1 /* device manager */ +#define BTA_ID_DM_SEARCH 2 /* device manager search */ +#define BTA_ID_DM_SEC 3 /* device manager security */ +#define BTA_ID_DG 4 /* data gateway */ +#define BTA_ID_AG 5 /* audio gateway */ +#define BTA_ID_OPC 6 /* object push client */ +#define BTA_ID_OPS 7 /* object push server */ +#define BTA_ID_FTS 8 /* file transfer server */ +#define BTA_ID_CT 9 /* cordless telephony terminal */ +#define BTA_ID_FTC 10 /* file transfer client */ +#define BTA_ID_SS 11 /* synchronization server */ +#define BTA_ID_PR 12 /* Printer client */ +#define BTA_ID_BIC 13 /* Basic Imaging Client */ +#define BTA_ID_PAN 14 /* Personal Area Networking */ +#define BTA_ID_BIS 15 /* Basic Imaging Server */ +#define BTA_ID_ACC 16 /* Advanced Camera Client */ +#define BTA_ID_SC 17 /* SIM Card Access server */ +#define BTA_ID_AV 18 /* Advanced audio/video */ +#define BTA_ID_AVK 19 /* Audio/video sink */ +#define BTA_ID_HD 20 /* HID Device */ +#define BTA_ID_CG 21 /* Cordless Gateway */ +#define BTA_ID_BP 22 /* Basic Printing Client */ +#define BTA_ID_HH 23 /* Human Interface Device Host */ +#define BTA_ID_PBS 24 /* Phone Book Access Server */ +#define BTA_ID_PBC 25 /* Phone Book Access Client */ +#define BTA_ID_JV 26 /* Java */ +#define BTA_ID_HS 27 /* Headset */ +#define BTA_ID_MSE 28 /* Message Server Equipment */ +#define BTA_ID_MCE 29 /* Message Client Equipment */ +#define BTA_ID_HL 30 /* Health Device Profile*/ +#define BTA_ID_GATTC 31 /* GATT Client */ +#define BTA_ID_GATTS 32 /* GATT Client */ +#define BTA_ID_SDP 33 /* SDP Client */ +#define BTA_ID_BLUETOOTH_MAX 34 /* last BT profile */ + +/* GENERIC */ +#define BTA_ID_PRM 38 +#define BTA_ID_SYSTEM 39 /* platform-specific */ +#define BTA_ID_SWRAP 40 /* Insight script wrapper */ +#define BTA_ID_MIP 41 /* Multicase Individual Polling */ +#define BTA_ID_RT 42 /* Audio Routing module: This module is always on. */ + + +/* JV */ +#define BTA_ID_JV1 44 /* JV1 */ +#define BTA_ID_JV2 45 /* JV2 */ + +#define BTA_ID_MAX (44 + BTA_DM_NUM_JV_ID) + +typedef UINT8 tBTA_SYS_ID; + + +#define BTA_SYS_CONN_OPEN 0x00 +#define BTA_SYS_CONN_CLOSE 0x01 +#define BTA_SYS_APP_OPEN 0x02 +#define BTA_SYS_APP_CLOSE 0x03 +#define BTA_SYS_SCO_OPEN 0x04 +#define BTA_SYS_SCO_CLOSE 0x05 +#define BTA_SYS_CONN_IDLE 0x06 +#define BTA_SYS_CONN_BUSY 0x07 + +/* for link policy */ +#define BTA_SYS_PLCY_SET 0x10 /* set the link policy to the given addr */ +#define BTA_SYS_PLCY_CLR 0x11 /* clear the link policy to the given addr */ +#define BTA_SYS_PLCY_DEF_SET 0x12 /* set the default link policy */ +#define BTA_SYS_PLCY_DEF_CLR 0x13 /* clear the default link policy */ +#define BTA_SYS_ROLE_CHANGE 0x14 /* role change */ + +typedef UINT8 tBTA_SYS_CONN_STATUS; + +/* Bitmask of sys features */ +#define BTA_SYS_FEAT_PCM2 0x0001 +#define BTA_SYS_FEAT_PCM2_MASTER 0x0002 + +/* tBTA_PREF_ROLES */ +typedef UINT8 tBTA_SYS_PREF_ROLES; + +/* conn callback for role / low power manager*/ +typedef void (tBTA_SYS_CONN_CBACK)(tBTA_SYS_CONN_STATUS status, UINT8 id, UINT8 app_id, BD_ADDR peer_addr); + +/* conn callback for role / low power manager*/ +typedef void (tBTA_SYS_SSR_CFG_CBACK)(UINT8 id, UINT8 app_id, UINT16 latency, UINT16 tout); + +#if (BTA_EIR_CANNED_UUID_LIST != TRUE) +/* eir callback for adding/removeing UUID */ +typedef void (tBTA_SYS_EIR_CBACK)(UINT16 uuid16, BOOLEAN adding); +#endif + +/* registration structure */ +typedef struct { + tBTA_SYS_EVT_HDLR *evt_hdlr; + tBTA_SYS_DISABLE *disable; +} tBTA_SYS_REG; + +/* data type to send events to BTA SYS HW manager */ +typedef struct { + BT_HDR hdr; + tBTA_SYS_HW_MODULE hw_module; +} tBTA_SYS_HW_MSG; + +/***************************************************************************** +** Global data +*****************************************************************************/ + +/* trace level */ +extern UINT8 appl_trace_level; + +/***************************************************************************** +** Macros +*****************************************************************************/ + +/* Calculate start of event enumeration; id is top 8 bits of event */ +#define BTA_SYS_EVT_START(id) ((id) << 8) + +/***************************************************************************** +** events for BTA SYS HW manager +*****************************************************************************/ + +/* events sent to SYS HW manager - must be kept synchronized with tables in bta_sys_main.c */ +enum { + /* device manager local device API events */ + BTA_SYS_API_ENABLE_EVT = BTA_SYS_EVT_START(BTA_ID_SYS), + BTA_SYS_EVT_ENABLED_EVT, + BTA_SYS_EVT_STACK_ENABLED_EVT, + BTA_SYS_API_DISABLE_EVT, + BTA_SYS_EVT_DISABLED_EVT, + BTA_SYS_ERROR_EVT, + + BTA_SYS_MAX_EVT +}; + + + +/* SYS HW status events - returned by SYS HW manager to other modules. */ +enum { + BTA_SYS_HW_OFF_EVT, + BTA_SYS_HW_ON_EVT, + BTA_SYS_HW_STARTING_EVT, + BTA_SYS_HW_STOPPING_EVT, + BTA_SYS_HW_ERROR_EVT + +}; +typedef UINT8 tBTA_SYS_HW_EVT; + +/* HW enable callback type */ +typedef void (tBTA_SYS_HW_CBACK)(tBTA_SYS_HW_EVT status); + +/***************************************************************************** +** Function declarations +*****************************************************************************/ + +#ifdef __cplusplus +extern "C" { +#endif + +extern void bta_sys_init(void); +extern void bta_sys_free(void); +extern void bta_sys_event(BT_HDR *p_msg); +extern void bta_sys_set_trace_level(UINT8 level); +extern void bta_sys_register(UINT8 id, const tBTA_SYS_REG *p_reg); +extern void bta_sys_deregister(UINT8 id); +extern BOOLEAN bta_sys_is_register(UINT8 id); +extern UINT16 bta_sys_get_sys_features(void); +extern void bta_sys_sendmsg(void *p_msg); +extern void bta_sys_start_timer(TIMER_LIST_ENT *p_tle, UINT16 type, INT32 timeout_ms); +extern void bta_sys_stop_timer(TIMER_LIST_ENT *p_tle); +extern void bta_sys_disable(tBTA_SYS_HW_MODULE module); +extern UINT32 bta_sys_get_remaining_ticks(TIMER_LIST_ENT *p_target_tle); + +extern void bta_sys_hw_register( tBTA_SYS_HW_MODULE module, tBTA_SYS_HW_CBACK *cback); +extern void bta_sys_hw_unregister( tBTA_SYS_HW_MODULE module ); + + +extern void bta_sys_rm_register(tBTA_SYS_CONN_CBACK *p_cback); +extern void bta_sys_pm_register(tBTA_SYS_CONN_CBACK *p_cback); + +extern void bta_sys_policy_register(tBTA_SYS_CONN_CBACK *p_cback); +extern void bta_sys_sco_register(tBTA_SYS_CONN_CBACK *p_cback); + + +extern void bta_sys_conn_open(UINT8 id, UINT8 app_id, BD_ADDR peer_addr); +extern void bta_sys_conn_close(UINT8 id, UINT8 app_id, BD_ADDR peer_addr); +extern void bta_sys_app_open(UINT8 id, UINT8 app_id, BD_ADDR peer_addr); +extern void bta_sys_app_close(UINT8 id, UINT8 app_id, BD_ADDR peer_addr); +extern void bta_sys_sco_open(UINT8 id, UINT8 app_id, BD_ADDR peer_addr); +extern void bta_sys_sco_close(UINT8 id, UINT8 app_id, BD_ADDR peer_addr); +extern void bta_sys_sco_use(UINT8 id, UINT8 app_id, BD_ADDR peer_addr); +extern void bta_sys_sco_unuse(UINT8 id, UINT8 app_id, BD_ADDR peer_addr); +extern void bta_sys_idle(UINT8 id, UINT8 app_id, BD_ADDR peer_addr); +extern void bta_sys_busy(UINT8 id, UINT8 app_id, BD_ADDR peer_addr); + +#if (BTM_SSR_INCLUDED == TRUE) +extern void bta_sys_ssr_cfg_register(tBTA_SYS_SSR_CFG_CBACK *p_cback); +extern void bta_sys_chg_ssr_config (UINT8 id, UINT8 app_id, UINT16 max_latency, UINT16 min_tout); +#endif + +extern void bta_sys_role_chg_register(tBTA_SYS_CONN_CBACK *p_cback); +extern void bta_sys_notify_role_chg(BD_ADDR_PTR p_bda, UINT8 new_role, UINT8 hci_status); +extern void bta_sys_collision_register(UINT8 bta_id, tBTA_SYS_CONN_CBACK *p_cback); +extern void bta_sys_notify_collision (BD_ADDR_PTR p_bda); + +#if (BTA_EIR_CANNED_UUID_LIST != TRUE) +extern void bta_sys_eir_register(tBTA_SYS_EIR_CBACK *p_cback); +extern void bta_sys_add_uuid(UINT16 uuid16); +extern void bta_sys_remove_uuid(UINT16 uuid16); +#else +#define bta_sys_eir_register(ut) +#define bta_sys_add_uuid(ut) +#define bta_sys_remove_uuid(ut) +#endif + +extern void bta_sys_set_policy (UINT8 id, UINT8 policy, BD_ADDR peer_addr); +extern void bta_sys_clear_policy (UINT8 id, UINT8 policy, BD_ADDR peer_addr); +extern void bta_sys_set_default_policy (UINT8 id, UINT8 policy); +extern void bta_sys_clear_default_policy (UINT8 id, UINT8 policy); +extern BOOLEAN bta_sys_vs_hdl(UINT16 evt, void *p); + +#ifdef __cplusplus +} +#endif + +#endif /* BTA_SYS_H */ diff --git a/tools/sdk/include/bluedroid/bta_sys_int.h b/tools/sdk/include/bluedroid/bta_sys_int.h new file mode 100644 index 00000000..aa2596d9 --- /dev/null +++ b/tools/sdk/include/bluedroid/bta_sys_int.h @@ -0,0 +1,101 @@ +/****************************************************************************** + * + * Copyright (C) 2003-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the private interface file for the BTA system manager. + * + ******************************************************************************/ +#ifndef BTA_SYS_INT_H +#define BTA_SYS_INT_H + +/***************************************************************************** +** Constants and data types +*****************************************************************************/ + +/***************************************************************************** +** state table +*****************************************************************************/ + +/* SYS HW state */ +enum { + BTA_SYS_HW_OFF, + BTA_SYS_HW_STARTING, + BTA_SYS_HW_ON, + BTA_SYS_HW_STOPPING +}; +typedef UINT8 tBTA_SYS_HW_STATE; + +/* Collision callback */ +#define MAX_COLLISION_REG 5 + +typedef struct { + UINT8 id[MAX_COLLISION_REG]; + tBTA_SYS_CONN_CBACK *p_coll_cback[MAX_COLLISION_REG]; +} tBTA_SYS_COLLISION; + +/* system manager control block */ +typedef struct { + tBTA_SYS_REG *reg[BTA_ID_MAX]; /* registration structures */ + BOOLEAN is_reg[BTA_ID_MAX]; /* registration structures */ + tBTA_SYS_HW_STATE state; + tBTA_SYS_HW_CBACK *sys_hw_cback[BTA_SYS_MAX_HW_MODULES]; /* enable callback for each HW modules */ + UINT32 sys_hw_module_active; /* bitmask of all active modules */ + UINT16 sys_features; /* Bitmask of sys features */ + + tBTA_SYS_CONN_CBACK *prm_cb; /* role management callback registered by DM */ + tBTA_SYS_CONN_CBACK *ppm_cb; /* low power management callback registered by DM */ + tBTA_SYS_CONN_CBACK *p_policy_cb; /* link policy change callback registered by DM */ + tBTA_SYS_CONN_CBACK *p_sco_cb; /* SCO connection change callback registered by AV */ + tBTA_SYS_CONN_CBACK *p_role_cb; /* role change callback registered by AV */ + tBTA_SYS_COLLISION colli_reg; /* collision handling module */ +#if (BTA_EIR_CANNED_UUID_LIST != TRUE) + tBTA_SYS_EIR_CBACK *eir_cb; /* add/remove UUID into EIR */ +#endif +#if (BTM_SSR_INCLUDED == TRUE) + tBTA_SYS_SSR_CFG_CBACK *p_ssr_cb; +#endif + /* VS event handler */ + tBTA_SYS_VS_EVT_HDLR *p_vs_evt_hdlr; + +} tBTA_SYS_CB; + +/***************************************************************************** +** Global variables +*****************************************************************************/ + +/* system manager control block */ +#if BTA_DYNAMIC_MEMORY == FALSE +extern tBTA_SYS_CB bta_sys_cb; +#else +extern tBTA_SYS_CB *bta_sys_cb_ptr; +#define bta_sys_cb (*bta_sys_cb_ptr) +#endif + +/* functions used for BTA SYS HW state machine */ +void bta_sys_hw_btm_cback( tBTM_DEV_STATUS status ); +void bta_sys_hw_error(tBTA_SYS_HW_MSG *p_sys_hw_msg); +void bta_sys_hw_api_enable( tBTA_SYS_HW_MSG *p_sys_hw_msg ); +void bta_sys_hw_api_disable(tBTA_SYS_HW_MSG *p_sys_hw_msg); +void bta_sys_hw_evt_enabled(tBTA_SYS_HW_MSG *p_sys_hw_msg); +void bta_sys_hw_evt_disabled(tBTA_SYS_HW_MSG *p_sys_hw_msg); +void bta_sys_hw_evt_stack_enabled(tBTA_SYS_HW_MSG *p_sys_hw_msg); + +BOOLEAN bta_sys_sm_execute(BT_HDR *p_msg); + +#endif /* BTA_SYS_INT_H */ diff --git a/tools/sdk/include/bluedroid/btc_blufi_prf.h b/tools/sdk/include/bluedroid/btc_blufi_prf.h new file mode 100644 index 00000000..1d82d0c9 --- /dev/null +++ b/tools/sdk/include/bluedroid/btc_blufi_prf.h @@ -0,0 +1,47 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __BTC_BLUFI_PRF_H__ +#define __BTC_BLUFI_PRF_H__ + +#include "bt_target.h" +#include "btc_task.h" +#include "esp_blufi_api.h" + +typedef enum { + BTC_BLUFI_ACT_INIT = 0, + BTC_BLUFI_ACT_DEINIT, + BTC_BLUFI_ACT_SEND_CFG_REPORT, +} btc_blufi_act_t; + +typedef union { + struct blufi_cfg_report { + wifi_mode_t opmode; + esp_blufi_sta_conn_state_t sta_conn_state; + uint8_t softap_conn_num; + esp_blufi_extra_info_t *extra_info; + int extra_info_len; + } wifi_conn_report; +} btc_blufi_args_t; + +void btc_blufi_cb_handler(btc_msg_t *msg); +void btc_blufi_call_handler(btc_msg_t *msg); +void btc_blufi_set_callbacks(esp_blufi_callbacks_t *callbacks); + +void btc_blufi_call_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src); +void btc_blufi_call_deep_free(btc_msg_t *msg); + +uint16_t btc_blufi_get_version(void); + +#endif /* __BTC_BLUFI_PRF_H__ */ diff --git a/tools/sdk/include/bluedroid/btc_gap_ble.h b/tools/sdk/include/bluedroid/btc_gap_ble.h new file mode 100644 index 00000000..ea639bcd --- /dev/null +++ b/tools/sdk/include/bluedroid/btc_gap_ble.h @@ -0,0 +1,98 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __BTC_GAP_BLE_H__ +#define __BTC_GAP_BLE_H__ + +#include "esp_bt_defs.h" +#include "esp_gap_ble_api.h" + +#define BLE_ISVALID_PARAM(x, min, max) (((x) >= (min) && (x) <= (max)) || ((x) == ESP_BLE_CONN_PARAM_UNDEF)) + +typedef enum { + BTC_GAP_BLE_ACT_CFG_ADV_DATA = 0, + BTC_GAP_BLE_ACT_SET_SCAN_PARAM, + BTC_GAP_BLE_ACT_START_SCAN, + BTC_GAP_BLE_ACT_STOP_SCAN, + BTC_GAP_BLE_ACT_START_ADV, + BTC_GAP_BLE_ACT_STOP_ADV, + BTC_GAP_BLE_ACT_UPDATE_CONN_PARAM, + BTC_GAP_BLE_ACT_SET_PKT_DATA_LEN, + BTC_GAP_BLE_ACT_SET_RAND_ADDRESS, + BTC_GAP_BLE_ACT_CONFIG_LOCAL_PRIVACY, + BTC_GAP_BLE_ACT_SET_DEV_NAME, + BTC_GAP_BLE_ACT_CFG_ADV_DATA_RAW, + BTC_GAP_BLE_ACT_CFG_SCAN_RSP_DATA_RAW, +} btc_gap_ble_act_t; + +/* btc_ble_gap_args_t */ +typedef union { + //BTC_GAP_BLE_ACT_CFG_ADV_DATA = 0, + struct config_adv_data_args { + esp_ble_adv_data_t adv_data; + } cfg_adv_data; + //BTC_GAP_BLE_ACT_SET_SCAN_PARAM, + struct set_scan_params_args { + esp_ble_scan_params_t scan_params; + } set_scan_param; + //BTC_GAP_BLE_ACT_START_SCAN, + struct start_scan_args { + uint32_t duration; + } start_scan; + //BTC_GAP_BLE_ACT_STOP_SCAN, no args + //BTC_GAP_BLE_ACT_START_ADV, + struct start_adv_args { + esp_ble_adv_params_t adv_params; + } start_adv; + //BTC_GAP_BLE_ACT_STOP_ADV, no args + //BTC_GAP_BLE_ACT_UPDATE_CONN_PARAM, + struct conn_update_params_args { + esp_ble_conn_update_params_t conn_params; + } conn_update_params; + //BTC_GAP_BLE_ACT_SET_PKT_DATA_LEN + struct set_pkt_data_len_args { + esp_bd_addr_t remote_device; + uint16_t tx_data_length; + } set_pkt_data_len; + //BTC_GAP_BLE_ACT_SET_RAND_ADDRESS, + struct set_rand_addr_args { + esp_bd_addr_t rand_addr; + } set_rand_addr; + //BTC_GAP_BLE_ACT_CONFIG_LOCAL_PRIVACY, + struct cfg_local_privacy_args { + bool privacy_enable; + } cfg_local_privacy; + //BTC_GAP_BLE_ACT_SET_DEV_NAME, + struct set_dev_name_args { +#define ESP_GAP_DEVICE_NAME_MAX (32) + char device_name[ESP_GAP_DEVICE_NAME_MAX + 1]; + } set_dev_name; + //BTC_GAP_BLE_ACT_CFG_ADV_DATA_RAW, + struct config_adv_data_raw_args { + uint8_t *raw_adv; + uint32_t raw_adv_len; + } cfg_adv_data_raw; + //BTC_GAP_BLE_ACT_CFG_SCAN_RSP_DATA_RAW, + struct config_scan_rsp_data_raw_args { + uint8_t *raw_scan_rsp; + uint32_t raw_scan_rsp_len; + } cfg_scan_rsp_data_raw; +} btc_ble_gap_args_t; + +void btc_gap_ble_call_handler(btc_msg_t *msg); +void btc_gap_ble_cb_handler(btc_msg_t *msg); + +void btc_gap_ble_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src); + +#endif /* __BTC_GAP_BLE_H__ */ diff --git a/tools/sdk/include/bluedroid/btc_gap_bt.h b/tools/sdk/include/bluedroid/btc_gap_bt.h new file mode 100644 index 00000000..d6f2e5b5 --- /dev/null +++ b/tools/sdk/include/bluedroid/btc_gap_bt.h @@ -0,0 +1,22 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __BTC_GAP_BT_H__ +#define __BTC_GAP_BT_H__ + + + + + +#define /* __BTC_GAP_BT_H__ */ diff --git a/tools/sdk/include/bluedroid/btc_gatt_util.h b/tools/sdk/include/bluedroid/btc_gatt_util.h new file mode 100644 index 00000000..99083f74 --- /dev/null +++ b/tools/sdk/include/bluedroid/btc_gatt_util.h @@ -0,0 +1,40 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __BTC_GATT_UTIL_H__ +#define __BTC_GATT_UTIL_H__ + +#include "bt_types.h" +#include "bta_gatt_api.h" +#include "esp_bt_defs.h" +#include "esp_gatt_defs.h" +#include "esp_gattc_api.h" + +#define BTC_GATT_CREATE_CONN_ID(gatt_if, conn_id) ((uint16_t) ((((uint8_t)(conn_id)) << 8) | ((uint8_t)(gatt_if)))) +#define BTC_GATT_GET_CONN_ID(conn_id) (((uint16_t)(conn_id)) >> 8) +#define BTC_GATT_GET_GATT_IF(conn_id) ((uint8_t)(conn_id)) + +void btc128_to_bta_uuid(tBT_UUID *p_dest, uint8_t *p_src); +void btc_to_bta_uuid(tBT_UUID *p_dest, esp_bt_uuid_t *p_src); +void btc_to_bta_gatt_id(tBTA_GATT_ID *p_dest, esp_gatt_id_t *p_src); +void btc_to_bta_srvc_id(tBTA_GATT_SRVC_ID *p_dest, esp_gatt_srvc_id_t *p_src); +void btc_to_bta_response(tBTA_GATTS_RSP *rsp_struct, esp_gatt_rsp_t *p_rsp); + +void bta_to_btc_uuid(esp_bt_uuid_t *p_dest, tBT_UUID *p_src); +void bta_to_btc_gatt_id(esp_gatt_id_t *p_dest, tBTA_GATT_ID *p_src); +void bta_to_btc_srvc_id(esp_gatt_srvc_id_t *p_dest, tBTA_GATT_SRVC_ID *p_src); + +uint16_t set_read_value(uint8_t *gattc_if, esp_ble_gattc_cb_param_t *p_dest, tBTA_GATTC_READ *p_src); + +#endif /* __BTC_GATT_UTIL_H__*/ diff --git a/tools/sdk/include/bluedroid/btc_gattc.h b/tools/sdk/include/bluedroid/btc_gattc.h new file mode 100644 index 00000000..aef84189 --- /dev/null +++ b/tools/sdk/include/bluedroid/btc_gattc.h @@ -0,0 +1,183 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __BTC_GATTC_H__ +#define __BTC_GATTC_H__ + +#include "btc_task.h" +#include "esp_bt_defs.h" +#include "esp_gatt_defs.h" +#include "esp_gattc_api.h" + +typedef enum { + BTC_GATTC_ACT_APP_REGISTER = 0, + BTC_GATTC_ACT_APP_UNREGISTER, + BTC_GATTC_ACT_OPEN, + BTC_GATTC_ACT_CLOSE, + BTC_GATTC_ACT_CFG_MTU, + BTC_GATTC_ACT_SEARCH_SERVICE, + BTC_GATTC_ACT_GET_FIRST_CHAR, + BTC_GATTC_ACT_GET_NEXT_CHAR, + BTC_GATTC_ACT_GET_FIRST_DESCR, + BTC_GATTC_ACT_GET_NEXT_DESCR, + BTC_GATTC_ACT_GET_FIRST_INCL_SERVICE, + BTC_GATTC_ACT_GET_NEXT_INCL_SERVICE, + BTC_GATTC_ACT_READ_CHAR, + BTC_GATTC_ACT_READ_CHAR_DESCR, + BTC_GATTC_ACT_WRITE_CHAR, + BTC_GATTC_ACT_WRITE_CHAR_DESCR, + BTC_GATTC_ACT_PREPARE_WRITE, + BTC_GATTC_ACT_EXECUTE_WRITE, + BTC_GATTC_ACT_REG_FOR_NOTIFY, + BTC_GATTC_ACT_UNREG_FOR_NOTIFY +} btc_gattc_act_t; + +/* btc_ble_gattc_args_t */ +typedef union { + //BTC_GATTC_ACT_APP_REGISTER, + struct app_reg_arg { + uint16_t app_id; + } app_reg; + //BTC_GATTC_ACT_APP_UNREGISTER, + struct app_unreg_arg { + esp_gatt_if_t gattc_if; + } app_unreg; + //BTC_GATTC_ACT_OPEN, + struct open_arg { + esp_gatt_if_t gattc_if; + esp_bd_addr_t remote_bda; + bool is_direct; + } open; + //BTC_GATTC_ACT_CLOSE, + struct close_arg { + uint16_t conn_id; + } close; + //BTC_GATTC_ACT_CFG_MTU, + struct cfg_mtu_arg { + uint16_t conn_id; + uint16_t mtu; + } cfg_mtu; + //BTC_GATTC_ACT_SEARCH_SERVICE, + struct search_srvc_arg { + uint16_t conn_id; + bool filter_uuid_enable; + esp_bt_uuid_t filter_uuid; + } search_srvc; + //BTC_GATTC_ACT_GET_FIRST_CHAR, + struct get_first_char_arg { + uint16_t conn_id; + esp_gatt_srvc_id_t service_id; + } get_first_char; + //BTC_GATTC_ACT_GET_NEXT_CHAR, + struct get_next_char_arg { + uint16_t conn_id; + esp_gatt_srvc_id_t service_id; + esp_gatt_id_t char_id; + } get_next_char; + //BTC_GATTC_ACT_GET_FIRST_DESCR, + struct get_first_descr_arg { + uint16_t conn_id; + esp_gatt_srvc_id_t service_id; + esp_gatt_id_t char_id; + } get_first_descr; + //BTC_GATTC_ACT_GET_NEXT_DESCR, + struct get_next_descr_arg { + uint16_t conn_id; + esp_gatt_srvc_id_t service_id; + esp_gatt_id_t char_id; + esp_gatt_id_t descr_id; + } get_next_descr; + //BTC_GATTC_ACT_GET_FIRST_INCL_SERVICE, + struct get_first_incl_srvc_arg { + uint16_t conn_id; + esp_gatt_srvc_id_t service_id; + } get_first_incl_srvc; + //BTC_GATTC_ACT_GET_NEXT_INCL_SERVICE, + struct get_next_incl_srvc_arg { + uint16_t conn_id; + esp_gatt_srvc_id_t service_id; + esp_gatt_srvc_id_t start_service_id; + } get_next_incl_srvc; + //BTC_GATTC_ACT_READ_CHAR, + struct read_char_arg { + uint16_t conn_id; + esp_gatt_srvc_id_t service_id; + esp_gatt_id_t char_id; + esp_gatt_auth_req_t auth_req; + } read_char; + //BTC_GATTC_ACT_READ_CHAR_DESCR, + struct read_descr_arg { + uint16_t conn_id; + esp_gatt_srvc_id_t service_id; + esp_gatt_id_t char_id; + esp_gatt_id_t descr_id; + esp_gatt_auth_req_t auth_req; + } read_descr; + //BTC_GATTC_ACT_WRITE_CHAR, + struct write_char_arg { + uint16_t conn_id; + uint16_t value_len; + esp_gatt_srvc_id_t service_id; + esp_gatt_id_t char_id; + uint8_t *value; + esp_gatt_write_type_t write_type; + esp_gatt_auth_req_t auth_req; + } write_char; + //BTC_GATTC_ACT_WRITE_CHAR_DESCR, + struct write_descr_arg { + uint16_t conn_id; + uint16_t value_len; + esp_gatt_srvc_id_t service_id; + esp_gatt_id_t char_id; + esp_gatt_id_t descr_id; + uint8_t *value; + esp_gatt_write_type_t write_type; + esp_gatt_auth_req_t auth_req; + } write_descr; + //BTC_GATTC_ACT_PREPARE_WRITE, + struct prep_write_arg { + uint16_t conn_id; + esp_gatt_srvc_id_t service_id; + esp_gatt_id_t char_id; + uint16_t offset; + uint16_t value_len; + uint8_t *value; + esp_gatt_auth_req_t auth_req; + } prep_write; + //BTC_GATTC_ACT_EXECUTE_WRITE, + struct exec_write_arg { + uint16_t conn_id; + bool is_execute; + } exec_write; + //BTC_GATTC_ACT_REG_FOR_NOTIFY, + struct reg_for_notify_arg { + esp_gatt_if_t gattc_if; + esp_bd_addr_t remote_bda; + esp_gatt_srvc_id_t service_id; + esp_gatt_id_t char_id; + } reg_for_notify; + //BTC_GATTC_ACT_UNREG_FOR_NOTIFY + struct unreg_for_notify_arg { + esp_gatt_if_t gattc_if; + esp_bd_addr_t remote_bda; + esp_gatt_srvc_id_t service_id; + esp_gatt_id_t char_id; + } unreg_for_notify; +} btc_ble_gattc_args_t; + +void btc_gattc_call_handler(btc_msg_t *msg); +void btc_gattc_cb_handler(btc_msg_t *msg); +void btc_gattc_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src); + +#endif /* __BTC_GATTC_H__ */ diff --git a/tools/sdk/include/bluedroid/btc_gatts.h b/tools/sdk/include/bluedroid/btc_gatts.h new file mode 100644 index 00000000..caae44de --- /dev/null +++ b/tools/sdk/include/bluedroid/btc_gatts.h @@ -0,0 +1,152 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __BTC_GATTS_H__ +#define __BTC_GATTS_H__ + +#include "btc_task.h" +#include "esp_bt_defs.h" +#include "esp_gatt_defs.h" +#include "esp_gatts_api.h" + +typedef enum { + BTC_GATTS_ACT_APP_REGISTER = 0, + BTC_GATTS_ACT_APP_UNREGISTER, + BTC_GATTS_ACT_CREATE_SERVICE, + BTC_GATTS_ACT_CREATE_ATTR_TAB, + BTC_GATTS_ACT_DELETE_SERVICE, + BTC_GATTS_ACT_START_SERVICE, + BTC_GATTS_ACT_STOP_SERVICE, + BTC_GATTS_ACT_ADD_INCLUDE_SERVICE, + BTC_GATTS_ACT_ADD_CHAR, + BTC_GATTS_ACT_ADD_CHAR_DESCR, + BTC_GATTS_ACT_SEND_INDICATE, + BTC_GATTS_ACT_SEND_RESPONSE, + BTC_GATTS_ACT_SET_ATTR_VALUE, + BTC_GATTS_ACT_OPEN, + BTC_GATTS_ACT_CLOSE, +} btc_gatts_act_t; + +/* btc_ble_gatts_args_t */ +typedef union { + //BTC_GATTS_ACT_APP_REGISTER = 0, + struct app_reg_args { + uint16_t app_id; + } app_reg; + + //BTC_GATTS_ACT_APP_UNREGISTER, + struct app_unreg_args { + esp_gatt_if_t gatts_if; + } app_unreg; + + //BTC_GATTS_ACT_CREATE_SERVICE, + struct create_srvc_args { + esp_gatt_if_t gatts_if; + esp_gatt_srvc_id_t service_id; + uint16_t num_handle; + } create_srvc; + + //BTC_GATTS_ACT_CREATE_ATTR_TAB + struct create_attr_tab_args{ + esp_gatt_if_t gatts_if; + uint8_t srvc_inst_id; + uint8_t max_nb_attr; + esp_gatts_attr_db_t *gatts_attr_db; + }create_attr_tab; + + //BTC_GATTS_ACT_DELETE_SERVICE, + struct delete_srvc_args { + uint16_t service_handle; + } delete_srvc; + + //BTC_GATTS_ACT_START_SERVICE, + struct start_srvc_args { + uint16_t service_handle; + } start_srvc; + + //BTC_GATTS_ACT_STOP_SERVICE, + struct stop_srvc_args { + uint16_t service_handle; + } stop_srvc; + + //BTC_GATTS_ACT_ADD_INCLUDE_SERVICE, + struct add_incl_srvc_args { + uint16_t service_handle; + uint16_t included_service_handle; + } add_incl_srvc; + + //BTC_GATTS_ACT_ADD_CHAR, + struct add_char_args { + uint16_t service_handle; + esp_bt_uuid_t char_uuid; + esp_gatt_perm_t perm; + esp_gatt_char_prop_t property; + esp_attr_control_t attr_control; + esp_attr_value_t char_val; + } add_char; + + //BTC_GATTS_ACT_ADD_CHAR_DESCR, + struct add_descr_args { + uint16_t service_handle; + esp_bt_uuid_t descr_uuid; + esp_gatt_perm_t perm; + esp_attr_control_t attr_control; + esp_attr_value_t descr_val; + } add_descr; + + //BTC_GATTS_ACT_SEND_INDICATE, + struct send_indicate_args { + uint16_t conn_id; + uint16_t attr_handle; + bool need_confirm; + uint16_t value_len; + uint8_t *value; + } send_ind; + + //BTC_GATTS_ACT_SEND_RESPONSE, + struct send_rsp_args { + uint16_t conn_id; + uint32_t trans_id; + esp_gatt_status_t status; + esp_gatt_rsp_t *rsp; + } send_rsp; + + //BTC_GATTS_SET_ATTR_VALUE + struct set_attr_val_args{ + uint16_t length; + uint8_t *value; + } set_attr_val; + + //BTC_GATTS_ACT_OPEN, + struct open_args { + esp_gatt_if_t gatts_if; + esp_bd_addr_t remote_bda; + bool is_direct; + } open; + + //BTC_GATTS_ACT_CLOSE, + struct close_args { + uint16_t conn_id; + } close; + +} btc_ble_gatts_args_t; + + +void btc_gatts_call_handler(btc_msg_t *msg); +void btc_gatts_cb_handler(btc_msg_t *msg); +void btc_gatts_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src); +void btc_gatts_get_attr_value(uint16_t attr_handle, uint16_t *length, uint8_t **value); + + +#endif /* __BTC_GATTS_H__ */ diff --git a/tools/sdk/include/bluedroid/btc_main.h b/tools/sdk/include/bluedroid/btc_main.h new file mode 100644 index 00000000..b95ae0bb --- /dev/null +++ b/tools/sdk/include/bluedroid/btc_main.h @@ -0,0 +1,64 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __BTC_BT_MAIN_H__ +#define __BTC_BT_MAIN_H__ + +#include "future.h" +#include "bt_types.h" +#include "bta_api.h" +#include "btc_main.h" +#include "btc_task.h" + +typedef enum { + BTC_MAIN_ACT_INIT = 0, + BTC_MAIN_ACT_DEINIT, + BTC_MAIN_ACT_ENABLE, + BTC_MAIN_ACT_DISABLE, +} btc_main_act_t; + +typedef enum { + BTC_MAIN_INIT_FUTURE = 0, + BTC_MAIN_DEINIT_FUTURE, + BTC_MAIN_ENABLE_FUTURE, + BTC_MAIN_DISABLE_FUTURE, + BTC_MAIN_FUTURE_NUM, +} btc_main_future_type_t; + +future_t **btc_main_get_future_p(btc_main_future_type_t type); + +#if 0 +typedef union { + struct btc_main_init_args { + future_t *future; + } init; + struct btc_main_deinit_args { + future_t *future; + } deinit; + struct btc_main_init_args { + future_t *future; + } enable; + struct btc_main_init_args { + future_t *future; + } disable; +} btc_main_args_t; + +bt_status_t btc_enable_bluetooth(future_t *future); +void btc_disable_bluetooth(future_t *future); +bt_status_t btc_init_bluetooth(future_t *future); +void btc_deinit_bluetooth(future_t *future); +#endif + +void btc_main_call_handler(btc_msg_t *msg); +#endif /* __BTC_BT_MAIN_H__ */ diff --git a/tools/sdk/include/bluedroid/btc_manage.h b/tools/sdk/include/bluedroid/btc_manage.h new file mode 100644 index 00000000..8789f543 --- /dev/null +++ b/tools/sdk/include/bluedroid/btc_manage.h @@ -0,0 +1,28 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __BTC_MANAGE_H__ +#define __BTC_MANAGE_H__ + +#include "bta_api.h" +#include "btc_task.h" +#include "esp_bt_defs.h" + +/* reset gatt callback table */ +void esp_profile_cb_reset(void); + +int btc_profile_cb_set(btc_pid_t profile_id, void *cb); +void *btc_profile_cb_get(btc_pid_t profile_id); + +#endif /* __BTC_MANAGE_H__ */ diff --git a/tools/sdk/include/bluedroid/btc_sdp.h b/tools/sdk/include/bluedroid/btc_sdp.h new file mode 100644 index 00000000..db7984b9 --- /dev/null +++ b/tools/sdk/include/bluedroid/btc_sdp.h @@ -0,0 +1,129 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __ESP_SDP_API_H__ +#define __ESP_SDP_API_H__ + +#include +#include "esp_err.h" +#include "esp_bt_common.h" +#include "bta_sdp_api.h" +#include "bt_sdp.h" + +#define BT_SDP_STAT_SUCCESS BTA_SDP_SUCCESS +#define BT_SDP_STAT_FAILURE BTA_SDP_FAILURE +#define BT_SDP_STAT_BUSY BTA_SDP_BUSY + +#define BT_SDP_ENABLE_EVT BTA_SDP_ENABLE_EVT +#define BT_SDP_SEARCH_EVT BTA_SDP_SEARCH_EVT +#define BT_SDP_SEARCH_COMP_EVT BTA_SDP_SEARCH_COMP_EVT +#define BT_SDP_CREATE_RECORD_USER_EVT BTA_SDP_CREATE_RECORD_USER_EVT +#define BT_SDP_REMOVE_RECORD_USER_EVT BTA_SDP_REMOVE_RECORD_USER_EVT +#define BT_SDP_MAX_EVT BTA_SDP_MAX_EVT + +#define BT_SDP_MAX_RECORDS BTA_SDP_MAX_RECORDS + +typedef tBTA_SDP_STATUS bt_sdp_status_t; + +typedef tBTA_SDP_EVT bt_sdp_evt_t; + +typedef bluetooth_sdp_record bt_sdp_record_t; + +/* tBTA_SEARCH_COMP, bta_sdp_api.h */ +typedef struct { + bt_sdp_status_t status; + esp_bd_addr_t remote_addr; + esp_bt_uuid_t uuid; + int record_count; + bt_sdp_record_t records[BT_SDP_MAX_RECORDS]; +} bt_sdp_search_comp_t; + +/* tBTA_SDP, bta_sdp_api.h */ +typedef union { + bt_sdp_status_t status; + bt_sdp_search_comp_t sdp_search_comp; +} bt_sdp_t; + +typedef void (bt_sdp_cb_t)(bt_sdp_evt_t event, bt_sdp_t *p_data, void *user_data); + +esp_err_t esp_bt_sdp_enable(bt_sdp_cb_t *cback); + +esp_err_t esp_bt_sdp_search(esp_bd_addr_t bd_addr, esp_bt_uuid_t *uuid); + +esp_err_t esp_bt_sdp_create_record_by_user(void *user_data); + +esp_err_t esp_bt_sdp_remove_record_by_user(void *user_data); + + +/**********************************************************************************************/ +/**********************************************************************************************/ +/* API into SDP for local service database updates + * these APIs are indended to be called in callback function in the context of stack task, + * to handle BT_SDP_CREATE_RECORD_USER_EVT and BT_SDP_REMOVE_RECORD_USER_EVT + */ + +/* This structure is used to add protocol lists and find protocol elements */ +#define ESP_BT_SDP_MAX_PROTOCOL_PARAMS SDP_MAX_PROTOCOL_PARAMS // bt_target.h +typedef struct { + uint16_t protocol_uuid; + uint16_t num_params; + uint16_t params[ESP_BT_SDP_MAX_PROTOCOL_PARAMS]; +} sdp_proto_elem_t; // tSDP_PROTOCOL_ELEM, sdp_api.h + +#define ESP_BT_SDP_MAX_LIST_ELEMS SDP_MAX_LIST_ELEMS // sdp_api.h +typedef struct { + uint16_t num_elems; + sdp_proto_elem_t list_elem[ESP_BT_SDP_MAX_LIST_ELEMS]; +} sdp_proto_list_elem_t; // tSDP_PROTO_LIST_ELEM, sdp_api.h + + +uint32_t esp_bt_sdp_create_record(void); + +bool esp_bt_sdp_delete_record(uint32_t handle); + +int32_t esp_bt_sdp_read_record(uint32_t handle, uint8_t *data, int32_t *data_len); + +bool esp_bt_sdp_add_attribute (uint32_t handle, uint16_t attr_id, + uint8_t attr_type, uint32_t attr_len, + uint8_t *p_val); + +bool esp_bt_sdp_add_sequence (uint32_t handle, uint16_t attr_id, + uint16_t num_elem, uint8_t type[], + uint8_t len[], uint8_t *p_val[]); + +bool esp_bt_sdp_add_uuid_sequence (uint32_t handle, uint16_t attr_id, + uint16_t num_uuids, uint16_t *p_uuids); + + +bool esp_bt_sdp_add_protocol_list (uint32_t handle, uint16_t num_elem, + sdp_proto_elem_t *p_elem_list); + +bool esp_bt_sdp_add_addition_protocol_lists(uint32_t handle, uint16_t num_elem, + sdp_proto_list_elem_t *p_proto_list); + +bool esp_bt_sdp_add_profile_dscp_list (uint32_t handle, + uint16_t profile_uuid, + uint16_t version); + +bool esp_bt_sdp_add_lang_base_attr_id_list(uint32_t handle, + uint16_t lang, uint16_t char_enc, + uint16_t base_id); + +bool esp_bt_sdp_add_service_class_id_list(uint32_t handle, + uint16_t num_services, + uint16_t *p_service_uuids); + +bool esp_bt_sdp_delete_attribute(uint32_t handle, uint16_t attr_id); + +#endif /* __ESP_SDP_API_H__ */ diff --git a/tools/sdk/include/bluedroid/btc_task.h b/tools/sdk/include/bluedroid/btc_task.h new file mode 100644 index 00000000..1574dae2 --- /dev/null +++ b/tools/sdk/include/bluedroid/btc_task.h @@ -0,0 +1,63 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __BTC_TASK_H__ +#define __BTC_TASK_H__ + +#include +#include "bt_defs.h" +#include "thread.h" + +typedef struct btc_msg { + uint8_t sig; //event signal + uint8_t aid; //application id + uint8_t pid; //profile id + uint8_t act; //profile action, defined in seprerate header files + void *arg; //param for btc function or function param +} btc_msg_t; + +typedef enum { + BTC_SIG_API_CALL = 0, // APP TO STACK + BTC_SIG_API_CB, // STACK TO APP + BTC_SIG_NUM, +} btc_sig_t; //btc message type + +typedef enum { + BTC_PID_MAIN_INIT = 0, + BTC_PID_GATTS, + BTC_PID_GATTC, + BTC_PID_GAP_BLE, + BTC_PID_GAP_BT, + BTC_PID_SDP, + BTC_PID_BLE_HID, + BTC_PID_BT_HID, + BTC_PID_SPP, + BTC_PID_SPPLIKE, + BTC_PID_BLUFI, + BTC_PID_NUM, +} btc_pid_t; //btc profile id + +typedef struct { + void (* btc_call)(btc_msg_t *msg); + void (* btc_cb)(btc_msg_t *msg); +} btc_func_t; + +typedef void (* btc_arg_deep_copy_t)(btc_msg_t *msg, void *dst, void *src); + +bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg_deep_copy_t copy_func); + +int btc_init(void); +void btc_deinit(void); + +#endif /* __BTC_TASK_H__ */ diff --git a/tools/sdk/include/bluedroid/bte.h b/tools/sdk/include/bluedroid/bte.h new file mode 100644 index 00000000..6a3ffe80 --- /dev/null +++ b/tools/sdk/include/bluedroid/bte.h @@ -0,0 +1,117 @@ +/****************************************************************************** + * + * Copyright (C) 2001-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * this file contains constants and definitions for the bte project + * + ******************************************************************************/ +#ifndef BTE_H +#define BTE_H + +//#include +//#include +//#include +#include "bt_target.h" + +/* by default on shutdown, baudrate is reset 115kbits. this should NOT be need for platforms + * that kill BTE driver and remove/reset BT chip + */ +#ifndef BTE_RESET_BAUD_ON_BT_DISABLE +#define BTE_RESET_BAUD_ON_BT_DISABLE TRUE +#endif + +/* Target Modes (based on jumper settings on hardware [see user manual]) */ +enum { + /* BTE BBY */ + /* J3 J4 SW3-3 SW3-2 SW3-1 */ + /* -------------------------------------------- */ + BTE_MODE_SERIAL_APP, /* OUT OUT OFF OFF OFF Sample serial port application */ + BTE_MODE_APPL, /* IN OUT OFF OFF ON Target used with Tester through RPC */ + BTE_MODE_RESERVED, /* OUT IN OFF ON OFF Reserved */ + BTE_MODE_SAMPLE_APPS, /* IN IN OFF ON ON Sample applications (ICP/HSP) */ + BTE_MODE_DONGLE, /* not yet supported ON OFF OFF Dongle mode */ + BTE_MODE_APPL_PROTOCOL_TRACE, /* this is a fake mode do allow protocol tracing in application without rpc */ + BTE_MODE_INVALID +}; + +extern volatile UINT8 bte_target_mode; /* indicates the mode that the board is running in */ + +/* Startup options */ +extern UINT32 bte_startup_options; /* Switch and jumper settings at startup */ +void bte_get_startup_options(UINT32 *p_options); /* Platform specific function for getting startup options */ + +#define BTE_OPTIONS_TARGET_MODE_MASK 0x00000007 /* bits 2-0 indicate target mode (QuickConnect: jp3 & jp4, BBY: SW3-1 & SW3-2)*/ + + +/**************************************************************************** + * Definitions to define which type of application gets built + ****************************************************************************/ +#define BUILD_HCITOOL FALSE +#define BUILD_L2PING FALSE + + +#define LINUX_FM_DRIVER_INCLUDED FALSE + + +/* hcisu userial operations. should probably go into bt_types to avoid collisions! */ +#define BT_EVT_TO_HCISU_USERIAL_OP (0x0080 | BT_EVT_HCISU) +/* operation for above hcisu event */ +#define BT_HCISU_USERIAL_OPEN (0) /* open serial port calling USERIAL_Open() */ +#define BT_HCISU_USERIAL_CLOSE (1) /* close userial port */ +/* options associated with close op */ +#define BT_HCISU_USERIAL_CL_NO_DIS_BT 0 /* do not touch bt_wake and power gpio */ +#define BT_HCISU_USERIAL_CL_DIS_BT 1 /* put power and bt_wake into defined off state to preserve + power */ +/* status codes for callback */ +/* +#define BTE_HCISU_USERIAL_FAIL 0 +#define BTE_HCISU_USERIAL_OK 1 +typedef void (tUSERIAL_MSG_CBACK) (int status); +typedef struct tHCISU_USERIAL_MSG_tag { + BT_HDR hdr; + tUSERIAL_MSG_CBACK *p_cback; + UINT8 port; // port number + UINT8 op; + UINT8 option; // option for operation. depends on operation +} tHCISU_USERIAL_MSG; + +extern void bte_hcisu_userial_oper( tUSERIAL_MSG_CBACK *p_cback, UINT8 port, UINT8 op, UINT8 option ); +*/ + +/* Pointer to function for sending HCI commands and data to the HCI tranport */ +extern int (*p_bte_hci_send)(UINT16 port, BT_HDR *p_msg); + + +/* Protocol trace mask */ +extern UINT32 bte_proto_trace_mask; + +typedef struct tBAUD_REG_tag { + UINT8 DHBR; + UINT8 DLBR; + UINT8 ExplicitBaudRate0; + UINT8 ExplicitBaudRate1; + UINT8 ExplicitBaudRate2; + UINT8 ExplicitBaudRate3; +} tBAUD_REG; + +#include "gki.h" + +extern const tBAUD_REG baud_rate_regs[]; + +#endif /* BTE_H */ diff --git a/tools/sdk/include/bluedroid/bte_appl.h b/tools/sdk/include/bluedroid/bte_appl.h new file mode 100755 index 00000000..4850250b --- /dev/null +++ b/tools/sdk/include/bluedroid/bte_appl.h @@ -0,0 +1,37 @@ +/****************************************************************************** + * + * Copyright (C) 2002-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This is the interface file for the bte application task + * + ******************************************************************************/ + +#pragma once + +typedef struct { +#if ((BLE_INCLUDED == TRUE) && (SMP_INCLUDED == TRUE)) + UINT8 ble_auth_req; + UINT8 ble_io_cap; + UINT8 ble_init_key; + UINT8 ble_resp_key; + UINT8 ble_max_key_size; +#endif +} tBTE_APPL_CFG; + +extern tBTE_APPL_CFG bte_appl_cfg; diff --git a/tools/sdk/include/bluedroid/btm_api.h b/tools/sdk/include/bluedroid/btm_api.h new file mode 100644 index 00000000..2d1edcb6 --- /dev/null +++ b/tools/sdk/include/bluedroid/btm_api.h @@ -0,0 +1,4029 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This file contains the Bluetooth Manager (BTM) API function external + * definitions. + * + ******************************************************************************/ +#ifndef BTM_API_H +#define BTM_API_H + +#include "bt_defs.h" +#include "bt_target.h" +#include "hcidefs.h" + +#if SDP_INCLUDED == TRUE +#include "sdp_api.h" +#endif + +#if SMP_INCLUDED == TRUE +#include "smp_api.h" +#endif +/***************************************************************************** +** DEVICE CONTROL and COMMON +*****************************************************************************/ +/***************************** +** Device Control Constants +******************************/ +/* Maximum number of bytes allowed for vendor specific command parameters */ +#define BTM_MAX_VENDOR_SPECIFIC_LEN HCI_COMMAND_SIZE + +/* BTM application return status codes */ +enum { + BTM_SUCCESS = 0, /* 0 Command succeeded */ + BTM_CMD_STARTED, /* 1 Command started OK. */ + BTM_BUSY, /* 2 Device busy with another command */ + BTM_NO_RESOURCES, /* 3 No resources to issue command */ + BTM_MODE_UNSUPPORTED, /* 4 Request for 1 or more unsupported modes */ + BTM_ILLEGAL_VALUE, /* 5 Illegal parameter value */ + BTM_WRONG_MODE, /* 6 Device in wrong mode for request */ + BTM_UNKNOWN_ADDR, /* 7 Unknown remote BD address */ + BTM_DEVICE_TIMEOUT, /* 8 Device timeout */ + BTM_BAD_VALUE_RET, /* 9 A bad value was received from HCI */ + BTM_ERR_PROCESSING, /* 10 Generic error */ + BTM_NOT_AUTHORIZED, /* 11 Authorization failed */ + BTM_DEV_RESET, /* 12 Device has been reset */ + BTM_CMD_STORED, /* 13 request is stored in control block */ + BTM_ILLEGAL_ACTION, /* 14 state machine gets illegal command */ + BTM_DELAY_CHECK, /* 15 delay the check on encryption */ + BTM_SCO_BAD_LENGTH, /* 16 Bad SCO over HCI data length */ + BTM_SUCCESS_NO_SECURITY, /* 17 security passed, no security set */ + BTM_FAILED_ON_SECURITY, /* 18 security failed */ + BTM_REPEATED_ATTEMPTS, /* 19 repeated attempts for LE security requests */ + BTM_MODE4_LEVEL4_NOT_SUPPORTED /* 20 Secure Connections Only Mode can't be supported */ +}; + +typedef uint8_t tBTM_STATUS; + +#if (defined(BTA_HOST_INTERLEAVE_SEARCH) && BTA_HOST_INTERLEAVE_SEARCH == TRUE) +typedef enum { + BTM_BR_ONE, /*0 First state or BR/EDR scan 1*/ + BTM_BLE_ONE, /*1BLE scan 1*/ + BTM_BR_TWO, /*2 BR/EDR scan 2*/ + BTM_BLE_TWO, /*3 BLE scan 2*/ + BTM_FINISH, /*4 End of Interleave Scan, or normal scan*/ + BTM_NO_INTERLEAVING /*5 No Interleaving*/ +} btm_inq_state; +#endif + + + +/************************* +** Device Control Types +**************************/ +#define BTM_DEVICE_ROLE_BR 0x01 +#define BTM_DEVICE_ROLE_DUAL 0x02 +#define BTM_MAX_DEVICE_ROLE BTM_DEVICE_ROLE_DUAL +typedef UINT8 tBTM_DEVICE_ROLE; + +/* Device name of peer (may be truncated to save space in BTM database) */ +typedef UINT8 tBTM_BD_NAME[BTM_MAX_REM_BD_NAME_LEN + 1]; + +/* Structure returned with local version information */ +typedef struct { + UINT8 hci_version; + UINT16 hci_revision; + UINT8 lmp_version; + UINT16 manufacturer; + UINT16 lmp_subversion; +} tBTM_VERSION_INFO; + +/* Structure returned with Vendor Specific Command complete callback */ +typedef struct { + UINT16 opcode; + UINT16 param_len; + UINT8 *p_param_buf; +} tBTM_VSC_CMPL; + +#define BTM_VSC_CMPL_DATA_SIZE (BTM_MAX_VENDOR_SPECIFIC_LEN + sizeof(tBTM_VSC_CMPL)) +/************************************************** +** Device Control and General Callback Functions +***************************************************/ +/* Callback function for when device status changes. Appl must poll for +** what the new state is (BTM_IsDeviceUp). The event occurs whenever the stack +** has detected that the controller status has changed. This asynchronous event +** is enabled/disabled by calling BTM_RegisterForDeviceStatusNotif(). +*/ +enum { + BTM_DEV_STATUS_UP, + BTM_DEV_STATUS_DOWN, + BTM_DEV_STATUS_CMD_TOUT +}; + +typedef UINT8 tBTM_DEV_STATUS; + + +typedef void (tBTM_DEV_STATUS_CB) (tBTM_DEV_STATUS status); + + +/* Callback function for when a vendor specific event occurs. The length and +** array of returned parameter bytes are included. This asynchronous event +** is enabled/disabled by calling BTM_RegisterForVSEvents(). +*/ +typedef void (tBTM_VS_EVT_CB) (UINT8 len, UINT8 *p); + + +/* General callback function for notifying an application that a synchronous +** BTM function is complete. The pointer contains the address of any returned data. +*/ +typedef void (tBTM_CMPL_CB) (void *p1); + +/* VSC callback function for notifying an application that a synchronous +** BTM function is complete. The pointer contains the address of any returned data. +*/ +typedef void (tBTM_VSC_CMPL_CB) (tBTM_VSC_CMPL *p1); + +/* Callback for apps to check connection and inquiry filters. +** Parameters are the BD Address of remote and the Dev Class of remote. +** If the app returns none zero, the connection or inquiry result will be dropped. +*/ +typedef UINT8 (tBTM_FILTER_CB) (BD_ADDR bd_addr, DEV_CLASS dc); + +/***************************************************************************** +** DEVICE DISCOVERY - Inquiry, Remote Name, Discovery, Class of Device +*****************************************************************************/ +/******************************* +** Device Discovery Constants +********************************/ +/* Discoverable modes */ +#define BTM_NON_DISCOVERABLE 0 +#define BTM_LIMITED_DISCOVERABLE 1 +#define BTM_GENERAL_DISCOVERABLE 2 +#define BTM_DISCOVERABLE_MASK (BTM_LIMITED_DISCOVERABLE|BTM_GENERAL_DISCOVERABLE) +#define BTM_MAX_DISCOVERABLE BTM_GENERAL_DISCOVERABLE +/* high byte for BLE Discoverable modes */ +#define BTM_BLE_NON_DISCOVERABLE 0x0000 +#define BTM_BLE_LIMITED_DISCOVERABLE 0x0100 +#define BTM_BLE_GENERAL_DISCOVERABLE 0x0200 +#define BTM_BLE_MAX_DISCOVERABLE BTM_BLE_GENERAL_DISCOVERABLE +#define BTM_BLE_DISCOVERABLE_MASK (BTM_BLE_NON_DISCOVERABLE|BTM_BLE_LIMITED_DISCOVERABLE|BTM_BLE_GENERAL_DISCOVERABLE) + +/* Connectable modes */ +#define BTM_NON_CONNECTABLE 0 +#define BTM_CONNECTABLE 1 +#define BTM_CONNECTABLE_MASK (BTM_NON_CONNECTABLE | BTM_CONNECTABLE) +/* high byte for BLE Connectable modes */ +#define BTM_BLE_NON_CONNECTABLE 0x0000 +#define BTM_BLE_CONNECTABLE 0x0100 +#define BTM_BLE_MAX_CONNECTABLE BTM_BLE_CONNECTABLE +#define BTM_BLE_CONNECTABLE_MASK (BTM_BLE_NON_CONNECTABLE | BTM_BLE_CONNECTABLE) + +/* Inquiry modes + * Note: These modes are associated with the inquiry active values (BTM_*ACTIVE) */ +#define BTM_INQUIRY_NONE 0 +#define BTM_GENERAL_INQUIRY 0x01 +#define BTM_LIMITED_INQUIRY 0x02 +#define BTM_BR_INQUIRY_MASK (BTM_GENERAL_INQUIRY | BTM_LIMITED_INQUIRY) + +/* high byte of inquiry mode for BLE inquiry mode */ +#define BTM_BLE_INQUIRY_NONE 0x00 +#define BTM_BLE_GENERAL_INQUIRY 0x10 +#define BTM_BLE_LIMITED_INQUIRY 0x20 +#define BTM_BLE_INQUIRY_MASK (BTM_BLE_GENERAL_INQUIRY|BTM_BLE_LIMITED_INQUIRY) + +/* BTM_IsInquiryActive return values (Bit Mask) + * Note: These bit masks are associated with the inquiry modes (BTM_*_INQUIRY) */ +#define BTM_INQUIRY_INACTIVE 0x0 /* no inquiry in progress */ +#define BTM_GENERAL_INQUIRY_ACTIVE BTM_GENERAL_INQUIRY /* a general inquiry is in progress */ +#define BTM_LIMITED_INQUIRY_ACTIVE BTM_LIMITED_INQUIRY /* a limited inquiry is in progress */ +#define BTM_PERIODIC_INQUIRY_ACTIVE 0x8 /* a periodic inquiry is active */ +#define BTM_SSP_INQUIRY_ACTIVE 0x4 /* SSP is active, so inquiry is disallowed (work around for FW bug) */ +#define BTM_LE_GENERAL_INQUIRY_ACTIVE BTM_BLE_GENERAL_INQUIRY /* a general inquiry is in progress */ +#define BTM_LE_LIMITED_INQUIRY_ACTIVE BTM_BLE_LIMITED_INQUIRY /* a limited inquiry is in progress */ + +/* inquiry activity mask */ +#define BTM_BR_INQ_ACTIVE_MASK (BTM_GENERAL_INQUIRY_ACTIVE|BTM_LIMITED_INQUIRY_ACTIVE|BTM_PERIODIC_INQUIRY_ACTIVE) /* BR/EDR inquiry activity mask */ +#define BTM_BLE_SCAN_ACTIVE_MASK 0xF0 /* LE scan activity mask */ +#define BTM_BLE_INQ_ACTIVE_MASK (BTM_LE_GENERAL_INQUIRY_ACTIVE|BTM_LE_LIMITED_INQUIRY_ACTIVE) /* LE inquiry activity mask*/ +#define BTM_INQUIRY_ACTIVE_MASK (BTM_BR_INQ_ACTIVE_MASK | BTM_BLE_INQ_ACTIVE_MASK) /* inquiry activity mask */ + +/* Define scan types */ +#define BTM_SCAN_TYPE_STANDARD 0 +#define BTM_SCAN_TYPE_INTERLACED 1 /* 1.2 devices only */ + +/* Define inquiry results mode */ +#define BTM_INQ_RESULT_STANDARD 0 +#define BTM_INQ_RESULT_WITH_RSSI 1 +#define BTM_INQ_RESULT_EXTENDED 2 + +#define BTM_INQ_RES_IGNORE_RSSI 0x7f /* RSSI value not supplied (ignore it) */ + +/* Inquiry Filter Condition types (see tBTM_INQ_PARMS) */ +#define BTM_CLR_INQUIRY_FILTER 0 /* Inquiry Filtering is turned off */ +#define BTM_FILTER_COND_DEVICE_CLASS HCI_FILTER_COND_DEVICE_CLASS /* Filter on device class */ +#define BTM_FILTER_COND_BD_ADDR HCI_FILTER_COND_BD_ADDR /* Filter on device addr */ + +/* State of the remote name retrieval during inquiry operations. +** Used in the tBTM_INQ_INFO structure, and returned in the +** BTM_InqDbRead, BTM_InqDbFirst, and BTM_InqDbNext functions. +** The name field is valid when the state returned is +** BTM_INQ_RMT_NAME_DONE */ +#define BTM_INQ_RMT_NAME_EMPTY 0 +#define BTM_INQ_RMT_NAME_PENDING 1 +#define BTM_INQ_RMT_NAME_DONE 2 +#define BTM_INQ_RMT_NAME_FAILED 3 + +/********************************* + *** Class of Device constants *** + *********************************/ +#define BTM_FORMAT_TYPE_1 0x00 + +/**************************** +** minor device class field +*****************************/ + +/* 0x00 is used as unclassified for all minor device classes */ +#define BTM_COD_MINOR_UNCLASSIFIED 0x00 + +/* minor device class field for Computer Major Class */ +/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ +#define BTM_COD_MINOR_DESKTOP_WORKSTATION 0x04 +#define BTM_COD_MINOR_SERVER_COMPUTER 0x08 +#define BTM_COD_MINOR_LAPTOP 0x0C +#define BTM_COD_MINOR_HANDHELD_PC_PDA 0x10 /* clam shell */ +#define BTM_COD_MINOR_PALM_SIZE_PC_PDA 0x14 +#define BTM_COD_MINOR_WEARABLE_COMPUTER 0x18 /* watch sized */ + +/* minor device class field for Phone Major Class */ +/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ +#define BTM_COD_MINOR_CELLULAR 0x04 +#define BTM_COD_MINOR_CORDLESS 0x08 +#define BTM_COD_MINOR_SMART_PHONE 0x0C +#define BTM_COD_MINOR_WIRED_MDM_V_GTWY 0x10 /* wired modem or voice gatway */ +#define BTM_COD_MINOR_ISDN_ACCESS 0x14 + +/* minor device class field for LAN Access Point Major Class */ +/* Load Factor Field bit 5-7 */ +#define BTM_COD_MINOR_FULLY_AVAILABLE 0x00 +#define BTM_COD_MINOR_1_17_UTILIZED 0x20 +#define BTM_COD_MINOR_17_33_UTILIZED 0x40 +#define BTM_COD_MINOR_33_50_UTILIZED 0x60 +#define BTM_COD_MINOR_50_67_UTILIZED 0x80 +#define BTM_COD_MINOR_67_83_UTILIZED 0xA0 +#define BTM_COD_MINOR_83_99_UTILIZED 0xC0 +#define BTM_COD_MINOR_NO_SERVICE_AVAILABLE 0xE0 +/* sub-Field bit 2-4 */ +/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ + +/* minor device class field for Audio/Video Major Class */ +/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ +#define BTM_COD_MINOR_CONFM_HEADSET 0x04 +#define BTM_COD_MINOR_CONFM_HANDSFREE 0x08 +#define BTM_COD_MINOR_MICROPHONE 0x10 +#define BTM_COD_MINOR_LOUDSPEAKER 0x14 +#define BTM_COD_MINOR_HEADPHONES 0x18 +#define BTM_COD_MINOR_PORTABLE_AUDIO 0x1C +#define BTM_COD_MINOR_CAR_AUDIO 0x20 +#define BTM_COD_MINOR_SET_TOP_BOX 0x24 +#define BTM_COD_MINOR_HIFI_AUDIO 0x28 +#define BTM_COD_MINOR_VCR 0x2C +#define BTM_COD_MINOR_VIDEO_CAMERA 0x30 +#define BTM_COD_MINOR_CAMCORDER 0x34 +#define BTM_COD_MINOR_VIDEO_MONITOR 0x38 +#define BTM_COD_MINOR_VIDDISP_LDSPKR 0x3C +#define BTM_COD_MINOR_VIDEO_CONFERENCING 0x40 +#define BTM_COD_MINOR_GAMING_TOY 0x48 + +/* minor device class field for Peripheral Major Class */ +/* Bits 6-7 independently specify mouse, keyboard, or combo mouse/keyboard */ +#define BTM_COD_MINOR_KEYBOARD 0x40 +#define BTM_COD_MINOR_POINTING 0x80 +#define BTM_COD_MINOR_COMBO 0xC0 +/* Bits 2-5 OR'd with selection from bits 6-7 */ +/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ +#define BTM_COD_MINOR_JOYSTICK 0x04 +#define BTM_COD_MINOR_GAMEPAD 0x08 +#define BTM_COD_MINOR_REMOTE_CONTROL 0x0C +#define BTM_COD_MINOR_SENSING_DEVICE 0x10 +#define BTM_COD_MINOR_DIGITIZING_TABLET 0x14 +#define BTM_COD_MINOR_CARD_READER 0x18 /* e.g. SIM card reader */ +#define BTM_COD_MINOR_DIGITAL_PAN 0x1C +#define BTM_COD_MINOR_HAND_SCANNER 0x20 +#define BTM_COD_MINOR_HAND_GESTURAL_INPUT 0x24 + +/* minor device class field for Imaging Major Class */ +/* Bits 5-7 independently specify display, camera, scanner, or printer */ +#define BTM_COD_MINOR_DISPLAY 0x10 +#define BTM_COD_MINOR_CAMERA 0x20 +#define BTM_COD_MINOR_SCANNER 0x40 +#define BTM_COD_MINOR_PRINTER 0x80 +/* Bits 2-3 Reserved */ +/* #define BTM_COD_MINOR_UNCLASSIFIED 0x00 */ + +/* minor device class field for Wearable Major Class */ +/* Bits 2-7 meaningful */ +#define BTM_COD_MINOR_WRIST_WATCH 0x04 +#define BTM_COD_MINOR_PAGER 0x08 +#define BTM_COD_MINOR_JACKET 0x0C +#define BTM_COD_MINOR_HELMET 0x10 +#define BTM_COD_MINOR_GLASSES 0x14 + +/* minor device class field for Toy Major Class */ +/* Bits 2-7 meaningful */ +#define BTM_COD_MINOR_ROBOT 0x04 +#define BTM_COD_MINOR_VEHICLE 0x08 +#define BTM_COD_MINOR_DOLL_ACTION_FIGURE 0x0C +#define BTM_COD_MINOR_CONTROLLER 0x10 +#define BTM_COD_MINOR_GAME 0x14 + +/* minor device class field for Health Major Class */ +/* Bits 2-7 meaningful */ +#define BTM_COD_MINOR_BLOOD_MONITOR 0x04 +#define BTM_COD_MINOR_THERMOMETER 0x08 +#define BTM_COD_MINOR_WEIGHING_SCALE 0x0C +#define BTM_COD_MINOR_GLUCOSE_METER 0x10 +#define BTM_COD_MINOR_PULSE_OXIMETER 0x14 +#define BTM_COD_MINOR_HEART_PULSE_MONITOR 0x18 +#define BTM_COD_MINOR_HEALTH_DATA_DISPLAY 0x1C +#define BTM_COD_MINOR_STEP_COUNTER 0x20 +#define BTM_COD_MINOR_BODY_COM_ANALYZER 0x24 +#define BTM_COD_MINOR_PEAK_FLOW_MONITOR 0x28 +#define BTM_COD_MINOR_MEDICATION_MONITOR 0x2C +#define BTM_COD_MINOR_KNEE_PROSTHESIS 0x30 +#define BTM_COD_MINOR_ANKLE_PROSTHESIS 0x34 + + +/*************************** +** major device class field +****************************/ +#define BTM_COD_MAJOR_MISCELLANEOUS 0x00 +#define BTM_COD_MAJOR_COMPUTER 0x01 +#define BTM_COD_MAJOR_PHONE 0x02 +#define BTM_COD_MAJOR_LAN_ACCESS_PT 0x03 +#define BTM_COD_MAJOR_AUDIO 0x04 +#define BTM_COD_MAJOR_PERIPHERAL 0x05 +#define BTM_COD_MAJOR_IMAGING 0x06 +#define BTM_COD_MAJOR_WEARABLE 0x07 +#define BTM_COD_MAJOR_TOY 0x08 +#define BTM_COD_MAJOR_HEALTH 0x09 +#define BTM_COD_MAJOR_UNCLASSIFIED 0x1F + +/*************************** +** service class fields +****************************/ +#define BTM_COD_SERVICE_LMTD_DISCOVER 0x0020 +#define BTM_COD_SERVICE_POSITIONING 0x0100 +#define BTM_COD_SERVICE_NETWORKING 0x0200 +#define BTM_COD_SERVICE_RENDERING 0x0400 +#define BTM_COD_SERVICE_CAPTURING 0x0800 +#define BTM_COD_SERVICE_OBJ_TRANSFER 0x1000 +#define BTM_COD_SERVICE_AUDIO 0x2000 +#define BTM_COD_SERVICE_TELEPHONY 0x4000 +#define BTM_COD_SERVICE_INFORMATION 0x8000 + +/* class of device field macros */ +#define BTM_COD_FORMAT_TYPE(u8, pd) {u8 = pd[2]&0x03;} +#define BTM_COD_MINOR_CLASS(u8, pd) {u8 = pd[2]&0xFC;} +#define BTM_COD_MAJOR_CLASS(u8, pd) {u8 = pd[1]&0x1F;} +#define BTM_COD_SERVICE_CLASS(u16, pd) {u16 = pd[0]; u16<<=8; u16 += pd[1]&0xE0;} + +/* to set the fields (assumes that format type is always 0) */ +#define FIELDS_TO_COD(pd, mn, mj, sv) {pd[2] = mn; pd[1] = \ + mj+ ((sv)&BTM_COD_SERVICE_CLASS_LO_B); \ + pd[0] = (sv) >> 8;} + +/* the COD masks */ +#define BTM_COD_FORMAT_TYPE_MASK 0x03 +#define BTM_COD_MINOR_CLASS_MASK 0xFC +#define BTM_COD_MAJOR_CLASS_MASK 0x1F +#define BTM_COD_SERVICE_CLASS_LO_B 0x00E0 +#define BTM_COD_SERVICE_CLASS_MASK 0xFFE0 + + +/* BTM service definitions +** Used for storing EIR data to bit mask +*/ +enum { + BTM_EIR_UUID_SERVCLASS_SERVICE_DISCOVERY_SERVER, + /* BTM_EIR_UUID_SERVCLASS_BROWSE_GROUP_DESCRIPTOR, */ + /* BTM_EIR_UUID_SERVCLASS_PUBLIC_BROWSE_GROUP, */ + BTM_EIR_UUID_SERVCLASS_SERIAL_PORT, + BTM_EIR_UUID_SERVCLASS_LAN_ACCESS_USING_PPP, + BTM_EIR_UUID_SERVCLASS_DIALUP_NETWORKING, + BTM_EIR_UUID_SERVCLASS_IRMC_SYNC, + BTM_EIR_UUID_SERVCLASS_OBEX_OBJECT_PUSH, + BTM_EIR_UUID_SERVCLASS_OBEX_FILE_TRANSFER, + BTM_EIR_UUID_SERVCLASS_IRMC_SYNC_COMMAND, + BTM_EIR_UUID_SERVCLASS_HEADSET, + BTM_EIR_UUID_SERVCLASS_CORDLESS_TELEPHONY, + BTM_EIR_UUID_SERVCLASS_AUDIO_SOURCE, + BTM_EIR_UUID_SERVCLASS_AUDIO_SINK, + BTM_EIR_UUID_SERVCLASS_AV_REM_CTRL_TARGET, + /* BTM_EIR_UUID_SERVCLASS_ADV_AUDIO_DISTRIBUTION, */ + BTM_EIR_UUID_SERVCLASS_AV_REMOTE_CONTROL, + /* BTM_EIR_UUID_SERVCLASS_VIDEO_CONFERENCING, */ + BTM_EIR_UUID_SERVCLASS_INTERCOM, + BTM_EIR_UUID_SERVCLASS_FAX, + BTM_EIR_UUID_SERVCLASS_HEADSET_AUDIO_GATEWAY, + /* BTM_EIR_UUID_SERVCLASS_WAP, */ + /* BTM_EIR_UUID_SERVCLASS_WAP_CLIENT, */ + BTM_EIR_UUID_SERVCLASS_PANU, + BTM_EIR_UUID_SERVCLASS_NAP, + BTM_EIR_UUID_SERVCLASS_GN, + BTM_EIR_UUID_SERVCLASS_DIRECT_PRINTING, + /* BTM_EIR_UUID_SERVCLASS_REFERENCE_PRINTING, */ + BTM_EIR_UUID_SERVCLASS_IMAGING, + BTM_EIR_UUID_SERVCLASS_IMAGING_RESPONDER, + BTM_EIR_UUID_SERVCLASS_IMAGING_AUTO_ARCHIVE, + BTM_EIR_UUID_SERVCLASS_IMAGING_REF_OBJECTS, + BTM_EIR_UUID_SERVCLASS_HF_HANDSFREE, + BTM_EIR_UUID_SERVCLASS_AG_HANDSFREE, + BTM_EIR_UUID_SERVCLASS_DIR_PRT_REF_OBJ_SERVICE, + /* BTM_EIR_UUID_SERVCLASS_REFLECTED_UI, */ + BTM_EIR_UUID_SERVCLASS_BASIC_PRINTING, + BTM_EIR_UUID_SERVCLASS_PRINTING_STATUS, + BTM_EIR_UUID_SERVCLASS_HUMAN_INTERFACE, + BTM_EIR_UUID_SERVCLASS_CABLE_REPLACEMENT, + BTM_EIR_UUID_SERVCLASS_HCRP_PRINT, + BTM_EIR_UUID_SERVCLASS_HCRP_SCAN, + /* BTM_EIR_UUID_SERVCLASS_COMMON_ISDN_ACCESS, */ + /* BTM_EIR_UUID_SERVCLASS_VIDEO_CONFERENCING_GW, */ + /* BTM_EIR_UUID_SERVCLASS_UDI_MT, */ + /* BTM_EIR_UUID_SERVCLASS_UDI_TA, */ + /* BTM_EIR_UUID_SERVCLASS_VCP, */ + BTM_EIR_UUID_SERVCLASS_SAP, + BTM_EIR_UUID_SERVCLASS_PBAP_PCE, + BTM_EIR_UUID_SERVCLASS_PBAP_PSE, + /* BTM_EIR_UUID_SERVCLASS_TE_PHONE_ACCESS, */ + /* BTM_EIR_UUID_SERVCLASS_ME_PHONE_ACCESS, */ + BTM_EIR_UUID_SERVCLASS_PHONE_ACCESS, + BTM_EIR_UUID_SERVCLASS_HEADSET_HS, + BTM_EIR_UUID_SERVCLASS_PNP_INFORMATION, + /* BTM_EIR_UUID_SERVCLASS_GENERIC_NETWORKING, */ + /* BTM_EIR_UUID_SERVCLASS_GENERIC_FILETRANSFER, */ + /* BTM_EIR_UUID_SERVCLASS_GENERIC_AUDIO, */ + /* BTM_EIR_UUID_SERVCLASS_GENERIC_TELEPHONY, */ + /* BTM_EIR_UUID_SERVCLASS_UPNP_SERVICE, */ + /* BTM_EIR_UUID_SERVCLASS_UPNP_IP_SERVICE, */ + /* BTM_EIR_UUID_SERVCLASS_ESDP_UPNP_IP_PAN, */ + /* BTM_EIR_UUID_SERVCLASS_ESDP_UPNP_IP_LAP, */ + /* BTM_EIR_UUID_SERVCLASS_ESDP_UPNP_IP_L2CAP, */ + BTM_EIR_UUID_SERVCLASS_VIDEO_SOURCE, + BTM_EIR_UUID_SERVCLASS_VIDEO_SINK, + /* BTM_EIR_UUID_SERVCLASS_VIDEO_DISTRIBUTION */ + /* BTM_EIR_UUID_SERVCLASS_HDP_PROFILE */ + BTM_EIR_UUID_SERVCLASS_MESSAGE_ACCESS, + BTM_EIR_UUID_SERVCLASS_MESSAGE_NOTIFICATION, + BTM_EIR_UUID_SERVCLASS_HDP_SOURCE, + BTM_EIR_UUID_SERVCLASS_HDP_SINK, + BTM_EIR_MAX_SERVICES +}; + +/* search result in EIR of inquiry database */ +#define BTM_EIR_FOUND 0 +#define BTM_EIR_NOT_FOUND 1 +#define BTM_EIR_UNKNOWN 2 + +typedef UINT8 tBTM_EIR_SEARCH_RESULT; + +#define BTM_EIR_FLAGS_TYPE HCI_EIR_FLAGS_TYPE /* 0x01 */ +#define BTM_EIR_MORE_16BITS_UUID_TYPE HCI_EIR_MORE_16BITS_UUID_TYPE /* 0x02 */ +#define BTM_EIR_COMPLETE_16BITS_UUID_TYPE HCI_EIR_COMPLETE_16BITS_UUID_TYPE /* 0x03 */ +#define BTM_EIR_MORE_32BITS_UUID_TYPE HCI_EIR_MORE_32BITS_UUID_TYPE /* 0x04 */ +#define BTM_EIR_COMPLETE_32BITS_UUID_TYPE HCI_EIR_COMPLETE_32BITS_UUID_TYPE /* 0x05 */ +#define BTM_EIR_MORE_128BITS_UUID_TYPE HCI_EIR_MORE_128BITS_UUID_TYPE /* 0x06 */ +#define BTM_EIR_COMPLETE_128BITS_UUID_TYPE HCI_EIR_COMPLETE_128BITS_UUID_TYPE /* 0x07 */ +#define BTM_EIR_SHORTENED_LOCAL_NAME_TYPE HCI_EIR_SHORTENED_LOCAL_NAME_TYPE /* 0x08 */ +#define BTM_EIR_COMPLETE_LOCAL_NAME_TYPE HCI_EIR_COMPLETE_LOCAL_NAME_TYPE /* 0x09 */ +#define BTM_EIR_TX_POWER_LEVEL_TYPE HCI_EIR_TX_POWER_LEVEL_TYPE /* 0x0A */ +#define BTM_EIR_MANUFACTURER_SPECIFIC_TYPE HCI_EIR_MANUFACTURER_SPECIFIC_TYPE /* 0xFF */ + +/* the following EIR tags are defined to OOB, not regular EIR data */ +#define BTM_EIR_OOB_BD_ADDR_TYPE HCI_EIR_OOB_BD_ADDR_TYPE /* 6 bytes */ +#define BTM_EIR_OOB_COD_TYPE HCI_EIR_OOB_COD_TYPE /* 3 bytes */ +#define BTM_EIR_OOB_SSP_HASH_C_TYPE HCI_EIR_OOB_SSP_HASH_C_TYPE /* 16 bytes */ +#define BTM_EIR_OOB_SSP_RAND_R_TYPE HCI_EIR_OOB_SSP_RAND_R_TYPE /* 16 bytes */ + +#define BTM_OOB_MANDATORY_SIZE 8 /* include 2 bytes length & 6 bytes bd_addr */ +#define BTM_OOB_DATA_LEN_SIZE 2 +#define BTM_OOB_BD_ADDR_SIZE 6 +#define BTM_OOB_COD_SIZE BT_OOB_COD_SIZE +#define BTM_OOB_HASH_C_SIZE BT_OOB_HASH_C_SIZE +#define BTM_OOB_RAND_R_SIZE BT_OOB_RAND_R_SIZE + + +#if BLE_INCLUDED == TRUE +#define BTM_BLE_SEC_NONE 0 +#define BTM_BLE_SEC_ENCRYPT 1 /* encrypt the link using current key */ +#define BTM_BLE_SEC_ENCRYPT_NO_MITM 2 +#define BTM_BLE_SEC_ENCRYPT_MITM 3 +typedef UINT8 tBTM_BLE_SEC_ACT; +#endif +/************************************************************************************************ +** BTM Services MACROS handle array of UINT32 bits for more than 32 services +*************************************************************************************************/ +/* Determine the number of UINT32's necessary for services */ +#define BTM_EIR_ARRAY_BITS 32 /* Number of bits in each array element */ +#define BTM_EIR_SERVICE_ARRAY_SIZE (((UINT32)BTM_EIR_MAX_SERVICES / BTM_EIR_ARRAY_BITS) + \ + (((UINT32)BTM_EIR_MAX_SERVICES % BTM_EIR_ARRAY_BITS) ? 1 : 0)) + +/* MACRO to set the service bit mask in a bit stream */ +#define BTM_EIR_SET_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] |= \ + ((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS))) + + +/* MACRO to clear the service bit mask in a bit stream */ +#define BTM_EIR_CLR_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] &= \ + ~((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS))) + +/* MACRO to check the service bit mask in a bit stream */ +#define BTM_EIR_HAS_SERVICE(p, service) ((((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] & \ + ((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS))) >> (((UINT32)(service)) % BTM_EIR_ARRAY_BITS)) + +/* start of EIR in HCI buffer, 4 bytes = HCI Command(2) + Length(1) + FEC_Req(1) */ +#define BTM_HCI_EIR_OFFSET (BT_HDR_SIZE + 4) + +/*************************** +** Device Discovery Types +****************************/ +/* Definitions of the parameters passed to BTM_StartInquiry and +** BTM_SetPeriodicInquiryMode. +*/ +typedef struct { /* contains the two device class condition fields */ + DEV_CLASS dev_class; + DEV_CLASS dev_class_mask; +} tBTM_COD_COND; + + +typedef union { /* contains the inquiry filter condition */ + BD_ADDR bdaddr_cond; + tBTM_COD_COND cod_cond; +} tBTM_INQ_FILT_COND; + + +typedef struct { /* contains the parameters passed to the inquiry functions */ + UINT8 mode; /* general or limited */ + UINT8 duration; /* duration of the inquiry (1.28 sec increments) */ + UINT8 max_resps; /* maximum number of responses to return */ + BOOLEAN report_dup; /* report duplicated inquiry response with higher RSSI value */ + UINT8 filter_cond_type; /* new devices, BD ADDR, COD, or No filtering */ + tBTM_INQ_FILT_COND filter_cond; /* filter value based on filter cond type */ +#if (defined(BTA_HOST_INTERLEAVE_SEARCH) && BTA_HOST_INTERLEAVE_SEARCH == TRUE) + UINT8 intl_duration[4]; /*duration array storing the interleave scan's time portions*/ +#endif +} tBTM_INQ_PARMS; + +#define BTM_INQ_RESULT_BR 0x01 +#define BTM_INQ_RESULT_BLE 0x02 + +#if (BLE_INCLUDED == TRUE) +#define BTM_BLE_EVT_CONN_ADV 0x00 +#define BTM_BLE_EVT_CONN_DIR_ADV 0x01 +#define BTM_BLE_EVT_DISC_ADV 0x02 +#define BTM_BLE_EVT_NON_CONN_ADV 0x03 +#define BTM_BLE_EVT_SCAN_RSP 0x04 +typedef UINT8 tBTM_BLE_EVT_TYPE; +#endif + +/* These are the fields returned in each device's response to the inquiry. It +** is returned in the results callback if registered. +*/ +typedef struct { + UINT16 clock_offset; + BD_ADDR remote_bd_addr; + DEV_CLASS dev_class; + UINT8 page_scan_rep_mode; + UINT8 page_scan_per_mode; + UINT8 page_scan_mode; + INT8 rssi; /* Set to BTM_INQ_RES_IGNORE_RSSI if not valid */ + UINT32 eir_uuid[BTM_EIR_SERVICE_ARRAY_SIZE]; + BOOLEAN eir_complete_list; +#if (BLE_INCLUDED == TRUE) + tBT_DEVICE_TYPE device_type; + UINT8 inq_result_type; + UINT8 ble_addr_type; + tBTM_BLE_EVT_TYPE ble_evt_type; + UINT8 flag; +#endif +} tBTM_INQ_RESULTS; + + +/* This is the inquiry response information held in its database by BTM, and available +** to applications via BTM_InqDbRead, BTM_InqDbFirst, and BTM_InqDbNext. +*/ +typedef struct { + tBTM_INQ_RESULTS results; + + BOOLEAN appl_knows_rem_name; /* set by application if it knows the remote name of the peer device. + This is later used by application to determine if remote name request is + required to be done. Having the flag here avoid duplicate store of inquiry results */ +#if ( BLE_INCLUDED == TRUE) + UINT16 remote_name_len; + tBTM_BD_NAME remote_name; + UINT8 remote_name_state; + UINT8 remote_name_type; +#endif + +} tBTM_INQ_INFO; + + +/* Structure returned with inquiry complete callback */ +typedef struct { + tBTM_STATUS status; + UINT8 num_resp; /* Number of results from the current inquiry */ +} tBTM_INQUIRY_CMPL; + + +/* Structure returned with remote name request */ +typedef struct { + UINT16 status; + BD_ADDR bd_addr; + UINT16 length; + BD_NAME remote_bd_name; +} tBTM_REMOTE_DEV_NAME; + +typedef struct { + UINT8 pcm_intf_rate; /* PCM interface rate: 0: 128kbps, 1: 256 kbps; + 2:512 bps; 3: 1024kbps; 4: 2048kbps */ + UINT8 frame_type; /* frame type: 0: short; 1: long */ + UINT8 sync_mode; /* sync mode: 0: slave; 1: master */ + UINT8 clock_mode; /* clock mode: 0: slave; 1: master */ + +} tBTM_SCO_PCM_PARAM; + +/**************************************** +** Device Discovery Callback Functions +*****************************************/ +/* Callback function for asynchronous notifications when the BTM inquiry DB +** changes. First param is inquiry database, second is if added to or removed +** from the inquiry database. +*/ +typedef void (tBTM_INQ_DB_CHANGE_CB) (void *p1, BOOLEAN is_new); + +/* Callback function for notifications when the BTM gets inquiry response. +** First param is inquiry results database, second is pointer of EIR. +*/ +typedef void (tBTM_INQ_RESULTS_CB) (tBTM_INQ_RESULTS *p_inq_results, UINT8 *p_eir); + +/***************************************************************************** +** ACL CHANNEL MANAGEMENT +*****************************************************************************/ +/****************** +** ACL Constants +*******************/ + +/* ACL modes */ +#define BTM_ACL_MODE_NORMAL HCI_MODE_ACTIVE +#define BTM_ACL_MODE_HOLD HCI_MODE_HOLD +#define BTM_ACL_MODE_SNIFF HCI_MODE_SNIFF +#define BTM_ACL_MODE_PARK HCI_MODE_PARK + +/* Returned with structure in role switch callback (tBTM_ROLE_SWITCH_CMPL) */ +#define BTM_ROLE_MASTER HCI_ROLE_MASTER +#define BTM_ROLE_SLAVE HCI_ROLE_SLAVE +#define BTM_ROLE_UNDEFINED 0xff /* undefined value (error status) */ + +/* ACL Packet Types */ +#define BTM_ACL_PKT_TYPES_MASK_DM1 HCI_PKT_TYPES_MASK_DM1 +#define BTM_ACL_PKT_TYPES_MASK_DH1 HCI_PKT_TYPES_MASK_DH1 +#define BTM_ACL_PKT_TYPES_MASK_DM3 HCI_PKT_TYPES_MASK_DM3 +#define BTM_ACL_PKT_TYPES_MASK_DH3 HCI_PKT_TYPES_MASK_DH3 +#define BTM_ACL_PKT_TYPES_MASK_DM5 HCI_PKT_TYPES_MASK_DM5 +#define BTM_ACL_PKT_TYPES_MASK_DH5 HCI_PKT_TYPES_MASK_DH5 +#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH1 HCI_PKT_TYPES_MASK_NO_2_DH1 +#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH1 HCI_PKT_TYPES_MASK_NO_3_DH1 +#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH3 HCI_PKT_TYPES_MASK_NO_2_DH3 +#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH3 HCI_PKT_TYPES_MASK_NO_3_DH3 +#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH5 HCI_PKT_TYPES_MASK_NO_2_DH5 +#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH5 HCI_PKT_TYPES_MASK_NO_3_DH5 + +/*************** +** ACL Types +****************/ + +/* Structure returned with Role Switch information (in tBTM_CMPL_CB callback function) +** in response to BTM_SwitchRole call. +*/ +typedef struct { + UINT8 hci_status; /* HCI status returned with the event */ + UINT8 role; /* BTM_ROLE_MASTER or BTM_ROLE_SLAVE */ + BD_ADDR remote_bd_addr; /* Remote BD addr involved with the switch */ +} tBTM_ROLE_SWITCH_CMPL; + +/* Structure returned with QoS information (in tBTM_CMPL_CB callback function) +** in response to BTM_SetQoS call. +*/ +typedef struct { + FLOW_SPEC flow; + UINT16 handle; + UINT8 status; +} tBTM_QOS_SETUP_CMPL; + + +/* Structure returned with read RSSI event (in tBTM_CMPL_CB callback function) +** in response to BTM_ReadRSSI call. +*/ +typedef struct { + tBTM_STATUS status; + UINT8 hci_status; + INT8 rssi; + BD_ADDR rem_bda; +} tBTM_RSSI_RESULTS; + +/* Structure returned with read current TX power event (in tBTM_CMPL_CB callback function) +** in response to BTM_ReadTxPower call. +*/ +typedef struct { + tBTM_STATUS status; + UINT8 hci_status; + INT8 tx_power; + BD_ADDR rem_bda; +} tBTM_TX_POWER_RESULTS; + +/* Structure returned with read link quality event (in tBTM_CMPL_CB callback function) +** in response to BTM_ReadLinkQuality call. +*/ +typedef struct { + tBTM_STATUS status; + UINT8 hci_status; + UINT8 link_quality; + BD_ADDR rem_bda; +} tBTM_LINK_QUALITY_RESULTS; + +/* Structure returned with read inq tx power quality event (in tBTM_CMPL_CB callback function) +** in response to BTM_ReadInquiryRspTxPower call. +*/ +typedef struct { + tBTM_STATUS status; + UINT8 hci_status; + INT8 tx_power; +} tBTM_INQ_TXPWR_RESULTS; + +enum { + BTM_BL_CONN_EVT, + BTM_BL_DISCN_EVT, + BTM_BL_UPDATE_EVT, + BTM_BL_ROLE_CHG_EVT, + BTM_BL_COLLISION_EVT +}; +typedef UINT8 tBTM_BL_EVENT; +typedef UINT16 tBTM_BL_EVENT_MASK; + +#define BTM_BL_CONN_MASK 0x0001 +#define BTM_BL_DISCN_MASK 0x0002 +#define BTM_BL_UPDATE_MASK 0x0004 +#define BTM_BL_ROLE_CHG_MASK 0x0008 + +/* Device features mask definitions */ +#define BTM_FEATURE_BYTES_PER_PAGE HCI_FEATURE_BYTES_PER_PAGE +#define BTM_EXT_FEATURES_PAGE_MAX HCI_EXT_FEATURES_PAGE_MAX + +/* the data type associated with BTM_BL_CONN_EVT */ +typedef struct { + tBTM_BL_EVENT event; /* The event reported. */ + BD_ADDR_PTR p_bda; /* The address of the newly connected device */ + DEV_CLASS_PTR p_dc; /* The device class */ + BD_NAME_PTR p_bdn; /* The device name */ + UINT8 *p_features; /* pointer to the remote device's features page[0] (supported features page) */ +#if BLE_INCLUDED == TRUE + UINT16 handle; /* connection handle */ + tBT_TRANSPORT transport; /* link is LE or not */ +#endif +} tBTM_BL_CONN_DATA; + +/* the data type associated with BTM_BL_DISCN_EVT */ +typedef struct { + tBTM_BL_EVENT event; /* The event reported. */ + BD_ADDR_PTR p_bda; /* The address of the disconnected device */ +#if BLE_INCLUDED == TRUE + UINT16 handle; /* disconnected connection handle */ + tBT_TRANSPORT transport; /* link is LE link or not */ +#endif +} tBTM_BL_DISCN_DATA; + +/* Busy-Level shall have the inquiry_paging mask set when + * inquiry/paging is in progress, Else the number of ACL links */ +#define BTM_BL_INQUIRY_PAGING_MASK 0x10 +#define BTM_BL_INQUIRY_STARTED (BTM_BL_INQUIRY_PAGING_MASK | 0x1) +#define BTM_BL_INQUIRY_CANCELLED (BTM_BL_INQUIRY_PAGING_MASK | 0x2) +#define BTM_BL_INQUIRY_COMPLETE (BTM_BL_INQUIRY_PAGING_MASK | 0x3) +#define BTM_BL_PAGING_STARTED (BTM_BL_INQUIRY_PAGING_MASK | 0x4) +#define BTM_BL_PAGING_COMPLETE (BTM_BL_INQUIRY_PAGING_MASK | 0x5) +/* the data type associated with BTM_BL_UPDATE_EVT */ +typedef struct { + tBTM_BL_EVENT event; /* The event reported. */ + UINT8 busy_level;/* when paging or inquiring, level is 10. + * Otherwise, the number of ACL links. */ + UINT8 busy_level_flags; /* Notifies actual inquiry/page activities */ +} tBTM_BL_UPDATE_DATA; + +/* the data type associated with BTM_BL_ROLE_CHG_EVT */ +typedef struct { + tBTM_BL_EVENT event; /* The event reported. */ + BD_ADDR_PTR p_bda; /* The address of the peer connected device */ + UINT8 new_role; + UINT8 hci_status; /* HCI status returned with the event */ +} tBTM_BL_ROLE_CHG_DATA; + +typedef union { + tBTM_BL_EVENT event; /* The event reported. */ + tBTM_BL_CONN_DATA conn; /* The data associated with BTM_BL_CONN_EVT */ + tBTM_BL_DISCN_DATA discn; /* The data associated with BTM_BL_DISCN_EVT */ + tBTM_BL_UPDATE_DATA update; /* The data associated with BTM_BL_UPDATE_EVT */ + tBTM_BL_ROLE_CHG_DATA role_chg;/*The data associated with BTM_BL_ROLE_CHG_EVT */ +} tBTM_BL_EVENT_DATA; + +/* Callback function for notifications when the BTM busy level +** changes. +*/ +typedef void (tBTM_BL_CHANGE_CB) (tBTM_BL_EVENT_DATA *p_data); + +/*************************** +** ACL Callback Functions +****************************/ +/* Callback function for notifications when the BTM ACL connection DB +** changes. First param is BD address, second is if added or removed. +** Registered through BTM_AclRegisterForChanges call. +*/ +#if BLE_INCLUDED == TRUE +typedef void (tBTM_ACL_DB_CHANGE_CB) (BD_ADDR p_bda, DEV_CLASS p_dc, + BD_NAME p_bdn, UINT8 *features, + BOOLEAN is_new, UINT16 handle, + tBT_TRANSPORT transport); +#else +typedef void (tBTM_ACL_DB_CHANGE_CB) (BD_ADDR p_bda, DEV_CLASS p_dc, + BD_NAME p_bdn, UINT8 *features, + BOOLEAN is_new); +#endif +/***************************************************************************** +** SCO CHANNEL MANAGEMENT +*****************************************************************************/ +/****************** +** SCO Constants +*******************/ + +/* Define an invalid SCO index and an invalid HCI handle */ +#define BTM_INVALID_SCO_INDEX 0xFFFF +#define BTM_INVALID_HCI_HANDLE 0xFFFF + +/* Define an invalid SCO disconnect reason */ +#define BTM_INVALID_SCO_DISC_REASON 0xFFFF + +/* Define first active SCO index */ +#define BTM_FIRST_ACTIVE_SCO_INDEX BTM_MAX_SCO_LINKS + +/* Define SCO packet types used in APIs */ +#define BTM_SCO_PKT_TYPES_MASK_HV1 HCI_ESCO_PKT_TYPES_MASK_HV1 +#define BTM_SCO_PKT_TYPES_MASK_HV2 HCI_ESCO_PKT_TYPES_MASK_HV2 +#define BTM_SCO_PKT_TYPES_MASK_HV3 HCI_ESCO_PKT_TYPES_MASK_HV3 +#define BTM_SCO_PKT_TYPES_MASK_EV3 HCI_ESCO_PKT_TYPES_MASK_EV3 +#define BTM_SCO_PKT_TYPES_MASK_EV4 HCI_ESCO_PKT_TYPES_MASK_EV4 +#define BTM_SCO_PKT_TYPES_MASK_EV5 HCI_ESCO_PKT_TYPES_MASK_EV5 +#define BTM_SCO_PKT_TYPES_MASK_NO_2_EV3 HCI_ESCO_PKT_TYPES_MASK_NO_2_EV3 +#define BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 HCI_ESCO_PKT_TYPES_MASK_NO_3_EV3 +#define BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 HCI_ESCO_PKT_TYPES_MASK_NO_2_EV5 +#define BTM_SCO_PKT_TYPES_MASK_NO_3_EV5 HCI_ESCO_PKT_TYPES_MASK_NO_3_EV5 + +#define BTM_SCO_LINK_ONLY_MASK (BTM_SCO_PKT_TYPES_MASK_HV1 | \ + BTM_SCO_PKT_TYPES_MASK_HV2 | \ + BTM_SCO_PKT_TYPES_MASK_HV3) + +#define BTM_ESCO_LINK_ONLY_MASK (BTM_SCO_PKT_TYPES_MASK_EV3 | \ + BTM_SCO_PKT_TYPES_MASK_EV4 | \ + BTM_SCO_PKT_TYPES_MASK_EV5) + +#define BTM_SCO_LINK_ALL_PKT_MASK (BTM_SCO_LINK_ONLY_MASK | \ + BTM_ESCO_LINK_ONLY_MASK) + +#define BTM_VALID_SCO_ALL_PKT_TYPE HCI_VALID_SCO_ALL_PKT_TYPE + +/* Passed in BTM_CreateSco if the packet type parameter should be ignored */ +#define BTM_IGNORE_SCO_PKT_TYPE 0 + +/*************** +** SCO Types +****************/ +#define BTM_LINK_TYPE_SCO HCI_LINK_TYPE_SCO +#define BTM_LINK_TYPE_ESCO HCI_LINK_TYPE_ESCO +typedef UINT8 tBTM_SCO_TYPE; + + +/******************* +** SCO Routing Path +********************/ +#define BTM_SCO_ROUTE_PCM HCI_BRCM_SCO_ROUTE_PCM +#define BTM_SCO_ROUTE_HCI HCI_BRCM_SCO_ROUTE_HCI +typedef UINT8 tBTM_SCO_ROUTE_TYPE; + + +/******************* +** SCO Codec Types +********************/ +// TODO(google) This should use common definitions +// in hci/include/hci_audio.h +#define BTM_SCO_CODEC_NONE 0x0000 +#define BTM_SCO_CODEC_CVSD 0x0001 +#define BTM_SCO_CODEC_MSBC 0x0002 +typedef UINT16 tBTM_SCO_CODEC_TYPE; + + + +/******************* +** SCO Air Mode Types +********************/ +#define BTM_SCO_AIR_MODE_U_LAW 0 +#define BTM_SCO_AIR_MODE_A_LAW 1 +#define BTM_SCO_AIR_MODE_CVSD 2 +#define BTM_SCO_AIR_MODE_TRANSPNT 3 +typedef UINT8 tBTM_SCO_AIR_MODE_TYPE; + +/******************* +** SCO Voice Settings +********************/ +#define BTM_VOICE_SETTING_CVSD ((UINT16) (HCI_INP_CODING_LINEAR | \ + HCI_INP_DATA_FMT_2S_COMPLEMENT | \ + HCI_INP_SAMPLE_SIZE_16BIT | \ + HCI_AIR_CODING_FORMAT_CVSD)) + +#define BTM_VOICE_SETTING_TRANS ((UINT16) (HCI_INP_CODING_LINEAR | \ + HCI_INP_DATA_FMT_2S_COMPLEMENT | \ + HCI_INP_SAMPLE_SIZE_16BIT | \ + HCI_AIR_CODING_FORMAT_TRANSPNT)) + +/******************* +** SCO Data Status +********************/ +enum { + BTM_SCO_DATA_CORRECT, + BTM_SCO_DATA_PAR_ERR, + BTM_SCO_DATA_NONE, + BTM_SCO_DATA_PAR_LOST +}; +typedef UINT8 tBTM_SCO_DATA_FLAG; + +/*************************** +** SCO Callback Functions +****************************/ +typedef void (tBTM_SCO_CB) (UINT16 sco_inx); +typedef void (tBTM_SCO_DATA_CB) (UINT16 sco_inx, BT_HDR *p_data, tBTM_SCO_DATA_FLAG status); + +/****************** +** eSCO Constants +*******************/ +#define BTM_64KBITS_RATE 0x00001f40 /* 64 kbits/sec data rate */ + +/* Retransmission effort */ +#define BTM_ESCO_RETRANS_OFF 0 +#define BTM_ESCO_RETRANS_POWER 1 +#define BTM_ESCO_RETRANS_QUALITY 2 +#define BTM_ESCO_RETRANS_DONTCARE 0xff + +/* Max Latency Don't Care */ +#define BTM_ESCO_MAX_LAT_DONTCARE 0xffff + +/*************** +** eSCO Types +****************/ +/* tBTM_ESCO_CBACK event types */ +#define BTM_ESCO_CHG_EVT 1 +#define BTM_ESCO_CONN_REQ_EVT 2 +typedef UINT8 tBTM_ESCO_EVT; + +/* Passed into BTM_SetEScoMode() */ +typedef struct { + UINT32 tx_bw; + UINT32 rx_bw; + UINT16 max_latency; + UINT16 voice_contfmt; /* Voice Settings or Content Format */ + UINT16 packet_types; + UINT8 retrans_effort; +} tBTM_ESCO_PARAMS; + +typedef struct { + UINT16 max_latency; + UINT16 packet_types; + UINT8 retrans_effort; +} tBTM_CHG_ESCO_PARAMS; + +/* Returned by BTM_ReadEScoLinkParms() */ +typedef struct { + UINT16 rx_pkt_len; + UINT16 tx_pkt_len; + BD_ADDR bd_addr; + UINT8 link_type; /* BTM_LINK_TYPE_SCO or BTM_LINK_TYPE_ESCO */ + UINT8 tx_interval; + UINT8 retrans_window; + UINT8 air_mode; +} tBTM_ESCO_DATA; + +typedef struct { + UINT16 sco_inx; + UINT16 rx_pkt_len; + UINT16 tx_pkt_len; + BD_ADDR bd_addr; + UINT8 hci_status; + UINT8 tx_interval; + UINT8 retrans_window; +} tBTM_CHG_ESCO_EVT_DATA; + +typedef struct { + UINT16 sco_inx; + BD_ADDR bd_addr; + DEV_CLASS dev_class; + tBTM_SCO_TYPE link_type; +} tBTM_ESCO_CONN_REQ_EVT_DATA; + +typedef union { + tBTM_CHG_ESCO_EVT_DATA chg_evt; + tBTM_ESCO_CONN_REQ_EVT_DATA conn_evt; +} tBTM_ESCO_EVT_DATA; + +/*************************** +** eSCO Callback Functions +****************************/ +typedef void (tBTM_ESCO_CBACK) (tBTM_ESCO_EVT event, tBTM_ESCO_EVT_DATA *p_data); + + +/***************************************************************************** +** SECURITY MANAGEMENT +*****************************************************************************/ +/******************************* +** Security Manager Constants +********************************/ + +/* Security Mode (BTM_SetSecurityMode) */ +#define BTM_SEC_MODE_UNDEFINED 0 +#define BTM_SEC_MODE_NONE 1 +#define BTM_SEC_MODE_SERVICE 2 +#define BTM_SEC_MODE_LINK 3 +#define BTM_SEC_MODE_SP 4 +#define BTM_SEC_MODE_SP_DEBUG 5 +#define BTM_SEC_MODE_SC 6 + +/* Maximum Number of BTM Security Modes */ +#define BTM_SEC_MODES_MAX 7 + +/* Security Service Levels [bit mask] (BTM_SetSecurityLevel) +** Encryption should not be used without authentication +*/ +#define BTM_SEC_NONE 0x0000 /* Nothing required */ +#define BTM_SEC_IN_AUTHORIZE 0x0001 /* Inbound call requires authorization */ +#define BTM_SEC_IN_AUTHENTICATE 0x0002 /* Inbound call requires authentication */ +#define BTM_SEC_IN_ENCRYPT 0x0004 /* Inbound call requires encryption */ +#define BTM_SEC_OUT_AUTHORIZE 0x0008 /* Outbound call requires authorization */ +#define BTM_SEC_OUT_AUTHENTICATE 0x0010 /* Outbound call requires authentication */ +#define BTM_SEC_OUT_ENCRYPT 0x0020 /* Outbound call requires encryption */ +#define BTM_SEC_MODE4_LEVEL4 0x0040 /* Secure Connections Only Mode */ +#define BTM_SEC_FORCE_MASTER 0x0100 /* Need to switch connection to be master */ +#define BTM_SEC_ATTEMPT_MASTER 0x0200 /* Try to switch connection to be master */ +#define BTM_SEC_FORCE_SLAVE 0x0400 /* Need to switch connection to be master */ +#define BTM_SEC_ATTEMPT_SLAVE 0x0800 /* Try to switch connection to be slave */ +#define BTM_SEC_IN_MITM 0x1000 /* inbound Do man in the middle protection */ +#define BTM_SEC_OUT_MITM 0x2000 /* outbound Do man in the middle protection */ +#define BTM_SEC_IN_MIN_16_DIGIT_PIN 0x4000 /* enforce a minimum of 16 digit for sec mode 2 */ + +/* Security Flags [bit mask] (BTM_GetSecurityFlags) +*/ +#define BTM_SEC_FLAG_AUTHORIZED 0x01 +#define BTM_SEC_FLAG_AUTHENTICATED 0x02 +#define BTM_SEC_FLAG_ENCRYPTED 0x04 +#define BTM_SEC_FLAG_LKEY_KNOWN 0x10 +#define BTM_SEC_FLAG_LKEY_AUTHED 0x20 + +/* PIN types */ +#define BTM_PIN_TYPE_VARIABLE HCI_PIN_TYPE_VARIABLE +#define BTM_PIN_TYPE_FIXED HCI_PIN_TYPE_FIXED + +/* Link Key types used to generate the new link key. +** returned in link key notification callback function +*/ +#define BTM_LKEY_TYPE_COMBINATION HCI_LKEY_TYPE_COMBINATION +#define BTM_LKEY_TYPE_LOCAL_UNIT HCI_LKEY_TYPE_LOCAL_UNIT +#define BTM_LKEY_TYPE_REMOTE_UNIT HCI_LKEY_TYPE_REMOTE_UNIT +#define BTM_LKEY_TYPE_DEBUG_COMB HCI_LKEY_TYPE_DEBUG_COMB +#define BTM_LKEY_TYPE_UNAUTH_COMB HCI_LKEY_TYPE_UNAUTH_COMB +#define BTM_LKEY_TYPE_AUTH_COMB HCI_LKEY_TYPE_AUTH_COMB +#define BTM_LKEY_TYPE_CHANGED_COMB HCI_LKEY_TYPE_CHANGED_COMB + +#define BTM_LKEY_TYPE_UNAUTH_COMB_P_256 HCI_LKEY_TYPE_UNAUTH_COMB_P_256 +#define BTM_LKEY_TYPE_AUTH_COMB_P_256 HCI_LKEY_TYPE_AUTH_COMB_P_256 + +#define BTM_LTK_DERIVED_LKEY_OFFSET 0x20 /* "easy" requirements for LK derived from LTK */ +#define BTM_LKEY_TYPE_IGNORE 0xff /* used when event is response from + hci return link keys request */ + +typedef UINT8 tBTM_LINK_KEY_TYPE; + +/* Protocol level security (BTM_SetSecurityLevel) */ +#define BTM_SEC_PROTO_L2CAP 0 +#define BTM_SEC_PROTO_SDP 1 +#define BTM_SEC_PROTO_TCS 2 +#define BTM_SEC_PROTO_RFCOMM 3 +#define BTM_SEC_PROTO_OBEX 4 +#define BTM_SEC_PROTO_BNEP 5 +#define BTM_SEC_PROTO_HID 6 /* HID */ +#define BTM_SEC_PROTO_AVDT 7 +#define BTM_SEC_PROTO_MCA 8 + +/* Determine the number of UINT32's necessary for security services */ +#define BTM_SEC_ARRAY_BITS 32 /* Number of bits in each array element */ +#define BTM_SEC_SERVICE_ARRAY_SIZE (((UINT32)BTM_SEC_MAX_SERVICES / BTM_SEC_ARRAY_BITS) + \ + (((UINT32)BTM_SEC_MAX_SERVICES % BTM_SEC_ARRAY_BITS) ? 1 : 0)) + +/* Security service definitions (BTM_SetSecurityLevel) +** Used for Authorization APIs +*/ +#define BTM_SEC_SERVICE_SDP_SERVER 0 +#define BTM_SEC_SERVICE_SERIAL_PORT 1 +#define BTM_SEC_SERVICE_LAN_ACCESS 2 +#define BTM_SEC_SERVICE_DUN 3 +#define BTM_SEC_SERVICE_IRMC_SYNC 4 +#define BTM_SEC_SERVICE_IRMC_SYNC_CMD 5 +#define BTM_SEC_SERVICE_OBEX 6 +#define BTM_SEC_SERVICE_OBEX_FTP 7 +#define BTM_SEC_SERVICE_HEADSET 8 +#define BTM_SEC_SERVICE_CORDLESS 9 +#define BTM_SEC_SERVICE_INTERCOM 10 +#define BTM_SEC_SERVICE_FAX 11 +#define BTM_SEC_SERVICE_HEADSET_AG 12 +#define BTM_SEC_SERVICE_PNP_INFO 13 +#define BTM_SEC_SERVICE_GEN_NET 14 +#define BTM_SEC_SERVICE_GEN_FILE 15 +#define BTM_SEC_SERVICE_GEN_AUDIO 16 +#define BTM_SEC_SERVICE_GEN_TEL 17 +#define BTM_SEC_SERVICE_CTP_DATA 18 +#define BTM_SEC_SERVICE_HCRP_CTRL 19 +#define BTM_SEC_SERVICE_HCRP_DATA 20 +#define BTM_SEC_SERVICE_HCRP_NOTIF 21 +#define BTM_SEC_SERVICE_BPP_JOB 22 +#define BTM_SEC_SERVICE_BPP_STATUS 23 +#define BTM_SEC_SERVICE_BPP_REF 24 +#define BTM_SEC_SERVICE_BNEP_PANU 25 +#define BTM_SEC_SERVICE_BNEP_GN 26 +#define BTM_SEC_SERVICE_BNEP_NAP 27 +#define BTM_SEC_SERVICE_HF_HANDSFREE 28 +#define BTM_SEC_SERVICE_AG_HANDSFREE 29 +#define BTM_SEC_SERVICE_TE_PHONE_ACCESS 30 +#define BTM_SEC_SERVICE_ME_PHONE_ACCESS 31 + +#define BTM_SEC_SERVICE_HIDH_SEC_CTRL 32 +#define BTM_SEC_SERVICE_HIDH_NOSEC_CTRL 33 +#define BTM_SEC_SERVICE_HIDH_INTR 34 +#define BTM_SEC_SERVICE_BIP 35 +#define BTM_SEC_SERVICE_BIP_REF 36 +#define BTM_SEC_SERVICE_AVDTP 37 +#define BTM_SEC_SERVICE_AVDTP_NOSEC 38 +#define BTM_SEC_SERVICE_AVCTP 39 +#define BTM_SEC_SERVICE_SAP 40 +#define BTM_SEC_SERVICE_PBAP 41 +#define BTM_SEC_SERVICE_RFC_MUX 42 +#define BTM_SEC_SERVICE_AVCTP_BROWSE 43 +#define BTM_SEC_SERVICE_MAP 44 +#define BTM_SEC_SERVICE_MAP_NOTIF 45 +#define BTM_SEC_SERVICE_MCAP_CTRL 46 +#define BTM_SEC_SERVICE_MCAP_DATA 47 +#define BTM_SEC_SERVICE_HDP_SNK 48 +#define BTM_SEC_SERVICE_HDP_SRC 49 +#define BTM_SEC_SERVICE_ATT 50 + +/* Update these as services are added */ +#define BTM_SEC_SERVICE_FIRST_EMPTY 51 + +#ifndef BTM_SEC_MAX_SERVICES +#define BTM_SEC_MAX_SERVICES 65 +#endif + +/************************************************************************************************ +** Security Services MACROS handle array of UINT32 bits for more than 32 trusted services +*************************************************************************************************/ +/* MACRO to set the security service bit mask in a bit stream */ +#define BTM_SEC_SET_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)] |= \ + ((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS))) + + +/* MACRO to clear the security service bit mask in a bit stream */ +#define BTM_SEC_CLR_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)] &= \ + ~((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS))) + +/* MACRO to check the security service bit mask in a bit stream (Returns TRUE or FALSE) */ +#define BTM_SEC_IS_SERVICE_TRUSTED(p, service) (((((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)]) & \ + (UINT32)(((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS)))) ? TRUE : FALSE) + +/* MACRO to copy two trusted device bitmask */ +#define BTM_SEC_COPY_TRUSTED_DEVICE(p_src, p_dst) {UINT32 trst; for (trst = 0; trst < BTM_SEC_SERVICE_ARRAY_SIZE; trst++) \ + ((UINT32 *)(p_dst))[trst] = ((UINT32 *)(p_src))[trst];} + +/* MACRO to clear two trusted device bitmask */ +#define BTM_SEC_CLR_TRUSTED_DEVICE(p_dst) {UINT32 trst; for (trst = 0; trst < BTM_SEC_SERVICE_ARRAY_SIZE; trst++) \ + ((UINT32 *)(p_dst))[trst] = 0;} + +/* Following bits can be provided by host in the trusted_mask array */ +/* 0..31 bits of mask[0] (Least Significant Word) */ +#define BTM_SEC_TRUST_SDP_SERVER (1 << BTM_SEC_SERVICE_SDP_SERVER) +#define BTM_SEC_TRUST_SERIAL_PORT (1 << BTM_SEC_SERVICE_SERIAL_PORT) +#define BTM_SEC_TRUST_LAN_ACCESS (1 << BTM_SEC_SERVICE_LAN_ACCESS) +#define BTM_SEC_TRUST_DUN (1 << BTM_SEC_SERVICE_DUN) +#define BTM_SEC_TRUST_IRMC_SYNC (1 << BTM_SEC_SERVICE_IRMC_SYNC) +#define BTM_SEC_TRUST_IRMC_SYNC_CMD (1 << BTM_SEC_SERVICE_IRMC_SYNC_CMD) +#define BTM_SEC_TRUST_OBEX (1 << BTM_SEC_SERVICE_OBEX) +#define BTM_SEC_TRUST_OBEX_FTP (1 << BTM_SEC_SERVICE_OBEX_FTP) +#define BTM_SEC_TRUST_HEADSET (1 << BTM_SEC_SERVICE_HEADSET) +#define BTM_SEC_TRUST_CORDLESS (1 << BTM_SEC_SERVICE_CORDLESS) +#define BTM_SEC_TRUST_INTERCOM (1 << BTM_SEC_SERVICE_INTERCOM) +#define BTM_SEC_TRUST_FAX (1 << BTM_SEC_SERVICE_FAX) +#define BTM_SEC_TRUST_HEADSET_AG (1 << BTM_SEC_SERVICE_HEADSET_AG) +#define BTM_SEC_TRUST_PNP_INFO (1 << BTM_SEC_SERVICE_PNP_INFO) +#define BTM_SEC_TRUST_GEN_NET (1 << BTM_SEC_SERVICE_GEN_NET) +#define BTM_SEC_TRUST_GEN_FILE (1 << BTM_SEC_SERVICE_GEN_FILE) +#define BTM_SEC_TRUST_GEN_AUDIO (1 << BTM_SEC_SERVICE_GEN_AUDIO) +#define BTM_SEC_TRUST_GEN_TEL (1 << BTM_SEC_SERVICE_GEN_TEL) +#define BTM_SEC_TRUST_CTP_DATA (1 << BTM_SEC_SERVICE_CTP_DATA) +#define BTM_SEC_TRUST_HCRP_CTRL (1 << BTM_SEC_SERVICE_HCRP_CTRL) +#define BTM_SEC_TRUST_HCRP_DATA (1 << BTM_SEC_SERVICE_HCRP_DATA) +#define BTM_SEC_TRUST_HCRP_NOTIF (1 << BTM_SEC_SERVICE_HCRP_NOTIF) +#define BTM_SEC_TRUST_BPP_JOB (1 << BTM_SEC_SERVICE_JOB) +#define BTM_SEC_TRUST_BPP_STATUS (1 << BTM_SEC_SERVICE_STATUS) +#define BTM_SEC_TRUST_BPP_REF (1 << BTM_SEC_SERVICE_REF) +#define BTM_SEC_TRUST_BNEP_PANU (1 << BTM_SEC_SERVICE_BNEP_PANU) +#define BTM_SEC_TRUST_BNEP_GN (1 << BTM_SEC_SERVICE_BNEP_GN) +#define BTM_SEC_TRUST_BNEP_NAP (1 << BTM_SEC_SERVICE_BNEP_NAP) +#define BTM_SEC_TRUST_HFP_HF (1 << BTM_SEC_SERVICE_HF_HANDSFREE) +#define BTM_SEC_TRUST_HFP_AG (1 << BTM_SEC_SERVICE_AG_HANDSFREE) +#define BTM_SEC_TRUST_TE_PHONE_ACCESS (1 << BTM_SEC_SERVICE_TE_PHONE_ACCESS) +#define BTM_SEC_TRUST_ME_PHONE_ACCESS (1 << BTM_SEC_SERVICE_ME_PHONE_ACCESS) + +/* 0..31 bits of mask[1] (Most Significant Word) */ +#define BTM_SEC_TRUST_HIDH_CTRL (1 << (BTM_SEC_SERVICE_HIDH_SEC_CTRL - 32)) +#define BTM_SEC_TRUST_HIDH_NOSEC_CTRL (1 << (BTM_SEC_SERVICE_HIDH_NOSEC_CTRL - 32)) +#define BTM_SEC_TRUST_HIDH_INTR (1 << (BTM_SEC_SERVICE_HIDH_INTR - 32)) +#define BTM_SEC_TRUST_BIP (1 << (BTM_SEC_SERVICE_BIP - 32)) +#define BTM_SEC_TRUST_BIP_REF (1 << (BTM_SEC_SERVICE_BIP_REF - 32)) +#define BTM_SEC_TRUST_AVDTP (1 << (BTM_SEC_SERVICE_AVDTP - 32)) +#define BTM_SEC_TRUST_AVDTP_NOSEC (1 << (BTM_SEC_SERVICE_AVDTP_NOSEC - 32)) +#define BTM_SEC_TRUST_AVCTP (1 << (BTM_SEC_SERVICE_AVCTP - 32)) +#define BTM_SEC_TRUST_SAP (1 << (BTM_SEC_SERVICE_SAP - 32)) +#define BTM_SEC_TRUST_PBAP (1 << (BTM_SEC_SERVICE_PBAP - 32)) +#define BTM_SEC_TRUST_RFC_MUX (1 << (BTM_SEC_SERVICE_RFC_MUX - 32)) +#define BTM_SEC_TRUST_AVCTP_BROWSE (1 << (BTM_SEC_SERVICE_AVCTP_BROWSE - 32)) +#define BTM_SEC_TRUST_MAP (1 << (BTM_SEC_SERVICE_MAP - 32)) +#define BTM_SEC_TRUST_MAP_NOTIF (1 << (BTM_SEC_SERVICE_MAP_NOTIF - 32)) +#define BTM_SEC_TRUST_MCAP_CTRL (1 << (BTM_SEC_SERVICE_MCAP_CTRL - 32)) +#define BTM_SEC_TRUST_MCAP_DATA (1 << (BTM_SEC_SERVICE_MCAP_DATA - 32)) +#define BTM_SEC_TRUST_HDP_SNK (1 << (BTM_SEC_SERVICE_HDP_SNK - 32)) +#define BTM_SEC_TRUST_HDP_SRC (1 << (BTM_SEC_SERVICE_HDP_SRC - 32)) + +#define BTM_SEC_TRUST_ALL 0xFFFFFFFF /* for each array element */ + +/**************************************** +** Security Manager Callback Functions +*****************************************/ +/* Authorize device for service. Parameters are +** BD Address of remote +** Device Class of remote +** BD Name of remote +** Service name +** Service Id (NULL - unknown service or unused +** [BTM_SEC_SERVICE_NAME_LEN set to 0]) +** Is originator of the connection +** Result of the operation +*/ +typedef UINT8 (tBTM_AUTHORIZE_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class, + tBTM_BD_NAME bd_name, UINT8 *service_name, + UINT8 service_id, BOOLEAN is_originator); + +/* Get PIN for the connection. Parameters are +** BD Address of remote +** Device Class of remote +** BD Name of remote +** Flag indicating the minimum pin code length to be 16 digits +*/ +typedef UINT8 (tBTM_PIN_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class, + tBTM_BD_NAME bd_name, BOOLEAN min_16_digit); + +/* New Link Key for the connection. Parameters are +** BD Address of remote +** Link Key +** Key Type: Combination, Local Unit, or Remote Unit +*/ +typedef UINT8 (tBTM_LINK_KEY_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class, + tBTM_BD_NAME bd_name, UINT8 *key, + UINT8 key_type); + + +/* Remote Name Resolved. Parameters are +** BD Address of remote +** BD Name of remote +*/ +typedef void (tBTM_RMT_NAME_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dc, + tBTM_BD_NAME bd_name); + + +/* Authentication complete for the connection. Parameters are +** BD Address of remote +** Device Class of remote +** BD Name of remote +** +*/ +typedef UINT8 (tBTM_AUTH_COMPLETE_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class, + tBTM_BD_NAME bd_name, int result); + +enum { + BTM_SP_IO_REQ_EVT, /* received IO_CAPABILITY_REQUEST event */ + BTM_SP_IO_RSP_EVT, /* received IO_CAPABILITY_RESPONSE event */ + BTM_SP_CFM_REQ_EVT, /* received USER_CONFIRMATION_REQUEST event */ + BTM_SP_KEY_NOTIF_EVT, /* received USER_PASSKEY_NOTIFY event */ + BTM_SP_KEY_REQ_EVT, /* received USER_PASSKEY_REQUEST event */ + BTM_SP_KEYPRESS_EVT, /* received KEYPRESS_NOTIFY event */ + BTM_SP_LOC_OOB_EVT, /* received result for READ_LOCAL_OOB_DATA command */ + BTM_SP_RMT_OOB_EVT, /* received REMOTE_OOB_DATA_REQUEST event */ + BTM_SP_COMPLT_EVT, /* received SIMPLE_PAIRING_COMPLETE event */ + BTM_SP_UPGRADE_EVT /* check if the application wants to upgrade the link key */ +}; +typedef UINT8 tBTM_SP_EVT; + +#define BTM_IO_CAP_OUT 0 /* DisplayOnly */ +#define BTM_IO_CAP_IO 1 /* DisplayYesNo */ +#define BTM_IO_CAP_IN 2 /* KeyboardOnly */ +#define BTM_IO_CAP_NONE 3 /* NoInputNoOutput */ +#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE +#define BTM_IO_CAP_KBDISP 4 /* Keyboard display */ +#define BTM_IO_CAP_MAX 5 +#else +#define BTM_IO_CAP_MAX 4 +#endif + +typedef UINT8 tBTM_IO_CAP; + +#define BTM_MAX_PASSKEY_VAL (999999) +#define BTM_MIN_PASSKEY_VAL (0) + +#define BTM_AUTH_SP_NO 0 /* MITM Protection Not Required - Single Profile/non-bonding + Numeric comparison with automatic accept allowed */ +#define BTM_AUTH_SP_YES 1 /* MITM Protection Required - Single Profile/non-bonding + Use IO Capabilities to determine authentication procedure */ +#define BTM_AUTH_AP_NO 2 /* MITM Protection Not Required - All Profiles/dedicated bonding + Numeric comparison with automatic accept allowed */ +#define BTM_AUTH_AP_YES 3 /* MITM Protection Required - All Profiles/dedicated bonding + Use IO Capabilities to determine authentication procedure */ +#define BTM_AUTH_SPGB_NO 4 /* MITM Protection Not Required - Single Profiles/general bonding + Numeric comparison with automatic accept allowed */ +#define BTM_AUTH_SPGB_YES 5 /* MITM Protection Required - Single Profiles/general bonding + Use IO Capabilities to determine authentication procedure */ +#define BTM_AUTH_DD_BOND 2 /* this bit is ORed to the BTM_AUTH_SP_* when IO exchange for dedicated bonding */ +#define BTM_AUTH_GB_BIT 4 /* the genernal bonding bit */ +#define BTM_AUTH_BONDS 6 /* the general/dedicated bonding bits */ +#define BTM_AUTH_YN_BIT 1 /* this is the Yes or No bit */ + +#define BTM_BLE_INITIATOR_KEY_SIZE 15 +#define BTM_BLE_RESPONDER_KEY_SIZE 15 +#define BTM_BLE_MAX_KEY_SIZE 16 + +typedef UINT8 tBTM_AUTH_REQ; + +enum { + BTM_OOB_NONE, + BTM_OOB_PRESENT +#if BTM_OOB_INCLUDED == TRUE + , BTM_OOB_UNKNOWN +#endif +}; +typedef UINT8 tBTM_OOB_DATA; + +/* data type for BTM_SP_IO_REQ_EVT */ +typedef struct { + BD_ADDR bd_addr; /* peer address */ + tBTM_IO_CAP io_cap; /* local IO capabilities */ + tBTM_OOB_DATA oob_data; /* OOB data present (locally) for the peer device */ + tBTM_AUTH_REQ auth_req; /* Authentication required (for local device) */ + BOOLEAN is_orig; /* TRUE, if local device initiated the SP process */ +} tBTM_SP_IO_REQ; + +/* data type for BTM_SP_IO_RSP_EVT */ +typedef struct { + BD_ADDR bd_addr; /* peer address */ + tBTM_IO_CAP io_cap; /* peer IO capabilities */ + tBTM_OOB_DATA oob_data; /* OOB data present at peer device for the local device */ + tBTM_AUTH_REQ auth_req; /* Authentication required for peer device */ +} tBTM_SP_IO_RSP; + +/* data type for BTM_SP_CFM_REQ_EVT */ +typedef struct { + BD_ADDR bd_addr; /* peer address */ + DEV_CLASS dev_class; /* peer CoD */ + tBTM_BD_NAME bd_name; /* peer device name */ + UINT32 num_val; /* the numeric value for comparison. If just_works, do not show this number to UI */ + BOOLEAN just_works; /* TRUE, if "Just Works" association model */ + tBTM_AUTH_REQ loc_auth_req; /* Authentication required for local device */ + tBTM_AUTH_REQ rmt_auth_req; /* Authentication required for peer device */ + tBTM_IO_CAP loc_io_caps; /* IO Capabilities of the local device */ + tBTM_IO_CAP rmt_io_caps; /* IO Capabilities of the remot device */ +} tBTM_SP_CFM_REQ; + +/* data type for BTM_SP_KEY_REQ_EVT */ +typedef struct { + BD_ADDR bd_addr; /* peer address */ + DEV_CLASS dev_class; /* peer CoD */ + tBTM_BD_NAME bd_name; /* peer device name */ +} tBTM_SP_KEY_REQ; + +/* data type for BTM_SP_KEY_NOTIF_EVT */ +typedef struct { + BD_ADDR bd_addr; /* peer address */ + DEV_CLASS dev_class; /* peer CoD */ + tBTM_BD_NAME bd_name; /* peer device name */ + UINT32 passkey; /* passkey */ +} tBTM_SP_KEY_NOTIF; + +enum { + BTM_SP_KEY_STARTED, /* 0 - passkey entry started */ + BTM_SP_KEY_ENTERED, /* 1 - passkey digit entered */ + BTM_SP_KEY_ERASED, /* 2 - passkey digit erased */ + BTM_SP_KEY_CLEARED, /* 3 - passkey cleared */ + BTM_SP_KEY_COMPLT, /* 4 - passkey entry completed */ + BTM_SP_KEY_OUT_OF_RANGE /* 5 - out of range */ +}; +typedef UINT8 tBTM_SP_KEY_TYPE; + +/* data type for BTM_SP_KEYPRESS_EVT */ +typedef struct { + BD_ADDR bd_addr; /* peer address */ + tBTM_SP_KEY_TYPE notif_type; +} tBTM_SP_KEYPRESS; + +/* data type for BTM_SP_LOC_OOB_EVT */ +typedef struct { + tBTM_STATUS status; /* */ + BT_OCTET16 c; /* Simple Pairing Hash C */ + BT_OCTET16 r; /* Simple Pairing Randomnizer R */ +} tBTM_SP_LOC_OOB; + +/* data type for BTM_SP_RMT_OOB_EVT */ +typedef struct { + BD_ADDR bd_addr; /* peer address */ + DEV_CLASS dev_class; /* peer CoD */ + tBTM_BD_NAME bd_name; /* peer device name */ +} tBTM_SP_RMT_OOB; + + +/* data type for BTM_SP_COMPLT_EVT */ +typedef struct { + BD_ADDR bd_addr; /* peer address */ + DEV_CLASS dev_class; /* peer CoD */ + tBTM_BD_NAME bd_name; /* peer device name */ + tBTM_STATUS status; /* status of the simple pairing process */ +} tBTM_SP_COMPLT; + +/* data type for BTM_SP_UPGRADE_EVT */ +typedef struct { + BD_ADDR bd_addr; /* peer address */ + BOOLEAN upgrade; /* TRUE, to upgrade the link key */ +} tBTM_SP_UPGRADE; + +typedef union { + tBTM_SP_IO_REQ io_req; /* BTM_SP_IO_REQ_EVT */ + tBTM_SP_IO_RSP io_rsp; /* BTM_SP_IO_RSP_EVT */ + tBTM_SP_CFM_REQ cfm_req; /* BTM_SP_CFM_REQ_EVT */ + tBTM_SP_KEY_NOTIF key_notif; /* BTM_SP_KEY_NOTIF_EVT */ + tBTM_SP_KEY_REQ key_req; /* BTM_SP_KEY_REQ_EVT */ + tBTM_SP_KEYPRESS key_press; /* BTM_SP_KEYPRESS_EVT */ + tBTM_SP_LOC_OOB loc_oob; /* BTM_SP_LOC_OOB_EVT */ + tBTM_SP_RMT_OOB rmt_oob; /* BTM_SP_RMT_OOB_EVT */ + tBTM_SP_COMPLT complt; /* BTM_SP_COMPLT_EVT */ + tBTM_SP_UPGRADE upgrade; /* BTM_SP_UPGRADE_EVT */ +} tBTM_SP_EVT_DATA; + +/* Simple Pairing Events. Called by the stack when Simple Pairing related +** events occur. +*/ +typedef UINT8 (tBTM_SP_CALLBACK) (tBTM_SP_EVT event, tBTM_SP_EVT_DATA *p_data); + + +typedef void (tBTM_MKEY_CALLBACK) (BD_ADDR bd_addr, UINT8 status, UINT8 key_flag) ; + +/* Encryption enabled/disabled complete: Optionally passed with BTM_SetEncryption. +** Parameters are +** BD Address of remote +** optional data passed in by BTM_SetEncryption +** tBTM_STATUS - result of the operation +*/ +typedef void (tBTM_SEC_CBACK) (BD_ADDR bd_addr, tBT_TRANSPORT trasnport, + void *p_ref_data, tBTM_STATUS result); + +/* Bond Cancel complete. Parameters are +** Result of the cancel operation +** +*/ +typedef void (tBTM_BOND_CANCEL_CMPL_CALLBACK) (tBTM_STATUS result); + +/* LE related event and data structure +*/ +#define BTM_LE_IO_REQ_EVT SMP_IO_CAP_REQ_EVT /* received IO_CAPABILITY_REQUEST event */ +#define BTM_LE_SEC_REQUEST_EVT SMP_SEC_REQUEST_EVT /* security request event */ +#define BTM_LE_KEY_NOTIF_EVT SMP_PASSKEY_NOTIF_EVT /* received USER_PASSKEY_NOTIFY event */ +#define BTM_LE_KEY_REQ_EVT SMP_PASSKEY_REQ_EVT /* received USER_PASSKEY_REQUEST event */ +#define BTM_LE_OOB_REQ_EVT SMP_OOB_REQ_EVT /* OOB data request event */ +#define BTM_LE_NC_REQ_EVT SMP_NC_REQ_EVT /* Numeric Comparison request event */ +#define BTM_LE_PR_KEYPR_NOT_EVT SMP_PEER_KEYPR_NOT_EVT /* Peer keypress notification recd event */ +/* SC OOB request event (both local and peer OOB data) can be expected in response */ +#define BTM_LE_SC_OOB_REQ_EVT SMP_SC_OOB_REQ_EVT +/* SC OOB local data set is created (as result of SMP_CrLocScOobData(...)) */ +#define BTM_LE_SC_LOC_OOB_EVT SMP_SC_LOC_OOB_DATA_UP_EVT +#define BTM_LE_BR_KEYS_REQ_EVT SMP_BR_KEYS_REQ_EVT /* SMP over BR keys request event */ +#define BTM_LE_COMPLT_EVT SMP_COMPLT_EVT /* SMP complete event */ +#define BTM_LE_LAST_FROM_SMP BTM_LE_BR_KEYS_REQ_EVT +#define BTM_LE_KEY_EVT BTM_LE_LAST_FROM_SMP + 1 /* KEY update event */ +typedef UINT8 tBTM_LE_EVT; + +#define BTM_LE_KEY_NONE 0 +#define BTM_LE_KEY_PENC SMP_SEC_KEY_TYPE_ENC /* encryption information of peer device */ +#define BTM_LE_KEY_PID SMP_SEC_KEY_TYPE_ID /* identity key of the peer device */ +#define BTM_LE_KEY_PCSRK SMP_SEC_KEY_TYPE_CSRK /* peer SRK */ +#define BTM_LE_KEY_PLK SMP_SEC_KEY_TYPE_LK +#define BTM_LE_KEY_LLK (SMP_SEC_KEY_TYPE_LK << 4) +#define BTM_LE_KEY_LENC (SMP_SEC_KEY_TYPE_ENC << 4) /* master role security information:div */ +#define BTM_LE_KEY_LID (SMP_SEC_KEY_TYPE_ID << 4) /* master device ID key */ +#define BTM_LE_KEY_LCSRK (SMP_SEC_KEY_TYPE_CSRK << 4) /* local CSRK has been deliver to peer */ +typedef UINT8 tBTM_LE_KEY_TYPE; + +#define BTM_LE_AUTH_REQ_NO_BOND SMP_AUTH_NO_BOND /* 0 */ +#define BTM_LE_AUTH_REQ_BOND SMP_AUTH_GEN_BOND /* 1 << 0 */ +#define BTM_LE_AUTH_REQ_MITM SMP_AUTH_YN_BIT /* 1 << 2 */ +typedef UINT8 tBTM_LE_AUTH_REQ; +#define BTM_LE_SC_SUPPORT_BIT SMP_SC_SUPPORT_BIT /* (1 << 3) */ +#define BTM_LE_KP_SUPPORT_BIT SMP_KP_SUPPORT_BIT /* (1 << 4) */ + +#define BTM_LE_AUTH_REQ_SC_ONLY SMP_AUTH_SC_ENC_ONLY /* 1 << 3 */ +#define BTM_LE_AUTH_REQ_SC_BOND SMP_AUTH_SC_GB /* 1001 */ +#define BTM_LE_AUTH_REQ_SC_MITM SMP_AUTH_SC_MITM_NB /* 1100 */ +#define BTM_LE_AUTH_REQ_SC_MITM_BOND SMP_AUTH_SC_MITM_GB /* 1101 */ +#define BTM_LE_AUTH_REQ_MASK SMP_AUTH_MASK /* 0x1D */ + +/* LE security level */ +#define BTM_LE_SEC_NONE SMP_SEC_NONE +#define BTM_LE_SEC_UNAUTHENTICATE SMP_SEC_UNAUTHENTICATE /* 1 */ +#define BTM_LE_SEC_AUTHENTICATED SMP_SEC_AUTHENTICATED /* 4 */ +typedef UINT8 tBTM_LE_SEC; + + +typedef struct { + tBTM_IO_CAP io_cap; /* local IO capabilities */ + UINT8 oob_data; /* OOB data present (locally) for the peer device */ + tBTM_LE_AUTH_REQ auth_req; /* Authentication request (for local device) contain bonding and MITM info */ + UINT8 max_key_size; /* max encryption key size */ + tBTM_LE_KEY_TYPE init_keys; /* keys to be distributed, bit mask */ + tBTM_LE_KEY_TYPE resp_keys; /* keys to be distributed, bit mask */ +} tBTM_LE_IO_REQ; + +#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE +/* data type for tBTM_LE_COMPLT */ +typedef struct { + UINT8 reason; + UINT8 sec_level; + BOOLEAN is_pair_cancel; + BOOLEAN smp_over_br; +} tBTM_LE_COMPLT; +#endif + +/* BLE encryption keys */ +typedef struct { + BT_OCTET16 ltk; + BT_OCTET8 rand; + UINT16 ediv; + UINT8 sec_level; + UINT8 key_size; +} tBTM_LE_PENC_KEYS; + +/* BLE CSRK keys */ +typedef struct { + UINT32 counter; + BT_OCTET16 csrk; + UINT8 sec_level; +} tBTM_LE_PCSRK_KEYS; + +/* BLE Encryption reproduction keys */ +typedef struct { + BT_OCTET16 ltk; + UINT16 div; + UINT8 key_size; + UINT8 sec_level; +} tBTM_LE_LENC_KEYS; + +/* BLE SRK keys */ +typedef struct { + UINT32 counter; + UINT16 div; + UINT8 sec_level; + BT_OCTET16 csrk; +} tBTM_LE_LCSRK_KEYS; + +typedef struct { + BT_OCTET16 irk; + tBLE_ADDR_TYPE addr_type; + BD_ADDR static_addr; +} tBTM_LE_PID_KEYS; + +typedef union { + tBTM_LE_PENC_KEYS penc_key; /* received peer encryption key */ + tBTM_LE_PCSRK_KEYS pcsrk_key; /* received peer device SRK */ + tBTM_LE_PID_KEYS pid_key; /* peer device ID key */ + tBTM_LE_LENC_KEYS lenc_key; /* local encryption reproduction keys LTK = = d1(ER,DIV,0)*/ + tBTM_LE_LCSRK_KEYS lcsrk_key; /* local device CSRK = d1(ER,DIV,1)*/ +} tBTM_LE_KEY_VALUE; + +typedef struct { + tBTM_LE_KEY_TYPE key_type; + tBTM_LE_KEY_VALUE *p_key_value; +} tBTM_LE_KEY; + +typedef union { + tBTM_LE_IO_REQ io_req; /* BTM_LE_IO_REQ_EVT */ + UINT32 key_notif; /* BTM_LE_KEY_NOTIF_EVT */ + /* BTM_LE_NC_REQ_EVT */ + /* no callback data for BTM_LE_KEY_REQ_EVT */ + /* and BTM_LE_OOB_REQ_EVT */ +#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE + tBTM_LE_COMPLT complt; /* BTM_LE_COMPLT_EVT */ + tSMP_OOB_DATA_TYPE req_oob_type; +#endif + tBTM_LE_KEY key; +} tBTM_LE_EVT_DATA; + +/* Simple Pairing Events. Called by the stack when Simple Pairing related +** events occur. +*/ +typedef UINT8 (tBTM_LE_CALLBACK) (tBTM_LE_EVT event, BD_ADDR bda, tBTM_LE_EVT_DATA *p_data); + +#define BTM_BLE_KEY_TYPE_ID 1 +#define BTM_BLE_KEY_TYPE_ER 2 +#define BTM_BLE_KEY_TYPE_COUNTER 3 //tobe obsolete + +typedef struct { + BT_OCTET16 ir; + BT_OCTET16 irk; + BT_OCTET16 dhk; + +} tBTM_BLE_LOCAL_ID_KEYS; + +typedef union { + tBTM_BLE_LOCAL_ID_KEYS id_keys; + BT_OCTET16 er; +} tBTM_BLE_LOCAL_KEYS; + + +/* New LE identity key for local device. +*/ +typedef void (tBTM_LE_KEY_CALLBACK) (UINT8 key_type, tBTM_BLE_LOCAL_KEYS *p_key); + + +/*************************** +** Security Manager Types +****************************/ +/* Structure that applications use to register with BTM_SecRegister */ +typedef struct { + tBTM_AUTHORIZE_CALLBACK *p_authorize_callback; + tBTM_PIN_CALLBACK *p_pin_callback; + tBTM_LINK_KEY_CALLBACK *p_link_key_callback; + tBTM_AUTH_COMPLETE_CALLBACK *p_auth_complete_callback; + tBTM_BOND_CANCEL_CMPL_CALLBACK *p_bond_cancel_cmpl_callback; + tBTM_SP_CALLBACK *p_sp_callback; +#if BLE_INCLUDED == TRUE +#if SMP_INCLUDED == TRUE + tBTM_LE_CALLBACK *p_le_callback; +#endif + tBTM_LE_KEY_CALLBACK *p_le_key_callback; +#endif +} tBTM_APPL_INFO; + +/* Callback function for when a link supervision timeout event occurs. +** This asynchronous event is enabled/disabled by calling BTM_RegForLstoEvt(). +*/ +typedef void (tBTM_LSTO_CBACK) (BD_ADDR remote_bda, UINT16 timeout); + +/***************************************************************************** +** POWER MANAGEMENT +*****************************************************************************/ +/**************************** +** Power Manager Constants +*****************************/ +/* BTM Power manager status codes */ +enum { + BTM_PM_STS_ACTIVE = HCI_MODE_ACTIVE, + BTM_PM_STS_HOLD = HCI_MODE_HOLD, + BTM_PM_STS_SNIFF = HCI_MODE_SNIFF, + BTM_PM_STS_PARK = HCI_MODE_PARK, + BTM_PM_STS_SSR, /* report the SSR parameters in HCI_SNIFF_SUB_RATE_EVT */ + BTM_PM_STS_PENDING, /* when waiting for status from controller */ + BTM_PM_STS_ERROR /* when HCI command status returns error */ +}; +typedef UINT8 tBTM_PM_STATUS; + +/* BTM Power manager modes */ +enum { + BTM_PM_MD_ACTIVE = BTM_PM_STS_ACTIVE, + BTM_PM_MD_HOLD = BTM_PM_STS_HOLD, + BTM_PM_MD_SNIFF = BTM_PM_STS_SNIFF, + BTM_PM_MD_PARK = BTM_PM_STS_PARK, + BTM_PM_MD_FORCE = 0x10 /* OR this to force ACL link to a certain mode */ +}; +typedef UINT8 tBTM_PM_MODE; + +#define BTM_PM_SET_ONLY_ID 0x80 + +/* Operation codes */ +#define BTM_PM_REG_SET 1 /* The module wants to set the desired power mode */ +#define BTM_PM_REG_NOTIF 2 /* The module wants to receive mode change event */ +#define BTM_PM_DEREG 4 /* The module does not want to involve with PM anymore */ + +/************************ +** Power Manager Types +*************************/ +typedef struct { + UINT16 max; + UINT16 min; + UINT16 attempt; + UINT16 timeout; + tBTM_PM_MODE mode; +} tBTM_PM_PWR_MD; + +/************************************* +** Power Manager Callback Functions +**************************************/ +typedef void (tBTM_PM_STATUS_CBACK) (BD_ADDR p_bda, tBTM_PM_STATUS status, + UINT16 value, UINT8 hci_status); + + +/************************ +** Stored Linkkey Types +*************************/ +#define BTM_CB_EVT_DELETE_STORED_LINK_KEYS 4 + +typedef struct { + UINT8 event; + UINT8 status; + UINT16 num_keys; + +} tBTM_DELETE_STORED_LINK_KEY_COMPLETE; + +/* MIP evnets, callbacks */ +enum { + BTM_MIP_MODE_CHG_EVT, + BTM_MIP_DISCONNECT_EVT, + BTM_MIP_PKTS_COMPL_EVT, + BTM_MIP_RXDATA_EVT +}; +typedef UINT8 tBTM_MIP_EVT; + +typedef struct { + tBTM_MIP_EVT event; + BD_ADDR bd_addr; + UINT16 mip_id; +} tBTM_MIP_MODE_CHANGE; + +typedef struct { + tBTM_MIP_EVT event; + UINT16 mip_id; + UINT8 disc_reason; +} tBTM_MIP_CONN_TIMEOUT; + +#define BTM_MIP_MAX_RX_LEN 17 + +typedef struct { + tBTM_MIP_EVT event; + UINT16 mip_id; + UINT8 rx_len; + UINT8 rx_data[BTM_MIP_MAX_RX_LEN]; +} tBTM_MIP_RXDATA; + +typedef struct { + tBTM_MIP_EVT event; + BD_ADDR bd_addr; + UINT8 data[11]; /* data[0] shows Vender-specific device type */ +} tBTM_MIP_EIR_HANDSHAKE; + +typedef struct { + tBTM_MIP_EVT event; + UINT16 num_sent; /* Number of packets completed at the controller */ +} tBTM_MIP_PKTS_COMPL; + +typedef union { + tBTM_MIP_EVT event; + tBTM_MIP_MODE_CHANGE mod_chg; + tBTM_MIP_CONN_TIMEOUT conn_tmo; + tBTM_MIP_EIR_HANDSHAKE eir; + tBTM_MIP_PKTS_COMPL completed; + tBTM_MIP_RXDATA rxdata; +} tBTM_MIP_EVENT_DATA; + +/* MIP event callback function */ +typedef void (tBTM_MIP_EVENTS_CB) (tBTM_MIP_EVT event, tBTM_MIP_EVENT_DATA data); + +/* MIP Device query callback function */ +typedef BOOLEAN (tBTM_MIP_QUERY_CB) (BD_ADDR dev_addr, UINT8 *p_mode, LINK_KEY link_key); + +#define BTM_CONTRL_ACTIVE 1 /* ACL link on, SCO link ongoing, sniff mode */ +#define BTM_CONTRL_SCAN 2 /* Scan state - paging/inquiry/trying to connect*/ +#define BTM_CONTRL_IDLE 3 /* Idle state - page scan, LE advt, inquiry scan */ + +typedef UINT8 tBTM_CONTRL_STATE; + +/***************************************************************************** +** EXTERNAL FUNCTION DECLARATIONS +*****************************************************************************/ +/* +#ifdef __cplusplus +extern "C" { +#endif +*/ +/***************************************************************************** +** DEVICE CONTROL and COMMON FUNCTIONS +*****************************************************************************/ + +/******************************************************************************* +** +** Function BTM_DeviceReset +** +** Description This function is called to reset the controller.The Callback function +** if provided is called when startup of the device has +** completed. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_DeviceReset (tBTM_CMPL_CB *p_cb); + + +/******************************************************************************* +** +** Function BTM_IsDeviceUp +** +** Description This function is called to check if the device is up. +** +** Returns TRUE if device is up, else FALSE +** +*******************************************************************************/ +//extern +BOOLEAN BTM_IsDeviceUp (void); + + +/******************************************************************************* +** +** Function BTM_SetLocalDeviceName +** +** Description This function is called to set the local device name. +** +** Returns BTM_CMD_STARTED if successful, otherwise an error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetLocalDeviceName (char *p_name); + +/******************************************************************************* +** +** Function BTM_SetDeviceClass +** +** Description This function is called to set the local device class +** +** Returns BTM_SUCCESS if successful, otherwise an error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetDeviceClass (DEV_CLASS dev_class); + + +/******************************************************************************* +** +** Function BTM_ReadLocalDeviceName +** +** Description This function is called to read the local device name. +** +** Returns status of the operation +** If success, BTM_SUCCESS is returned and p_name points stored +** local device name +** If BTM doesn't store local device name, BTM_NO_RESOURCES is +** is returned and p_name is set to NULL +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ReadLocalDeviceName (char **p_name); + +/******************************************************************************* +** +** Function BTM_ReadLocalDeviceNameFromController +** +** Description Get local device name from controller. Do not use cached +** name (used to get chip-id prior to btm reset complete). +** +** Returns BTM_CMD_STARTED if successful, otherwise an error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ReadLocalDeviceNameFromController (tBTM_CMPL_CB *p_rln_cmpl_cback); + +/******************************************************************************* +** +** Function BTM_ReadDeviceClass +** +** Description This function is called to read the local device class +** +** Returns pointer to the device class +** +*******************************************************************************/ +//extern +UINT8 *BTM_ReadDeviceClass (void); + + +/******************************************************************************* +** +** Function BTM_ReadLocalFeatures +** +** Description This function is called to read the local features +** +** Returns pointer to the local features string +** +*******************************************************************************/ +//extern +UINT8 *BTM_ReadLocalFeatures (void); + +/******************************************************************************* +** +** Function BTM_RegisterForDeviceStatusNotif +** +** Description This function is called to register for device status +** change notifications. +** +** Returns pointer to previous caller's callback function or NULL if first +** registration. +** +*******************************************************************************/ +//extern +tBTM_DEV_STATUS_CB *BTM_RegisterForDeviceStatusNotif (tBTM_DEV_STATUS_CB *p_cb); + + +/******************************************************************************* +** +** Function BTM_RegisterForVSEvents +** +** Description This function is called to register/deregister for vendor +** specific HCI events. +** +** If is_register=TRUE, then the function will be registered; +** if is_register=FALSE, then the function will be deregistered. +** +** Returns BTM_SUCCESS if successful, +** BTM_BUSY if maximum number of callbacks have already been +** registered. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_RegisterForVSEvents (tBTM_VS_EVT_CB *p_cb, BOOLEAN is_register); + + +/******************************************************************************* +** +** Function BTM_VendorSpecificCommand +** +** Description Send a vendor specific HCI command to the controller. +** +** Returns +** BTM_SUCCESS Command sent. Does not expect command complete +** event. (command cmpl callback param is NULL) +** BTM_CMD_STARTED Command sent. Waiting for command cmpl event. +** BTM_BUSY Command not sent. Waiting for cmd cmpl event for +** prior command. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_VendorSpecificCommand(UINT16 opcode, + UINT8 param_len, + UINT8 *p_param_buf, + tBTM_VSC_CMPL_CB *p_cb); + + +/******************************************************************************* +** +** Function BTM_AllocateSCN +** +** Description Look through the Server Channel Numbers for a free one to be +** used with an RFCOMM connection. +** +** Returns Allocated SCN number or 0 if none. +** +*******************************************************************************/ +//extern +UINT8 BTM_AllocateSCN(void); + +// btla-specific ++ +/******************************************************************************* +** +** Function BTM_TryAllocateSCN +** +** Description Try to allocate a fixed server channel +** +** Returns Returns TRUE if server channel was available +** +*******************************************************************************/ +//extern +BOOLEAN BTM_TryAllocateSCN(UINT8 scn); +// btla-specific -- + + +/******************************************************************************* +** +** Function BTM_FreeSCN +** +** Description Free the specified SCN. +** +** Returns TRUE if successful, FALSE if SCN is not in use or invalid +** +*******************************************************************************/ +//extern +BOOLEAN BTM_FreeSCN(UINT8 scn); + + +/******************************************************************************* +** +** Function BTM_SetTraceLevel +** +** Description This function sets the trace level for BTM. If called with +** a value of 0xFF, it simply returns the current trace level. +** +** Returns The new or current trace level +** +*******************************************************************************/ +//extern +UINT8 BTM_SetTraceLevel (UINT8 new_level); + + +/******************************************************************************* +** +** Function BTM_WritePageTimeout +** +** Description Send HCI Wite Page Timeout. +** +** Returns +** BTM_SUCCESS Command sent. +** BTM_NO_RESOURCES If out of resources to send the command. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_WritePageTimeout(UINT16 timeout); + +/******************************************************************************* +** +** Function BTM_WriteVoiceSettings +** +** Description Send HCI Write Voice Settings command. +** See hcidefs.h for settings bitmask values. +** +** Returns +** BTM_SUCCESS Command sent. +** BTM_NO_RESOURCES If out of resources to send the command. +** +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_WriteVoiceSettings(UINT16 settings); + +/******************************************************************************* +** +** Function BTM_EnableTestMode +** +** Description Send HCI the enable device under test command. +** +** Note: Controller can only be taken out of this mode by +** resetting the controller. +** +** Returns +** BTM_SUCCESS Command sent. +** BTM_NO_RESOURCES If out of resources to send the command. +** +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_EnableTestMode(void); + + +/***************************************************************************** +** DEVICE DISCOVERY FUNCTIONS - Inquiry, Remote Name, Discovery, Class of Device +*****************************************************************************/ + +/******************************************************************************* +** +** Function BTM_SetDiscoverability +** +** Description This function is called to set the device into or out of +** discoverable mode. Discoverable mode means inquiry +** scans are enabled. If a value of '0' is entered for window or +** interval, the default values are used. +** +** Returns BTM_SUCCESS if successful +** BTM_BUSY if a setting of the filter is already in progress +** BTM_NO_RESOURCES if couldn't get a memory pool buffer +** BTM_ILLEGAL_VALUE if a bad parameter was detected +** BTM_WRONG_MODE if the device is not up. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetDiscoverability (UINT16 inq_mode, UINT16 window, + UINT16 interval); + + +/******************************************************************************* +** +** Function BTM_ReadDiscoverability +** +** Description This function is called to read the current discoverability +** mode of the device. +** +** Output Params: p_window - current inquiry scan duration +** p_interval - current inquiry scan interval +** +** Returns BTM_NON_DISCOVERABLE, BTM_LIMITED_DISCOVERABLE, or +** BTM_GENERAL_DISCOVERABLE +** +*******************************************************************************/ +//extern +UINT16 BTM_ReadDiscoverability (UINT16 *p_window, + UINT16 *p_interval); + + +/******************************************************************************* +** +** Function BTM_SetPeriodicInquiryMode +** +** Description This function is called to set the device periodic inquiry mode. +** If the duration is zero, the periodic inquiry mode is cancelled. +** +** Parameters: p_inqparms - pointer to the inquiry information +** mode - GENERAL or LIMITED inquiry +** duration - length in 1.28 sec intervals (If '0', the inquiry is CANCELLED) +** max_resps - maximum amount of devices to search for before ending the inquiry +** filter_cond_type - BTM_CLR_INQUIRY_FILTER, BTM_FILTER_COND_DEVICE_CLASS, or +** BTM_FILTER_COND_BD_ADDR +** filter_cond - value for the filter (based on filter_cond_type) +** +** max_delay - maximum amount of time between successive inquiries +** min_delay - minimum amount of time between successive inquiries +** p_results_cb - callback returning pointer to results (tBTM_INQ_RESULTS) +** +** Returns BTM_CMD_STARTED if successfully started +** BTM_ILLEGAL_VALUE if a bad parameter is detected +** BTM_NO_RESOURCES if could not allocate a message buffer +** BTM_SUCCESS - if cancelling the periodic inquiry +** BTM_BUSY - if an inquiry is already active +** BTM_WRONG_MODE if the device is not up. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetPeriodicInquiryMode (tBTM_INQ_PARMS *p_inqparms, + UINT16 max_delay, UINT16 min_delay, + tBTM_INQ_RESULTS_CB *p_results_cb); + + +/******************************************************************************* +** +** Function BTM_StartInquiry +** +** Description This function is called to start an inquiry. +** +** Parameters: p_inqparms - pointer to the inquiry information +** mode - GENERAL or LIMITED inquiry +** duration - length in 1.28 sec intervals (If '0', the inquiry is CANCELLED) +** max_resps - maximum amount of devices to search for before ending the inquiry +** filter_cond_type - BTM_CLR_INQUIRY_FILTER, BTM_FILTER_COND_DEVICE_CLASS, or +** BTM_FILTER_COND_BD_ADDR +** filter_cond - value for the filter (based on filter_cond_type) +** +** p_results_cb - Pointer to the callback routine which gets called +** upon receipt of an inquiry result. If this field is +** NULL, the application is not notified. +** +** p_cmpl_cb - Pointer to the callback routine which gets called +** upon completion. If this field is NULL, the +** application is not notified when completed. +** Returns tBTM_STATUS +** BTM_CMD_STARTED if successfully initiated +** BTM_BUSY if already in progress +** BTM_ILLEGAL_VALUE if parameter(s) are out of range +** BTM_NO_RESOURCES if could not allocate resources to start the command +** BTM_WRONG_MODE if the device is not up. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_StartInquiry (tBTM_INQ_PARMS *p_inqparms, + tBTM_INQ_RESULTS_CB *p_results_cb, + tBTM_CMPL_CB *p_cmpl_cb); + + +/******************************************************************************* +** +** Function BTM_IsInquiryActive +** +** Description This function returns a bit mask of the current inquiry state +** +** Returns BTM_INQUIRY_INACTIVE if inactive (0) +** BTM_LIMITED_INQUIRY_ACTIVE if a limted inquiry is active +** BTM_GENERAL_INQUIRY_ACTIVE if a general inquiry is active +** BTM_PERIODIC_INQUIRY_ACTIVE if a periodic inquiry is active +** +*******************************************************************************/ +//extern +UINT16 BTM_IsInquiryActive (void); + + +/******************************************************************************* +** +** Function BTM_CancelInquiry +** +** Description This function cancels an inquiry if active +** +** Returns BTM_SUCCESS if successful +** BTM_NO_RESOURCES if could not allocate a message buffer +** BTM_WRONG_MODE if the device is not up. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_CancelInquiry(void); + + +/******************************************************************************* +** +** Function BTM_CancelPeriodicInquiry +** +** Description This function cancels a periodic inquiry +** +** Returns +** BTM_NO_RESOURCES if could not allocate a message buffer +** BTM_SUCCESS - if cancelling the periodic inquiry +** BTM_WRONG_MODE if the device is not up. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_CancelPeriodicInquiry(void); + + +/******************************************************************************* +** +** Function BTM_SetConnectability +** +** Description This function is called to set the device into or out of +** connectable mode. Discoverable mode means page scans enabled. +** +** Returns BTM_SUCCESS if successful +** BTM_ILLEGAL_VALUE if a bad parameter is detected +** BTM_NO_RESOURCES if could not allocate a message buffer +** BTM_WRONG_MODE if the device is not up. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetConnectability (UINT16 page_mode, UINT16 window, + UINT16 interval); + + +/******************************************************************************* +** +** Function BTM_ReadConnectability +** +** Description This function is called to read the current discoverability +** mode of the device. +** Output Params p_window - current page scan duration +** p_interval - current time between page scans +** +** Returns BTM_NON_CONNECTABLE or BTM_CONNECTABLE +** +*******************************************************************************/ +//extern +UINT16 BTM_ReadConnectability (UINT16 *p_window, UINT16 *p_interval); + + +/******************************************************************************* +** +** Function BTM_SetInquiryMode +** +** Description This function is called to set standard, with RSSI +** mode or extended of the inquiry for local device. +** +** Input Params: BTM_INQ_RESULT_STANDARD, BTM_INQ_RESULT_WITH_RSSI or +** BTM_INQ_RESULT_EXTENDED +** +** Returns BTM_SUCCESS if successful +** BTM_NO_RESOURCES if couldn't get a memory pool buffer +** BTM_ILLEGAL_VALUE if a bad parameter was detected +** BTM_WRONG_MODE if the device is not up. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetInquiryMode (UINT8 mode); + +/******************************************************************************* +** +** Function BTM_SetInquiryScanType +** +** Description This function is called to set the iquiry scan-type to +** standard or interlaced. +** +** Input Params: BTM_SCAN_TYPE_STANDARD or BTM_SCAN_TYPE_INTERLACED +** +** Returns BTM_SUCCESS if successful +** BTM_MODE_UNSUPPORTED if not a 1.2 device +** BTM_WRONG_MODE if the device is not up. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetInquiryScanType (UINT16 scan_type); + +/******************************************************************************* +** +** Function BTM_SetPageScanType +** +** Description This function is called to set the page scan-type to +** standard or interlaced. +** +** Input Params: BTM_SCAN_TYPE_STANDARD or BTM_SCAN_TYPE_INTERLACED +** +** Returns BTM_SUCCESS if successful +** BTM_MODE_UNSUPPORTED if not a 1.2 device +** BTM_WRONG_MODE if the device is not up. +** +*******************************************************************************/ + +//extern +tBTM_STATUS BTM_SetPageScanType (UINT16 scan_type); + +/******************************************************************************* +** +** Function BTM_ReadRemoteDeviceName +** +** Description This function initiates a remote device HCI command to the +** controller and calls the callback when the process has completed. +** +** Input Params: remote_bda - device address of name to retrieve +** p_cb - callback function called when BTM_CMD_STARTED +** is returned. +** A pointer to tBTM_REMOTE_DEV_NAME is passed to the +** callback. +** +** Returns +** BTM_CMD_STARTED is returned if the request was successfully sent +** to HCI. +** BTM_BUSY if already in progress +** BTM_UNKNOWN_ADDR if device address is bad +** BTM_NO_RESOURCES if could not allocate resources to start the command +** BTM_WRONG_MODE if the device is not up. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ReadRemoteDeviceName (BD_ADDR remote_bda, + tBTM_CMPL_CB *p_cb, + tBT_TRANSPORT transport); + + +/******************************************************************************* +** +** Function BTM_CancelRemoteDeviceName +** +** Description This function initiates the cancel request for the specified +** remote device. +** +** Input Params: None +** +** Returns +** BTM_CMD_STARTED is returned if the request was successfully sent +** to HCI. +** BTM_NO_RESOURCES if could not allocate resources to start the command +** BTM_WRONG_MODE if there is not an active remote name request. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_CancelRemoteDeviceName (void); + +/******************************************************************************* +** +** Function BTM_ReadRemoteVersion +** +** Description This function is called to read a remote device's version +** +** Returns BTM_SUCCESS if successful, otherwise an error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ReadRemoteVersion (BD_ADDR addr, + UINT8 *lmp_version, + UINT16 *manufacturer, + UINT16 *lmp_sub_version); + +/******************************************************************************* +** +** Function BTM_ReadRemoteFeatures +** +** Description This function is called to read a remote device's +** supported features mask (features mask located at page 0) +** +** Note: The size of device features mask page is +** BTM_FEATURE_BYTES_PER_PAGE bytes. +** +** Returns pointer to the remote supported features mask +** +*******************************************************************************/ +//extern +UINT8 *BTM_ReadRemoteFeatures (BD_ADDR addr); + +/******************************************************************************* +** +** Function BTM_ReadRemoteExtendedFeatures +** +** Description This function is called to read a specific extended features +** page of the remote device +** +** Note1: The size of device features mask page is +** BTM_FEATURE_BYTES_PER_PAGE bytes. +** Note2: The valid device features mask page number depends on +** the remote device capabilities. It is expected to be in the +** range [0 - BTM_EXT_FEATURES_PAGE_MAX]. + +** Returns pointer to the remote extended features mask +** or NULL if page_number is not valid +** +*******************************************************************************/ +//extern +UINT8 *BTM_ReadRemoteExtendedFeatures (BD_ADDR addr, UINT8 page_number); + +/******************************************************************************* +** +** Function BTM_ReadNumberRemoteFeaturesPages +** +** Description This function is called to retrieve the number of feature pages +** read from the remote device +** +** Returns number of features pages read from the remote device +** +*******************************************************************************/ +//extern +UINT8 BTM_ReadNumberRemoteFeaturesPages (BD_ADDR addr); + +/******************************************************************************* +** +** Function BTM_ReadAllRemoteFeatures +** +** Description This function is called to read all features of the remote device +** +** Returns pointer to the byte[0] of the page[0] of the remote device +** feature mask. +** +** Note: the function returns the pointer to the array of the size +** BTM_FEATURE_BYTES_PER_PAGE * (BTM_EXT_FEATURES_PAGE_MAX + 1). +** +*******************************************************************************/ +//extern +UINT8 *BTM_ReadAllRemoteFeatures (BD_ADDR addr); + +/******************************************************************************* +** +** Function BTM_InqDbRead +** +** Description This function looks through the inquiry database for a match +** based on Bluetooth Device Address. This is the application's +** interface to get the inquiry details of a specific BD address. +** +** Returns pointer to entry, or NULL if not found +** +*******************************************************************************/ +//extern +tBTM_INQ_INFO *BTM_InqDbRead (BD_ADDR p_bda); + + +/******************************************************************************* +** +** Function BTM_InqDbFirst +** +** Description This function looks through the inquiry database for the first +** used entry, and returns that. This is used in conjunction with +** BTM_InqDbNext by applications as a way to walk through the +** inquiry database. +** +** Returns pointer to first in-use entry, or NULL if DB is empty +** +*******************************************************************************/ +//extern +tBTM_INQ_INFO *BTM_InqDbFirst (void); + + +/******************************************************************************* +** +** Function BTM_InqDbNext +** +** Description This function looks through the inquiry database for the next +** used entry, and returns that. If the input parameter is NULL, +** the first entry is returned. +** +** Returns pointer to next in-use entry, or NULL if no more found. +** +*******************************************************************************/ +//extern +tBTM_INQ_INFO *BTM_InqDbNext (tBTM_INQ_INFO *p_cur); + + +/******************************************************************************* +** +** Function BTM_ClearInqDb +** +** Description This function is called to clear out a device or all devices +** from the inquiry database. +** +** Parameter p_bda - (input) BD_ADDR -> Address of device to clear +** (NULL clears all entries) +** +** Returns BTM_BUSY if an inquiry, get remote name, or event filter +** is active, otherwise BTM_SUCCESS +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ClearInqDb (BD_ADDR p_bda); + +/******************************************************************************* +** +** Function BTM_ReadInquiryRspTxPower +** +** Description This command will read the inquiry Transmit Power level used +** to transmit the FHS and EIR data packets. +** This can be used directly in the Tx Power Level EIR data type. +** +** Returns BTM_SUCCESS if successful +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ReadInquiryRspTxPower (tBTM_CMPL_CB *p_cb); + +#if SDP_INCLUDED == TRUE +/******************************************************************************* +** +** Function BTM_StartDiscovery +** +** Description This function is called by an application (or profile) +** when it wants to trigger an service discovery using the +** BTM's discovery database. +** +** Returns tBTM_STATUS +** BTM_CMD_STARTED if the discovery was initiated +** BTM_BUSY if one is already in progress +** BTM_UNKNOWN_ADDR if no addresses are in the INQ DB +** BTM_ERR_PROCESSING if err initiating the command +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_StartDiscovery (tBTM_CMPL_CB *p_cmpl_cb, + BD_ADDR_PTR p_rem_addr); + + +/******************************************************************************* +** +** Function BTM_FindAttribute +** +** Description This function is called by an application (or profile) +** when it wants to see if an attribute exists in the BTM +** discovery database. +** +** Returns Pointer to matching record, or NULL +** +*******************************************************************************/ +//extern +tSDP_DISC_REC *BTM_FindAttribute (UINT16 attr_id, + tSDP_DISC_REC *p_start_rec); + + +/******************************************************************************* +** +** Function BTM_FindService +** +** Description This function is called by an application (or profile) +** when it wants to see if a service exists in the BTM +** discovery database. +** +** Returns Pointer to matching record, or NULL +** +*******************************************************************************/ +//extern +tSDP_DISC_REC *BTM_FindService (UINT16 service_uuid, + tSDP_DISC_REC *p_start_rec); + + +/******************************************************************************* +** +** Function BTM_SetDiscoveryParams +** +** Description This function is called to set the BTM default discovery parameters. +** These UUID and attribute filters are used during the call to +** BTM_StartDiscovery. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_SetDiscoveryParams (UINT16 num_uuid, tSDP_UUID *p_uuid_list, + UINT16 num_attr, UINT16 *p_attr_list); +#endif /*SDP_INCLUDED*/ + +/***************************************************************************** +** ACL CHANNEL MANAGEMENT FUNCTIONS +*****************************************************************************/ +/******************************************************************************* +** +** Function BTM_SetLinkPolicy +** +** Description Create and send HCI "Write Policy Set" command +** +** Returns BTM_CMD_STARTED if successfully initiated, otherwise error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetLinkPolicy (BD_ADDR remote_bda, + UINT16 *settings); + +/******************************************************************************* +** +** Function BTM_SetDefaultLinkPolicy +** +** Description Set the default value for HCI "Write Policy Set" command +** to use when an ACL link is created. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_SetDefaultLinkPolicy (UINT16 settings); + + +/******************************************************************************* +** +** Function BTM_SetDefaultLinkSuperTout +** +** Description Set the default value for HCI "Write Link Supervision Timeout" +** command to use when an ACL link is created. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_SetDefaultLinkSuperTout (UINT16 timeout); + + +/******************************************************************************* +** +** Function BTM_SetLinkSuperTout +** +** Description Create and send HCI "Write Link Supervision Timeout" command +** +** Returns BTM_CMD_STARTED if successfully initiated, otherwise error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetLinkSuperTout (BD_ADDR remote_bda, + UINT16 timeout); +/******************************************************************************* +** +** Function BTM_GetLinkSuperTout +** +** Description Read the link supervision timeout value of the connection +** +** Returns status of the operation +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_GetLinkSuperTout (BD_ADDR remote_bda, + UINT16 *p_timeout); + +/******************************************************************************* +** +** Function BTM_IsAclConnectionUp +** +** Description This function is called to check if an ACL connection exists +** to a specific remote BD Address. +** +** Returns TRUE if connection is up, else FALSE. +** +*******************************************************************************/ +//extern +BOOLEAN BTM_IsAclConnectionUp (BD_ADDR remote_bda, tBT_TRANSPORT transport); + + +/******************************************************************************* +** +** Function BTM_GetRole +** +** Description This function is called to get the role of the local device +** for the ACL connection with the specified remote device +** +** Returns BTM_SUCCESS if connection exists. +** BTM_UNKNOWN_ADDR if no active link with bd addr specified +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_GetRole (BD_ADDR remote_bd_addr, UINT8 *p_role); + + + +/******************************************************************************* +** +** Function BTM_SwitchRole +** +** Description This function is called to switch role between master and +** slave. If role is already set it will do nothing. If the +** command was initiated, the callback function is called upon +** completion. +** +** Returns BTM_SUCCESS if already in specified role. +** BTM_CMD_STARTED if command issued to controller. +** BTM_NO_RESOURCES if couldn't allocate memory to issue command +** BTM_UNKNOWN_ADDR if no active link with bd addr specified +** BTM_MODE_UNSUPPORTED if local device does not support role switching +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SwitchRole (BD_ADDR remote_bd_addr, + UINT8 new_role, + tBTM_CMPL_CB *p_cb); + +/******************************************************************************* +** +** Function BTM_ReadRSSI +** +** Description This function is called to read the link policy settings. +** The address of link policy results are returned in the callback. +** (tBTM_RSSI_RESULTS) +** +** Returns BTM_CMD_STARTED if command issued to controller. +** BTM_NO_RESOURCES if couldn't allocate memory to issue command +** BTM_UNKNOWN_ADDR if no active link with bd addr specified +** BTM_BUSY if command is already in progress +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ReadRSSI (BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb); + + +/******************************************************************************* +** +** Function BTM_ReadTxPower +** +** Description This function is called to read the current connection +** TX power of the connection. The TX power level results +** are returned in the callback. +** (tBTM_RSSI_RESULTS) +** +** Returns BTM_CMD_STARTED if command issued to controller. +** BTM_NO_RESOURCES if couldn't allocate memory to issue command +** BTM_UNKNOWN_ADDR if no active link with bd addr specified +** BTM_BUSY if command is already in progress +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ReadTxPower (BD_ADDR remote_bda, + tBT_TRANSPORT transport, tBTM_CMPL_CB *p_cb); + +/******************************************************************************* +** +** Function BTM_ReadLinkQuality +** +** Description This function is called to read the link quality. +** The value of the link quality is returned in the callback. +** (tBTM_LINK_QUALITY_RESULTS) +** +** Returns BTM_CMD_STARTED if command issued to controller. +** BTM_NO_RESOURCES if couldn't allocate memory to issue command +** BTM_UNKNOWN_ADDR if no active link with bd addr specified +** BTM_BUSY if command is already in progress +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ReadLinkQuality (BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb); + +/******************************************************************************* +** +** Function BTM_RegBusyLevelNotif +** +** Description This function is called to register a callback to receive +** busy level change events. +** +** Returns BTM_SUCCESS if successfully registered, otherwise error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_RegBusyLevelNotif (tBTM_BL_CHANGE_CB *p_cb, UINT8 *p_level, + tBTM_BL_EVENT_MASK evt_mask); + +/******************************************************************************* +** +** Function BTM_AclRegisterForChanges +** +** Description This function is called to register a callback to receive +** ACL database change events, i.e. new connection or removed. +** +** Returns BTM_SUCCESS if successfully initiated, otherwise error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_AclRegisterForChanges (tBTM_ACL_DB_CHANGE_CB *p_cb); + +/******************************************************************************* +** +** Function BTM_GetNumAclLinks +** +** Description This function is called to count the number of +** ACL links that are active. +** +** Returns UINT16 Number of active ACL links +** +*******************************************************************************/ +//extern +UINT16 BTM_GetNumAclLinks (void); + +/******************************************************************************* +** +** Function BTM_SetQoS +** +** Description This function is called to setup QoS +** +** Returns BTM_CMD_STARTED if successfully initiated, otherwise error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetQoS(BD_ADDR bd, FLOW_SPEC *p_flow, + tBTM_CMPL_CB *p_cb); + + +/***************************************************************************** +** (e)SCO CHANNEL MANAGEMENT FUNCTIONS +*****************************************************************************/ +/******************************************************************************* +** +** Function BTM_CreateSco +** +** Description This function is called to create an SCO connection. If the +** "is_orig" flag is TRUE, the connection will be originated, +** otherwise BTM will wait for the other side to connect. +** +** Returns BTM_UNKNOWN_ADDR if the ACL connection is not up +** BTM_BUSY if another SCO being set up to +** the same BD address +** BTM_NO_RESOURCES if the max SCO limit has been reached +** BTM_CMD_STARTED if the connection establishment is started. +** In this case, "*p_sco_inx" is filled in +** with the sco index used for the connection. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_CreateSco (BD_ADDR remote_bda, BOOLEAN is_orig, + UINT16 pkt_types, UINT16 *p_sco_inx, + tBTM_SCO_CB *p_conn_cb, + tBTM_SCO_CB *p_disc_cb); + + +/******************************************************************************* +** +** Function BTM_RemoveSco +** +** Description This function is called to remove a specific SCO connection. +** +** Returns BTM_CMD_STARTED if successfully initiated, otherwise error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_RemoveSco (UINT16 sco_inx); + + +/******************************************************************************* +** +** Function BTM_SetScoPacketTypes +** +** Description This function is called to set the packet types used for +** a specific SCO connection, +** +** Parameters pkt_types - One or more of the following +** BTM_SCO_PKT_TYPES_MASK_HV1 +** BTM_SCO_PKT_TYPES_MASK_HV2 +** BTM_SCO_PKT_TYPES_MASK_HV3 +** BTM_SCO_PKT_TYPES_MASK_EV3 +** BTM_SCO_PKT_TYPES_MASK_EV4 +** BTM_SCO_PKT_TYPES_MASK_EV5 +** +** BTM_SCO_LINK_ALL_MASK - enables all supported types +** +** Returns BTM_CMD_STARTED if successfully initiated, otherwise error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetScoPacketTypes (UINT16 sco_inx, UINT16 pkt_types); + + +/******************************************************************************* +** +** Function BTM_ReadScoPacketTypes +** +** Description This function is read the packet types used for a specific +** SCO connection. +** +** Returns One or more of the following (bitmask) +** BTM_SCO_PKT_TYPES_MASK_HV1 +** BTM_SCO_PKT_TYPES_MASK_HV2 +** BTM_SCO_PKT_TYPES_MASK_HV3 +** BTM_SCO_PKT_TYPES_MASK_EV3 +** BTM_SCO_PKT_TYPES_MASK_EV4 +** BTM_SCO_PKT_TYPES_MASK_EV5 +** +** Returns packet types supported for the connection +** +*******************************************************************************/ +//extern +UINT16 BTM_ReadScoPacketTypes (UINT16 sco_inx); + + +/******************************************************************************* +** +** Function BTM_ReadDeviceScoPacketTypes +** +** Description This function is read the SCO packet types that +** the device supports. +** +** Returns packet types supported by the device. +** +*******************************************************************************/ +//extern +UINT16 BTM_ReadDeviceScoPacketTypes (void); + + +/******************************************************************************* +** +** Function BTM_ReadScoHandle +** +** Description This function is used to read the HCI handle used for a specific +** SCO connection, +** +** Returns handle for the connection, or 0xFFFF if invalid SCO index. +** +*******************************************************************************/ +//extern +UINT16 BTM_ReadScoHandle (UINT16 sco_inx); + + +/******************************************************************************* +** +** Function BTM_ReadScoBdAddr +** +** Description This function is read the remote BD Address for a specific +** SCO connection, +** +** Returns pointer to BD address or NULL if not known +** +*******************************************************************************/ +//extern +UINT8 *BTM_ReadScoBdAddr (UINT16 sco_inx); + + +/******************************************************************************* +** +** Function BTM_ReadScoDiscReason +** +** Description This function is returns the reason why an (e)SCO connection +** has been removed. It contains the value until read, or until +** another (e)SCO connection has disconnected. +** +** Returns HCI reason or BTM_INVALID_SCO_DISC_REASON if not set. +** +*******************************************************************************/ +//extern +UINT16 BTM_ReadScoDiscReason (void); + + +/******************************************************************************* +** +** Function BTM_SetEScoMode +** +** Description This function sets up the negotiated parameters for SCO or +** eSCO, and sets as the default mode used for calls to +** BTM_CreateSco. It can be called only when there are no +** active (e)SCO links. +** +** Returns BTM_SUCCESS if the successful. +** BTM_BUSY if there are one or more active (e)SCO links. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetEScoMode (tBTM_SCO_TYPE sco_mode, + tBTM_ESCO_PARAMS *p_parms); + +/******************************************************************************* +** +** Function BTM_SetWBSCodec +** +** Description This function sends command to the controller to setup +** WBS codec for the upcoming eSCO connection. +** +** Returns BTM_SUCCESS. +** +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetWBSCodec (tBTM_SCO_CODEC_TYPE codec_type); + +/******************************************************************************* +** +** Function BTM_RegForEScoEvts +** +** Description This function registers a SCO event callback with the +** specified instance. It should be used to received +** connection indication events and change of link parameter +** events. +** +** Returns BTM_SUCCESS if the successful. +** BTM_ILLEGAL_VALUE if there is an illegal sco_inx +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_RegForEScoEvts (UINT16 sco_inx, + tBTM_ESCO_CBACK *p_esco_cback); + +/******************************************************************************* +** +** Function BTM_ReadEScoLinkParms +** +** Description This function returns the current eSCO link parameters for +** the specified handle. This can be called anytime a connection +** is active, but is typically called after receiving the SCO +** opened callback. +** +** Note: If called over a 1.1 controller, only the packet types +** field has meaning. +** Note: If the upper layer doesn't know the current sco index, +** BTM_FIRST_ACTIVE_SCO_INDEX can be used as the first parameter to +** find the first active SCO index +** +** Returns BTM_SUCCESS if returned data is valid connection. +** BTM_ILLEGAL_VALUE if no connection for specified sco_inx. +** BTM_MODE_UNSUPPORTED if local controller does not support +** 1.2 specification. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ReadEScoLinkParms (UINT16 sco_inx, + tBTM_ESCO_DATA *p_parms); + +/******************************************************************************* +** +** Function BTM_ChangeEScoLinkParms +** +** Description This function requests renegotiation of the parameters on +** the current eSCO Link. If any of the changes are accepted +** by the controllers, the BTM_ESCO_CHG_EVT event is sent in +** the tBTM_ESCO_CBACK function with the current settings of +** the link. The callback is registered through the call to +** BTM_SetEScoMode. +** +** +** Returns BTM_CMD_STARTED if command is successfully initiated. +** BTM_ILLEGAL_VALUE if no connection for specified sco_inx. +** BTM_NO_RESOURCES - not enough resources to initiate command. +** BTM_MODE_UNSUPPORTED if local controller does not support +** 1.2 specification. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ChangeEScoLinkParms (UINT16 sco_inx, + tBTM_CHG_ESCO_PARAMS *p_parms); + +/******************************************************************************* +** +** Function BTM_EScoConnRsp +** +** Description This function is called upon receipt of an (e)SCO connection +** request event (BTM_ESCO_CONN_REQ_EVT) to accept or reject +** the request. Parameters used to negotiate eSCO links. +** If p_parms is NULL, then values set through BTM_SetEScoMode +** are used. +** If the link type of the incoming request is SCO, then only +** the tx_bw, max_latency, content format, and packet_types are +** valid. The hci_status parameter should be +** ([0x0] to accept, [0x0d..0x0f] to reject) +** +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_EScoConnRsp (UINT16 sco_inx, UINT8 hci_status, + tBTM_ESCO_PARAMS *p_parms); + +/******************************************************************************* +** +** Function BTM_GetNumScoLinks +** +** Description This function returns the number of active SCO links. +** +** Returns UINT8 +** +*******************************************************************************/ +//extern +UINT8 BTM_GetNumScoLinks (void); + +/***************************************************************************** +** SECURITY MANAGEMENT FUNCTIONS +*****************************************************************************/ +/******************************************************************************* +** +** Function BTM_SecRegister +** +** Description Application manager calls this function to register for +** security services. There can be one and only one application +** saving link keys. BTM allows only first registration. +** +** Returns TRUE if registered OK, else FALSE +** +*******************************************************************************/ +//extern +BOOLEAN BTM_SecRegister (tBTM_APPL_INFO *p_cb_info); + +/******************************************************************************* +** +** Function BTM_SecRegisterLinkKeyNotificationCallback +** +** Description Profiles can register to be notified when a new Link Key +** is generated per connection. +** +** Returns TRUE if registered OK, else FALSE +** +*******************************************************************************/ +//extern +BOOLEAN BTM_SecRegisterLinkKeyNotificationCallback( + tBTM_LINK_KEY_CALLBACK *p_callback); + +/******************************************************************************* +** +** Function BTM_SecAddRmtNameNotifyCallback +** +** Description Profiles can register to be notified when name of the +** remote device is resolved (up to BTM_SEC_MAX_RMT_NAME_CALLBACKS). +** +** Returns TRUE if registered OK, else FALSE +** +*******************************************************************************/ +//extern +BOOLEAN BTM_SecAddRmtNameNotifyCallback (tBTM_RMT_NAME_CALLBACK *p_callback); + + +/******************************************************************************* +** +** Function BTM_SecDeleteRmtNameNotifyCallback +** +** Description A profile can deregister notification when a new Link Key +** is generated per connection. +** +** Returns TRUE if OK, else FALSE +** +*******************************************************************************/ +//extern +BOOLEAN BTM_SecDeleteRmtNameNotifyCallback (tBTM_RMT_NAME_CALLBACK *p_callback); + +/******************************************************************************* +** +** Function BTM_GetSecurityFlags +** +** Description Get security flags for the device +** +** Returns BOOLEAN TRUE or FALSE is device found +** +*******************************************************************************/ +//extern +BOOLEAN BTM_GetSecurityFlags (BD_ADDR bd_addr, UINT8 *p_sec_flags); + +/******************************************************************************* +** +** Function BTM_GetSecurityFlagsByTransport +** +** Description Get security flags for the device on a particular transport +** +** Parameters bd_addr: BD address of remote device +** p_sec_flags : Out parameter to be filled with security flags for the connection +** transport : Physical transport of the connection (BR/EDR or LE) +** +** Returns BOOLEAN TRUE or FALSE is device found +** +*******************************************************************************/ +//extern +BOOLEAN BTM_GetSecurityFlagsByTransport (BD_ADDR bd_addr, + UINT8 *p_sec_flags, tBT_TRANSPORT transport); + +/******************************************************************************* +** +** Function BTM_ReadTrustedMask +** +** Description Get trusted mask for the device +** +** Returns NULL, if the device record is not found. +** otherwise, the trusted mask +** +*******************************************************************************/ +//extern +UINT32 *BTM_ReadTrustedMask (BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function BTM_SetPinType +** +** Description Set PIN type for the device. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_SetPinType (UINT8 pin_type, PIN_CODE pin_code, UINT8 pin_code_len); + + +/******************************************************************************* +** +** Function BTM_SetPairableMode +** +** Description Enable or disable pairing +** +** Parameters allow_pairing - (TRUE or FALSE) whether or not the device +** allows pairing. +** connect_only_paired - (TRUE or FALSE) whether or not to +** only allow paired devices to connect. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_SetPairableMode (BOOLEAN allow_pairing, BOOLEAN connect_only_paired); + +/******************************************************************************* +** +** Function BTM_SetSecureConnectionsOnly +** +** Description Enable or disable default treatment for Mode 4 Level 0 services +** +** Parameter secure_connections_only_mode - (TRUE or FALSE) +** TRUE means that the device should treat Mode 4 Level 0 services as +** services of other levels. +** FALSE means that the device should provide default treatment for +** Mode 4 Level 0 services. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_SetSecureConnectionsOnly (BOOLEAN secure_connections_only_mode); + +/******************************************************************************* +** +** Function BTM_SetSecurityLevel +** +** Description Register service security level with Security Manager. Each +** service must register its requirements regardless of the +** security level that is used. This API is called once for originators +** nad again for acceptors of connections. +** +** Returns TRUE if registered OK, else FALSE +** +*******************************************************************************/ +//extern +BOOLEAN BTM_SetSecurityLevel (BOOLEAN is_originator, char *p_name, + UINT8 service_id, UINT16 sec_level, + UINT16 psm, UINT32 mx_proto_id, + UINT32 mx_chan_id); + +/******************************************************************************* +** +** Function BTM_SetOutService +** +** Description This function is called to set the service for +** outgoing connection. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_SetOutService(BD_ADDR bd_addr, UINT8 service_id, UINT32 mx_chan_id); + +/******************************************************************************* +** +** Function BTM_SecClrService +** +** Description Removes specified service record(s) from the security database. +** All service records with the specified name are removed. +** Typically used only by devices with limited RAM so that it can +** reuse an old security service record. +** records (except SDP). +** +** Returns Number of records that were freed. +** +*******************************************************************************/ +//extern +UINT8 BTM_SecClrService (UINT8 service_id); + +/******************************************************************************* +** +** Function BTM_SecAddDevice +** +** Description Add/modify device. This function will be normally called +** during host startup to restore all required information +** stored in the NVRAM. +** dev_class, bd_name, link_key, and features are NULL if unknown +** +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +//extern +BOOLEAN BTM_SecAddDevice (BD_ADDR bd_addr, DEV_CLASS dev_class, + BD_NAME bd_name, UINT8 *features, + UINT32 trusted_mask[], LINK_KEY link_key, + UINT8 key_type, tBTM_IO_CAP io_cap, UINT8 pin_length); + + +/******************************************************************************* +** +** Function BTM_SecDeleteDevice +** +** Description Free resources associated with the device. +** +** Returns TRUE if rmoved OK, FALSE if not found +** +*******************************************************************************/ +//extern +BOOLEAN BTM_SecDeleteDevice (BD_ADDR bd_addr); + + +/******************************************************************************* +** +** Function BTM_SecGetDeviceLinkKey +** +** Description This function is called to obtain link key for the device +** it returns BTM_SUCCESS if link key is available, or +** BTM_UNKNOWN_ADDR if Security Manager does not know about +** the device or device record does not contain link key info +** +** Returns BTM_SUCCESS if successful, otherwise error code +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SecGetDeviceLinkKey (BD_ADDR bd_addr, + LINK_KEY link_key); + + +/******************************************************************************* +** +** Function BTM_SecGetDeviceLinkKeyType +** +** Description This function is called to obtain link key type for the +** device. +** it returns BTM_SUCCESS if link key is available, or +** BTM_UNKNOWN_ADDR if Security Manager does not know about +** the device or device record does not contain link key info +** +** Returns BTM_LKEY_TYPE_IGNORE if link key is unknown, link type +** otherwise. +** +*******************************************************************************/ +//extern +tBTM_LINK_KEY_TYPE BTM_SecGetDeviceLinkKeyType (BD_ADDR bd_addr); + + +/******************************************************************************* +** +** Function BTM_PINCodeReply +** +** Description This function is called after Security Manager submitted +** PIN code request to the UI. +** +** Parameters: bd_addr - Address of the device for which PIN was requested +** res - result of the operation BTM_SUCCESS if success +** pin_len - length in bytes of the PIN Code +** p_pin - pointer to array with the PIN Code +** trusted_mask - bitwise OR of trusted services (array of UINT32) +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_PINCodeReply (BD_ADDR bd_addr, UINT8 res, UINT8 pin_len, + UINT8 *p_pin, UINT32 trusted_mask[]); + + +/******************************************************************************* +** +** Function BTM_SecBond +** +** Description This function is called to perform bonding with peer device. +** +** Parameters: bd_addr - Address of the device to bond +** pin_len - length in bytes of the PIN Code +** p_pin - pointer to array with the PIN Code +** trusted_mask - bitwise OR of trusted services (array of UINT32) + +** Returns BTM_CMD_STARTED if successfully initiated, otherwise error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SecBond (BD_ADDR bd_addr, + UINT8 pin_len, UINT8 *p_pin, + UINT32 trusted_mask[]); + +/******************************************************************************* +** +** Function BTM_SecBondByTransport +** +** Description This function is called to perform bonding by designated transport +** +** Parameters: bd_addr - Address of the device to bond +** pin_len - length in bytes of the PIN Code +** p_pin - pointer to array with the PIN Code +** trusted_mask - bitwise OR of trusted services (array of UINT32) +** transport : Physical transport to use for bonding (BR/EDR or LE) +** +** Returns BTM_CMD_STARTED if successfully initiated, otherwise error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SecBondByTransport (BD_ADDR bd_addr, + tBT_TRANSPORT transport, + UINT8 pin_len, UINT8 *p_pin, + UINT32 trusted_mask[]); + +/******************************************************************************* +** +** Function BTM_SecBondCancel +** +** Description This function is called to cancel ongoing bonding process +** with peer device. +** +** Returns BTM_CMD_STARTED if successfully initiated, otherwise error +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SecBondCancel (BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function BTM_SetEncryption +** +** Description This function is called to ensure that connection is +** encrypted. Should be called only on an open connection. +** Typically only needed for connections that first want to +** bring up unencrypted links, then later encrypt them. +** +** Parameters: bd_addr - Address of the peer device +** p_callback - Pointer to callback function called if +** this function returns PENDING after required +** procedures are completed. Can be set to NULL +** if status is not desired. +** p_ref_data - pointer to any data the caller wishes to receive +** in the callback function upon completion. +* can be set to NULL if not used. +** +** Returns BTM_SUCCESS - already encrypted +** BTM_PENDING - command will be returned in the callback +** BTM_WRONG_MODE- connection not up. +** BTM_BUSY - security procedures are currently active +** BTM_MODE_UNSUPPORTED - if security manager not linked in. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetEncryption (BD_ADDR bd_addr, tBT_TRANSPORT transport, + tBTM_SEC_CBACK *p_callback, void *p_ref_data); + +/******************************************************************************* +** +** Function BTM_ConfirmReqReply +** +** Description This function is called to confirm the numeric value for +** Simple Pairing in response to BTM_SP_CFM_REQ_EVT +** +** Parameters: res - result of the operation BTM_SUCCESS if success +** bd_addr - Address of the peer device +** +*******************************************************************************/ +//extern +void BTM_ConfirmReqReply(tBTM_STATUS res, BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function BTM_PasskeyReqReply +** +** Description This function is called to provide the passkey for +** Simple Pairing in response to BTM_SP_KEY_REQ_EVT +** +** Parameters: res - result of the operation BTM_SUCCESS if success +** bd_addr - Address of the peer device +** passkey - numeric value in the range of 0 - 999999(0xF423F). +** +*******************************************************************************/ +//extern +void BTM_PasskeyReqReply(tBTM_STATUS res, BD_ADDR bd_addr, UINT32 passkey); + +/******************************************************************************* +** +** Function BTM_SendKeypressNotif +** +** Description This function is used during the passkey entry model +** by a device with KeyboardOnly IO capabilities +** (very likely to be a HID Device). +** It is called by a HID Device to inform the remote device when +** a key has been entered or erased. +** +** Parameters: bd_addr - Address of the peer device +** type - notification type +** +*******************************************************************************/ +//extern +void BTM_SendKeypressNotif(BD_ADDR bd_addr, tBTM_SP_KEY_TYPE type); + +/******************************************************************************* +** +** Function BTM_IoCapRsp +** +** Description This function is called in response to BTM_SP_IO_REQ_EVT +** When the event data io_req.oob_data is set to BTM_OOB_UNKNOWN +** by the tBTM_SP_CALLBACK implementation, this function is +** called to provide the actual response +** +** Parameters: bd_addr - Address of the peer device +** io_cap - The IO capability of local device. +** oob - BTM_OOB_NONE or BTM_OOB_PRESENT. +** auth_req- MITM protection required or not. +** +*******************************************************************************/ +//extern +void BTM_IoCapRsp(BD_ADDR bd_addr, tBTM_IO_CAP io_cap, + tBTM_OOB_DATA oob, tBTM_AUTH_REQ auth_req); + +/******************************************************************************* +** +** Function BTM_ReadLocalOobData +** +** Description This function is called to read the local OOB data from +** LM +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ReadLocalOobData(void); + +/******************************************************************************* +** +** Function BTM_RemoteOobDataReply +** +** Description This function is called to provide the remote OOB data for +** Simple Pairing in response to BTM_SP_RMT_OOB_EVT +** +** Parameters: bd_addr - Address of the peer device +** c - simple pairing Hash C. +** r - simple pairing Randomizer C. +** +*******************************************************************************/ +//extern +void BTM_RemoteOobDataReply(tBTM_STATUS res, BD_ADDR bd_addr, + BT_OCTET16 c, BT_OCTET16 r); + +/******************************************************************************* +** +** Function BTM_BuildOobData +** +** Description This function is called to build the OOB data payload to +** be sent over OOB (non-Bluetooth) link +** +** Parameters: p_data - the location for OOB data +** max_len - p_data size. +** c - simple pairing Hash C. +** r - simple pairing Randomizer C. +** name_len- 0, local device name would not be included. +** otherwise, the local device name is included for +** up to this specified length +** +** Returns Number of bytes in p_data. +** +*******************************************************************************/ +//extern +UINT16 BTM_BuildOobData(UINT8 *p_data, UINT16 max_len, BT_OCTET16 c, + BT_OCTET16 r, UINT8 name_len); + +/******************************************************************************* +** +** Function BTM_BothEndsSupportSecureConnections +** +** Description This function is called to check if both the local device and the peer device +** specified by bd_addr support BR/EDR Secure Connections. +** +** Parameters: bd_addr - address of the peer +** +** Returns TRUE if BR/EDR Secure Connections are supported by both local +** and the remote device. +** else FALSE. +** +*******************************************************************************/ +//extern +BOOLEAN BTM_BothEndsSupportSecureConnections(BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function BTM_PeerSupportsSecureConnections +** +** Description This function is called to check if the peer supports +** BR/EDR Secure Connections. +** +** Parameters: bd_addr - address of the peer +** +** Returns TRUE if BR/EDR Secure Connections are supported by the peer, +** else FALSE. +** +*******************************************************************************/ +//extern +BOOLEAN BTM_PeerSupportsSecureConnections(BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function BTM_ReadOobData +** +** Description This function is called to parse the OOB data payload +** received over OOB (non-Bluetooth) link +** +** Parameters: p_data - the location for OOB data +** eir_tag - The associated EIR tag to read the data. +** *p_len(output) - the length of the data with the given tag. +** +** Returns the beginning of the data with the given tag. +** NULL, if the tag is not found. +** +*******************************************************************************/ +//extern +UINT8 *BTM_ReadOobData(UINT8 *p_data, UINT8 eir_tag, UINT8 *p_len); + +/******************************************************************************* +** +** Function BTM_SecReadDevName +** +** Description Looks for the device name in the security database for the +** specified BD address. +** +** Returns Pointer to the name or NULL +** +*******************************************************************************/ +//extern +char *BTM_SecReadDevName (BD_ADDR bd_addr); + + +/***************************************************************************** +** POWER MANAGEMENT FUNCTIONS +*****************************************************************************/ +/******************************************************************************* +** +** Function BTM_PmRegister +** +** Description register or deregister with power manager +** +** Returns BTM_SUCCESS if successful, +** BTM_NO_RESOURCES if no room to hold registration +** BTM_ILLEGAL_VALUE +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_PmRegister (UINT8 mask, UINT8 *p_pm_id, + tBTM_PM_STATUS_CBACK *p_cb); + + +/******************************************************************************* +** +** Function BTM_SetPowerMode +** +** Description store the mode in control block or +** alter ACL connection behavior. +** +** Returns BTM_SUCCESS if successful, +** BTM_UNKNOWN_ADDR if bd addr is not active or bad +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetPowerMode (UINT8 pm_id, BD_ADDR remote_bda, + tBTM_PM_PWR_MD *p_mode); + + +/******************************************************************************* +** +** Function BTM_ReadPowerMode +** +** Description This returns the current mode for a specific +** ACL connection. +** +** Input Param remote_bda - device address of desired ACL connection +** +** Output Param p_mode - address where the current mode is copied into. +** BTM_ACL_MODE_NORMAL +** BTM_ACL_MODE_HOLD +** BTM_ACL_MODE_SNIFF +** BTM_ACL_MODE_PARK +** (valid only if return code is BTM_SUCCESS) +** +** Returns BTM_SUCCESS if successful, +** BTM_UNKNOWN_ADDR if bd addr is not active or bad +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ReadPowerMode (BD_ADDR remote_bda, + tBTM_PM_MODE *p_mode); + +/******************************************************************************* +** +** Function BTM_SetSsrParams +** +** Description This sends the given SSR parameters for the given ACL +** connection if it is in ACTIVE mode. +** +** Input Param remote_bda - device address of desired ACL connection +** max_lat - maximum latency (in 0.625ms)(0-0xFFFE) +** min_rmt_to - minimum remote timeout +** min_loc_to - minimum local timeout +** +** +** Returns BTM_SUCCESS if the HCI command is issued successful, +** BTM_UNKNOWN_ADDR if bd addr is not active or bad +** BTM_CMD_STORED if the command is stored +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetSsrParams (BD_ADDR remote_bda, UINT16 max_lat, + UINT16 min_rmt_to, UINT16 min_loc_to); + +/******************************************************************************* +** +** Function BTM_GetHCIConnHandle +** +** Description This function is called to get the handle for an ACL connection +** to a specific remote BD Address. +** +** Returns the handle of the connection, or 0xFFFF if none. +** +*******************************************************************************/ +//extern +UINT16 BTM_GetHCIConnHandle (BD_ADDR remote_bda, tBT_TRANSPORT transport); + +/******************************************************************************* +** +** Function BTM_DeleteStoredLinkKey +** +** Description This function is called to delete link key for the specified +** device addresses from the NVRAM storage attached to the Bluetooth +** controller. +** +** Parameters: bd_addr - Addresses of the devices +** p_cb - Call back function to be called to return +** the results +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_DeleteStoredLinkKey(BD_ADDR bd_addr, tBTM_CMPL_CB *p_cb); + +/******************************************************************************* +** +** Function BTM_WriteEIR +** +** Description This function is called to write EIR data to controller. +** +** Parameters p_buff - allocated HCI command buffer including extended +** inquriry response +** +** Returns BTM_SUCCESS - if successful +** BTM_MODE_UNSUPPORTED - if local device cannot support it +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_WriteEIR( BT_HDR *p_buff ); + +/******************************************************************************* +** +** Function BTM_CheckEirData +** +** Description This function is called to get EIR data from significant part. +** +** Parameters p_eir - pointer of EIR significant part +** type - finding EIR data type +** p_length - return the length of EIR data +** +** Returns pointer of EIR data +** +*******************************************************************************/ +//extern +UINT8 *BTM_CheckEirData( UINT8 *p_eir, UINT8 type, UINT8 *p_length ); + +/******************************************************************************* +** +** Function BTM_HasEirService +** +** Description This function is called to know if UUID in bit map of UUID. +** +** Parameters p_eir_uuid - bit map of UUID list +** uuid16 - UUID 16-bit +** +** Returns TRUE - if found +** FALSE - if not found +** +*******************************************************************************/ +//extern +BOOLEAN BTM_HasEirService( UINT32 *p_eir_uuid, UINT16 uuid16 ); + +/******************************************************************************* +** +** Function BTM_HasInquiryEirService +** +** Description This function is called to know if UUID in bit map of UUID list. +** +** Parameters p_results - inquiry results +** uuid16 - UUID 16-bit +** +** Returns BTM_EIR_FOUND - if found +** BTM_EIR_NOT_FOUND - if not found and it is complete list +** BTM_EIR_UNKNOWN - if not found and it is not complete list +** +*******************************************************************************/ +//extern +tBTM_EIR_SEARCH_RESULT BTM_HasInquiryEirService( tBTM_INQ_RESULTS *p_results, + UINT16 uuid16 ); + +/******************************************************************************* +** +** Function BTM_AddEirService +** +** Description This function is called to add a service in bit map of UUID list. +** +** Parameters p_eir_uuid - bit mask of UUID list for EIR +** uuid16 - UUID 16-bit +** +** Returns None +** +*******************************************************************************/ +//extern +void BTM_AddEirService( UINT32 *p_eir_uuid, UINT16 uuid16 ); + +/******************************************************************************* +** +** Function BTM_RemoveEirService +** +** Description This function is called to remove a service in bit map of UUID list. +** +** Parameters p_eir_uuid - bit mask of UUID list for EIR +** uuid16 - UUID 16-bit +** +** Returns None +** +*******************************************************************************/ +//extern +void BTM_RemoveEirService( UINT32 *p_eir_uuid, UINT16 uuid16 ); + +/******************************************************************************* +** +** Function BTM_GetEirSupportedServices +** +** Description This function is called to get UUID list from bit map of UUID list. +** +** Parameters p_eir_uuid - bit mask of UUID list for EIR +** p - reference of current pointer of EIR +** max_num_uuid16 - max number of UUID can be written in EIR +** num_uuid16 - number of UUID have been written in EIR +** +** Returns BTM_EIR_MORE_16BITS_UUID_TYPE, if it has more than max +** BTM_EIR_COMPLETE_16BITS_UUID_TYPE, otherwise +** +*******************************************************************************/ +//extern +UINT8 BTM_GetEirSupportedServices( UINT32 *p_eir_uuid, UINT8 **p, + UINT8 max_num_uuid16, UINT8 *p_num_uuid16); + +/******************************************************************************* +** +** Function BTM_GetEirUuidList +** +** Description This function parses EIR and returns UUID list. +** +** Parameters p_eir - EIR +** uuid_size - LEN_UUID_16, LEN_UUID_32, LEN_UUID_128 +** p_num_uuid - return number of UUID in found list +** p_uuid_list - return UUID 16-bit list +** max_num_uuid - maximum number of UUID to be returned +** +** Returns 0 - if not found +** BTM_EIR_COMPLETE_16BITS_UUID_TYPE +** BTM_EIR_MORE_16BITS_UUID_TYPE +** BTM_EIR_COMPLETE_32BITS_UUID_TYPE +** BTM_EIR_MORE_32BITS_UUID_TYPE +** BTM_EIR_COMPLETE_128BITS_UUID_TYPE +** BTM_EIR_MORE_128BITS_UUID_TYPE +** +*******************************************************************************/ +//extern +UINT8 BTM_GetEirUuidList( UINT8 *p_eir, UINT8 uuid_size, UINT8 *p_num_uuid, + UINT8 *p_uuid_list, UINT8 max_num_uuid); + +/***************************************************************************** +** SCO OVER HCI +*****************************************************************************/ +/******************************************************************************* +** +** Function BTM_ConfigScoPath +** +** Description This function enable/disable SCO over HCI and registers SCO +** data callback if SCO over HCI is enabled. +** +** Parameter path: SCO or HCI +** p_sco_data_cb: callback function or SCO data if path is set +** to transport. +** p_pcm_param: pointer to the PCM interface parameter. If a NULL +** pointer is used, PCM parameter maintained in +** the control block will be used; otherwise update +** control block value. +** err_data_rpt: Lisbon feature to enable the erronous data report +** or not. +** +** Returns BTM_SUCCESS if the successful. +** BTM_NO_RESOURCES: no rsource to start the command. +** BTM_ILLEGAL_VALUE: invalid callback function pointer. +** BTM_CMD_STARTED :Command sent. Waiting for command cmpl event. +** +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_ConfigScoPath (tBTM_SCO_ROUTE_TYPE path, + tBTM_SCO_DATA_CB *p_sco_data_cb, + tBTM_SCO_PCM_PARAM *p_pcm_param, + BOOLEAN err_data_rpt); + +/******************************************************************************* +** +** Function BTM_WriteScoData +** +** Description This function write SCO data to a specified instance. The data +** to be written p_buf needs to carry an offset of +** HCI_SCO_PREAMBLE_SIZE bytes, and the data length can not +** exceed BTM_SCO_DATA_SIZE_MAX bytes, whose default value is set +** to 60 and is configurable. Data longer than the maximum bytes +** will be truncated. +** +** Returns BTM_SUCCESS: data write is successful +** BTM_ILLEGAL_VALUE: SCO data contains illegal offset value. +** BTM_SCO_BAD_LENGTH: SCO data length exceeds the max SCO packet +** size. +** BTM_NO_RESOURCES: no resources. +** BTM_UNKNOWN_ADDR: unknown SCO connection handle, or SCO is not +** routed via HCI. +** +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_WriteScoData (UINT16 sco_inx, BT_HDR *p_buf); + +/******************************************************************************* +** +** Function BTM_SetARCMode +** +** Description Send Audio Routing Control command. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_SetARCMode (UINT8 iface, UINT8 arc_mode, tBTM_VSC_CMPL_CB *p_arc_cb); + + +/******************************************************************************* +** +** Function BTM_PCM2Setup_Write +** +** Description Send PCM2_Setup write command. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_PCM2Setup_Write (BOOLEAN clk_master, tBTM_VSC_CMPL_CB *p_arc_cb); + + +/******************************************************************************* +** +** Function BTM_PM_ReadControllerState +** +** Description This function is called to obtain the controller state +** +** Returns Controller state (BTM_CONTRL_ACTIVE, BTM_CONTRL_SCAN, and BTM_CONTRL_IDLE) +** +*******************************************************************************/ +//extern +tBTM_CONTRL_STATE BTM_PM_ReadControllerState(void); +/* +#ifdef __cplusplus +} +#endif +*/ + +#endif /* BTM_API_H */ diff --git a/tools/sdk/include/bluedroid/btm_ble_api.h b/tools/sdk/include/bluedroid/btm_ble_api.h new file mode 100644 index 00000000..6eb07838 --- /dev/null +++ b/tools/sdk/include/bluedroid/btm_ble_api.h @@ -0,0 +1,1958 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This file contains the Bluetooth Manager (BTM) API function external + * definitions. + * + ******************************************************************************/ +#ifndef BTM_BLE_API_H +#define BTM_BLE_API_H + +#include "bt_defs.h" +#include "btm_api.h" +#include "gki.h" +#include "bt_common_types.h" + +#define CHANNEL_MAP_LEN 5 +typedef UINT8 tBTM_BLE_CHNL_MAP[CHANNEL_MAP_LEN]; + +/* 0x00-0x04 only used for set advertising parameter command */ +#define BTM_BLE_CONNECT_EVT 0x00 /* 0x00-0x04 only used for set advertising + parameter command */ +#define BTM_BLE_CONNECT_DIR_EVT 0x01 /* Connectable directed advertising */ +#define BTM_BLE_DISCOVER_EVT 0x02 /* Scannable undirected advertising */ +#define BTM_BLE_NON_CONNECT_EVT 0x03 /* Non connectable undirected advertising */ +#define BTM_BLE_CONNECT_LO_DUTY_DIR_EVT 0x04 /* Connectable low duty + cycle directed advertising */ +/* 0x00 - 0x05 can be received on adv event type */ +#define BTM_BLE_SCAN_RSP_EVT 0x04 +#define BTM_BLE_SCAN_REQ_EVT 0x05 +#define BTM_BLE_UNKNOWN_EVT 0xff + +#define BTM_BLE_UNKNOWN_EVT 0xff + +typedef UINT8 tBTM_BLE_EVT; +typedef UINT8 tBTM_BLE_CONN_MODE; + +typedef UINT32 tBTM_BLE_REF_VALUE; + +#define BTM_BLE_SCAN_MODE_PASS 0 +#define BTM_BLE_SCAN_MODE_ACTI 1 +#define BTM_BLE_SCAN_MODE_NONE 0xff +typedef UINT8 tBLE_SCAN_MODE; + +#define BTM_BLE_BATCH_SCAN_MODE_DISABLE 0 +#define BTM_BLE_BATCH_SCAN_MODE_PASS 1 +#define BTM_BLE_BATCH_SCAN_MODE_ACTI 2 +#define BTM_BLE_BATCH_SCAN_MODE_PASS_ACTI 3 + +typedef UINT8 tBTM_BLE_BATCH_SCAN_MODE; + +/* advertising channel map */ +#define BTM_BLE_ADV_CHNL_37 (0x01 << 0) +#define BTM_BLE_ADV_CHNL_38 (0x01 << 1) +#define BTM_BLE_ADV_CHNL_39 (0x01 << 2) +typedef UINT8 tBTM_BLE_ADV_CHNL_MAP; + +/*d efault advertising channel map */ +#ifndef BTM_BLE_DEFAULT_ADV_CHNL_MAP +#define BTM_BLE_DEFAULT_ADV_CHNL_MAP (BTM_BLE_ADV_CHNL_37| BTM_BLE_ADV_CHNL_38| BTM_BLE_ADV_CHNL_39) +#endif + +/* advertising filter policy */ +#define AP_SCAN_CONN_ALL 0x00 /* default */ +#define AP_SCAN_WL_CONN_ALL 0x01 +#define AP_SCAN_ALL_CONN_WL 0x02 +#define AP_SCAN_CONN_WL 0x03 +#define AP_SCAN_CONN_POLICY_MAX 0x04 +typedef UINT8 tBTM_BLE_AFP; + +/* default advertising filter policy */ +#ifndef BTM_BLE_DEFAULT_AFP +#define BTM_BLE_DEFAULT_AFP AP_SCAN_CONN_ALL +#endif + +/* scanning filter policy */ +#define SP_ADV_ALL 0x00 /* 0: accept adv packet from all, directed adv pkt not directed */ +/* to local device is ignored */ +#define SP_ADV_WL 0x01 /* 1: accept adv packet from device in white list, directed adv */ +/* packet not directed to local device is ignored */ +#define SP_ADV_ALL_RPA_DIR_ADV 0x02 /* 2: accept adv packet from all, directed adv pkt */ +/* not directed to me is ignored except direct adv with RPA */ +#define SP_ADV_WL_RPA_DIR_ADV 0x03 /* 3: accept adv packet from device in white list, directed */ +/* adv pkt not directed to me is ignored except direct adv */ +/* with RPA */ +typedef UINT8 tBTM_BLE_SFP; + +#ifndef BTM_BLE_DEFAULT_SFP +#define BTM_BLE_DEFAULT_SFP SP_ADV_ALL +#endif + +/* adv parameter boundary values */ +#define BTM_BLE_ADV_INT_MIN 0x0020 +#define BTM_BLE_ADV_INT_MAX 0x4000 + +/* Full scan boundary values */ +#define BTM_BLE_ADV_SCAN_FULL_MIN 0x00 +#define BTM_BLE_ADV_SCAN_FULL_MAX 0x64 + +/* Partial scan boundary values */ +#define BTM_BLE_ADV_SCAN_TRUNC_MIN BTM_BLE_ADV_SCAN_FULL_MIN +#define BTM_BLE_ADV_SCAN_TRUNC_MAX BTM_BLE_ADV_SCAN_FULL_MAX + +/* Threshold values */ +#define BTM_BLE_ADV_SCAN_THR_MIN BTM_BLE_ADV_SCAN_FULL_MIN +#define BTM_BLE_ADV_SCAN_THR_MAX BTM_BLE_ADV_SCAN_FULL_MAX + +/* connection parameter boundary values */ +#define BTM_BLE_SCAN_INT_MIN 0x0004 +#define BTM_BLE_SCAN_INT_MAX 0x4000 +#define BTM_BLE_SCAN_WIN_MIN 0x0004 +#define BTM_BLE_SCAN_WIN_MAX 0x4000 +#define BTM_BLE_EXT_SCAN_INT_MAX 0x00FFFFFF +#define BTM_BLE_EXT_SCAN_WIN_MAX 0xFFFF +#define BTM_BLE_CONN_INT_MIN 0x0006 +#define BTM_BLE_CONN_INT_MAX 0x0C80 +#define BTM_BLE_CONN_LATENCY_MAX 500 +#define BTM_BLE_CONN_SUP_TOUT_MIN 0x000A +#define BTM_BLE_CONN_SUP_TOUT_MAX 0x0C80 +#define BTM_BLE_CONN_PARAM_UNDEF 0xffff /* use this value when a specific value not to be overwritten */ +#define BTM_BLE_SCAN_PARAM_UNDEF 0xffffffff + +/* default connection parameters if not configured, use GAP recommend value for auto/selective connection */ +/* default scan interval */ +#ifndef BTM_BLE_SCAN_FAST_INT +#define BTM_BLE_SCAN_FAST_INT 96 /* 30 ~ 60 ms (use 60) = 96 *0.625 */ +#endif +/* default scan window for background connection, applicable for auto connection or selective conenction */ +#ifndef BTM_BLE_SCAN_FAST_WIN +#define BTM_BLE_SCAN_FAST_WIN 48 /* 30 ms = 48 *0.625 */ +#endif + +/* default scan paramter used in reduced power cycle (background scanning) */ +#ifndef BTM_BLE_SCAN_SLOW_INT_1 +#define BTM_BLE_SCAN_SLOW_INT_1 2048 /* 1.28 s = 2048 *0.625 */ +#endif +#ifndef BTM_BLE_SCAN_SLOW_WIN_1 +#define BTM_BLE_SCAN_SLOW_WIN_1 48 /* 30 ms = 48 *0.625 */ +#endif + +/* default scan paramter used in reduced power cycle (background scanning) */ +#ifndef BTM_BLE_SCAN_SLOW_INT_2 +#define BTM_BLE_SCAN_SLOW_INT_2 4096 /* 2.56 s = 4096 *0.625 */ +#endif +#ifndef BTM_BLE_SCAN_SLOW_WIN_2 +#define BTM_BLE_SCAN_SLOW_WIN_2 36 /* 22.5 ms = 36 *0.625 */ +#endif + +/* default connection interval min */ +#ifndef BTM_BLE_CONN_INT_MIN_DEF +#define BTM_BLE_CONN_INT_MIN_DEF 24 /* recommended min: 30ms = 24 * 1.25 */ +#endif + +/* default connection interval max */ +#ifndef BTM_BLE_CONN_INT_MAX_DEF +#define BTM_BLE_CONN_INT_MAX_DEF 40 /* recommended max: 50 ms = 56 * 1.25 */ +#endif + +/* default slave latency */ +#ifndef BTM_BLE_CONN_SLAVE_LATENCY_DEF +#define BTM_BLE_CONN_SLAVE_LATENCY_DEF 0 /* 0 */ +#endif + +/* default supervision timeout */ +#ifndef BTM_BLE_CONN_TIMEOUT_DEF +#define BTM_BLE_CONN_TIMEOUT_DEF 2000 +#endif + +/* minimum acceptable connection interval */ +#ifndef BTM_BLE_CONN_INT_MIN_LIMIT +#define BTM_BLE_CONN_INT_MIN_LIMIT 0x0009 +#endif + +#define BTM_BLE_DIR_CONN_FALLBACK_UNDIR 1 +#define BTM_BLE_DIR_CONN_FALLBACK_NO_ADV 2 + +#ifndef BTM_BLE_DIR_CONN_FALLBACK +#define BTM_BLE_DIR_CONN_FALLBACK BTM_BLE_DIR_CONN_FALLBACK_UNDIR +#endif + +#define BTM_CMAC_TLEN_SIZE 8 /* 64 bits */ +#define BTM_BLE_AUTH_SIGN_LEN 12 /* BLE data signature length 8 Bytes + 4 bytes counter*/ +typedef UINT8 BLE_SIGNATURE[BTM_BLE_AUTH_SIGN_LEN]; /* Device address */ + +#ifndef BTM_BLE_HOST_SUPPORT +#define BTM_BLE_HOST_SUPPORT 0x01 +#endif + +#ifndef BTM_BLE_SIMULTANEOUS_HOST +#define BTM_BLE_SIMULTANEOUS_HOST 0x01 +#endif + +/* Appearance Values Reported with BTM_BLE_AD_TYPE_APPEARANCE */ +#define BTM_BLE_APPEARANCE_UKNOWN 0x0000 +#define BTM_BLE_APPEARANCE_GENERIC_PHONE 0x0040 +#define BTM_BLE_APPEARANCE_GENERIC_COMPUTER 0x0080 +#define BTM_BLE_APPEARANCE_GENERIC_WATCH 0x00C0 +#define BTM_BLE_APPEARANCE_SPORTS_WATCH 0x00C1 +#define BTM_BLE_APPEARANCE_GENERIC_CLOCK 0x0100 +#define BTM_BLE_APPEARANCE_GENERIC_DISPLAY 0x0140 +#define BTM_BLE_APPEARANCE_GENERIC_REMOTE 0x0180 +#define BTM_BLE_APPEARANCE_GENERIC_EYEGLASSES 0x01C0 +#define BTM_BLE_APPEARANCE_GENERIC_TAG 0x0200 +#define BTM_BLE_APPEARANCE_GENERIC_KEYRING 0x0240 +#define BTM_BLE_APPEARANCE_GENERIC_MEDIA_PLAYER 0x0280 +#define BTM_BLE_APPEARANCE_GENERIC_BARCODE_SCANNER 0x02C0 +#define BTM_BLE_APPEARANCE_GENERIC_THERMOMETER 0x0300 +#define BTM_BLE_APPEARANCE_THERMOMETER_EAR 0x0301 +#define BTM_BLE_APPEARANCE_GENERIC_HEART_RATE 0x0340 +#define BTM_BLE_APPEARANCE_HEART_RATE_BELT 0x0341 +#define BTM_BLE_APPEARANCE_GENERIC_BLOOD_PRESSURE 0x0380 +#define BTM_BLE_APPEARANCE_BLOOD_PRESSURE_ARM 0x0381 +#define BTM_BLE_APPEARANCE_BLOOD_PRESSURE_WRIST 0x0382 +#define BTM_BLE_APPEARANCE_GENERIC_HID 0x03C0 +#define BTM_BLE_APPEARANCE_HID_KEYBOARD 0x03C1 +#define BTM_BLE_APPEARANCE_HID_MOUSE 0x03C2 +#define BTM_BLE_APPEARANCE_HID_JOYSTICK 0x03C3 +#define BTM_BLE_APPEARANCE_HID_GAMEPAD 0x03C4 +#define BTM_BLE_APPEARANCE_HID_DIGITIZER_TABLET 0x03C5 +#define BTM_BLE_APPEARANCE_HID_CARD_READER 0x03C6 +#define BTM_BLE_APPEARANCE_HID_DIGITAL_PEN 0x03C7 +#define BTM_BLE_APPEARANCE_HID_BARCODE_SCANNER 0x03C8 +#define BTM_BLE_APPEARANCE_GENERIC_GLUCOSE 0x0400 +#define BTM_BLE_APPEARANCE_GENERIC_WALKING 0x0440 +#define BTM_BLE_APPEARANCE_WALKING_IN_SHOE 0x0441 +#define BTM_BLE_APPEARANCE_WALKING_ON_SHOE 0x0442 +#define BTM_BLE_APPEARANCE_WALKING_ON_HIP 0x0443 +#define BTM_BLE_APPEARANCE_GENERIC_CYCLING 0x0480 +#define BTM_BLE_APPEARANCE_CYCLING_COMPUTER 0x0481 +#define BTM_BLE_APPEARANCE_CYCLING_SPEED 0x0482 +#define BTM_BLE_APPEARANCE_CYCLING_CADENCE 0x0483 +#define BTM_BLE_APPEARANCE_CYCLING_POWER 0x0484 +#define BTM_BLE_APPEARANCE_CYCLING_SPEED_CADENCE 0x0485 +#define BTM_BLE_APPEARANCE_GENERIC_PULSE_OXIMETER 0x0C40 +#define BTM_BLE_APPEARANCE_PULSE_OXIMETER_FINGERTIP 0x0C41 +#define BTM_BLE_APPEARANCE_PULSE_OXIMETER_WRIST 0x0C42 +#define BTM_BLE_APPEARANCE_GENERIC_WEIGHT 0x0C80 +#define BTM_BLE_APPEARANCE_GENERIC_OUTDOOR_SPORTS 0x1440 +#define BTM_BLE_APPEARANCE_OUTDOOR_SPORTS_LOCATION 0x1441 +#define BTM_BLE_APPEARANCE_OUTDOOR_SPORTS_LOCATION_AND_NAV 0x1442 +#define BTM_BLE_APPEARANCE_OUTDOOR_SPORTS_LOCATION_POD 0x1443 +#define BTM_BLE_APPEARANCE_OUTDOOR_SPORTS_LOCATION_POD_AND_NAV 0x1444 + + +/* Structure returned with Rand/Encrypt complete callback */ +typedef struct { + UINT8 status; + UINT8 param_len; + UINT16 opcode; + UINT8 param_buf[BT_OCTET16_LEN]; +} tBTM_RAND_ENC; + +/* General callback function for notifying an application that a synchronous +** BTM function is complete. The pointer contains the address of any returned data. +*/ +typedef void (tBTM_RAND_ENC_CB) (tBTM_RAND_ENC *p1); + +#define BTM_BLE_FILTER_TARGET_SCANNER 0x01 +#define BTM_BLE_FILTER_TARGET_ADVR 0x00 + +#define BTM_BLE_POLICY_BLACK_ALL 0x00 /* relevant to both */ +#define BTM_BLE_POLICY_ALLOW_SCAN 0x01 /* relevant to advertiser */ +#define BTM_BLE_POLICY_ALLOW_CONN 0x02 /* relevant to advertiser */ +#define BTM_BLE_POLICY_WHITE_ALL 0x03 /* relevant to both */ + +/* ADV data flag bit definition used for BTM_BLE_AD_TYPE_FLAG */ +#define BTM_BLE_LIMIT_DISC_FLAG (0x01 << 0) +#define BTM_BLE_GEN_DISC_FLAG (0x01 << 1) +#define BTM_BLE_BREDR_NOT_SPT (0x01 << 2) +/* 4.1 spec adv flag for simultaneous BR/EDR+LE connection support */ +#define BTM_BLE_DMT_CONTROLLER_SPT (0x01 << 3) +#define BTM_BLE_DMT_HOST_SPT (0x01 << 4) +#define BTM_BLE_NON_LIMIT_DISC_FLAG (0x00 ) /* lowest bit unset */ +#define BTM_BLE_ADV_FLAG_MASK (BTM_BLE_LIMIT_DISC_FLAG | BTM_BLE_BREDR_NOT_SPT | BTM_BLE_GEN_DISC_FLAG) +#define BTM_BLE_LIMIT_DISC_MASK (BTM_BLE_LIMIT_DISC_FLAG ) + +#define BTM_BLE_AD_BIT_DEV_NAME (0x00000001 << 0) +#define BTM_BLE_AD_BIT_FLAGS (0x00000001 << 1) +#define BTM_BLE_AD_BIT_MANU (0x00000001 << 2) +#define BTM_BLE_AD_BIT_TX_PWR (0x00000001 << 3) +#define BTM_BLE_AD_BIT_INT_RANGE (0x00000001 << 5) +#define BTM_BLE_AD_BIT_SERVICE (0x00000001 << 6) +#define BTM_BLE_AD_BIT_SERVICE_SOL (0x00000001 << 7) +#define BTM_BLE_AD_BIT_SERVICE_DATA (0x00000001 << 8) +#define BTM_BLE_AD_BIT_SIGN_DATA (0x00000001 << 9) +#define BTM_BLE_AD_BIT_SERVICE_128SOL (0x00000001 << 10) +#define BTM_BLE_AD_BIT_APPEARANCE (0x00000001 << 11) +#define BTM_BLE_AD_BIT_PUBLIC_ADDR (0x00000001 << 12) +#define BTM_BLE_AD_BIT_RANDOM_ADDR (0x00000001 << 13) +#define BTM_BLE_AD_BIT_SERVICE_32 (0x00000001 << 4) +#define BTM_BLE_AD_BIT_SERVICE_32SOL (0x00000001 << 14) +#define BTM_BLE_AD_BIT_PROPRIETARY (0x00000001 << 15) +#define BTM_BLE_AD_BIT_SERVICE_128 (0x00000001 << 16) /*128-bit Service UUIDs*/ + +typedef UINT32 tBTM_BLE_AD_MASK; + +#define BTM_BLE_AD_TYPE_FLAG HCI_EIR_FLAGS_TYPE /* 0x01 */ +#define BTM_BLE_AD_TYPE_16SRV_PART HCI_EIR_MORE_16BITS_UUID_TYPE /* 0x02 */ +#define BTM_BLE_AD_TYPE_16SRV_CMPL HCI_EIR_COMPLETE_16BITS_UUID_TYPE /* 0x03 */ +#define BTM_BLE_AD_TYPE_32SRV_PART HCI_EIR_MORE_32BITS_UUID_TYPE /* 0x04 */ +#define BTM_BLE_AD_TYPE_32SRV_CMPL HCI_EIR_COMPLETE_32BITS_UUID_TYPE /* 0x05 */ +#define BTM_BLE_AD_TYPE_128SRV_PART HCI_EIR_MORE_128BITS_UUID_TYPE /* 0x06 */ +#define BTM_BLE_AD_TYPE_128SRV_CMPL HCI_EIR_COMPLETE_128BITS_UUID_TYPE /* 0x07 */ +#define BTM_BLE_AD_TYPE_NAME_SHORT HCI_EIR_SHORTENED_LOCAL_NAME_TYPE /* 0x08 */ +#define BTM_BLE_AD_TYPE_NAME_CMPL HCI_EIR_COMPLETE_LOCAL_NAME_TYPE /* 0x09 */ +#define BTM_BLE_AD_TYPE_TX_PWR HCI_EIR_TX_POWER_LEVEL_TYPE /* 0x0A */ +#define BTM_BLE_AD_TYPE_DEV_CLASS 0x0D +#define BTM_BLE_AD_TYPE_SM_TK 0x10 +#define BTM_BLE_AD_TYPE_SM_OOB_FLAG 0x11 +#define BTM_BLE_AD_TYPE_INT_RANGE 0x12 +#define BTM_BLE_AD_TYPE_SOL_SRV_UUID 0x14 +#define BTM_BLE_AD_TYPE_128SOL_SRV_UUID 0x15 +#define BTM_BLE_AD_TYPE_SERVICE_DATA 0x16 +#define BTM_BLE_AD_TYPE_PUBLIC_TARGET 0x17 +#define BTM_BLE_AD_TYPE_RANDOM_TARGET 0x18 +#define BTM_BLE_AD_TYPE_APPEARANCE 0x19 +#define BTM_BLE_AD_TYPE_ADV_INT 0x1a +#define BTM_BLE_AD_TYPE_32SOL_SRV_UUID 0x1b +#define BTM_BLE_AD_TYPE_32SERVICE_DATA 0x1c +#define BTM_BLE_AD_TYPE_128SERVICE_DATA 0x1d + +#define BTM_BLE_AD_TYPE_MANU HCI_EIR_MANUFACTURER_SPECIFIC_TYPE /* 0xff */ +typedef UINT8 tBTM_BLE_AD_TYPE; + +/* Security settings used with L2CAP LE COC */ +#define BTM_SEC_LE_LINK_ENCRYPTED 0x01 +#define BTM_SEC_LE_LINK_PAIRED_WITHOUT_MITM 0x02 +#define BTM_SEC_LE_LINK_PAIRED_WITH_MITM 0x04 + +/* Min/max Preferred number of payload octets that the local Controller + should include in a single Link Layer Data Channel PDU. */ +#define BTM_BLE_DATA_SIZE_MAX 0x00fb +#define BTM_BLE_DATA_SIZE_MIN 0x001b + +/* Preferred maximum number of microseconds that the local Controller + should use to transmit a single Link Layer Data Channel PDU. */ +#define BTM_BLE_DATA_TX_TIME_MIN 0x0148 +#define BTM_BLE_DATA_TX_TIME_MAX 0x0848 + +/* adv tx power level */ +#define BTM_BLE_ADV_TX_POWER_MIN 0 /* minimum tx power */ +#define BTM_BLE_ADV_TX_POWER_LOW 1 /* low tx power */ +#define BTM_BLE_ADV_TX_POWER_MID 2 /* middle tx power */ +#define BTM_BLE_ADV_TX_POWER_UPPER 3 /* upper tx power */ +#define BTM_BLE_ADV_TX_POWER_MAX 4 /* maximum tx power */ +typedef UINT8 tBTM_BLE_ADV_TX_POWER; + +/* adv tx power in dBm */ +typedef struct { + UINT8 adv_inst_max; /* max adv instance supported in controller */ + UINT8 rpa_offloading; + UINT16 tot_scan_results_strg; + UINT8 max_irk_list_sz; + UINT8 filter_support; + UINT8 max_filter; + UINT8 energy_support; + BOOLEAN values_read; + UINT16 version_supported; + UINT16 total_trackable_advertisers; + UINT8 extended_scan_support; + UINT8 debug_logging_supported; +} tBTM_BLE_VSC_CB; + +/* slave preferred connection interval range */ +typedef struct { + UINT16 low; + UINT16 hi; + +} tBTM_BLE_INT_RANGE; + +/* Service tag supported in the device */ +typedef struct { + UINT8 num_service; + BOOLEAN list_cmpl; + UINT16 *p_uuid; +} tBTM_BLE_SERVICE; + +/* 32 bits Service supported in the device */ +typedef struct { + UINT8 num_service; + BOOLEAN list_cmpl; + UINT32 *p_uuid; +} tBTM_BLE_32SERVICE; + +/* 128 bits Service supported in the device */ +typedef struct { + BOOLEAN list_cmpl; + UINT8 uuid128[MAX_UUID_SIZE]; +} tBTM_BLE_128SERVICE; + +typedef struct { + UINT8 len; + UINT8 *p_val; +} tBTM_BLE_MANU; + + +typedef struct { + tBT_UUID service_uuid; + UINT8 len; + UINT8 *p_val; +} tBTM_BLE_SERVICE_DATA; + +typedef struct { + UINT8 adv_type; + UINT8 len; + UINT8 *p_val; /* number of len byte */ +} tBTM_BLE_PROP_ELEM; + +typedef struct { + UINT8 num_elem; + tBTM_BLE_PROP_ELEM *p_elem; +} tBTM_BLE_PROPRIETARY; + +typedef struct { + tBTM_BLE_INT_RANGE int_range; /* slave prefered conn interval range */ + tBTM_BLE_MANU *p_manu; /* manufactuer data */ + tBTM_BLE_SERVICE *p_services; /* services */ + tBTM_BLE_128SERVICE *p_services_128b; /* 128 bits service */ + tBTM_BLE_32SERVICE *p_service_32b; /* 32 bits Service UUID */ + tBTM_BLE_SERVICE *p_sol_services; /* 16 bits services Solicitation UUIDs */ + tBTM_BLE_32SERVICE *p_sol_service_32b; /* List of 32 bit Service Solicitation UUIDs */ + tBTM_BLE_128SERVICE *p_sol_service_128b; /* List of 128 bit Service Solicitation UUIDs */ + tBTM_BLE_PROPRIETARY *p_proprietary; + tBTM_BLE_SERVICE_DATA *p_service_data; /* service data */ + UINT16 appearance; + UINT8 flag; + UINT8 tx_power; +} tBTM_BLE_ADV_DATA; + +#ifndef BTM_BLE_MULTI_ADV_MAX +#define BTM_BLE_MULTI_ADV_MAX 16 /* controller returned adv_inst_max should be less + than this number */ +#endif + +#define BTM_BLE_MULTI_ADV_INVALID 0 + +#define BTM_BLE_MULTI_ADV_ENB_EVT 1 +#define BTM_BLE_MULTI_ADV_DISABLE_EVT 2 +#define BTM_BLE_MULTI_ADV_PARAM_EVT 3 +#define BTM_BLE_MULTI_ADV_DATA_EVT 4 +typedef UINT8 tBTM_BLE_MULTI_ADV_EVT; + +#define BTM_BLE_MULTI_ADV_DEFAULT_STD 0 + +typedef struct { + UINT16 adv_int_min; + UINT16 adv_int_max; + UINT8 adv_type; + tBTM_BLE_ADV_CHNL_MAP channel_map; + tBTM_BLE_AFP adv_filter_policy; + tBTM_BLE_ADV_TX_POWER tx_power; +} tBTM_BLE_ADV_PARAMS; + +typedef struct { + UINT8 *p_sub_code; /* dynamic array to store sub code */ + UINT8 *p_inst_id; /* dynamic array to store instance id */ + UINT8 pending_idx; + UINT8 next_idx; +} tBTM_BLE_MULTI_ADV_OPQ; + +typedef void (tBTM_BLE_MULTI_ADV_CBACK)(tBTM_BLE_MULTI_ADV_EVT evt, UINT8 inst_id, + void *p_ref, tBTM_STATUS status); + +typedef struct { + UINT8 inst_id; + BOOLEAN in_use; + UINT8 adv_evt; + BD_ADDR rpa; + TIMER_LIST_ENT raddr_timer_ent; + tBTM_BLE_MULTI_ADV_CBACK *p_cback; + void *p_ref; + UINT8 index; +} tBTM_BLE_MULTI_ADV_INST; + +typedef struct { + UINT8 inst_index_queue[BTM_BLE_MULTI_ADV_MAX]; + int front; + int rear; +} tBTM_BLE_MULTI_ADV_INST_IDX_Q; + +typedef struct { + tBTM_BLE_MULTI_ADV_INST *p_adv_inst; /* dynamic array to store adv instance */ + tBTM_BLE_MULTI_ADV_OPQ op_q; +} tBTM_BLE_MULTI_ADV_CB; + +typedef UINT8 tGATT_IF; + +typedef void (tBTM_BLE_SCAN_THRESHOLD_CBACK)(tBTM_BLE_REF_VALUE ref_value); +typedef void (tBTM_BLE_SCAN_REP_CBACK)(tBTM_BLE_REF_VALUE ref_value, UINT8 report_format, + UINT8 num_records, UINT16 total_len, + UINT8 *p_rep_data, UINT8 status); +typedef void (tBTM_BLE_SCAN_SETUP_CBACK)(UINT8 evt, tBTM_BLE_REF_VALUE ref_value, UINT8 status); + +#ifndef BTM_BLE_BATCH_SCAN_MAX +#define BTM_BLE_BATCH_SCAN_MAX 5 +#endif + +#ifndef BTM_BLE_BATCH_REP_MAIN_Q_SIZE +#define BTM_BLE_BATCH_REP_MAIN_Q_SIZE 2 +#endif + +typedef enum { + BTM_BLE_SCAN_INVALID_STATE = 0, + BTM_BLE_SCAN_ENABLE_CALLED = 1, + BTM_BLE_SCAN_ENABLED_STATE = 2, + BTM_BLE_SCAN_DISABLE_CALLED = 3, + BTM_BLE_SCAN_DISABLED_STATE = 4 +} tBTM_BLE_BATCH_SCAN_STATE; + +enum { + BTM_BLE_DISCARD_OLD_ITEMS, + BTM_BLE_DISCARD_LOWER_RSSI_ITEMS +}; +typedef UINT8 tBTM_BLE_DISCARD_RULE; + +typedef struct { + UINT8 sub_code[BTM_BLE_BATCH_SCAN_MAX]; + tBTM_BLE_BATCH_SCAN_STATE cur_state[BTM_BLE_BATCH_SCAN_MAX]; + tBTM_BLE_REF_VALUE ref_value[BTM_BLE_BATCH_SCAN_MAX]; + UINT8 pending_idx; + UINT8 next_idx; +} tBTM_BLE_BATCH_SCAN_OPQ; + +typedef struct { + UINT8 rep_mode[BTM_BLE_BATCH_REP_MAIN_Q_SIZE]; + tBTM_BLE_REF_VALUE ref_value[BTM_BLE_BATCH_REP_MAIN_Q_SIZE]; + UINT8 num_records[BTM_BLE_BATCH_REP_MAIN_Q_SIZE]; + UINT16 data_len[BTM_BLE_BATCH_REP_MAIN_Q_SIZE]; + UINT8 *p_data[BTM_BLE_BATCH_REP_MAIN_Q_SIZE]; + UINT8 pending_idx; + UINT8 next_idx; +} tBTM_BLE_BATCH_SCAN_REP_Q; + +typedef struct { + tBTM_BLE_BATCH_SCAN_STATE cur_state; + tBTM_BLE_BATCH_SCAN_MODE scan_mode; + UINT32 scan_interval; + UINT32 scan_window; + tBLE_ADDR_TYPE addr_type; + tBTM_BLE_DISCARD_RULE discard_rule; + tBTM_BLE_BATCH_SCAN_OPQ op_q; + tBTM_BLE_BATCH_SCAN_REP_Q main_rep_q; + tBTM_BLE_SCAN_SETUP_CBACK *p_setup_cback; + tBTM_BLE_SCAN_THRESHOLD_CBACK *p_thres_cback; + tBTM_BLE_SCAN_REP_CBACK *p_scan_rep_cback; + tBTM_BLE_REF_VALUE ref_value; +} tBTM_BLE_BATCH_SCAN_CB; + +/* filter selection bit index */ +#define BTM_BLE_PF_ADDR_FILTER 0 +#define BTM_BLE_PF_SRVC_DATA 1 +#define BTM_BLE_PF_SRVC_UUID 2 +#define BTM_BLE_PF_SRVC_SOL_UUID 3 +#define BTM_BLE_PF_LOCAL_NAME 4 +#define BTM_BLE_PF_MANU_DATA 5 +#define BTM_BLE_PF_SRVC_DATA_PATTERN 6 +#define BTM_BLE_PF_TYPE_ALL 7 /* when passed in payload filter type all, only clear action is applicable */ +#define BTM_BLE_PF_TYPE_MAX 8 + +/* max number of filter spot for different filter type */ +#ifndef BTM_BLE_MAX_UUID_FILTER +#define BTM_BLE_MAX_UUID_FILTER 8 +#endif +#ifndef BTM_BLE_MAX_ADDR_FILTER +#define BTM_BLE_MAX_ADDR_FILTER 8 +#endif +#ifndef BTM_BLE_PF_STR_COND_MAX +#define BTM_BLE_PF_STR_COND_MAX 4 /* apply to manu data , or local name */ +#endif +#ifndef BTM_BLE_PF_STR_LEN_MAX +#define BTM_BLE_PF_STR_LEN_MAX 29 /* match for first 29 bytes */ +#endif + +typedef UINT8 tBTM_BLE_PF_COND_TYPE; + +#define BTM_BLE_PF_LOGIC_OR 0 +#define BTM_BLE_PF_LOGIC_AND 1 +typedef UINT8 tBTM_BLE_PF_LOGIC_TYPE; + +#define BTM_BLE_PF_ENABLE 1 +#define BTM_BLE_PF_CONFIG 2 +typedef UINT8 tBTM_BLE_PF_ACTION; + +typedef UINT8 tBTM_BLE_PF_FILT_INDEX; + +typedef UINT8 tBTM_BLE_PF_AVBL_SPACE; + +#define BTM_BLE_PF_BRDCAST_ADDR_FILT 1 +#define BTM_BLE_PF_SERV_DATA_CHG_FILT 2 +#define BTM_BLE_PF_SERV_UUID 4 +#define BTM_BLE_PF_SERV_SOLC_UUID 8 +#define BTM_BLE_PF_LOC_NAME_CHECK 16 +#define BTM_BLE_PF_MANUF_NAME_CHECK 32 +#define BTM_BLE_PF_SERV_DATA_CHECK 64 +typedef UINT16 tBTM_BLE_PF_FEAT_SEL; + +#define BTM_BLE_PF_LIST_LOGIC_OR 1 +#define BTM_BLE_PF_LIST_LOGIC_AND 2 +typedef UINT16 tBTM_BLE_PF_LIST_LOGIC_TYPE; + +#define BTM_BLE_PF_FILT_LOGIC_OR 0 +#define BTM_BLE_PF_FILT_LOGIC_AND 1 +typedef UINT16 tBTM_BLE_PF_FILT_LOGIC_TYPE; + +typedef UINT8 tBTM_BLE_PF_RSSI_THRESHOLD; +typedef UINT8 tBTM_BLE_PF_DELIVERY_MODE; +typedef UINT16 tBTM_BLE_PF_TIMEOUT; +typedef UINT8 tBTM_BLE_PF_TIMEOUT_CNT; +typedef UINT16 tBTM_BLE_PF_ADV_TRACK_ENTRIES; + +typedef struct { + tBTM_BLE_PF_FEAT_SEL feat_seln; + tBTM_BLE_PF_LIST_LOGIC_TYPE logic_type; + tBTM_BLE_PF_FILT_LOGIC_TYPE filt_logic_type; + tBTM_BLE_PF_RSSI_THRESHOLD rssi_high_thres; + tBTM_BLE_PF_RSSI_THRESHOLD rssi_low_thres; + tBTM_BLE_PF_DELIVERY_MODE dely_mode; + tBTM_BLE_PF_TIMEOUT found_timeout; + tBTM_BLE_PF_TIMEOUT lost_timeout; + tBTM_BLE_PF_TIMEOUT_CNT found_timeout_cnt; + tBTM_BLE_PF_ADV_TRACK_ENTRIES num_of_tracking_entries; +} tBTM_BLE_PF_FILT_PARAMS; + +enum { + BTM_BLE_SCAN_COND_ADD, + BTM_BLE_SCAN_COND_DELETE, + BTM_BLE_SCAN_COND_CLEAR = 2 +}; +typedef UINT8 tBTM_BLE_SCAN_COND_OP; + +enum { + BTM_BLE_FILT_ENABLE_DISABLE = 1, + BTM_BLE_FILT_CFG = 2, + BTM_BLE_FILT_ADV_PARAM = 3 +}; + +typedef UINT8 tBTM_BLE_FILT_CB_EVT; + +/* BLE adv payload filtering config complete callback */ +typedef void (tBTM_BLE_PF_CFG_CBACK)(tBTM_BLE_PF_ACTION action, tBTM_BLE_SCAN_COND_OP cfg_op, + tBTM_BLE_PF_AVBL_SPACE avbl_space, tBTM_STATUS status, + tBTM_BLE_REF_VALUE ref_value); + +typedef void (tBTM_BLE_PF_CMPL_CBACK) (tBTM_BLE_PF_CFG_CBACK); + +/* BLE adv payload filtering status setup complete callback */ +typedef void (tBTM_BLE_PF_STATUS_CBACK) (UINT8 action, tBTM_STATUS status, + tBTM_BLE_REF_VALUE ref_value); + +/* BLE adv payload filtering param setup complete callback */ +typedef void (tBTM_BLE_PF_PARAM_CBACK) (tBTM_BLE_PF_ACTION action_type, + tBTM_BLE_PF_AVBL_SPACE avbl_space, + tBTM_BLE_REF_VALUE ref_value, tBTM_STATUS status); + +typedef union { + UINT16 uuid16_mask; + UINT32 uuid32_mask; + UINT8 uuid128_mask[LEN_UUID_128]; +} tBTM_BLE_PF_COND_MASK; + +typedef struct { + tBLE_BD_ADDR *p_target_addr; /* target address, if NULL, generic UUID filter */ + tBT_UUID uuid; /* UUID condition */ + tBTM_BLE_PF_LOGIC_TYPE cond_logic; /* AND/OR */ + tBTM_BLE_PF_COND_MASK *p_uuid_mask; /* UUID mask */ +} tBTM_BLE_PF_UUID_COND; + +typedef struct { + UINT8 data_len; /* <= 20 bytes */ + UINT8 *p_data; +} tBTM_BLE_PF_LOCAL_NAME_COND; + +typedef struct { + UINT16 company_id; /* company ID */ + UINT8 data_len; /* <= 20 bytes */ + UINT8 *p_pattern; + UINT16 company_id_mask; /* UUID value mask */ + UINT8 *p_pattern_mask; /* Manufacturer data matching mask, + same length as data pattern, + set to all 0xff, match exact data */ +} tBTM_BLE_PF_MANU_COND; + +typedef struct { + UINT16 uuid; /* service ID */ + UINT8 data_len; /* <= 20 bytes */ + UINT8 *p_pattern; + UINT8 *p_pattern_mask; /* Service data matching mask, same length as data pattern, + set to all 0xff, match exact data */ +} tBTM_BLE_PF_SRVC_PATTERN_COND; + + +typedef union { + tBLE_BD_ADDR target_addr; + tBTM_BLE_PF_LOCAL_NAME_COND local_name; /* lcoal name filtering */ + tBTM_BLE_PF_MANU_COND manu_data; /* manufactuer data filtering */ + tBTM_BLE_PF_UUID_COND srvc_uuid; /* service UUID filtering */ + tBTM_BLE_PF_UUID_COND solicitate_uuid; /* solicitated service UUID filtering */ + tBTM_BLE_PF_SRVC_PATTERN_COND srvc_data; /* service data pattern */ +} tBTM_BLE_PF_COND_PARAM; + +typedef struct { + UINT8 action_ocf[BTM_BLE_PF_TYPE_MAX]; + tBTM_BLE_REF_VALUE ref_value[BTM_BLE_PF_TYPE_MAX]; + tBTM_BLE_PF_PARAM_CBACK *p_filt_param_cback[BTM_BLE_PF_TYPE_MAX]; + tBTM_BLE_PF_CFG_CBACK *p_scan_cfg_cback[BTM_BLE_PF_TYPE_MAX]; + UINT8 cb_evt[BTM_BLE_PF_TYPE_MAX]; + UINT8 pending_idx; + UINT8 next_idx; +} tBTM_BLE_ADV_FILTER_ADV_OPQ; + +#define BTM_BLE_MAX_FILTER_COUNTER (BTM_BLE_MAX_ADDR_FILTER + 1) /* per device filter + one generic filter indexed by 0 */ + +#ifndef BTM_CS_IRK_LIST_MAX +#define BTM_CS_IRK_LIST_MAX 0x20 +#endif + +typedef struct { + BOOLEAN in_use; + BD_ADDR bd_addr; + UINT8 pf_counter[BTM_BLE_PF_TYPE_MAX]; /* number of filter indexed by tBTM_BLE_PF_COND_TYPE */ +} tBTM_BLE_PF_COUNT; + +typedef struct { + BOOLEAN enable; + UINT8 op_type; + tBTM_BLE_PF_COUNT *p_addr_filter_count; /* per BDA filter array */ + tBLE_BD_ADDR cur_filter_target; + tBTM_BLE_PF_STATUS_CBACK *p_filt_stat_cback; + tBTM_BLE_ADV_FILTER_ADV_OPQ op_q; +} tBTM_BLE_ADV_FILTER_CB; + +/* Sub codes */ +#define BTM_BLE_META_PF_ENABLE 0x00 +#define BTM_BLE_META_PF_FEAT_SEL 0x01 +#define BTM_BLE_META_PF_ADDR 0x02 +#define BTM_BLE_META_PF_UUID 0x03 +#define BTM_BLE_META_PF_SOL_UUID 0x04 +#define BTM_BLE_META_PF_LOCAL_NAME 0x05 +#define BTM_BLE_META_PF_MANU_DATA 0x06 +#define BTM_BLE_META_PF_SRVC_DATA 0x07 +#define BTM_BLE_META_PF_ALL 0x08 + +typedef UINT8 BTM_BLE_ADV_STATE; +typedef UINT8 BTM_BLE_ADV_INFO_PRESENT; +typedef UINT8 BTM_BLE_RSSI_VALUE; +typedef UINT16 BTM_BLE_ADV_INFO_TIMESTAMP; + +/* These are the fields returned in each device adv packet. It +** is returned in the results callback if registered. +*/ +typedef struct { + UINT8 conn_mode; + tBTM_BLE_AD_MASK ad_mask; /* mask of the valid adv data field */ + UINT8 flag; + UINT8 tx_power_level; + UINT8 remote_name_len; + UINT8 *p_remote_name; + tBTM_BLE_SERVICE service; +} tBTM_BLE_INQ_DATA; + +enum { + BTM_BLE_CONN_NONE, + BTM_BLE_CONN_AUTO, + BTM_BLE_CONN_SELECTIVE +}; +typedef UINT8 tBTM_BLE_CONN_TYPE; + +#define ADV_INFO_PRESENT 0x00 +#define NO_ADV_INFO_PRESENT 0x01 + +typedef btgatt_track_adv_info_t tBTM_BLE_TRACK_ADV_DATA; + +typedef void (tBTM_BLE_TRACK_ADV_CBACK)(tBTM_BLE_TRACK_ADV_DATA *p_track_adv_data); + +typedef UINT8 tBTM_BLE_TRACK_ADV_EVT; + +typedef struct { + tBTM_BLE_REF_VALUE ref_value; + tBTM_BLE_TRACK_ADV_CBACK *p_track_cback; +} tBTM_BLE_ADV_TRACK_CB; + +enum { + BTM_BLE_TRACK_ADV_ADD, + BTM_BLE_TRACK_ADV_REMOVE +}; + +typedef UINT8 tBTM_BLE_TRACK_ADV_ACTION; + +#define BTM_BLE_MULTI_ADV_INVALID 0 + +#define BTM_BLE_BATCH_SCAN_ENABLE_EVT 1 +#define BTM_BLE_BATCH_SCAN_CFG_STRG_EVT 2 +#define BTM_BLE_BATCH_SCAN_READ_REPTS_EVT 3 +#define BTM_BLE_BATCH_SCAN_THR_EVT 4 +#define BTM_BLE_BATCH_SCAN_PARAM_EVT 5 +#define BTM_BLE_BATCH_SCAN_DISABLE_EVT 6 + +typedef UINT8 tBTM_BLE_BATCH_SCAN_EVT; + +typedef UINT32 tBTM_BLE_TX_TIME_MS; +typedef UINT32 tBTM_BLE_RX_TIME_MS; +typedef UINT32 tBTM_BLE_IDLE_TIME_MS; +typedef UINT32 tBTM_BLE_ENERGY_USED; + +typedef void (tBTM_BLE_ENERGY_INFO_CBACK)(tBTM_BLE_TX_TIME_MS tx_time, tBTM_BLE_RX_TIME_MS rx_time, + tBTM_BLE_IDLE_TIME_MS idle_time, + tBTM_BLE_ENERGY_USED energy_used, + tBTM_STATUS status); + +typedef struct { + tBTM_BLE_ENERGY_INFO_CBACK *p_ener_cback; +} tBTM_BLE_ENERGY_INFO_CB; + +typedef BOOLEAN (tBTM_BLE_SEL_CBACK)(BD_ADDR random_bda, UINT8 *p_remote_name); +typedef void (tBTM_BLE_CTRL_FEATURES_CBACK)(tBTM_STATUS status); + +/* callback function for SMP signing algorithm, signed data in little endian order with tlen bits long */ +typedef void (tBTM_BLE_SIGN_CBACK)(void *p_ref_data, UINT8 *p_signing_data); +typedef void (tBTM_BLE_VERIFY_CBACK)(void *p_ref_data, BOOLEAN match); +/* random address set complete callback */ +typedef void (tBTM_BLE_RANDOM_SET_CBACK) (BD_ADDR random_bda); + +typedef void (tBTM_BLE_SCAN_REQ_CBACK)(BD_ADDR remote_bda, tBLE_ADDR_TYPE addr_type, UINT8 adv_evt); +typedef void (*tBLE_SCAN_PARAM_SETUP_CBACK)(tGATT_IF client_if, tBTM_STATUS status); + +tBTM_BLE_SCAN_SETUP_CBACK bta_ble_scan_setup_cb; + +/***************************************************************************** +** EXTERNAL FUNCTION DECLARATIONS +*****************************************************************************/ +/* +#ifdef __cplusplus +extern "C" { +#endif +*/ +/******************************************************************************* +** +** Function BTM_SecAddBleDevice +** +** Description Add/modify device. This function will be normally called +** during host startup to restore all required information +** for a LE device stored in the NVRAM. +** +** Parameters: bd_addr - BD address of the peer +** bd_name - Name of the peer device. NULL if unknown. +** dev_type - Remote device's device type. +** addr_type - LE device address type. +** +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +//extern +BOOLEAN BTM_SecAddBleDevice (BD_ADDR bd_addr, BD_NAME bd_name, + tBT_DEVICE_TYPE dev_type, tBLE_ADDR_TYPE addr_type); + +/******************************************************************************* +** +** Function BTM_SecAddBleKey +** +** Description Add/modify LE device information. This function will be +** normally called during host startup to restore all required +** information stored in the NVRAM. +** +** Parameters: bd_addr - BD address of the peer +** p_le_key - LE key values. +** key_type - LE SMP key type. +* +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +//extern +BOOLEAN BTM_SecAddBleKey (BD_ADDR bd_addr, tBTM_LE_KEY_VALUE *p_le_key, + tBTM_LE_KEY_TYPE key_type); + +/******************************************************************************* +** +** Function BTM_BleSetAdvParams +** +** Description This function is called to set advertising parameters. +** +** Parameters: None. +** +** Returns void +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleSetAdvParams(UINT16 adv_int_min, UINT16 adv_int_max, + tBLE_BD_ADDR *p_dir_bda, tBTM_BLE_ADV_CHNL_MAP chnl_map); + + + +/******************************************************************************* +** +** Function BTM_BleSetAdvParamsStartAdv +** +** Description This function is called to set all of the advertising parameters. +** +** Parameters: None. +** +** Returns void +** +*******************************************************************************/ +tBTM_STATUS BTM_BleSetAdvParamsStartAdv(UINT16 adv_int_min, UINT16 adv_int_max, UINT8 adv_type, + tBLE_ADDR_TYPE own_bda_type, tBLE_BD_ADDR *p_dir_bda, + tBTM_BLE_ADV_CHNL_MAP chnl_map, tBTM_BLE_AFP afp); + + +/******************************************************************************* +** +** Function BTM_BleWriteAdvData +** +** Description This function is called to write advertising data. +** +** Parameters: None. +** +** Returns void +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleWriteAdvData(tBTM_BLE_AD_MASK data_mask, + tBTM_BLE_ADV_DATA *p_data); + +/******************************************************************************* +** +** Function BTM_BleWriteAdvDataRaw +** +** Description This function is called to write raw advertising data. +** +** Parameters: p_raw_adv : point to raw advertising data +** raw_adv_len : raw advertising data +** +** Returns BTM_SUCCESS means success. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleWriteAdvDataRaw(UINT8 *p_raw_adv, UINT32 raw_adv_len); + + +BOOLEAN BTM_BleSetRandAddress(BD_ADDR rand_addr); + + +/******************************************************************************* +** +** Function BTM_BleSetAdvParams +** +** Description This function is called to set advertising parameters. +** +** Parameters adv_int_min: minimum advertising interval +** adv_int_max: maximum advertising interval +** p_dir_bda: connectable direct initiator's LE device address +** chnl_map: advertising channel map. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_BleReadAdvParams (UINT16 *adv_int_min, UINT16 *adv_int_max, + tBLE_BD_ADDR *p_dir_bda, tBTM_BLE_ADV_CHNL_MAP *p_chnl_map); + +/******************************************************************************* +** +** Function BTM_BleObtainVendorCapabilities +** +** Description This function is called to obatin vendor capabilties +** +** Parameters p_cmn_vsc_cb - Returns the vednor capabilities +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_BleObtainVendorCapabilities(tBTM_BLE_VSC_CB *p_cmn_vsc_cb); + +/******************************************************************************* +** +** Function BTM_BleSetScanParams +** +** Description This function is called to set Scan parameters. +** +** Parameters client_if - Client IF value +** scan_interval - Scan interval +** scan_window - Scan window +** scan_type - Scan type +** scan_setup_status_cback - Scan setup status callback +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_BleSetScanParams(tGATT_IF client_if, UINT32 scan_interval, + UINT32 scan_window, tBLE_SCAN_MODE scan_type, + tBLE_SCAN_PARAM_SETUP_CBACK scan_setup_status_cback); + + + +/******************************************************************************* +** +** Function BTM_BleSetScanFilterParams +** +** Description This function is called to set Scan Filter & parameters. +** +** Parameters client_if - Client IF value +** scan_interval - Scan interval +** scan_window - Scan window +** scan_type - Scan type +** addr_type_own - owner address type +** scan_filter_policy - scan filter policy +** scan_setup_status_cback - Scan setup status callback +** +** Returns void +** +*******************************************************************************/ +void BTM_BleSetScanFilterParams(tGATT_IF client_if, UINT32 scan_interval, UINT32 scan_window, + tBLE_SCAN_MODE scan_mode, UINT8 addr_type_own, tBTM_BLE_SFP scan_filter_policy, + tBLE_SCAN_PARAM_SETUP_CBACK scan_setup_status_cback); + + +/******************************************************************************* +** +** Function BTM_BleGetVendorCapabilities +** +** Description This function reads local LE features +** +** Parameters p_cmn_vsc_cb : Locala LE capability structure +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_BleGetVendorCapabilities(tBTM_BLE_VSC_CB *p_cmn_vsc_cb); +/******************************************************************************* +** +** Function BTM_BleSetStorageConfig +** +** Description This function is called to setup storage configuration and setup callbacks. +** +** Parameters UINT8 batch_scan_full_max -Batch scan full maximum + UINT8 batch_scan_trunc_max - Batch scan truncated value maximum + UINT8 batch_scan_notify_threshold - Threshold value + tBTM_BLE_SCAN_SETUP_CBACK *p_setup_cback - Setup callback + tBTM_BLE_SCAN_THRESHOLD_CBACK *p_thres_cback -Threshold callback + void *p_ref - Reference value +** +** Returns tBTM_STATUS +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleSetStorageConfig(UINT8 batch_scan_full_max, + UINT8 batch_scan_trunc_max, + UINT8 batch_scan_notify_threshold, + tBTM_BLE_SCAN_SETUP_CBACK *p_setup_cback, + tBTM_BLE_SCAN_THRESHOLD_CBACK *p_thres_cback, + tBTM_BLE_SCAN_REP_CBACK *p_cback, + tBTM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTM_BleEnableBatchScan +** +** Description This function is called to enable batch scan +** +** Parameters tBTM_BLE_BATCH_SCAN_MODE scan_mode - Batch scan mode + UINT32 scan_interval -Scan interval + UINT32 scan_window - Scan window value + tBLE_ADDR_TYPE addr_type - Address type + tBTM_BLE_DISCARD_RULE discard_rule - Data discard rules +** +** Returns tBTM_STATUS +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleEnableBatchScan(tBTM_BLE_BATCH_SCAN_MODE scan_mode, + UINT32 scan_interval, UINT32 scan_window, + tBTM_BLE_DISCARD_RULE discard_rule, + tBLE_ADDR_TYPE addr_type, + tBTM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTM_BleDisableBatchScan +** +** Description This function is called to disable batch scanning +** +** Parameters void +** +** Returns void +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleDisableBatchScan(tBTM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTM_BleReadScanReports +** +** Description This function is called to read batch scan reports +** +** Parameters tBLE_SCAN_MODE scan_mode - Scan mode report to be read out + tBTM_BLE_SCAN_REP_CBACK* p_cback - Reports callback +** +** Returns tBTM_STATUS +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleReadScanReports(tBLE_SCAN_MODE scan_mode, + tBTM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTM_BleTrackAdvertiser +** +** Description This function is called to read batch scan reports +** +** Parameters p_track_cback - Tracking callback +** ref_value - Reference value +** +** Returns tBTM_STATUS +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleTrackAdvertiser(tBTM_BLE_TRACK_ADV_CBACK *p_track_cback, + tBTM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTM_BleWriteScanRsp +** +** Description This function is called to write LE scan response. +** +** Parameters: p_scan_rsp: scan response. +** +** Returns status +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleWriteScanRsp(tBTM_BLE_AD_MASK data_mask, + tBTM_BLE_ADV_DATA *p_data); + +/******************************************************************************* +** +** Function BTM_BleWriteScanRspRaw +** +** Description This function is called to write raw scan response data +** +** Parameters: None. +** +** Returns void +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleWriteScanRspRaw(UINT8 *p_raw_scan_rsp, UINT32 raw_scan_rsp_len); + +/******************************************************************************* +** +** Function BTM_BleObserve +** +** Description This procedure keep the device listening for advertising +** events from a broadcast device. +** +** Parameters start: start or stop observe. +** +** Returns void +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleObserve(BOOLEAN start, UINT8 duration, + tBTM_INQ_RESULTS_CB *p_results_cb, tBTM_CMPL_CB *p_cmpl_cb); + + +/******************************************************************************* +** +** Function BTM_GetDeviceIDRoot +** +** Description This function is called to read the local device identity +** root. +** +** Returns void +** the local device ER is copied into er +** +*******************************************************************************/ +//extern +void BTM_GetDeviceIDRoot (BT_OCTET16 ir); + +/******************************************************************************* +** +** Function BTM_GetDeviceEncRoot +** +** Description This function is called to read the local device encryption +** root. +** +** Returns void +** the local device ER is copied into er +** +*******************************************************************************/ +//extern +void BTM_GetDeviceEncRoot (BT_OCTET16 er); + +/******************************************************************************* +** +** Function BTM_GetDeviceDHK +** +** Description This function is called to read the local device DHK. +** +** Returns void +** the local device DHK is copied into dhk +** +*******************************************************************************/ +//extern +void BTM_GetDeviceDHK (BT_OCTET16 dhk); + +/******************************************************************************* +** +** Function BTM_SecurityGrant +** +** Description This function is called to grant security process. +** +** Parameters bd_addr - peer device bd address. +** res - result of the operation BTM_SUCCESS if success. +** Otherwise, BTM_REPEATED_ATTEMPTS is too many attempts. +** +** Returns None +** +*******************************************************************************/ +//extern +void BTM_SecurityGrant(BD_ADDR bd_addr, UINT8 res); + +/******************************************************************************* +** +** Function BTM_BlePasskeyReply +** +** Description This function is called after Security Manager submitted +** passkey request to the application. +** +** Parameters: bd_addr - Address of the device for which passkey was requested +** res - result of the operation SMP_SUCCESS if success +** passkey - numeric value in the range of +** BTM_MIN_PASSKEY_VAL(0) - BTM_MAX_PASSKEY_VAL(999999(0xF423F)). +** +*******************************************************************************/ +//extern +void BTM_BlePasskeyReply (BD_ADDR bd_addr, UINT8 res, UINT32 passkey); + +/******************************************************************************* +** +** Function BTM_BleConfirmReply +** +** Description This function is called after Security Manager submitted +** numeric comparison request to the application. +** +** Parameters: bd_addr - Address of the device with which numeric +** comparison was requested +** res - comparison result BTM_SUCCESS if success +** +*******************************************************************************/ +//extern +void BTM_BleConfirmReply (BD_ADDR bd_addr, UINT8 res); + +/******************************************************************************* +** +** Function BTM_LeOobDataReply +** +** Description This function is called to provide the OOB data for +** SMP in response to BTM_LE_OOB_REQ_EVT +** +** Parameters: bd_addr - Address of the peer device +** res - result of the operation SMP_SUCCESS if success +** p_data - simple pairing Randomizer C. +** +*******************************************************************************/ +//extern +void BTM_BleOobDataReply(BD_ADDR bd_addr, UINT8 res, UINT8 len, UINT8 *p_data); + + +/******************************************************************************* +** +** Function BTM_BleDataSignature +** +** Description This function is called to sign the data using AES128 CMAC +** algorith. +** +** Parameter bd_addr: target device the data to be signed for. +** p_text: singing data +** len: length of the signing data +** signature: output parameter where data signature is going to +** be stored. +** +** Returns TRUE if signing sucessul, otherwise FALSE. +** +*******************************************************************************/ +//extern +BOOLEAN BTM_BleDataSignature (BD_ADDR bd_addr, UINT8 *p_text, UINT16 len, + BLE_SIGNATURE signature); + +/******************************************************************************* +** +** Function BTM_BleVerifySignature +** +** Description This function is called to verify the data signature +** +** Parameter bd_addr: target device the data to be signed for. +** p_orig: original data before signature. +** len: length of the signing data +** counter: counter used when doing data signing +** p_comp: signature to be compared against. + +** Returns TRUE if signature verified correctly; otherwise FALSE. +** +*******************************************************************************/ +//extern +BOOLEAN BTM_BleVerifySignature (BD_ADDR bd_addr, UINT8 *p_orig, + UINT16 len, UINT32 counter, + UINT8 *p_comp); + +/******************************************************************************* +** +** Function BTM_ReadConnectionAddr +** +** Description This function is called to set the local device random address +** . +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_ReadConnectionAddr (BD_ADDR remote_bda, BD_ADDR local_conn_addr, + tBLE_ADDR_TYPE *p_addr_type); + + + +/******************************************************************************* +** +** Function BTM_ReadRemoteConnectionAddr +** +** Description This function is read the remote device address currently used +** . +** +** Returns void +** +*******************************************************************************/ +//extern +BOOLEAN BTM_ReadRemoteConnectionAddr(BD_ADDR pseudo_addr, + BD_ADDR conn_addr, + tBLE_ADDR_TYPE *p_addr_type); + +/******************************************************************************* +** +** Function BTM_BleLoadLocalKeys +** +** Description Local local identity key, encryption root or sign counter. +** +** Parameters: key_type: type of key, can be BTM_BLE_KEY_TYPE_ID, BTM_BLE_KEY_TYPE_ER +** or BTM_BLE_KEY_TYPE_COUNTER. +** p_key: pointer to the key. +* +** Returns non2. +** +*******************************************************************************/ +//extern +void BTM_BleLoadLocalKeys(UINT8 key_type, tBTM_BLE_LOCAL_KEYS *p_key); + + +/******************************************************************************* +** +** Function BTM_BleSetBgConnType +** +** Description This function is called to set BLE background connection +** procedure type. It can be auto connection, or selective connection. +** +** Parameters conn_type: it can be auto connection, or selective connection. +** p_select_cback: callback function when selective connection procedure +** is being used. +** +** Returns void +** +*******************************************************************************/ +//extern +BOOLEAN BTM_BleSetBgConnType(tBTM_BLE_CONN_TYPE conn_type, + tBTM_BLE_SEL_CBACK *p_select_cback); + +/******************************************************************************* +** +** Function BTM_BleUpdateBgConnDev +** +** Description This function is called to add or remove a device into/from +** background connection procedure. The background connection +* procedure is decided by the background connection type, it can be +* auto connection, or selective connection. +** +** Parameters add_remove: TRUE to add; FALSE to remove. +** remote_bda: device address to add/remove. +** +** Returns void +** +*******************************************************************************/ +//extern +BOOLEAN BTM_BleUpdateBgConnDev(BOOLEAN add_remove, BD_ADDR remote_bda); + +/******************************************************************************* +** +** Function BTM_BleClearBgConnDev +** +** Description This function is called to clear the whitelist, +** end any pending whitelist connections, +* and reset the local bg device list. +** +** Parameters void +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_BleClearBgConnDev(void); + +/******************************************************** +** +** Function BTM_BleSetPrefConnParams +** +** Description Set a peripheral's preferred connection parameters. When +** any of the value does not want to be updated while others +** do, use BTM_BLE_CONN_PARAM_UNDEF for the ones want to +** leave untouched. +** +** Parameters: bd_addr - BD address of the peripheral +** min_conn_int - minimum preferred connection interval +** max_conn_int - maximum preferred connection interval +** slave_latency - preferred slave latency +** supervision_tout - preferred supervision timeout +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_BleSetPrefConnParams (BD_ADDR bd_addr, + UINT16 min_conn_int, UINT16 max_conn_int, + UINT16 slave_latency, UINT16 supervision_tout); + +/****************************************************************************** +** +** Function BTM_BleSetConnScanParams +** +** Description Set scan parameters used in BLE connection request +** +** Parameters: scan_interval - scan interval +** scan_window - scan window +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_BleSetConnScanParams (UINT32 scan_interval, UINT32 scan_window); + +/****************************************************************************** +** +** Function BTM_BleReadControllerFeatures +** +** Description Reads BLE specific controller features +** +** Parameters: tBTM_BLE_CTRL_FEATURES_CBACK : Callback to notify when features are read +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_BleReadControllerFeatures(tBTM_BLE_CTRL_FEATURES_CBACK *p_vsc_cback); + +/******************************************************************************* +** +** Function BTM_CheckAdvData +** +** Description This function is called to get ADV data for a specific type. +** +** Parameters p_adv - pointer of ADV data +** type - finding ADV data type +** p_length - return the length of ADV data not including type +** +** Returns pointer of ADV data +** +*******************************************************************************/ +//extern +UINT8 *BTM_CheckAdvData( UINT8 *p_adv, UINT8 type, UINT8 *p_length); + +/******************************************************************************* +** +** Function BTM__BLEReadDiscoverability +** +** Description This function is called to read the current LE discoverability +** mode of the device. +** +** Returns BTM_BLE_NON_DISCOVERABLE ,BTM_BLE_LIMITED_DISCOVERABLE or +** BTM_BLE_GENRAL_DISCOVERABLE +** +*******************************************************************************/ +UINT16 BTM_BleReadDiscoverability(); + +/******************************************************************************* +** +** Function BTM__BLEReadConnectability +** +** Description This function is called to read the current LE connectibility +** mode of the device. +** +** Returns BTM_BLE_NON_CONNECTABLE or BTM_BLE_CONNECTABLE +** +*******************************************************************************/ +//extern +UINT16 BTM_BleReadConnectability (); + +/******************************************************************************* +** +** Function BTM_ReadDevInfo +** +** Description This function is called to read the device/address type +** of BD address. +** +** Parameter remote_bda: remote device address +** p_dev_type: output parameter to read the device type. +** p_addr_type: output parameter to read the address type. +** +*******************************************************************************/ +//extern +void BTM_ReadDevInfo (BD_ADDR remote_bda, tBT_DEVICE_TYPE *p_dev_type, + tBLE_ADDR_TYPE *p_addr_type); + + +/******************************************************************************* +** +** Function BTM_ReadConnectedTransportAddress +** +** Description This function is called to read the paired device/address type of other device paired +** corresponding to the BD_address +** +** Parameter remote_bda: remote device address, carry out the transport address +** transport: active transport +** +** Return TRUE if an active link is identified; FALSE otherwise +** +*******************************************************************************/ +//extern +BOOLEAN BTM_ReadConnectedTransportAddress(BD_ADDR remote_bda, + tBT_TRANSPORT transport); + +/******************************************************************************* +** +** Function BTM_BleBroadcast +** +** Description This function is to start or stop broadcasting. +** +** Parameters start: start or stop broadcasting. +** +** Returns status. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleBroadcast(BOOLEAN start); + +/******************************************************************************* +** +** Function BTM_BleConfigPrivacy +** +** Description This function is called to enable or disable the privacy in +** the local device. +** +** Parameters enable: TRUE to enable it; FALSE to disable it. +** +** Returns BOOLEAN privacy mode set success; otherwise failed. +** +*******************************************************************************/ +//extern +BOOLEAN BTM_BleConfigPrivacy(BOOLEAN enable); + +/******************************************************************************* +** +** Function BTM_BleLocalPrivacyEnabled +** +** Description Checks if local device supports private address +** +** Returns Return TRUE if local privacy is enabled else FALSE +** +*******************************************************************************/ +//extern +BOOLEAN BTM_BleLocalPrivacyEnabled(void); + +/******************************************************************************* +** +** Function BTM_BleEnableMixedPrivacyMode +** +** Description This function is called to enabled Mixed mode if privacy 1.2 +** is applicable in controller. +** +** Parameters mixed_on: mixed mode to be used or not. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_BleEnableMixedPrivacyMode(BOOLEAN mixed_on); + +/******************************************************************************* +** +** Function BTM_BleMaxMultiAdvInstanceCount +** +** Description Returns max number of multi adv instances supported by controller +** +** Returns Max multi adv instance count +** +*******************************************************************************/ +//extern +UINT8 BTM_BleMaxMultiAdvInstanceCount(); + +/******************************************************************************* +** +** Function BTM_BleSetConnectableMode +** +** Description This function is called to set BLE connectable mode for a +** peripheral device. +** +** Parameters connectable_mode: directed connectable mode, or non-directed.It can +** be BTM_BLE_CONNECT_EVT, BTM_BLE_CONNECT_DIR_EVT or +** BTM_BLE_CONNECT_LO_DUTY_DIR_EVT +** +** Returns BTM_ILLEGAL_VALUE if controller does not support BLE. +** BTM_SUCCESS is status set successfully; otherwise failure. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleSetConnectableMode(tBTM_BLE_CONN_MODE connectable_mode); + +/******************************************************************************* +** +** Function BTM_BleTurnOnPrivacyOnRemote +** +** Description This function is called to enable or disable the privacy on the +** remote device. +** +** Parameters bd_addr: remote device address. +** privacy_on: TRUE to enable it; FALSE to disable it. +** +** Returns void +** +*******************************************************************************/ +//extern +void BTM_BleTurnOnPrivacyOnRemote(BD_ADDR bd_addr, + BOOLEAN privacy_on); + +/******************************************************************************* +** +** Function BTM_BleUpdateAdvWhitelist +** +** Description Add or remove device from advertising white list +** +** Returns void +** +*******************************************************************************/ +//extern +BOOLEAN BTM_BleUpdateAdvWhitelist(BOOLEAN add_remove, BD_ADDR emote_bda); + +/******************************************************************************* +** +** Function BTM_BleUpdateAdvFilterPolicy +** +** Description This function update the filter policy of advertiser. +** +** Parameter adv_policy: advertising filter policy +** +** Return void +*******************************************************************************/ +//extern +void BTM_BleUpdateAdvFilterPolicy(tBTM_BLE_AFP adv_policy); + +/******************************************************************************* +** +** Function BTM_BleReceiverTest +** +** Description This function is called to start the LE Receiver test +** +** Parameter rx_freq - Frequency Range +** p_cmd_cmpl_cback - Command Complete callback +** +*******************************************************************************/ +void BTM_BleReceiverTest(UINT8 rx_freq, tBTM_CMPL_CB *p_cmd_cmpl_cback); + + +/******************************************************************************* +** +** Function BTM_BleTransmitterTest +** +** Description This function is called to start the LE Transmitter test +** +** Parameter tx_freq - Frequency Range +** test_data_len - Length in bytes of payload data in each packet +** packet_payload - Pattern to use in the payload +** p_cmd_cmpl_cback - Command Complete callback +** +*******************************************************************************/ +void BTM_BleTransmitterTest(UINT8 tx_freq, UINT8 test_data_len, + UINT8 packet_payload, tBTM_CMPL_CB *p_cmd_cmpl_cback); + +/******************************************************************************* +** +** Function BTM_BleTestEnd +** +** Description This function is called to stop the in-progress TX or RX test +** +** Parameter p_cmd_cmpl_cback - Command complete callback +** +*******************************************************************************/ +void BTM_BleTestEnd(tBTM_CMPL_CB *p_cmd_cmpl_cback); + +/******************************************************************************* +** +** Function BTM_UseLeLink +** +** Description This function is to select the underneath physical link to use. +** +** Returns TRUE to use LE, FALSE use BR/EDR. +** +*******************************************************************************/ +//extern +BOOLEAN BTM_UseLeLink (BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function BTM_BleStackEnable +** +** Description Enable/Disable BLE functionality on stack regarless controller +** capability. +** +** Parameters: enable: TRUE to enable, FALSE to disable. +** +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleStackEnable (BOOLEAN enable); + +/******************************************************************************* +** +** Function BTM_GetLeSecurityState +** +** Description This function is called to get security mode 1 flags and +** encryption key size for LE peer. +** +** Returns BOOLEAN TRUE if LE device is found, FALSE otherwise. +** +*******************************************************************************/ +//extern +BOOLEAN BTM_GetLeSecurityState (BD_ADDR bd_addr, + UINT8 *p_le_dev_sec_flags, + UINT8 *p_le_key_size); + +/******************************************************************************* +** +** Function BTM_BleSecurityProcedureIsRunning +** +** Description This function indicates if LE security procedure is +** currently running with the peer. +** +** Returns BOOLEAN TRUE if security procedure is running, FALSE otherwise. +** +*******************************************************************************/ +//extern +BOOLEAN BTM_BleSecurityProcedureIsRunning (BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function BTM_BleGetSupportedKeySize +** +** Description This function gets the maximum encryption key size in bytes +** the local device can suport. +** record. +** +** Returns the key size or 0 if the size can't be retrieved. +** +*******************************************************************************/ +//extern +UINT8 BTM_BleGetSupportedKeySize (BD_ADDR bd_addr); + +/*******************************************************************************/ +/* Multi ADV API */ +/******************************************************************************* +** +** Function BTM_BleEnableAdvInstance +** +** Description This function enable a Multi-ADV instance with the specified +** adv parameters +** +** Parameters p_params: pointer to the adv parameter structure, set as default +** adv parameter when the instance is enabled. +** p_cback: callback function for the adv instance. +** p_ref: reference data attach to the adv instance to be enabled. +** +** Returns status +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleEnableAdvInstance (tBTM_BLE_ADV_PARAMS *p_params, + tBTM_BLE_MULTI_ADV_CBACK *p_cback, + void *p_ref); + +/******************************************************************************* +** +** Function BTM_BleUpdateAdvInstParam +** +** Description This function update a Multi-ADV instance with the specififed +** adv parameters. +** +** Parameters inst_id: adv instance ID +** p_params: pointer to the adv parameter structure. +** +** Returns status +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleUpdateAdvInstParam (UINT8 inst_id, tBTM_BLE_ADV_PARAMS *p_params); + +/******************************************************************************* +** +** Function BTM_BleCfgAdvInstData +** +** Description This function configure a Multi-ADV instance with the specified +** adv data or scan response data. +** +** Parameters inst_id: adv instance ID +** is_scan_rsp: is this scacn response, if no set as adv data. +** data_mask: adv data mask. +** p_data: pointer to the adv data structure. +** +** Returns status +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, + tBTM_BLE_AD_MASK data_mask, + tBTM_BLE_ADV_DATA *p_data); + +/******************************************************************************* +** +** Function BTM_BleDisableAdvInstance +** +** Description This function disable a Multi-ADV instance. +** +** Parameters inst_id: adv instance ID +** +** Returns status +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleDisableAdvInstance (UINT8 inst_id); + +/******************************************************************************* +** +** Function BTM_BleAdvFilterParamSetup +** +** Description This function is called to setup the adv data payload filter +** condition. +** +** Parameters p_target: enabble the filter condition on a target device; if NULL +** enable the generic scan condition. +** enable: enable or disable the filter condition +** +** Returns void +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleAdvFilterParamSetup(int action, + tBTM_BLE_PF_FILT_INDEX filt_index, + tBTM_BLE_PF_FILT_PARAMS *p_filt_params, + tBLE_BD_ADDR *p_target, tBTM_BLE_PF_PARAM_CBACK *p_cmpl_cback, + tBTM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTM_BleCfgFilterCondition +** +** Description This function is called to configure the adv data payload filter +** condition. +** +** Parameters action: to read/write/clear +** cond_type: filter condition type. +** p_cond: filter condition paramter +** +** Returns tBTM_STATUS +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleCfgFilterCondition(tBTM_BLE_SCAN_COND_OP action, + tBTM_BLE_PF_COND_TYPE cond_type, + tBTM_BLE_PF_FILT_INDEX filt_index, + tBTM_BLE_PF_COND_PARAM *p_cond, + tBTM_BLE_PF_CFG_CBACK *p_cmpl_cback, + tBTM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTM_BleEnableDisableFilterFeature +** +** Description This function is called to enable or disable the APCF feature +** +** Parameters enable - TRUE - enables the APCF, FALSE - disables the APCF +** ref_value - Ref value +** +** Returns tBTM_STATUS +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleEnableDisableFilterFeature(UINT8 enable, + tBTM_BLE_PF_STATUS_CBACK *p_stat_cback, + tBTM_BLE_REF_VALUE ref_value); + +/******************************************************************************* +** +** Function BTM_BleGetEnergyInfo +** +** Description This function obtains the energy info +** +** Parameters p_ener_cback - Callback pointer +** +** Returns status +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_BleGetEnergyInfo(tBTM_BLE_ENERGY_INFO_CBACK *p_ener_cback); + +/******************************************************************************* +** +** Function BTM_SetBleDataLength +** +** Description This function is called to set maximum BLE transmission packet size +** +** Returns BTM_SUCCESS if success; otherwise failed. +** +*******************************************************************************/ +//extern +tBTM_STATUS BTM_SetBleDataLength(BD_ADDR bd_addr, UINT16 tx_pdu_length); + +/* +#ifdef __cplusplus +} +#endif +*/ + +#endif diff --git a/tools/sdk/include/bluedroid/btm_ble_int.h b/tools/sdk/include/bluedroid/btm_ble_int.h new file mode 100644 index 00000000..8345777c --- /dev/null +++ b/tools/sdk/include/bluedroid/btm_ble_int.h @@ -0,0 +1,476 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * this file contains the main Bluetooth Manager (BTM) internal + * definitions. + * + ******************************************************************************/ + +#ifndef BTM_BLE_INT_H +#define BTM_BLE_INT_H + +#include "bt_target.h" +#include "gki.h" +#include "hcidefs.h" +#include "btm_ble_api.h" +#include "btm_int.h" + +#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE +#include "smp_api.h" +#endif + + +/* scanning enable status */ +#define BTM_BLE_SCAN_ENABLE 0x01 +#define BTM_BLE_SCAN_DISABLE 0x00 + +/* advertising enable status */ +#define BTM_BLE_ADV_ENABLE 0x01 +#define BTM_BLE_ADV_DISABLE 0x00 + +/* use the high 4 bits unused by inquiry mode */ +#define BTM_BLE_SELECT_SCAN 0x20 +#define BTM_BLE_NAME_REQUEST 0x40 +#define BTM_BLE_OBSERVE 0x80 + +#define BTM_BLE_MAX_WL_ENTRY 1 +#define BTM_BLE_AD_DATA_LEN 31 + +#define BTM_BLE_ENC_MASK 0x03 + +#define BTM_BLE_DUPLICATE_ENABLE 1 +#define BTM_BLE_DUPLICATE_DISABLE 0 + +#define BTM_BLE_GAP_DISC_SCAN_INT 18 /* Interval(scan_int) = 11.25 ms= 0x0010 * 0.625 ms */ +#define BTM_BLE_GAP_DISC_SCAN_WIN 18 /* scan_window = 11.25 ms= 0x0010 * 0.625 ms */ +#define BTM_BLE_GAP_ADV_INT 512 /* Tgap(gen_disc) = 1.28 s= 512 * 0.625 ms */ +#define BTM_BLE_GAP_LIM_TOUT 180 /* Tgap(lim_timeout) = 180s max */ +#define BTM_BLE_LOW_LATENCY_SCAN_INT 8000 /* Interval(scan_int) = 5s= 8000 * 0.625 ms */ +#define BTM_BLE_LOW_LATENCY_SCAN_WIN 8000 /* scan_window = 5s= 8000 * 0.625 ms */ + + +#define BTM_BLE_GAP_ADV_FAST_INT_1 48 /* TGAP(adv_fast_interval1) = 30(used) ~ 60 ms = 48 *0.625 */ +#define BTM_BLE_GAP_ADV_FAST_INT_2 160 /* TGAP(adv_fast_interval2) = 100(used) ~ 150 ms = 160 * 0.625 ms */ +#define BTM_BLE_GAP_ADV_SLOW_INT 2048 /* Tgap(adv_slow_interval) = 1.28 s= 512 * 0.625 ms */ +#define BTM_BLE_GAP_ADV_DIR_MAX_INT 800 /* Tgap(dir_conn_adv_int_max) = 500 ms = 800 * 0.625 ms */ +#define BTM_BLE_GAP_ADV_DIR_MIN_INT 400 /* Tgap(dir_conn_adv_int_min) = 250 ms = 400 * 0.625 ms */ + +#define BTM_BLE_GAP_FAST_ADV_TOUT 30 + +#define BTM_BLE_SEC_REQ_ACT_NONE 0 +#define BTM_BLE_SEC_REQ_ACT_ENCRYPT 1 /* encrypt the link using current key or key refresh */ +#define BTM_BLE_SEC_REQ_ACT_PAIR 2 +#define BTM_BLE_SEC_REQ_ACT_DISCARD 3 /* discard the sec request while encryption is started but not completed */ +typedef UINT8 tBTM_BLE_SEC_REQ_ACT; + +#define BLE_STATIC_PRIVATE_MSB_MASK 0x3f +#define BLE_RESOLVE_ADDR_MSB 0x40 /* most significant bit, bit7, bit6 is 01 to be resolvable random */ +#define BLE_RESOLVE_ADDR_MASK 0xc0 /* bit 6, and bit7 */ +#define BTM_BLE_IS_RESOLVE_BDA(x) ((x[0] & BLE_RESOLVE_ADDR_MASK) == BLE_RESOLVE_ADDR_MSB) + +/* LE scan activity bit mask, continue with LE inquiry bits */ +#define BTM_LE_SELECT_CONN_ACTIVE 0x40 /* selection connection is in progress */ +#define BTM_LE_OBSERVE_ACTIVE 0x80 /* observe is in progress */ + +/* BLE scan activity mask checking */ +#define BTM_BLE_IS_SCAN_ACTIVE(x) ((x) & BTM_BLE_SCAN_ACTIVE_MASK) +#define BTM_BLE_IS_INQ_ACTIVE(x) ((x) & BTM_BLE_INQUIRY_MASK) +#define BTM_BLE_IS_OBS_ACTIVE(x) ((x) & BTM_LE_OBSERVE_ACTIVE) +#define BTM_BLE_IS_SEL_CONN_ACTIVE(x) ((x) & BTM_LE_SELECT_CONN_ACTIVE) + +/* BLE ADDR type ID bit */ +#define BLE_ADDR_TYPE_ID_BIT 0x02 + +#define BTM_VSC_CHIP_CAPABILITY_L_VERSION 55 +#define BTM_VSC_CHIP_CAPABILITY_M_VERSION 95 + +typedef struct { + UINT16 data_mask; + UINT8 *p_flags; + UINT8 ad_data[BTM_BLE_AD_DATA_LEN]; + UINT8 *p_pad; +} tBTM_BLE_LOCAL_ADV_DATA; + +typedef struct { + UINT32 inq_count; /* Used for determining if a response has already been */ + /* received for the current inquiry operation. (We do not */ + /* want to flood the caller with multiple responses from */ + /* the same device. */ + BOOLEAN scan_rsp; + tBLE_BD_ADDR le_bda; +} tINQ_LE_BDADDR; + +#define BTM_BLE_ADV_DATA_LEN_MAX 31 +#define BTM_BLE_CACHE_ADV_DATA_MAX 62 + +#define BTM_BLE_ISVALID_PARAM(x, min, max) (((x) >= (min) && (x) <= (max)) || ((x) == BTM_BLE_CONN_PARAM_UNDEF)) + +#define BTM_BLE_PRIVATE_ADDR_INT 900 /* 15 minutes minimum for random address refreshing */ + +typedef struct { + UINT16 discoverable_mode; + UINT16 connectable_mode; + UINT32 scan_window; + UINT32 scan_interval; + UINT8 scan_type; /* current scan type: active or passive */ + UINT8 scan_duplicate_filter; /* duplicate filter enabled for scan */ + UINT16 adv_interval_min; + UINT16 adv_interval_max; + tBTM_BLE_AFP afp; /* advertising filter policy */ + tBTM_BLE_SFP sfp; /* scanning filter policy */ + + tBLE_ADDR_TYPE adv_addr_type; + UINT8 evt_type; + UINT8 adv_mode; + tBLE_BD_ADDR direct_bda; + tBTM_BLE_EVT directed_conn; + BOOLEAN fast_adv_on; + TIMER_LIST_ENT fast_adv_timer; + + UINT8 adv_len; + UINT8 adv_data_cache[BTM_BLE_CACHE_ADV_DATA_MAX]; + + /* inquiry BD addr database */ + UINT8 num_bd_entries; + UINT8 max_bd_entries; + tBTM_BLE_LOCAL_ADV_DATA adv_data; + tBTM_BLE_ADV_CHNL_MAP adv_chnl_map; + + TIMER_LIST_ENT inq_timer_ent; + BOOLEAN scan_rsp; + UINT8 state; /* Current state that the inquiry process is in */ + INT8 tx_power; +} tBTM_BLE_INQ_CB; + + +/* random address resolving complete callback */ +typedef void (tBTM_BLE_RESOLVE_CBACK) (void *match_rec, void *p); + +typedef void (tBTM_BLE_ADDR_CBACK) (BD_ADDR_PTR static_random, void *p); + +/* random address management control block */ +typedef struct { + tBLE_ADDR_TYPE own_addr_type; /* local device LE address type */ + BD_ADDR private_addr; + BD_ADDR random_bda; + BOOLEAN busy; + UINT16 index; + tBTM_BLE_RESOLVE_CBACK *p_resolve_cback; + tBTM_BLE_ADDR_CBACK *p_generate_cback; + void *p; + TIMER_LIST_ENT raddr_timer_ent; +} tBTM_LE_RANDOM_CB; + +#define BTM_BLE_MAX_BG_CONN_DEV_NUM 10 + +typedef struct { + UINT16 min_conn_int; + UINT16 max_conn_int; + UINT16 slave_latency; + UINT16 supervision_tout; + +} tBTM_LE_CONN_PRAMS; + + +typedef struct { + BD_ADDR bd_addr; + UINT8 attr; + BOOLEAN is_connected; + BOOLEAN in_use; +} tBTM_LE_BG_CONN_DEV; + +/* white list using state as a bit mask */ +#define BTM_BLE_WL_IDLE 0 +#define BTM_BLE_WL_INIT 1 +#define BTM_BLE_WL_SCAN 2 +#define BTM_BLE_WL_ADV 4 +typedef UINT8 tBTM_BLE_WL_STATE; + +/* resolving list using state as a bit mask */ +#define BTM_BLE_RL_IDLE 0 +#define BTM_BLE_RL_INIT 1 +#define BTM_BLE_RL_SCAN 2 +#define BTM_BLE_RL_ADV 4 +typedef UINT8 tBTM_BLE_RL_STATE; + +/* BLE connection state */ +#define BLE_CONN_IDLE 0 +#define BLE_DIR_CONN 1 +#define BLE_BG_CONN 2 +#define BLE_CONN_CANCEL 3 +typedef UINT8 tBTM_BLE_CONN_ST; + +typedef struct { + void *p_param; +} tBTM_BLE_CONN_REQ; + +/* LE state request */ +#define BTM_BLE_STATE_INVALID 0 +#define BTM_BLE_STATE_CONN_ADV 1 +#define BTM_BLE_STATE_INIT 2 +#define BTM_BLE_STATE_MASTER 3 +#define BTM_BLE_STATE_SLAVE 4 +#define BTM_BLE_STATE_LO_DUTY_DIR_ADV 5 +#define BTM_BLE_STATE_HI_DUTY_DIR_ADV 6 +#define BTM_BLE_STATE_NON_CONN_ADV 7 +#define BTM_BLE_STATE_PASSIVE_SCAN 8 +#define BTM_BLE_STATE_ACTIVE_SCAN 9 +#define BTM_BLE_STATE_SCAN_ADV 10 +#define BTM_BLE_STATE_MAX 11 +typedef UINT8 tBTM_BLE_STATE; + +#define BTM_BLE_STATE_CONN_ADV_BIT 0x0001 +#define BTM_BLE_STATE_INIT_BIT 0x0002 +#define BTM_BLE_STATE_MASTER_BIT 0x0004 +#define BTM_BLE_STATE_SLAVE_BIT 0x0008 +#define BTM_BLE_STATE_LO_DUTY_DIR_ADV_BIT 0x0010 +#define BTM_BLE_STATE_HI_DUTY_DIR_ADV_BIT 0x0020 +#define BTM_BLE_STATE_NON_CONN_ADV_BIT 0x0040 +#define BTM_BLE_STATE_PASSIVE_SCAN_BIT 0x0080 +#define BTM_BLE_STATE_ACTIVE_SCAN_BIT 0x0100 +#define BTM_BLE_STATE_SCAN_ADV_BIT 0x0200 +typedef UINT16 tBTM_BLE_STATE_MASK; + +#define BTM_BLE_STATE_ALL_MASK 0x03ff +#define BTM_BLE_STATE_ALL_ADV_MASK (BTM_BLE_STATE_CONN_ADV_BIT|BTM_BLE_STATE_LO_DUTY_DIR_ADV_BIT|BTM_BLE_STATE_HI_DUTY_DIR_ADV_BIT|BTM_BLE_STATE_SCAN_ADV_BIT) +#define BTM_BLE_STATE_ALL_SCAN_MASK (BTM_BLE_STATE_PASSIVE_SCAN_BIT|BTM_BLE_STATE_ACTIVE_SCAN_BIT) +#define BTM_BLE_STATE_ALL_CONN_MASK (BTM_BLE_STATE_MASTER_BIT|BTM_BLE_STATE_SLAVE_BIT) + +#ifndef BTM_LE_RESOLVING_LIST_MAX +#define BTM_LE_RESOLVING_LIST_MAX 0x20 +#endif + +typedef struct { + BD_ADDR *resolve_q_random_pseudo; + UINT8 *resolve_q_action; + UINT8 q_next; + UINT8 q_pending; +} tBTM_BLE_RESOLVE_Q; + +typedef struct { + BOOLEAN in_use; + BOOLEAN to_add; + BD_ADDR bd_addr; + UINT8 attr; +} tBTM_BLE_WL_OP; + +/* BLE privacy mode */ +#define BTM_PRIVACY_NONE 0 /* BLE no privacy */ +#define BTM_PRIVACY_1_1 1 /* BLE privacy 1.1, do not support privacy 1.0 */ +#define BTM_PRIVACY_1_2 2 /* BLE privacy 1.2 */ +#define BTM_PRIVACY_MIXED 3 /* BLE privacy mixed mode, broadcom propietary mode */ +typedef UINT8 tBTM_PRIVACY_MODE; + +/* data length change event callback */ +typedef void (tBTM_DATA_LENGTH_CHANGE_CBACK) (UINT16 max_tx_length, UINT16 max_rx_length); + +/* Define BLE Device Management control structure +*/ +typedef struct { + UINT8 scan_activity; /* LE scan activity mask */ + + /***************************************************** + ** BLE Inquiry + *****************************************************/ + tBTM_BLE_INQ_CB inq_var; + + /* observer callback and timer */ + tBTM_INQ_RESULTS_CB *p_obs_results_cb; + tBTM_CMPL_CB *p_obs_cmpl_cb; + TIMER_LIST_ENT obs_timer_ent; + + /* background connection procedure cb value */ + tBTM_BLE_CONN_TYPE bg_conn_type; + UINT32 scan_int; + UINT32 scan_win; + tBTM_BLE_SEL_CBACK *p_select_cback; + + /* white list information */ + UINT8 white_list_avail_size; + tBTM_BLE_WL_STATE wl_state; + + BUFFER_Q conn_pending_q; + tBTM_BLE_CONN_ST conn_state; + + /* random address management control block */ + tBTM_LE_RANDOM_CB addr_mgnt_cb; + + BOOLEAN enabled; + +#if BLE_PRIVACY_SPT == TRUE + BOOLEAN mixed_mode; /* privacy 1.2 mixed mode is on or not */ + tBTM_PRIVACY_MODE privacy_mode; /* privacy mode */ + UINT8 resolving_list_avail_size; /* resolving list available size */ + tBTM_BLE_RESOLVE_Q resolving_list_pend_q; /* Resolving list queue */ + tBTM_BLE_RL_STATE suspended_rl_state; /* Suspended resolving list state */ + UINT8 *irk_list_mask; /* IRK list availability mask, up to max entry bits */ + tBTM_BLE_RL_STATE rl_state; /* Resolving list state */ +#endif + + tBTM_BLE_WL_OP wl_op_q[BTM_BLE_MAX_BG_CONN_DEV_NUM]; + + /* current BLE link state */ + tBTM_BLE_STATE_MASK cur_states; /* bit mask of tBTM_BLE_STATE */ + UINT8 link_count[2]; /* total link count master and slave*/ +} tBTM_BLE_CB; + +#ifdef __cplusplus +extern "C" { +#endif + +void btm_ble_timeout(TIMER_LIST_ENT *p_tle); +void btm_ble_process_adv_pkt (UINT8 *p); +void btm_ble_proc_scan_rsp_rpt (UINT8 *p); +tBTM_STATUS btm_ble_read_remote_name(BD_ADDR remote_bda, tBTM_INQ_INFO *p_cur, tBTM_CMPL_CB *p_cb); +BOOLEAN btm_ble_cancel_remote_name(BD_ADDR remote_bda); + +tBTM_STATUS btm_ble_set_discoverability(UINT16 combined_mode); +tBTM_STATUS btm_ble_set_connectability(UINT16 combined_mode); +tBTM_STATUS btm_ble_start_inquiry (UINT8 mode, UINT8 duration); +void btm_ble_stop_scan(void); +void btm_clear_all_pending_le_entry(void); + +void btm_ble_stop_scan(); +BOOLEAN btm_ble_send_extended_scan_params(UINT8 scan_type, UINT32 scan_int, + UINT32 scan_win, UINT8 addr_type_own, + UINT8 scan_filter_policy); +void btm_ble_stop_inquiry(void); +void btm_ble_init (void); +void btm_ble_connected (UINT8 *bda, UINT16 handle, UINT8 enc_mode, UINT8 role, tBLE_ADDR_TYPE addr_type, BOOLEAN addr_matched); +void btm_ble_read_remote_features_complete(UINT8 *p); +void btm_ble_write_adv_enable_complete(UINT8 *p); +void btm_ble_conn_complete(UINT8 *p, UINT16 evt_len, BOOLEAN enhanced); +void btm_read_ble_local_supported_states_complete(UINT8 *p, UINT16 evt_len); +tBTM_BLE_CONN_ST btm_ble_get_conn_st(void); +void btm_ble_set_conn_st(tBTM_BLE_CONN_ST new_st); +UINT8 *btm_ble_build_adv_data(tBTM_BLE_AD_MASK *p_data_mask, UINT8 **p_dst, + tBTM_BLE_ADV_DATA *p_data); +tBTM_STATUS btm_ble_start_adv(void); +tBTM_STATUS btm_ble_stop_adv(void); +tBTM_STATUS btm_ble_start_scan(void); +void btm_ble_create_ll_conn_complete (UINT8 status); + +/* LE security function from btm_sec.c */ +#if SMP_INCLUDED == TRUE +void btm_ble_link_sec_check(BD_ADDR bd_addr, tBTM_LE_AUTH_REQ auth_req, tBTM_BLE_SEC_REQ_ACT *p_sec_req_act); +void btm_ble_ltk_request_reply(BD_ADDR bda, BOOLEAN use_stk, BT_OCTET16 stk); +UINT8 btm_proc_smp_cback(tSMP_EVT event, BD_ADDR bd_addr, tSMP_EVT_DATA *p_data); +tBTM_STATUS btm_ble_set_encryption (BD_ADDR bd_addr, void *p_ref_data, UINT8 link_role); +void btm_ble_ltk_request(UINT16 handle, UINT8 rand[8], UINT16 ediv); +tBTM_STATUS btm_ble_start_encrypt(BD_ADDR bda, BOOLEAN use_stk, BT_OCTET16 stk); +void btm_ble_link_encrypted(BD_ADDR bd_addr, UINT8 encr_enable); +#endif + +/* LE device management functions */ +void btm_ble_reset_id( void ); + +/* security related functions */ +void btm_ble_increment_sign_ctr(BD_ADDR bd_addr, BOOLEAN is_local ); +BOOLEAN btm_get_local_div (BD_ADDR bd_addr, UINT16 *p_div); +BOOLEAN btm_ble_get_enc_key_type(BD_ADDR bd_addr, UINT8 *p_key_types); + +void btm_ble_test_command_complete(UINT8 *p); +void btm_ble_rand_enc_complete (UINT8 *p, UINT16 op_code, tBTM_RAND_ENC_CB *p_enc_cplt_cback); + +void btm_sec_save_le_key(BD_ADDR bd_addr, tBTM_LE_KEY_TYPE key_type, tBTM_LE_KEY_VALUE *p_keys, BOOLEAN pass_to_application); +void btm_ble_update_sec_key_size(BD_ADDR bd_addr, UINT8 enc_key_size); +UINT8 btm_ble_read_sec_key_size(BD_ADDR bd_addr); + +/* white list function */ +BOOLEAN btm_update_dev_to_white_list(BOOLEAN to_add, BD_ADDR bd_addr); +void btm_update_scanner_filter_policy(tBTM_BLE_SFP scan_policy); +void btm_update_adv_filter_policy(tBTM_BLE_AFP adv_policy); +void btm_ble_clear_white_list (void); +void btm_read_white_list_size_complete(UINT8 *p, UINT16 evt_len); +void btm_ble_add_2_white_list_complete(UINT8 status); +void btm_ble_remove_from_white_list_complete(UINT8 *p, UINT16 evt_len); +void btm_ble_clear_white_list_complete(UINT8 *p, UINT16 evt_len); +void btm_ble_white_list_init(UINT8 white_list_size); + +/* background connection function */ +BOOLEAN btm_ble_suspend_bg_conn(void); +BOOLEAN btm_ble_resume_bg_conn(void); +void btm_ble_initiate_select_conn(BD_ADDR bda); +BOOLEAN btm_ble_start_auto_conn(BOOLEAN start); +BOOLEAN btm_ble_start_select_conn(BOOLEAN start, tBTM_BLE_SEL_CBACK *p_select_cback); +BOOLEAN btm_ble_renew_bg_conn_params(BOOLEAN add, BD_ADDR bd_addr); +void btm_write_dir_conn_wl(BD_ADDR target_addr); +void btm_ble_update_mode_operation(UINT8 link_role, BD_ADDR bda, UINT8 status); +BOOLEAN btm_execute_wl_dev_operation(void); +void btm_ble_update_link_topology_mask(UINT8 role, BOOLEAN increase); + +/* direct connection utility */ +BOOLEAN btm_send_pending_direct_conn(void); +void btm_ble_enqueue_direct_conn_req(void *p_param); + +/* BLE address management */ +void btm_gen_resolvable_private_addr (void *p_cmd_cplt_cback); +void btm_gen_non_resolvable_private_addr (tBTM_BLE_ADDR_CBACK *p_cback, void *p); +void btm_ble_resolve_random_addr(BD_ADDR random_bda, tBTM_BLE_RESOLVE_CBACK *p_cback, void *p); +void btm_gen_resolve_paddr_low(tBTM_RAND_ENC *p); + +/* privacy function */ +#if (defined BLE_PRIVACY_SPT && BLE_PRIVACY_SPT == TRUE) +/* BLE address mapping with CS feature */ +BOOLEAN btm_identity_addr_to_random_pseudo(BD_ADDR bd_addr, UINT8 *p_addr_type, BOOLEAN refresh); +BOOLEAN btm_random_pseudo_to_identity_addr(BD_ADDR random_pseudo, UINT8 *p_static_addr_type); +void btm_ble_refresh_peer_resolvable_private_addr(BD_ADDR pseudo_bda, BD_ADDR rra, UINT8 rra_type); +void btm_ble_refresh_local_resolvable_private_addr(BD_ADDR pseudo_addr, BD_ADDR local_rpa); +void btm_ble_read_resolving_list_entry_complete(UINT8 *p, UINT16 evt_len) ; +void btm_ble_remove_resolving_list_entry_complete(UINT8 *p, UINT16 evt_len); +void btm_ble_add_resolving_list_entry_complete(UINT8 *p, UINT16 evt_len); +void btm_ble_clear_resolving_list_complete(UINT8 *p, UINT16 evt_len); +void btm_read_ble_resolving_list_size_complete (UINT8 *p, UINT16 evt_len); +void btm_ble_enable_resolving_list(UINT8); +BOOLEAN btm_ble_disable_resolving_list(UINT8 rl_mask, BOOLEAN to_resume); +void btm_ble_enable_resolving_list_for_platform (UINT8 rl_mask); +void btm_ble_resolving_list_init(UINT8 max_irk_list_sz); +void btm_ble_resolving_list_cleanup(void); +#endif + +void btm_ble_multi_adv_configure_rpa (tBTM_BLE_MULTI_ADV_INST *p_inst); +void btm_ble_multi_adv_init(void); +void *btm_ble_multi_adv_get_ref(UINT8 inst_id); +void btm_ble_multi_adv_cleanup(void); +void btm_ble_multi_adv_reenable(UINT8 inst_id); +void btm_ble_multi_adv_enb_privacy(BOOLEAN enable); +char btm_ble_map_adv_tx_power(int tx_power_index); +void btm_ble_batchscan_init(void); +void btm_ble_batchscan_cleanup(void); +void btm_ble_adv_filter_init(void); +void btm_ble_adv_filter_cleanup(void); +BOOLEAN btm_ble_topology_check(tBTM_BLE_STATE_MASK request); +BOOLEAN btm_ble_clear_topology_mask(tBTM_BLE_STATE_MASK request_state); +BOOLEAN btm_ble_set_topology_mask(tBTM_BLE_STATE_MASK request_state); + +#if BTM_BLE_CONFORMANCE_TESTING == TRUE +void btm_ble_set_no_disc_if_pair_fail (BOOLEAN disble_disc); +void btm_ble_set_test_mac_value (BOOLEAN enable, UINT8 *p_test_mac_val); +void btm_ble_set_test_local_sign_cntr_value(BOOLEAN enable, UINT32 test_local_sign_cntr); +void btm_set_random_address(BD_ADDR random_bda); +void btm_ble_set_keep_rfu_in_auth_req(BOOLEAN keep_rfu); +#endif + +/* +#ifdef __cplusplus +} +#endif +*/ +#endif diff --git a/tools/sdk/include/bluedroid/btm_int.h b/tools/sdk/include/bluedroid/btm_int.h new file mode 100644 index 00000000..827114f0 --- /dev/null +++ b/tools/sdk/include/bluedroid/btm_int.h @@ -0,0 +1,1094 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * this file contains the main Bluetooth Manager (BTM) internal + * definitions. + * + ******************************************************************************/ +#ifndef BTM_INT_H +#define BTM_INT_H + +#include "bt_defs.h" +#include "bt_target.h" +#include "gki.h" +#include "hcidefs.h" + +#include "rfcdefs.h" + +#include "btm_api.h" + +#if (BLE_INCLUDED == TRUE) +#include "btm_ble_int.h" +#if (SMP_INCLUDED == TRUE) +#include "smp_api.h" +#endif +#endif + +#if BTM_MAX_LOC_BD_NAME_LEN > 0 +typedef char tBTM_LOC_BD_NAME[BTM_MAX_LOC_BD_NAME_LEN + 1]; +#endif + +#define BTM_ACL_IS_CONNECTED(bda) (btm_bda_to_acl (bda, BT_TRANSPORT_BR_EDR) != NULL) + +/* Definitions for Server Channel Number (SCN) management +*/ +#define BTM_MAX_SCN PORT_MAX_RFC_PORTS + +/* Define masks for supported and exception 2.0 ACL packet types +*/ +#define BTM_ACL_SUPPORTED_PKTS_MASK (HCI_PKT_TYPES_MASK_DM1 | \ + HCI_PKT_TYPES_MASK_DH1 | \ + HCI_PKT_TYPES_MASK_DM3 | \ + HCI_PKT_TYPES_MASK_DH3 | \ + HCI_PKT_TYPES_MASK_DM5 | \ + HCI_PKT_TYPES_MASK_DH5) + +#define BTM_ACL_EXCEPTION_PKTS_MASK (HCI_PKT_TYPES_MASK_NO_2_DH1 | \ + HCI_PKT_TYPES_MASK_NO_3_DH1 | \ + HCI_PKT_TYPES_MASK_NO_2_DH3 | \ + HCI_PKT_TYPES_MASK_NO_3_DH3 | \ + HCI_PKT_TYPES_MASK_NO_2_DH5 | \ + HCI_PKT_TYPES_MASK_NO_3_DH5) + +#define BTM_EPR_AVAILABLE(p) ((HCI_ATOMIC_ENCRYPT_SUPPORTED((p)->peer_lmp_features[HCI_EXT_FEATURES_PAGE_0]) && \ + HCI_ATOMIC_ENCRYPT_SUPPORTED(controller_get_interface()->get_features_classic(0)->as_array)) \ + ? TRUE : FALSE) + +#define BTM_IS_BRCM_CONTROLLER() (controller_get_interface()->get_bt_version()->manufacturer == LMP_COMPID_BROADCOM) + +/* Define the ACL Management control structure +*/ +typedef struct { +UINT16 hci_handle; +UINT16 pkt_types_mask; +UINT16 clock_offset; +BD_ADDR remote_addr; +DEV_CLASS remote_dc; +BD_NAME remote_name; + +UINT16 manufacturer; +UINT16 lmp_subversion; +UINT16 link_super_tout; +BD_FEATURES peer_lmp_features[HCI_EXT_FEATURES_PAGE_MAX + 1]; /* Peer LMP Extended features mask table for the device */ +UINT8 num_read_pages; +UINT8 lmp_version; + +BOOLEAN in_use; +UINT8 link_role; +BOOLEAN link_up_issued; /* True if busy_level link up has been issued */ + +#define BTM_ACL_SWKEY_STATE_IDLE 0 +#define BTM_ACL_SWKEY_STATE_MODE_CHANGE 1 +#define BTM_ACL_SWKEY_STATE_ENCRYPTION_OFF 2 +#define BTM_ACL_SWKEY_STATE_SWITCHING 3 +#define BTM_ACL_SWKEY_STATE_ENCRYPTION_ON 4 +#define BTM_ACL_SWKEY_STATE_IN_PROGRESS 5 +UINT8 switch_role_state; + +#define BTM_ACL_ENCRYPT_STATE_IDLE 0 +#define BTM_ACL_ENCRYPT_STATE_ENCRYPT_OFF 1 /* encryption turning off */ +#define BTM_ACL_ENCRYPT_STATE_TEMP_FUNC 2 /* temporarily off for change link key or role switch */ +#define BTM_ACL_ENCRYPT_STATE_ENCRYPT_ON 3 /* encryption turning on */ +UINT8 encrypt_state; /* overall BTM encryption state */ + +#if BLE_INCLUDED == TRUE +tBT_TRANSPORT transport; +BD_ADDR conn_addr; /* local device address used for this connection */ +UINT8 conn_addr_type; /* local device address type for this connection */ +BD_ADDR active_remote_addr; /* remote address used on this connection */ +UINT8 active_remote_addr_type; /* local device address type for this connection */ +BD_FEATURES peer_le_features; /* Peer LE Used features mask for the device */ + +#endif + +} tACL_CONN; + +/***************************************************** +** TIMER Definitions +******************************************************/ +#define TT_DEV_RESET 1 +#define TT_DEV_RLN 2 +#define TT_DEV_RLNKP 4 /* Read Link Policy Settings */ + +/* Define the Device Management control structure +*/ +typedef struct { +tBTM_DEV_STATUS_CB *p_dev_status_cb; /* Device status change callback */ +tBTM_VS_EVT_CB *p_vend_spec_cb[BTM_MAX_VSE_CALLBACKS]; /* Register for vendor specific events */ + +tBTM_CMPL_CB *p_stored_link_key_cmpl_cb; /* Read/Write/Delete stored link key */ + +TIMER_LIST_ENT reset_timer; +tBTM_CMPL_CB *p_reset_cmpl_cb; + +TIMER_LIST_ENT rln_timer; +tBTM_CMPL_CB *p_rln_cmpl_cb; /* Callback function to be called when */ +/* read local name function complete */ +TIMER_LIST_ENT rssi_timer; +tBTM_CMPL_CB *p_rssi_cmpl_cb; /* Callback function to be called when */ +/* read rssi function completes */ +TIMER_LIST_ENT lnk_quality_timer; +tBTM_CMPL_CB *p_lnk_qual_cmpl_cb;/* Callback function to be called when */ +/* read link quality function completes */ +TIMER_LIST_ENT txpwer_timer; +tBTM_CMPL_CB *p_txpwer_cmpl_cb; /* Callback function to be called when */ +/* read inq tx power function completes */ + +TIMER_LIST_ENT qossu_timer; +tBTM_CMPL_CB *p_qossu_cmpl_cb; /* Callback function to be called when */ +/* qos setup function completes */ + +tBTM_ROLE_SWITCH_CMPL switch_role_ref_data; +tBTM_CMPL_CB *p_switch_role_cb; /* Callback function to be called when */ +/* requested switch role is completed */ + +TIMER_LIST_ENT tx_power_timer; +tBTM_CMPL_CB *p_tx_power_cmpl_cb;/* Callback function to be called */ + +DEV_CLASS dev_class; /* Local device class */ + +#if BLE_INCLUDED == TRUE + +tBTM_CMPL_CB *p_le_test_cmd_cmpl_cb; /* Callback function to be called when + LE test mode command has been sent successfully */ + +BD_ADDR read_tx_pwr_addr; /* read TX power target address */ + +#define BTM_LE_SUPPORT_STATE_SIZE 8 +UINT8 le_supported_states[BTM_LE_SUPPORT_STATE_SIZE]; + +tBTM_BLE_LOCAL_ID_KEYS id_keys; /* local BLE ID keys */ +BT_OCTET16 ble_encryption_key_value; /* BLE encryption key */ + +#if BTM_BLE_CONFORMANCE_TESTING == TRUE +BOOLEAN no_disc_if_pair_fail; +BOOLEAN enable_test_mac_val; +BT_OCTET8 test_mac; +BOOLEAN enable_test_local_sign_cntr; +UINT32 test_local_sign_cntr; +#endif + +#endif /* BLE_INCLUDED */ + +tBTM_IO_CAP loc_io_caps; /* IO capability of the local device */ +tBTM_AUTH_REQ loc_auth_req; /* the auth_req flag */ +BOOLEAN secure_connections_only; /* Rejects service level 0 connections if */ +/* itself or peer device doesn't support */ +/* secure connections */ +} tBTM_DEVCB; + + +/* Define the structures and constants used for inquiry +*/ + +/* Definitions of limits for inquiries */ +#define BTM_PER_INQ_MIN_MAX_PERIOD HCI_PER_INQ_MIN_MAX_PERIOD +#define BTM_PER_INQ_MAX_MAX_PERIOD HCI_PER_INQ_MAX_MAX_PERIOD +#define BTM_PER_INQ_MIN_MIN_PERIOD HCI_PER_INQ_MIN_MIN_PERIOD +#define BTM_PER_INQ_MAX_MIN_PERIOD HCI_PER_INQ_MAX_MIN_PERIOD +#define BTM_MAX_INQUIRY_LENGTH HCI_MAX_INQUIRY_LENGTH +#define BTM_MIN_INQUIRY_LEN 0x01 + +#define BTM_MIN_INQ_TX_POWER -70 +#define BTM_MAX_INQ_TX_POWER 20 + +typedef struct { +UINT32 inq_count; /* Used for determining if a response has already been */ +/* received for the current inquiry operation. (We do not */ +/* want to flood the caller with multiple responses from */ +/* the same device. */ +BD_ADDR bd_addr; +} tINQ_BDADDR; + +typedef struct { +UINT32 time_of_resp; +UINT32 inq_count; /* "timestamps" the entry with a particular inquiry count */ +/* Used for determining if a response has already been */ +/* received for the current inquiry operation. (We do not */ +/* want to flood the caller with multiple responses from */ +/* the same device. */ +tBTM_INQ_INFO inq_info; +BOOLEAN in_use; + +#if (BLE_INCLUDED == TRUE) +BOOLEAN scan_rsp; +#endif +} tINQ_DB_ENT; + + +enum { +INQ_NONE, +INQ_LE_OBSERVE, +INQ_GENERAL +}; +typedef UINT8 tBTM_INQ_TYPE; + +typedef struct { + tBTM_CMPL_CB *p_remname_cmpl_cb; + +#define BTM_EXT_RMT_NAME_TIMEOUT 40 + + + TIMER_LIST_ENT rmt_name_timer_ent; + + UINT16 discoverable_mode; + UINT16 connectable_mode; + UINT16 page_scan_window; + UINT16 page_scan_period; + UINT16 inq_scan_window; + UINT16 inq_scan_period; + UINT16 inq_scan_type; + UINT16 page_scan_type; /* current page scan type */ + tBTM_INQ_TYPE scan_type; + + BD_ADDR remname_bda; /* Name of bd addr for active remote name request */ +#define BTM_RMT_NAME_INACTIVE 0 +#define BTM_RMT_NAME_EXT 0x1 /* Initiated through API */ +#define BTM_RMT_NAME_SEC 0x2 /* Initiated internally by security manager */ +#define BTM_RMT_NAME_INQ 0x4 /* Remote name initiated internally by inquiry */ + BOOLEAN remname_active; /* State of a remote name request by external API */ + + tBTM_CMPL_CB *p_inq_cmpl_cb; + tBTM_INQ_RESULTS_CB *p_inq_results_cb; + tBTM_CMPL_CB *p_inq_ble_cmpl_cb; /*completion callback exclusively for LE Observe*/ + tBTM_INQ_RESULTS_CB *p_inq_ble_results_cb;/*results callback exclusively for LE observe*/ + tBTM_CMPL_CB *p_inqfilter_cmpl_cb; /* Called (if not NULL) after inquiry filter completed */ + UINT32 inq_counter; /* Counter incremented each time an inquiry completes */ + /* Used for determining whether or not duplicate devices */ + /* have responded to the same inquiry */ + TIMER_LIST_ENT inq_timer_ent; + tINQ_BDADDR *p_bd_db; /* Pointer to memory that holds bdaddrs */ + UINT16 num_bd_entries; /* Number of entries in database */ + UINT16 max_bd_entries; /* Maximum number of entries that can be stored */ + tINQ_DB_ENT inq_db[BTM_INQ_DB_SIZE]; + tBTM_INQ_PARMS inqparms; /* Contains the parameters for the current inquiry */ + tBTM_INQUIRY_CMPL inq_cmpl_info; /* Status and number of responses from the last inquiry */ + + UINT16 per_min_delay; /* Current periodic minimum delay */ + UINT16 per_max_delay; /* Current periodic maximum delay */ + BOOLEAN inqfilt_active; + UINT8 pending_filt_complete_event; /* to take care of btm_event_filter_complete corresponding to */ + /* inquiry that has been cancelled*/ + UINT8 inqfilt_type; /* Contains the inquiry filter type (BD ADDR, COD, or Clear) */ + +#define BTM_INQ_INACTIVE_STATE 0 +#define BTM_INQ_CLR_FILT_STATE 1 /* Currently clearing the inquiry filter preceeding the inquiry request */ + /* (bypassed if filtering is not used) */ +#define BTM_INQ_SET_FILT_STATE 2 /* Sets the new filter (or turns off filtering) in this state */ +#define BTM_INQ_ACTIVE_STATE 3 /* Actual inquiry or periodic inquiry is in progress */ +#define BTM_INQ_REMNAME_STATE 4 /* Remote name requests are active */ + + UINT8 state; /* Current state that the inquiry process is in */ + UINT8 inq_active; /* Bit Mask indicating type of inquiry is active */ + BOOLEAN no_inc_ssp; /* TRUE, to stop inquiry on incoming SSP */ +#if (defined(BTA_HOST_INTERLEAVE_SEARCH) && BTA_HOST_INTERLEAVE_SEARCH == TRUE) + btm_inq_state next_state; /*interleaving state to determine next mode to be inquired*/ +#endif +} tBTM_INQUIRY_VAR_ST; + +/* The MSB of the clock offset field indicates that the offset is valid if TRUE */ +#define BTM_CLOCK_OFFSET_VALID 0x8000 + +/* Define the structures needed by security management +*/ + +#define BTM_SEC_INVALID_HANDLE 0xFFFF + +typedef UINT8 *BTM_BD_NAME_PTR; /* Pointer to Device name */ + +/* Security callback is called by this unit when security +** procedures are completed. Parameters are +** BD Address of remote +** Result of the operation +*/ +typedef tBTM_SEC_CBACK tBTM_SEC_CALLBACK; + +typedef void (tBTM_SCO_IND_CBACK) (UINT16 sco_inx) ; + +/* MACROs to convert from SCO packet types mask to ESCO and back */ +#define BTM_SCO_PKT_TYPE_MASK ( HCI_PKT_TYPES_MASK_HV1 \ + | HCI_PKT_TYPES_MASK_HV2 \ + | HCI_PKT_TYPES_MASK_HV3) + +/* Mask defining only the SCO types of an esco packet type */ +#define BTM_ESCO_PKT_TYPE_MASK ( HCI_ESCO_PKT_TYPES_MASK_HV1 \ + | HCI_ESCO_PKT_TYPES_MASK_HV2 \ + | HCI_ESCO_PKT_TYPES_MASK_HV3) + +#define BTM_SCO_2_ESCO(scotype) ((UINT16)(((scotype) & BTM_SCO_PKT_TYPE_MASK) >> 5)) +#define BTM_ESCO_2_SCO(escotype) ((UINT16)(((escotype) & BTM_ESCO_PKT_TYPE_MASK) << 5)) + +/* Define masks for supported and exception 2.0 SCO packet types +*/ +#define BTM_SCO_SUPPORTED_PKTS_MASK (HCI_ESCO_PKT_TYPES_MASK_HV1 | \ + HCI_ESCO_PKT_TYPES_MASK_HV2 | \ + HCI_ESCO_PKT_TYPES_MASK_HV3 | \ + HCI_ESCO_PKT_TYPES_MASK_EV3 | \ + HCI_ESCO_PKT_TYPES_MASK_EV4 | \ + HCI_ESCO_PKT_TYPES_MASK_EV5) + +#define BTM_SCO_EXCEPTION_PKTS_MASK (HCI_ESCO_PKT_TYPES_MASK_NO_2_EV3 | \ + HCI_ESCO_PKT_TYPES_MASK_NO_3_EV3 | \ + HCI_ESCO_PKT_TYPES_MASK_NO_2_EV5 | \ + HCI_ESCO_PKT_TYPES_MASK_NO_3_EV5) + + +#define BTM_SCO_ROUTE_UNKNOWN 0xff + +/* Define the structure that contains (e)SCO data */ +typedef struct { + tBTM_ESCO_CBACK *p_esco_cback; /* Callback for eSCO events */ + tBTM_ESCO_PARAMS setup; + tBTM_ESCO_DATA data; /* Connection complete information */ + UINT8 hci_status; +} tBTM_ESCO_INFO; + +/* Define the structure used for SCO Management +*/ +typedef struct { + tBTM_ESCO_INFO esco; /* Current settings */ +#if BTM_SCO_HCI_INCLUDED == TRUE + BUFFER_Q xmit_data_q; /* SCO data transmitting queue */ +#endif + tBTM_SCO_CB *p_conn_cb; /* Callback for when connected */ + tBTM_SCO_CB *p_disc_cb; /* Callback for when disconnect */ + UINT16 state; /* The state of the SCO link */ + UINT16 hci_handle; /* HCI Handle */ + BOOLEAN is_orig; /* TRUE if the originator */ + BOOLEAN rem_bd_known; /* TRUE if remote BD addr known */ + +} tSCO_CONN; + +/* SCO Management control block */ +typedef struct { + tBTM_SCO_IND_CBACK *app_sco_ind_cb; +#if BTM_SCO_HCI_INCLUDED == TRUE + tBTM_SCO_DATA_CB *p_data_cb; /* Callback for SCO data over HCI */ + UINT32 xmit_window_size; /* Total SCO window in bytes */ +#endif + tSCO_CONN sco_db[BTM_MAX_SCO_LINKS]; + tBTM_ESCO_PARAMS def_esco_parms; + BD_ADDR xfer_addr; + UINT16 sco_disc_reason; + BOOLEAN esco_supported; /* TRUE if 1.2 cntlr AND supports eSCO links */ + tBTM_SCO_TYPE desired_sco_mode; + tBTM_SCO_TYPE xfer_sco_type; + tBTM_SCO_PCM_PARAM sco_pcm_param; + tBTM_SCO_CODEC_TYPE codec_in_use; /* None, CVSD, MSBC, etc. */ +#if BTM_SCO_HCI_INCLUDED == TRUE + tBTM_SCO_ROUTE_TYPE sco_path; +#endif + +} tSCO_CB; + + +#if BTM_SCO_INCLUDED == TRUE +void btm_set_sco_ind_cback( tBTM_SCO_IND_CBACK *sco_ind_cb ); +void btm_accept_sco_link(UINT16 sco_inx, tBTM_ESCO_PARAMS *p_setup, + tBTM_SCO_CB *p_conn_cb, tBTM_SCO_CB *p_disc_cb); +void btm_reject_sco_link(UINT16 sco_inx ); +void btm_sco_chk_pend_rolechange (UINT16 hci_handle); +#else +#define btm_accept_sco_link(sco_inx, p_setup, p_conn_cb, p_disc_cb) +#define btm_reject_sco_link(sco_inx) +#define btm_set_sco_ind_cback(sco_ind_cb) +#define btm_sco_chk_pend_rolechange(hci_handle) +#endif /* BTM_SCO_INCLUDED */ + +/* +** Define structure for Security Service Record. +** A record exists for each service registered with the Security Manager +*/ +typedef struct { + UINT32 mx_proto_id; /* Service runs over this multiplexer protocol */ + UINT32 orig_mx_chan_id; /* Channel on the multiplexer protocol */ + UINT32 term_mx_chan_id; /* Channel on the multiplexer protocol */ + UINT16 psm; /* L2CAP PSM value */ + UINT16 security_flags; /* Bitmap of required security features */ + UINT8 service_id; /* Passed in authorization callback */ +#if (L2CAP_UCD_INCLUDED == TRUE) + UINT16 ucd_security_flags; /* Bitmap of required security features for UCD */ +#endif +#if BTM_SEC_SERVICE_NAME_LEN > 0 + UINT8 orig_service_name[BTM_SEC_SERVICE_NAME_LEN + 1]; + UINT8 term_service_name[BTM_SEC_SERVICE_NAME_LEN + 1]; +#endif +} tBTM_SEC_SERV_REC; + +#if BLE_INCLUDED == TRUE +/* LE Security information of device in Slave Role */ +typedef struct { + BT_OCTET16 irk; /* peer diverified identity root */ + BT_OCTET16 pltk; /* peer long term key */ + BT_OCTET16 pcsrk; /* peer SRK peer device used to secured sign local data */ + + BT_OCTET16 lltk; /* local long term key */ + BT_OCTET16 lcsrk; /* local SRK peer device used to secured sign local data */ + + BT_OCTET8 rand; /* random vector for LTK generation */ + UINT16 ediv; /* LTK diversifier of this slave device */ + UINT16 div; /* local DIV to generate local LTK=d1(ER,DIV,0) and CSRK=d1(ER,DIV,1) */ + UINT8 sec_level; /* local pairing security level */ + UINT8 key_size; /* key size of the LTK delivered to peer device */ + UINT8 srk_sec_level; /* security property of peer SRK for this device */ + UINT8 local_csrk_sec_level; /* security property of local CSRK for this device */ + + UINT32 counter; /* peer sign counter for verifying rcv signed cmd */ + UINT32 local_counter; /* local sign counter for sending signed write cmd*/ +} tBTM_SEC_BLE_KEYS; + +typedef struct { + BD_ADDR pseudo_addr; /* LE pseudo address of the device if different from device address */ + tBLE_ADDR_TYPE ble_addr_type; /* LE device type: public or random address */ + tBLE_ADDR_TYPE static_addr_type; /* static address type */ + BD_ADDR static_addr; /* static address */ + +#define BTM_WHITE_LIST_BIT 0x01 +#define BTM_RESOLVING_LIST_BIT 0x02 + UINT8 in_controller_list; /* in controller resolving list or not */ + UINT8 resolving_list_index; +#if BLE_PRIVACY_SPT == TRUE + BD_ADDR cur_rand_addr; /* current random address */ + +#define BTM_BLE_ADDR_PSEUDO 0 /* address index device record */ +#define BTM_BLE_ADDR_RRA 1 /* cur_rand_addr */ +#define BTM_BLE_ADDR_STATIC 2 /* static_addr */ + UINT8 active_addr_type; +#endif + +#if SMP_INCLUDED == TRUE + tBTM_LE_KEY_TYPE key_type; /* bit mask of valid key types in record */ + tBTM_SEC_BLE_KEYS keys; /* LE device security info in slave rode */ +#endif +} tBTM_SEC_BLE; + + +#endif /* BLE_INCLUDED */ + +/* Peering bond type */ +enum { + BOND_TYPE_UNKNOWN, + BOND_TYPE_PERSISTENT, + BOND_TYPE_TEMPORARY +}; +typedef UINT8 tBTM_BOND_TYPE; + +/* +** Define structure for Security Device Record. +** A record exists for each device authenticated with this device +*/ +typedef struct { + tBTM_SEC_SERV_REC *p_cur_service; + tBTM_SEC_CALLBACK *p_callback; + void *p_ref_data; + UINT32 timestamp; /* Timestamp of the last connection */ + UINT32 trusted_mask[BTM_SEC_SERVICE_ARRAY_SIZE]; /* Bitwise OR of trusted services */ + UINT16 hci_handle; /* Handle to connection when exists */ + UINT16 clock_offset; /* Latest known clock offset */ + BD_ADDR bd_addr; /* BD_ADDR of the device */ + DEV_CLASS dev_class; /* DEV_CLASS of the device */ + LINK_KEY link_key; /* Device link key */ + UINT8 pin_code_length; /* Length of the pin_code used for paring */ + +#define BTM_SEC_AUTHORIZED BTM_SEC_FLAG_AUTHORIZED /* 0x01 */ +#define BTM_SEC_AUTHENTICATED BTM_SEC_FLAG_AUTHENTICATED /* 0x02 */ +#define BTM_SEC_ENCRYPTED BTM_SEC_FLAG_ENCRYPTED /* 0x04 */ +#define BTM_SEC_NAME_KNOWN 0x08 +#define BTM_SEC_LINK_KEY_KNOWN BTM_SEC_FLAG_LKEY_KNOWN /* 0x10 */ +#define BTM_SEC_LINK_KEY_AUTHED BTM_SEC_FLAG_LKEY_AUTHED /* 0x20 */ +#define BTM_SEC_ROLE_SWITCHED 0x40 +#define BTM_SEC_IN_USE 0x80 + /* LE link security flag */ +#define BTM_SEC_LE_AUTHENTICATED 0x0200 /* LE link is encrypted after pairing with MITM */ +#define BTM_SEC_LE_ENCRYPTED 0x0400 /* LE link is encrypted */ +#define BTM_SEC_LE_NAME_KNOWN 0x0800 /* not used */ +#define BTM_SEC_LE_LINK_KEY_KNOWN 0x1000 /* bonded with peer (peer LTK and/or SRK is saved) */ +#define BTM_SEC_LE_LINK_KEY_AUTHED 0x2000 /* pairing is done with MITM */ +#define BTM_SEC_16_DIGIT_PIN_AUTHED 0x4000 /* pairing is done with 16 digit pin */ + + UINT16 sec_flags; /* Current device security state */ + + tBTM_BD_NAME sec_bd_name; /* User friendly name of the device. (may be truncated to save space in dev_rec table) */ + BD_FEATURES features[HCI_EXT_FEATURES_PAGE_MAX + 1]; /* Features supported by the device */ + UINT8 num_read_pages; + +#define BTM_SEC_STATE_IDLE 0 +#define BTM_SEC_STATE_AUTHENTICATING 1 +#define BTM_SEC_STATE_ENCRYPTING 2 +#define BTM_SEC_STATE_GETTING_NAME 3 +#define BTM_SEC_STATE_AUTHORIZING 4 +#define BTM_SEC_STATE_SWITCHING_ROLE 5 +#define BTM_SEC_STATE_DISCONNECTING 6 /* disconnecting BR/EDR */ +#define BTM_SEC_STATE_DELAY_FOR_ENC 7 /* delay to check for encryption to work around */ + /* controller problems */ +#define BTM_SEC_STATE_DISCONNECTING_BLE 8 /* disconnecting BLE */ +#define BTM_SEC_STATE_DISCONNECTING_BOTH 9 /* disconnecting BR/EDR and BLE */ + + UINT8 sec_state; /* Operating state */ + BOOLEAN is_originator; /* TRUE if device is originating connection */ +#if (L2CAP_UCD_INCLUDED == TRUE) + BOOLEAN is_ucd; /* TRUE if device is sending or receiving UCD */ + /* if incoming security failed, received UCD will be discarded */ +#endif + BOOLEAN role_master; /* TRUE if current mode is master */ + UINT16 security_required; /* Security required for connection */ + BOOLEAN link_key_not_sent; /* link key notification has not been sent waiting for name */ + UINT8 link_key_type; /* Type of key used in pairing */ + BOOLEAN link_key_changed; /* Changed link key during current connection */ + +#define BTM_MAX_PRE_SM4_LKEY_TYPE BTM_LKEY_TYPE_REMOTE_UNIT /* the link key type used by legacy pairing */ + +#define BTM_SM4_UNKNOWN 0x00 +#define BTM_SM4_KNOWN 0x10 +#define BTM_SM4_TRUE 0x11 +#define BTM_SM4_REQ_PEND 0x08 /* set this bit when getting remote features */ +#define BTM_SM4_UPGRADE 0x04 /* set this bit when upgrading link key */ +#define BTM_SM4_RETRY 0x02 /* set this bit to retry on HCI_ERR_KEY_MISSING or HCI_ERR_LMP_ERR_TRANS_COLLISION */ +#define BTM_SM4_DD_ACP 0x20 /* set this bit to indicate peer initiated dedicated bonding */ +#define BTM_SM4_CONN_PEND 0x40 /* set this bit to indicate accepting acl conn; to be cleared on btm_acl_created */ + UINT8 sm4; /* BTM_SM4_TRUE, if the peer supports SM4 */ + tBTM_IO_CAP rmt_io_caps; /* IO capability of the peer device */ + tBTM_AUTH_REQ rmt_auth_req; /* the auth_req flag as in the IO caps rsp evt */ + BOOLEAN remote_supports_secure_connections; + BOOLEAN remote_features_needed; /* set to true if the local device is in */ + /* "Secure Connections Only" mode and it receives */ + /* HCI_IO_CAPABILITY_REQUEST_EVT from the peer before */ + /* it knows peer's support for Secure Connections */ + + UINT16 ble_hci_handle; /* use in DUMO connection */ + UINT8 enc_key_size; /* current link encryption key size */ + tBT_DEVICE_TYPE device_type; + BOOLEAN new_encryption_key_is_p256; /* Set to TRUE when the newly generated LK + ** is generated from P-256. + ** Link encrypted with such LK can be used + ** for SM over BR/EDR. + */ + BOOLEAN no_smp_on_br; /* if set to TRUE then SMP on BR/EDR doesn't */ + /* work, i.e. link keys crosspairing */ + /* SC BR/EDR->SC LE doesn't happen */ + tBTM_BOND_TYPE bond_type; /* peering bond type */ + +#if BLE_INCLUDED == TRUE + tBTM_SEC_BLE ble; + tBTM_LE_CONN_PRAMS conn_params; +#endif + +// btla-specific ++ +#if BTM_DISC_DURING_RS == TRUE +#define BTM_SEC_RS_NOT_PENDING 0 /* Role Switch not in progress */ +#define BTM_SEC_RS_PENDING 1 /* Role Switch in progress */ +#define BTM_SEC_DISC_PENDING 2 /* Disconnect is pending */ + UINT8 rs_disc_pending; +#endif +// btla-specific -- +#define BTM_SEC_NO_LAST_SERVICE_ID 0 + UINT8 last_author_service_id; /* ID of last serviced authorized: Reset after each l2cap connection */ + +} tBTM_SEC_DEV_REC; + +#define BTM_SEC_IS_SM4(sm) ((BOOLEAN)(BTM_SM4_TRUE == ((sm)&BTM_SM4_TRUE))) +#define BTM_SEC_IS_SM4_LEGACY(sm) ((BOOLEAN)(BTM_SM4_KNOWN == ((sm)&BTM_SM4_TRUE))) +#define BTM_SEC_IS_SM4_UNKNOWN(sm) ((BOOLEAN)(BTM_SM4_UNKNOWN == ((sm)&BTM_SM4_TRUE))) + +#define BTM_SEC_LE_MASK (BTM_SEC_LE_AUTHENTICATED|BTM_SEC_LE_ENCRYPTED|BTM_SEC_LE_LINK_KEY_KNOWN|BTM_SEC_LE_LINK_KEY_AUTHED) + +/* +** Define device configuration structure +*/ +typedef struct { +#if BTM_MAX_LOC_BD_NAME_LEN > 0 + tBTM_LOC_BD_NAME bd_name; /* local Bluetooth device name */ +#endif + BOOLEAN pin_type; /* TRUE if PIN type is fixed */ + UINT8 pin_code_len; /* Bonding information */ + PIN_CODE pin_code; /* PIN CODE if pin type is fixed */ + BOOLEAN connectable; /* If TRUE page scan should be enabled */ + UINT8 def_inq_scan_mode; /* ??? limited/general/none */ +} tBTM_CFG; + +enum { + BTM_PM_ST_ACTIVE = BTM_PM_STS_ACTIVE, + BTM_PM_ST_HOLD = BTM_PM_STS_HOLD, + BTM_PM_ST_SNIFF = BTM_PM_STS_SNIFF, + BTM_PM_ST_PARK = BTM_PM_STS_PARK, + BTM_PM_ST_PENDING = BTM_PM_STS_PENDING +}; +typedef UINT8 tBTM_PM_STATE; + +enum { + BTM_PM_SET_MODE_EVT, /* Set power mode API is called. */ + BTM_PM_UPDATE_EVT, + BTM_PM_RD_MODE_EVT /* Read power mode API is called. */ +}; +typedef UINT8 tBTM_PM_EVENT; + +typedef struct { + UINT16 event; + UINT16 len; + UINT8 link_ind; +} tBTM_PM_MSG_DATA; + +typedef struct { + UINT8 hci_status; + UINT8 mode; + UINT16 interval; +} tBTM_PM_MD_CHG_DATA; + +typedef struct { + UINT8 pm_id; /* the entity that calls SetPowerMode API */ + tBTM_PM_PWR_MD *p_pmd; +} tBTM_PM_SET_MD_DATA; + +typedef struct { + void *p_data; + UINT8 link_ind; +} tBTM_PM_SM_DATA; + +typedef struct { + tBTM_PM_PWR_MD req_mode[BTM_MAX_PM_RECORDS + 1]; /* the desired mode and parameters of the connection*/ + tBTM_PM_PWR_MD set_mode; /* the mode and parameters sent down to the host controller. */ + UINT16 interval; /* the interval from last mode change event. */ +#if (BTM_SSR_INCLUDED == TRUE) + UINT16 max_lat; /* stored SSR maximum latency */ + UINT16 min_rmt_to;/* stored SSR minimum remote timeout */ + UINT16 min_loc_to;/* stored SSR minimum local timeout */ +#endif + tBTM_PM_STATE state; /* contains the current mode of the connection */ + BOOLEAN chg_ind; /* a request change indication */ +} tBTM_PM_MCB; + +#define BTM_PM_REC_NOT_USED 0 +typedef struct { + tBTM_PM_STATUS_CBACK *cback;/* to notify the registered party of mode change event */ + UINT8 mask; /* registered request mask. 0, if this entry is not used */ +} tBTM_PM_RCB; + +enum { + BTM_BLI_ACL_UP_EVT, + BTM_BLI_ACL_DOWN_EVT, + BTM_BLI_PAGE_EVT, + BTM_BLI_PAGE_DONE_EVT, + BTM_BLI_INQ_EVT, + BTM_BLI_INQ_CANCEL_EVT, + BTM_BLI_INQ_DONE_EVT +}; +typedef UINT8 tBTM_BLI_EVENT; + +/* Pairing State */ +enum { + BTM_PAIR_STATE_IDLE, /* Idle */ + BTM_PAIR_STATE_GET_REM_NAME, /* Getting the remote name (to check for SM4) */ + BTM_PAIR_STATE_WAIT_PIN_REQ, /* Started authentication, waiting for PIN req (PIN is pre-fetched) */ + BTM_PAIR_STATE_WAIT_LOCAL_PIN, /* Waiting for local PIN code */ + BTM_PAIR_STATE_WAIT_NUMERIC_CONFIRM, /* Waiting user 'yes' to numeric confirmation */ + BTM_PAIR_STATE_KEY_ENTRY, /* Key entry state (we are a keyboard) */ + BTM_PAIR_STATE_WAIT_LOCAL_OOB_RSP, /* Waiting for local response to peer OOB data */ + BTM_PAIR_STATE_WAIT_LOCAL_IOCAPS, /* Waiting for local IO capabilities and OOB data */ + BTM_PAIR_STATE_INCOMING_SSP, /* Incoming SSP (got peer IO caps when idle) */ + BTM_PAIR_STATE_WAIT_AUTH_COMPLETE, /* All done, waiting authentication cpmplete */ + BTM_PAIR_STATE_WAIT_DISCONNECT /* Waiting to disconnect the ACL */ +}; +typedef UINT8 tBTM_PAIRING_STATE; + +#define BTM_PAIR_FLAGS_WE_STARTED_DD 0x01 /* We want to do dedicated bonding */ +#define BTM_PAIR_FLAGS_PEER_STARTED_DD 0x02 /* Peer initiated dedicated bonding */ +#define BTM_PAIR_FLAGS_DISC_WHEN_DONE 0x04 /* Disconnect when done */ +#define BTM_PAIR_FLAGS_PIN_REQD 0x08 /* set this bit when pin_callback is called */ +#define BTM_PAIR_FLAGS_PRE_FETCH_PIN 0x10 /* set this bit when pre-fetch pin */ +#define BTM_PAIR_FLAGS_REJECTED_CONNECT 0x20 /* set this bit when rejected incoming connection */ +#define BTM_PAIR_FLAGS_WE_CANCEL_DD 0x40 /* set this bit when cancelling a bonding procedure */ +#define BTM_PAIR_FLAGS_LE_ACTIVE 0x80 /* use this bit when SMP pairing is active */ + + +typedef struct { + BOOLEAN is_mux; + BD_ADDR bd_addr; + UINT16 psm; + BOOLEAN is_orig; + tBTM_SEC_CALLBACK *p_callback; + void *p_ref_data; + UINT32 mx_proto_id; + UINT32 mx_chan_id; + tBT_TRANSPORT transport; +} tBTM_SEC_QUEUE_ENTRY; + +#if (L2CAP_UCD_INCLUDED == TRUE) + +#define CONN_ORIENT_TERM 0x00 /* incoming connection oriented */ +#define CONN_ORIENT_ORIG 0x01 /* outgoing connection oriented */ +#define CONNLESS_TERM 0x02 /* incoming connectionless */ +#define CONNLESS_ORIG 0x03 /* outgoing connectionless */ +#define CONNECTION_TYPE_ORIG_MASK 0x01 /* mask for direction */ +#define CONNECTION_TYPE_CONNLESS_MASK 0x02 /* mask for connectionless or not */ +typedef UINT8 CONNECTION_TYPE; + +#else + +#define CONN_ORIENT_TERM FALSE +#define CONN_ORIENT_ORIG TRUE +typedef BOOLEAN CONNECTION_TYPE; + +#endif /* (L2CAP_UCD_INCLUDED == TRUE) */ + +/* Define a structure to hold all the BTM data +*/ + +#define BTM_STATE_BUFFER_SIZE 5 /* size of state buffer */ + +typedef struct { + tBTM_CFG cfg; /* Device configuration */ + + /**************************************************** + ** ACL Management + ****************************************************/ + tACL_CONN acl_db[MAX_L2CAP_LINKS]; + UINT8 btm_scn[BTM_MAX_SCN]; /* current SCNs: TRUE if SCN is in use */ + UINT16 btm_def_link_policy; + UINT16 btm_def_link_super_tout; + + tBTM_BL_EVENT_MASK bl_evt_mask; + tBTM_BL_CHANGE_CB *p_bl_changed_cb; /* Callback for when Busy Level changed */ + + /**************************************************** + ** Power Management + ****************************************************/ + tBTM_PM_MCB pm_mode_db[MAX_L2CAP_LINKS]; /* per ACL link */ + tBTM_PM_RCB pm_reg_db[BTM_MAX_PM_RECORDS + 1]; /* per application/module */ + UINT8 pm_pend_link; /* the index of acl_db, which has a pending PM cmd */ + UINT8 pm_pend_id; /* the id pf the module, which has a pending PM cmd */ + + /***************************************************** + ** Device control + *****************************************************/ + tBTM_DEVCB devcb; + + /***************************************************** + ** BLE Device controllers + *****************************************************/ +#if (BLE_INCLUDED == TRUE) + tBTM_BLE_CB ble_ctr_cb; + + UINT16 enc_handle; + BT_OCTET8 enc_rand; /* received rand value from LTK request*/ + UINT16 ediv; /* received ediv value from LTK request */ + UINT8 key_size; + tBTM_BLE_VSC_CB cmn_ble_vsc_cb; +#endif + + /* Packet types supported by the local device */ + UINT16 btm_acl_pkt_types_supported; + UINT16 btm_sco_pkt_types_supported; + + + /***************************************************** + ** Inquiry + *****************************************************/ + tBTM_INQUIRY_VAR_ST btm_inq_vars; + + /***************************************************** + ** SCO Management + *****************************************************/ +#if BTM_SCO_INCLUDED == TRUE + tSCO_CB sco_cb; +#endif + + /***************************************************** + ** Security Management + *****************************************************/ + tBTM_APPL_INFO api; + +#define BTM_SEC_MAX_RMT_NAME_CALLBACKS 2 + tBTM_RMT_NAME_CALLBACK *p_rmt_name_callback[BTM_SEC_MAX_RMT_NAME_CALLBACKS]; + + tBTM_SEC_DEV_REC *p_collided_dev_rec; + TIMER_LIST_ENT sec_collision_tle; + UINT32 collision_start_time; + UINT32 max_collision_delay; + UINT32 dev_rec_count; /* Counter used for device record timestamp */ + UINT8 security_mode; + BOOLEAN pairing_disabled; + BOOLEAN connect_only_paired; + BOOLEAN security_mode_changed; /* mode changed during bonding */ + BOOLEAN pin_type_changed; /* pin type changed during bonding */ + BOOLEAN sec_req_pending; /* TRUE if a request is pending */ +// btla-specific ++ +#ifdef PORCHE_PAIRING_CONFLICT + UINT8 pin_code_len_saved; /* for legacy devices */ +#endif +// btla-specific -- + + UINT8 pin_code_len; /* for legacy devices */ + PIN_CODE pin_code; /* for legacy devices */ + tBTM_PAIRING_STATE pairing_state; /* The current pairing state */ + UINT8 pairing_flags; /* The current pairing flags */ + BD_ADDR pairing_bda; /* The device currently pairing */ + TIMER_LIST_ENT pairing_tle; /* Timer for pairing process */ + UINT16 disc_handle; /* for legacy devices */ + UINT8 disc_reason; /* for legacy devices */ + tBTM_SEC_SERV_REC sec_serv_rec[BTM_SEC_MAX_SERVICE_RECORDS]; + tBTM_SEC_DEV_REC sec_dev_rec[BTM_SEC_MAX_DEVICE_RECORDS]; + tBTM_SEC_SERV_REC *p_out_serv; + tBTM_MKEY_CALLBACK *mkey_cback; + + BD_ADDR connecting_bda; + DEV_CLASS connecting_dc; + + UINT8 acl_disc_reason; + UINT8 trace_level; + UINT8 busy_level; /* the current busy level */ + BOOLEAN is_paging; /* TRUE, if paging is in progess */ + BOOLEAN is_inquiry; /* TRUE, if inquiry is in progess */ + BUFFER_Q page_queue; + BOOLEAN paging; + BOOLEAN discing; + BUFFER_Q sec_pending_q; /* pending sequrity requests in tBTM_SEC_QUEUE_ENTRY format */ + +#if (!defined(BT_TRACE_VERBOSE) || (BT_TRACE_VERBOSE == FALSE)) + char state_temp_buffer[BTM_STATE_BUFFER_SIZE]; +#endif +} tBTM_CB; + +/* +#ifdef __cplusplus +extern "C" +{ +#endif +*/ + +#if BTM_DYNAMIC_MEMORY == FALSE +extern tBTM_CB btm_cb; +#else +extern tBTM_CB *btm_cb_ptr; +#define btm_cb (*btm_cb_ptr) +#endif + +/* Internal functions provided by btm_main.c +******************************************** +*/ +void btm_init (void); + +/* Internal functions provided by btm_inq.c +******************************************* +*/ +tBTM_STATUS btm_initiate_rem_name (BD_ADDR remote_bda, + tBTM_INQ_INFO *p_cur, + UINT8 origin, UINT32 timeout, + tBTM_CMPL_CB *p_cb); + +void btm_process_remote_name (BD_ADDR bda, BD_NAME name, UINT16 evt_len, + UINT8 hci_status); +void btm_inq_rmt_name_failed(void); + +/* Inquiry related functions */ +void btm_clr_inq_db (BD_ADDR p_bda); +void btm_inq_db_init (void); +void btm_process_inq_results (UINT8 *p, UINT8 inq_res_mode); +void btm_process_inq_complete (UINT8 status, UINT8 mode); +void btm_process_cancel_complete(UINT8 status, UINT8 mode); +void btm_event_filter_complete (UINT8 *p); +void btm_inq_stop_on_ssp(void); +void btm_inq_clear_ssp(void); +tINQ_DB_ENT *btm_inq_db_find (BD_ADDR p_bda); +BOOLEAN btm_inq_find_bdaddr (BD_ADDR p_bda); + +BOOLEAN btm_lookup_eir(BD_ADDR_PTR p_rem_addr); + +/* Internal functions provided by btm_acl.c +******************************************** +*/ +void btm_acl_init (void); +void btm_acl_created (BD_ADDR bda, DEV_CLASS dc, BD_NAME bdn, + UINT16 hci_handle, UINT8 link_role, tBT_TRANSPORT transport); +void btm_acl_removed (BD_ADDR bda, tBT_TRANSPORT transport); +void btm_acl_device_down (void); +void btm_acl_update_busy_level (tBTM_BLI_EVENT event); + +void btm_cont_rswitch (tACL_CONN *p, + tBTM_SEC_DEV_REC *p_dev_rec, + UINT8 hci_status); + +UINT8 btm_handle_to_acl_index (UINT16 hci_handle); +void btm_read_link_policy_complete (UINT8 *p); +void btm_read_rssi_complete (UINT8 *p); +void btm_read_tx_power_complete (UINT8 *p, BOOLEAN is_ble); +void btm_read_link_quality_complete (UINT8 *p); +tBTM_STATUS btm_set_packet_types (tACL_CONN *p, UINT16 pkt_types); +void btm_process_clk_off_comp_evt (UINT16 hci_handle, UINT16 clock_offset); +void btm_acl_role_changed (UINT8 hci_status, BD_ADDR bd_addr, UINT8 new_role); +void btm_acl_encrypt_change (UINT16 handle, UINT8 status, UINT8 encr_enable); +UINT16 btm_get_acl_disc_reason_code (void); +tBTM_STATUS btm_remove_acl (BD_ADDR bd_addr, tBT_TRANSPORT transport); +void btm_read_remote_features_complete (UINT8 *p); +void btm_read_remote_ext_features_complete (UINT8 *p); +void btm_read_remote_ext_features_failed (UINT8 status, UINT16 handle); +void btm_read_remote_version_complete (UINT8 *p); +void btm_establish_continue (tACL_CONN *p_acl_cb); + +// btla-specific ++ +void btm_acl_chk_peer_pkt_type_support (tACL_CONN *p, UINT16 *p_pkt_type); +// btla-specific -- +/* Read maximum data packet that can be sent over current connection */ +UINT16 btm_get_max_packet_size (BD_ADDR addr); +tACL_CONN *btm_bda_to_acl (BD_ADDR bda, tBT_TRANSPORT transport); +BOOLEAN btm_acl_notif_conn_collision (BD_ADDR bda); + +void btm_pm_reset(void); +void btm_pm_sm_alloc(UINT8 ind); +void btm_pm_proc_cmd_status(UINT8 status); +void btm_pm_proc_mode_change (UINT8 hci_status, UINT16 hci_handle, UINT8 mode, + UINT16 interval); +void btm_pm_proc_ssr_evt (UINT8 *p, UINT16 evt_len); +#if BTM_SCO_INCLUDED == TRUE +void btm_sco_chk_pend_unpark (UINT8 hci_status, UINT16 hci_handle); +#else +#define btm_sco_chk_pend_unpark(hci_status, hci_handle) +#endif /* BTM_SCO_INCLUDED */ +void btm_qos_setup_complete (UINT8 status, UINT16 handle, FLOW_SPEC *p_flow); + + +/* Internal functions provided by btm_sco.c +******************************************** +*/ +void btm_sco_init (void); +void btm_sco_connected (UINT8 hci_status, BD_ADDR bda, UINT16 hci_handle, + tBTM_ESCO_DATA *p_esco_data); +void btm_esco_proc_conn_chg (UINT8 status, UINT16 handle, UINT8 tx_interval, + UINT8 retrans_window, UINT16 rx_pkt_len, + UINT16 tx_pkt_len); +void btm_sco_conn_req (BD_ADDR bda, DEV_CLASS dev_class, UINT8 link_type); +void btm_sco_removed (UINT16 hci_handle, UINT8 reason); +void btm_sco_acl_removed (BD_ADDR bda); +void btm_route_sco_data (BT_HDR *p_msg); +BOOLEAN btm_is_sco_active (UINT16 handle); +void btm_remove_sco_links (BD_ADDR bda); +BOOLEAN btm_is_sco_active_by_bdaddr (BD_ADDR remote_bda); + +tBTM_SCO_TYPE btm_read_def_esco_mode (tBTM_ESCO_PARAMS *p_parms); +UINT16 btm_find_scb_by_handle (UINT16 handle); +void btm_sco_flush_sco_data(UINT16 sco_inx); + +/* Internal functions provided by btm_devctl.c +********************************************** +*/ +void btm_dev_init (void); +void btm_dev_timeout (TIMER_LIST_ENT *p_tle); +void btm_read_local_name_complete (UINT8 *p, UINT16 evt_len); + +#if (BLE_INCLUDED == TRUE) +void btm_ble_add_2_white_list_complete(UINT8 status); +void btm_ble_remove_from_white_list_complete(UINT8 *p, UINT16 evt_len); +void btm_ble_clear_white_list_complete(UINT8 *p, UINT16 evt_len); +BOOLEAN btm_ble_addr_resolvable(BD_ADDR rpa, tBTM_SEC_DEV_REC *p_dev_rec); +tBTM_STATUS btm_ble_read_resolving_list_entry(tBTM_SEC_DEV_REC *p_dev_rec); +BOOLEAN btm_ble_resolving_list_load_dev(tBTM_SEC_DEV_REC *p_dev_rec); +void btm_ble_resolving_list_remove_dev(tBTM_SEC_DEV_REC *p_dev_rec); +#endif /* BLE_INCLUDED */ + +/* Vendor Specific Command complete evt handler */ +void btm_vsc_complete (UINT8 *p, UINT16 cc_opcode, UINT16 evt_len, + tBTM_CMPL_CB *p_vsc_cplt_cback); +void btm_inq_db_reset (void); +void btm_vendor_specific_evt (UINT8 *p, UINT8 evt_len); +void btm_delete_stored_link_key_complete (UINT8 *p); +void btm_report_device_status (tBTM_DEV_STATUS status); + + +/* Internal functions provided by btm_dev.c +********************************************** +*/ +BOOLEAN btm_dev_support_switch (BD_ADDR bd_addr); + +tBTM_SEC_DEV_REC *btm_sec_alloc_dev (BD_ADDR bd_addr); +void btm_sec_free_dev (tBTM_SEC_DEV_REC *p_dev_rec); +tBTM_SEC_DEV_REC *btm_find_dev (BD_ADDR bd_addr); +tBTM_SEC_DEV_REC *btm_find_or_alloc_dev (BD_ADDR bd_addr); +tBTM_SEC_DEV_REC *btm_find_dev_by_handle (UINT16 handle); +tBTM_BOND_TYPE btm_get_bond_type_dev(BD_ADDR bd_addr); +BOOLEAN btm_set_bond_type_dev(BD_ADDR bd_addr, + tBTM_BOND_TYPE bond_type); + +/* Internal functions provided by btm_sec.c +********************************************** +*/ +BOOLEAN btm_dev_support_switch (BD_ADDR bd_addr); +tBTM_STATUS btm_sec_l2cap_access_req (BD_ADDR bd_addr, UINT16 psm, + UINT16 handle, CONNECTION_TYPE conn_type, + tBTM_SEC_CALLBACK *p_callback, void *p_ref_data); +tBTM_STATUS btm_sec_mx_access_request (BD_ADDR bd_addr, UINT16 psm, BOOLEAN is_originator, + UINT32 mx_proto_id, UINT32 mx_chan_id, + tBTM_SEC_CALLBACK *p_callback, void *p_ref_data); +void btm_sec_conn_req (UINT8 *bda, UINT8 *dc); +void btm_create_conn_cancel_complete (UINT8 *p); +void btm_read_linq_tx_power_complete (UINT8 *p); + +void btm_sec_init (UINT8 sec_mode); +void btm_sec_dev_reset (void); +void btm_sec_abort_access_req (BD_ADDR bd_addr); +void btm_sec_auth_complete (UINT16 handle, UINT8 status); +void btm_sec_encrypt_change (UINT16 handle, UINT8 status, UINT8 encr_enable); +void btm_sec_connected (UINT8 *bda, UINT16 handle, UINT8 status, UINT8 enc_mode); +tBTM_STATUS btm_sec_disconnect (UINT16 handle, UINT8 reason); +void btm_sec_disconnected (UINT16 handle, UINT8 reason); +void btm_sec_rmt_name_request_complete (UINT8 *bd_addr, UINT8 *bd_name, UINT8 status); +void btm_sec_rmt_host_support_feat_evt (UINT8 *p); +void btm_io_capabilities_req (UINT8 *p); +void btm_io_capabilities_rsp (UINT8 *p); +void btm_proc_sp_req_evt (tBTM_SP_EVT event, UINT8 *p); +void btm_keypress_notif_evt (UINT8 *p); +void btm_simple_pair_complete (UINT8 *p); +void btm_sec_link_key_notification (UINT8 *p_bda, UINT8 *p_link_key, UINT8 key_type); +void btm_sec_link_key_request (UINT8 *p_bda); +void btm_sec_pin_code_request (UINT8 *p_bda); +void btm_sec_update_clock_offset (UINT16 handle, UINT16 clock_offset); +void btm_sec_dev_rec_cback_event (tBTM_SEC_DEV_REC *p_dev_rec, UINT8 res, BOOLEAN is_le_trasnport); +void btm_sec_set_peer_sec_caps (tACL_CONN *p_acl_cb, tBTM_SEC_DEV_REC *p_dev_rec); + +#if BLE_INCLUDED == TRUE +void btm_sec_clear_ble_keys (tBTM_SEC_DEV_REC *p_dev_rec); +BOOLEAN btm_sec_find_bonded_dev (UINT8 start_idx, UINT8 *p_found_idx, tBTM_SEC_DEV_REC **p_rec); +BOOLEAN btm_sec_is_a_bonded_dev (BD_ADDR bda); +void btm_consolidate_dev(tBTM_SEC_DEV_REC *p_target_rec); +BOOLEAN btm_sec_is_le_capable_dev (BD_ADDR bda); +BOOLEAN btm_ble_init_pseudo_addr (tBTM_SEC_DEV_REC *p_dev_rec, BD_ADDR new_pseudo_addr); +#endif /* BLE_INCLUDED */ + +tINQ_DB_ENT *btm_inq_db_new (BD_ADDR p_bda); + +#if BTM_OOB_INCLUDED == TRUE +void btm_rem_oob_req (UINT8 *p); +void btm_read_local_oob_complete (UINT8 *p); +#else +#define btm_rem_oob_req(p) +#define btm_read_local_oob_complete(p) +#endif + +void btm_acl_resubmit_page (void); +void btm_acl_reset_paging (void); +void btm_acl_paging (BT_HDR *p, BD_ADDR dest); +UINT8 btm_sec_clr_service_by_psm (UINT16 psm); +void btm_sec_clr_temp_auth_service (BD_ADDR bda); + +/* +#ifdef __cplusplus +} +#endif +*/ + +#endif diff --git a/tools/sdk/include/bluedroid/btu.h b/tools/sdk/include/bluedroid/btu.h new file mode 100644 index 00000000..d82d96d7 --- /dev/null +++ b/tools/sdk/include/bluedroid/btu.h @@ -0,0 +1,280 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * this file contains the main Bluetooth Upper Layer definitions. The Broadcom + * implementations of L2CAP RFCOMM, SDP and the BTIf run as one GKI task. The + * btu_task switches between them. + * + ******************************************************************************/ + +#ifndef BTU_H +#define BTU_H + +#include "bt_target.h" +#include "gki.h" + +// HACK(zachoverflow): temporary dark magic +#define BTU_POST_TO_TASK_NO_GOOD_HORRIBLE_HACK 0x1700 // didn't look used in bt_types...here goes nothing +typedef struct { + void (*callback)(BT_HDR *); +} post_to_task_hack_t; + +typedef struct { + void (*callback)(BT_HDR *); + BT_HDR *response; + void *context; +} command_complete_hack_t; + +typedef struct { + void (*callback)(BT_HDR *); + uint8_t status; + BT_HDR *command; + void *context; +} command_status_hack_t; + +/* callbacks +*/ +typedef void (*tBTU_TIMER_CALLBACK)(TIMER_LIST_ENT *p_tle); +typedef void (*tBTU_EVENT_CALLBACK)(BT_HDR *p_hdr); + + +/* Define the timer types maintained by BTU +*/ +#define BTU_TTYPE_BTM_DEV_CTL 1 +#define BTU_TTYPE_L2CAP_LINK 2 +#define BTU_TTYPE_L2CAP_CHNL 3 +#define BTU_TTYPE_L2CAP_HOLD 4 +#define BTU_TTYPE_SDP 5 +#define BTU_TTYPE_BTM_SCO 6 +#define BTU_TTYPE_BTM_ACL 9 +#define BTU_TTYPE_BTM_RMT_NAME 10 +#define BTU_TTYPE_RFCOMM_MFC 11 +#define BTU_TTYPE_RFCOMM_PORT 12 +#define BTU_TTYPE_TCS_L2CAP 13 +#define BTU_TTYPE_TCS_CALL 14 +#define BTU_TTYPE_TCS_WUG 15 +#define BTU_TTYPE_AUTO_SYNC 16 +#define BTU_TTYPE_CTP_RECON 17 +#define BTU_TTYPE_CTP_T100 18 +#define BTU_TTYPE_CTP_GUARD 19 +#define BTU_TTYPE_CTP_DETACH 20 + +#define BTU_TTYPE_SPP_CONN_RETRY 21 +#define BTU_TTYPE_USER_FUNC 22 + +#define BTU_TTYPE_FTP_DISC 25 +#define BTU_TTYPE_OPP_DISC 26 + +#define BTU_TTYPE_CTP_TL_DISCVY 28 +#define BTU_TTYPE_IPFRAG_TIMER 29 +#define BTU_TTYPE_HSP2_AT_CMD_TO 30 +#define BTU_TTYPE_HSP2_REPEAT_RING 31 + +#define BTU_TTYPE_CTP_GW_INIT 32 +#define BTU_TTYPE_CTP_GW_CONN 33 +#define BTU_TTYPE_CTP_GW_IDLE 35 + +#define BTU_TTYPE_ICP_L2CAP 36 +#define BTU_TTYPE_ICP_T100 37 + +#define BTU_TTYPE_HSP2_WAIT_OK 38 + +/* HCRP Timers */ +#define BTU_TTYPE_HCRP_NOTIF_REG 39 +#define BTU_TTYPE_HCRP_PROTO_RSP 40 +#define BTU_TTYPE_HCRP_CR_GRANT 41 +#define BTU_TTYPE_HCRP_CR_CHECK 42 +#define BTU_TTYPE_HCRP_W4_CLOSE 43 + +/* HCRPM Timers */ +#define BTU_TTYPE_HCRPM_NOTIF_REG 44 +#define BTU_TTYPE_HCRPM_NOTIF_KEEP 45 +#define BTU_TTYPE_HCRPM_API_RSP 46 +#define BTU_TTYPE_HCRPM_W4_OPEN 47 +#define BTU_TTYPE_HCRPM_W4_CLOSE 48 + +/* BNEP Timers */ +#define BTU_TTYPE_BNEP 50 + +#define BTU_TTYPE_HSP2_SDP_FAIL_TO 55 +#define BTU_TTYPE_HSP2_SDP_RTRY_TO 56 + +/* BTU internal */ +/* unused 60 */ + +#define BTU_TTYPE_AVDT_CCB_RET 61 +#define BTU_TTYPE_AVDT_CCB_RSP 62 +#define BTU_TTYPE_AVDT_CCB_IDLE 63 +#define BTU_TTYPE_AVDT_SCB_TC 64 + +#define BTU_TTYPE_HID_DEV_REPAGE_TO 65 +#define BTU_TTYPE_HID_HOST_REPAGE_TO 66 + +#define BTU_TTYPE_HSP2_DELAY_CKPD_RCV 67 + +#define BTU_TTYPE_SAP_TO 68 + +/* BPP Timer */ +#define BTU_TTYPE_BPP_REF_CHNL 72 + +/* LP HC idle Timer */ +#define BTU_TTYPE_LP_HC_IDLE_TO 74 + +/* Patch RAM Timer */ +#define BTU_TTYPE_PATCHRAM_TO 75 + +/* eL2CAP Info Request and other proto cmds timer */ +#define BTU_TTYPE_L2CAP_FCR_ACK 78 +#define BTU_TTYPE_L2CAP_INFO 79 + +#define BTU_TTYPE_MCA_CCB_RSP 98 + +/* BTU internal timer for BLE activity */ +#define BTU_TTYPE_BLE_INQUIRY 99 +#define BTU_TTYPE_BLE_GAP_LIM_DISC 100 +#define BTU_TTYPE_ATT_WAIT_FOR_RSP 101 +#define BTU_TTYPE_SMP_PAIRING_CMD 102 +#define BTU_TTYPE_BLE_RANDOM_ADDR 103 +#define BTU_TTYPE_ATT_WAIT_FOR_APP_RSP 104 +#define BTU_TTYPE_ATT_WAIT_FOR_IND_ACK 105 + +#define BTU_TTYPE_BLE_GAP_FAST_ADV 106 +#define BTU_TTYPE_BLE_OBSERVE 107 + + +#define BTU_TTYPE_UCD_TO 108 + +/* This is the inquiry response information held by BTU, and available +** to applications. +*/ +typedef struct { + BD_ADDR remote_bd_addr; + UINT8 page_scan_rep_mode; + UINT8 page_scan_per_mode; + UINT8 page_scan_mode; + DEV_CLASS dev_class; + UINT16 clock_offset; +} tBTU_INQ_INFO; + + + +#define BTU_MAX_REG_TIMER (2) /* max # timer callbacks which may register */ +#define BTU_MAX_REG_EVENT (6) /* max # event callbacks which may register */ +#define BTU_DEFAULT_DATA_SIZE (0x2a0) + +#if (BLE_INCLUDED == TRUE) +#define BTU_DEFAULT_BLE_DATA_SIZE (27) +#endif + +/* structure to hold registered timers */ +typedef struct { + TIMER_LIST_ENT *p_tle; /* timer entry */ + tBTU_TIMER_CALLBACK timer_cb; /* callback triggered when timer expires */ +} tBTU_TIMER_REG; + +/* structure to hold registered event callbacks */ +typedef struct { + UINT16 event_range; /* start of event range */ + tBTU_EVENT_CALLBACK event_cb; /* callback triggered when event is in range */ +} tBTU_EVENT_REG; + +#define NFC_MAX_LOCAL_CTRLS 0 + +/* the index to BTU command queue array */ +#define NFC_CONTROLLER_ID (1) +#define BTU_MAX_LOCAL_CTRLS (1 + NFC_MAX_LOCAL_CTRLS) /* only BR/EDR */ + +/* Define structure holding BTU variables +*/ +typedef struct { + tBTU_TIMER_REG timer_reg[BTU_MAX_REG_TIMER]; + tBTU_EVENT_REG event_reg[BTU_MAX_REG_EVENT]; + + BOOLEAN reset_complete; /* TRUE after first ack from device received */ + UINT8 trace_level; /* Trace level for HCI layer */ +} tBTU_CB; + +/* +#ifdef __cplusplus +extern "C" { +#endif +*/ +/* Global BTU data */ +#if BTU_DYNAMIC_MEMORY == FALSE +extern tBTU_CB btu_cb; +#else +extern tBTU_CB *btu_cb_ptr; +#define btu_cb (*btu_cb_ptr) +#endif + +extern const BD_ADDR BT_BD_ANY; + +/* Functions provided by btu_task.c +************************************ +*/ +void btu_start_timer (TIMER_LIST_ENT *p_tle, UINT16 type, UINT32 timeout); +void btu_stop_timer (TIMER_LIST_ENT *p_tle); +void btu_start_timer_oneshot(TIMER_LIST_ENT *p_tle, UINT16 type, UINT32 timeout); +void btu_stop_timer_oneshot(TIMER_LIST_ENT *p_tle); + +void btu_uipc_rx_cback(BT_HDR *p_msg); + +/* +** Quick Timer +*/ +#if defined(QUICK_TIMER_TICKS_PER_SEC) && (QUICK_TIMER_TICKS_PER_SEC > 0) +void btu_start_quick_timer (TIMER_LIST_ENT *p_tle, UINT16 type, UINT32 timeout); +void btu_stop_quick_timer (TIMER_LIST_ENT *p_tle); +void btu_process_quick_timer_evt (void); +#endif + +#if (defined(HCILP_INCLUDED) && HCILP_INCLUDED == TRUE) +void btu_check_bt_sleep (void); +#endif + +/* Functions provided by btu_hcif.c +************************************ +*/ +void btu_hcif_process_event (UINT8 controller_id, BT_HDR *p_buf); +void btu_hcif_send_cmd (UINT8 controller_id, BT_HDR *p_msg); +void btu_hcif_send_host_rdy_for_data(void); +void btu_hcif_cmd_timeout (UINT8 controller_id); + +/* Functions provided by btu_core.c +************************************ +*/ +void btu_init_core(void); +void btu_free_core(void); + +void BTU_StartUp(void); +void BTU_ShutDown(void); + +void btu_task_start_up(void); +void btu_task_shut_down(void); + +UINT16 BTU_BleAclPktSize(void); + +/* +#ifdef __cplusplus +} +#endif +*/ + +#endif diff --git a/tools/sdk/include/bluedroid/buffer.h b/tools/sdk/include/bluedroid/buffer.h new file mode 100755 index 00000000..fd1b2fa3 --- /dev/null +++ b/tools/sdk/include/bluedroid/buffer.h @@ -0,0 +1,59 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _BUFFER_H_ +#define _BUFFER_H_ + +#include +#include + +typedef struct buffer_t buffer_t; + +// Returns a new buffer of |size| bytes. Returns NULL if a buffer could not be +// allocated. |size| must be non-zero. The caller must release this buffer with +// |buffer_free|. +buffer_t *buffer_new(size_t size); + +// Creates a new reference to the buffer |buf|. A reference is indistinguishable +// from the original: writes to the original will be reflected in the reference +// and vice versa. In other words, this function creates an alias to |buf|. The +// caller must release the returned buffer with |buffer_free|. Note that releasing +// the returned buffer does not release |buf|. |buf| must not be NULL. +buffer_t *buffer_new_ref(const buffer_t *buf); + +// Creates a new reference to the last |slice_size| bytes of |buf|. See +// |buffer_new_ref| for a description of references. |slice_size| must be +// greater than 0 and may be at most |buffer_length| +// (0 < slice_size <= buffer_length). |buf| must not be NULL. +buffer_t *buffer_new_slice(const buffer_t *buf, size_t slice_size); + +// Frees a buffer object. |buf| may be NULL. +void buffer_free(buffer_t *buf); + +// Returns a pointer to a writeable memory region for |buf|. All references +// and slices that share overlapping bytes will also be written to when +// writing to the returned pointer. The caller may safely write up to +// |buffer_length| consecutive bytes starting at the address returned by +// this function. |buf| must not be NULL. +void *buffer_ptr(const buffer_t *buf); + +// Returns the length of the writeable memory region referred to by |buf|. +// |buf| must not be NULL. +size_t buffer_length(const buffer_t *buf); + +#endif /*_BUFFER_H_*/ diff --git a/tools/sdk/include/bluedroid/buffer_allocator.h b/tools/sdk/include/bluedroid/buffer_allocator.h new file mode 100755 index 00000000..9dd7ba7c --- /dev/null +++ b/tools/sdk/include/bluedroid/buffer_allocator.h @@ -0,0 +1,25 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _BUFFER_ALLOCATOR_H_ + +#include "allocator.h" + +const allocator_t *buffer_allocator_get_interface(); + +#endif /*_BUFFER_ALLOCATOR_H_*/ diff --git a/tools/sdk/include/bluedroid/button_pro.h b/tools/sdk/include/bluedroid/button_pro.h new file mode 100644 index 00000000..cbc2d68d --- /dev/null +++ b/tools/sdk/include/bluedroid/button_pro.h @@ -0,0 +1,120 @@ +#include "prf_defs.h" +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +#if (BUT_PROFILE_CFG) +#include "bt_target.h" +#include "gatt_api.h" +#include "gattdefs.h" +#include "esp_gatt_api.h" + +#define KEY_SUCCESS GATT_SUCCESS +#define KEY_ILLEGAL_PARAM GATT_ILLEGAL_PARAMETER +#define KEY_NO_RESOURCES GATT_NO_RESOURCES + +//define the key serivce uuid +#define ATT_SVC_BUTTON 0xFFFF +//define the key Char uuid +#define ATT_CHAR_BUTTON_WIT 0xFF01 +#define ATT_CHAR_BUTTON_NTF 0xFF02 + +#define BUTTON_PRESS_NTF_CFG 0x01 + +#define BUTTON_VAL_MAX_LEN (10) + +#define BUTT_MAX_APPS GATT_CL_MAX_LCB + +#define BUT_MAX_STRING_DATA 7 + +typedef void (*but_prf_cb_t)(uint8_t app_id, uint8_t event, uint16_t len, uint8_t *value); + +#ifndef BUT_MAX_INT_NUM +#define BUT_MAX_INT_NUM 4 +#endif + +enum { + RECEIVE_NET_PASSWD_EVT, + RECEIVE_NET_SSD_EVT, + RECEIVE_EVT_MAX +}; + +/// button Service Attributes Indexes +enum { + KEY_IDX_SVC, + KEY_IDX_BUTTON_WIT_CHAR, + KEY_IDX_BUTTON_WIT_VAL, + KEY_IDX_BUTTON_NTF_CHAR, + KEY_IDX_BUTTON_NTF_VAL, + KEY_IDX_BUTTON_NTF_CFG, + + KEY_IDX_NB, +}; + +typedef struct { + BD_ADDR remote_bda; + BOOLEAN need_rsp; + uint16_t clt_cfg; +} but_write_data_t; + +typedef struct { + BOOLEAN in_use; + BOOLEAN congest; + uint16_t conn_id; + BOOLEAN connected; + BD_ADDR remote_bda; + uint32_t trans_id; + uint8_t cur_srvc_id; + +} but_clcb_t; + + +typedef struct { + uint8_t app_id; + uint16_t but_wirt_hdl; + uint16_t but_ntf_hdl; + uint16_t but_cfg_hdl; + + but_prf_cb_t p_cback; + +} but_inst_t; + + +/* service engine control block */ +typedef struct { + but_clcb_t clcb; /* connection link*/ + esp_gatt_if_t gatt_if; + BOOLEAN enabled; + BOOLEAN is_primery; + but_inst_t button_inst; + uint8_t inst_id; +} button_env_cb_t; + +void Button_CreateService(void); + +but_clcb_t *button_env_clcb_alloc(uint16_t conn_id, BD_ADDR bda); + +uint16_t button_env_find_conn_id_by_bd_adddr(BD_ADDR bda); + +BOOLEAN button_env_clcb_dealloc(uint16_t conn_id); + +esp_gatt_status_t button_init(but_prf_cb_t call_back); + +void button_disable(uint16_t connid); + +void button_msg_notify(uint16_t len, uint8_t *button_msg); + +extern button_env_cb_t button_cb_env; + +#endif ///BUT_PROFILE_CFG diff --git a/tools/sdk/include/bluedroid/controller.h b/tools/sdk/include/bluedroid/controller.h new file mode 100644 index 00000000..6d6e5a8c --- /dev/null +++ b/tools/sdk/include/bluedroid/controller.h @@ -0,0 +1,85 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _CONTROLLER_H_ +#define _CONTROLLER_H_ + +#include +#include + +#include "bt_target.h" +#include "bdaddr.h" +#include "device_features.h" +#include "hci_layer.h" +#include "hci_packet_factory.h" +#include "hci_packet_parser.h" + +typedef struct controller_t { + void (*start_up)(void); + void (*shut_down)(void); + bool (*get_is_ready)(void); + + const bt_bdaddr_t *(*get_address)(void); + const bt_version_t *(*get_bt_version)(void); + + const bt_device_features_t *(*get_features_classic)(int index); + + uint8_t (*get_last_features_classic_index)(void); + + const bt_device_features_t *(*get_features_ble)(void); + const uint8_t *(*get_ble_supported_states)(void); + + bool (*supports_simple_pairing)(void); + bool (*supports_secure_connections)(void); + bool (*supports_simultaneous_le_bredr)(void); + bool (*supports_reading_remote_extended_features)(void); + bool (*supports_interlaced_inquiry_scan)(void); + bool (*supports_rssi_with_inquiry_results)(void); + bool (*supports_extended_inquiry_response)(void); + bool (*supports_master_slave_role_switch)(void); + + bool (*supports_ble)(void); + bool (*supports_ble_packet_extension)(void); + bool (*supports_ble_connection_parameters_request)(void); + bool (*supports_ble_privacy)(void); + + // Get the cached acl data sizes for the controller. + uint16_t (*get_acl_data_size_classic)(void); + uint16_t (*get_acl_data_size_ble)(void); + + // Get the cached acl packet sizes for the controller. + // This is a convenience function for the respective + // acl data size + size of the acl header. + uint16_t (*get_acl_packet_size_classic)(void); + uint16_t (*get_acl_packet_size_ble)(void); + + uint16_t (*get_ble_default_data_packet_length)(void); + + // Get the number of acl packets the controller can buffer. + uint16_t (*get_acl_buffer_count_classic)(void); + uint8_t (*get_acl_buffer_count_ble)(void); + + uint8_t (*get_ble_white_list_size)(void); + + uint8_t (*get_ble_resolving_list_max_size)(void); + void (*set_ble_resolving_list_max_size)(int resolving_list_max_size); +} controller_t; + +const controller_t *controller_get_interface(); + +#endif /*_CONTROLLER_H_*/ diff --git a/tools/sdk/include/bluedroid/device_features.h b/tools/sdk/include/bluedroid/device_features.h new file mode 100644 index 00000000..360d3768 --- /dev/null +++ b/tools/sdk/include/bluedroid/device_features.h @@ -0,0 +1,29 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ +#ifndef _DEVICE_FEATURES_H_ +#define _DEVICE_FEATURES_H_ + +#include + +// Represents a page of device feature enabled/disabled bits returned +// by the local controller. See the bluetooth spec for bit indexes. +typedef struct { + uint8_t as_array[8]; +} bt_device_features_t; + +#endif /*_DEVICE_FEATURES_H_*/ diff --git a/tools/sdk/include/bluedroid/dis_api.h b/tools/sdk/include/bluedroid/dis_api.h new file mode 100644 index 00000000..5b8cfc5f --- /dev/null +++ b/tools/sdk/include/bluedroid/dis_api.h @@ -0,0 +1,338 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2013 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/******************************************************************************* +** +** Header file for profile folder. +** +********************************************************************************/ + +#ifndef SRVC_DIS_API_H +#define SRVC_DIS_API_H + +#include "bt_target.h" +#include "gatt_api.h" +#include "gattdefs.h" +#include "esp_gatts_api.h" + +#define DIS_SUCCESS GATT_SUCCESS +#define DIS_ILLEGAL_PARAM GATT_ILLEGAL_PARAMETER +#define DIS_NO_RESOURCES GATT_NO_RESOURCES +typedef UINT8 tDIS_STATUS; + + +/***************************************************************************** +** Data structure for DIS +*****************************************************************************/ + +#define DIS_ATTR_SYS_ID_BIT 0x0001 +#define DIS_ATTR_MODEL_NUM_BIT 0x0002 +#define DIS_ATTR_SERIAL_NUM_BIT 0x0004 +#define DIS_ATTR_FW_NUM_BIT 0x0008 +#define DIS_ATTR_HW_NUM_BIT 0x0010 +#define DIS_ATTR_SW_NUM_BIT 0x0020 +#define DIS_ATTR_MANU_NAME_BIT 0x0040 +#define DIS_ATTR_IEEE_DATA_BIT 0x0080 +#define DIS_ATTR_PNP_ID_BIT 0x0100 +typedef UINT16 tDIS_ATTR_MASK; + +#define DIS_ATTR_ALL_MASK 0xffff + +typedef tDIS_ATTR_MASK tDIS_ATTR_BIT ; + +#define DIS_MAX_NUM_INC_SVR 0 +#define DIS_MAX_CHAR_NUM 9 +#define DIS_MAX_ATTR_NUM (DIS_MAX_CHAR_NUM * 2 + DIS_MAX_NUM_INC_SVR + 1) + +#ifndef DIS_ATTR_DB_SIZE +#define DIS_ATTR_DB_SIZE GATT_DB_MEM_SIZE(DIS_MAX_NUM_INC_SVR, DIS_MAX_CHAR_NUM, 0) +#endif + +#define DIS_SYSTEM_ID_SIZE 8 +#define DIS_PNP_ID_SIZE 7 + + +typedef struct { + UINT16 uuid; + UINT16 handle; +} tDIS_DB_ENTRY; + +typedef struct { + UINT16 len; + UINT8 *p_data; +} tDIS_STRING; + +typedef struct { + UINT16 vendor_id; + UINT16 product_id; + UINT16 product_version; + UINT8 vendor_id_src; + +} tDIS_PNP_ID; + +typedef union { + UINT64 system_id; + tDIS_PNP_ID pnp_id; + tDIS_STRING data_str; +} tDIS_ATTR; + +#define DIS_MAX_STRING_DATA 7 + +typedef struct { + UINT16 attr_mask; + UINT64 system_id; + tDIS_PNP_ID pnp_id; + UINT8 *data_string[DIS_MAX_STRING_DATA]; +} tDIS_VALUE; + +//typedef void (tDIS_READ_CBACK)(BD_ADDR addr, tDIS_VALUE *p_dis_value); + +typedef struct { + tDIS_DB_ENTRY dis_attr[DIS_MAX_CHAR_NUM]; + tDIS_VALUE dis_value; + +// tDIS_READ_CBACK *p_read_dis_cback; + + UINT16 service_handle; + UINT16 max_handle; + + bool enabled; + + // UINT8 dis_read_uuid_idx; + // tDIS_ATTR_MASK request_mask; +} tDIS_CB; + +/***************************************************************************** +** Data structure used by Battery Service +*****************************************************************************/ + +#ifndef BA_MAX_INT_NUM +#define BA_MAX_INT_NUM 4 +#endif + +#define BATTERY_LEVEL_SIZE 1 + +typedef struct { + BD_ADDR remote_bda; + BOOLEAN need_rsp; + UINT16 clt_cfg; +} tBA_WRITE_DATA; + +#define BA_READ_CLT_CFG_REQ 1 +#define BA_READ_PRE_FMT_REQ 2 +#define BA_READ_RPT_REF_REQ 3 +#define BA_READ_LEVEL_REQ 4 +#define BA_WRITE_CLT_CFG_REQ 5 + +typedef void (tBA_CBACK)(UINT32 trans_id, UINT16 conn_id, UINT8 app_id, UINT8 event, tBA_WRITE_DATA *p_data); + +#define BA_LEVEL_NOTIFY 0x01 +#define BA_LEVEL_PRE_FMT 0x02 +#define BA_LEVEL_RPT_REF 0x04 +typedef UINT8 tBA_LEVEL_DESCR; + +typedef struct { + BOOLEAN is_pri; + tBA_LEVEL_DESCR ba_level_descr; + tGATT_TRANSPORT transport; + tBA_CBACK *p_cback; + +} tBA_REG_INFO; + +typedef union { + UINT8 ba_level; + UINT16 clt_cfg; + tGATT_CHAR_RPT_REF rpt_ref; + tGATT_CHAR_PRES pres_fmt; +} tBA_RSP_DATA; + +typedef struct { + UINT8 app_id; + UINT16 ba_level_hdl; + UINT16 clt_cfg_hdl; + UINT16 rpt_ref_hdl; + UINT16 pres_fmt_hdl; + + tBA_CBACK *p_cback; + + UINT16 pending_handle; + //UINT8 pending_clcb_idx; + UINT8 pending_evt; +} tBA_INST; + +typedef struct { + tBA_INST battery_inst[BA_MAX_INT_NUM]; + UINT8 inst_id; + bool enabled; +} tBATTERY_CB; +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif +/***************************************************************************** +** Service Engine API +*****************************************************************************/ +/******************************************************************************* +** +** Function srvc_eng_init +** +** Description Initializa the GATT Service engine, register a GATT application +** as for a central service management. +** +*******************************************************************************/ +//extern tGATT_STATUS srvc_eng_init (void); + + +/***************************************************************************** +** DIS Server Function +*****************************************************************************/ + +extern bool dis_valid_handle_range(UINT16 handle); +/******************************************************************************* +** +** Function DIS_Init +** +** Description Initializa the Device Information Service Server. +** +*******************************************************************************/ +extern void DIS_Init (tBTA_GATTS_IF gatt_if, tDIS_ATTR_MASK dis_attr_mask); +/******************************************************************************* +** +** Function DIS_SrUpdate +** +** Description Update the DIS server attribute values +** +*******************************************************************************/ +extern tDIS_STATUS DIS_SrUpdate(tDIS_ATTR_BIT dis_attr_bit, tDIS_ATTR *p_info); +/******************************************************************************* +** +** Function dis_AddChar +** +** Description add characteristic for dis +** +*******************************************************************************/ +extern void dis_AddChar(UINT16 service_id); +/******************************************************************************* +** dis_s_read_attr_value +** +** Process read DIS attribute request. +*******************************************************************************/ + +extern void dis_s_read_attr_value (tGATTS_DATA *p_data, tGATT_VALUE *p_value, + UINT32 trans_id, UINT16 conn_id); +/***************************************************************************** +** DIS Client Function +*****************************************************************************/ +/******************************************************************************* +** +** Function DIS_ReadDISInfo +** +** Description Read remote device DIS information. +** +** Returns void +** +*******************************************************************************/ +//extern BOOLEAN DIS_ReadDISInfo(BD_ADDR peer_bda, tDIS_READ_CBACK *p_cback, +// tDIS_ATTR_MASK mask); + +/******************************************************************************* +** BATTERY SERVICE API +*******************************************************************************/ +/*************************************************************** +** +** Function bas_register +** +** Description register app for battery service +** +****************************************************************/ +extern void bas_register(void); +/*************************************************************** +** +** Function bas_init +** +** Description register battery service +** +****************************************************************/ +extern void bas_init(tBTA_GATTS_IF gatt_if, UINT16 app_id); + +/*************************************************************** +** +** Function bas_AddChar +** +** Description add characteristic for battery service +** +****************************************************************/ +extern void bas_AddChar(UINT16 service_id, tBT_UUID *char_uuid); +/*************************************************************** +** +** Function bas_AddCharDescr +** +** Description add descriptor for battery service if needed +** +****************************************************************/ +extern void bas_AddCharDescr(UINT16 service_id, UINT16 attr_id); +/*************************************************************** +** +** Function bas_service_cmpl +** +** Description create battery service complete +** +****************************************************************/ +extern void bas_service_cmpl(UINT16 service_id, tBTA_GATT_STATUS status); +/******************************************************************************* +** +** Function Battery_Rsp +** +** Description Respond to a battery service request +** +*******************************************************************************/ +extern void Battery_Rsp (UINT32 trans_id, UINT16 conn_id, UINT8 app_id, + tGATT_STATUS st, UINT8 event, tBA_RSP_DATA *p_rsp); +/******************************************************************************* +** +** Function Battery_Notify +** +** Description Send battery level notification +** +*******************************************************************************/ +extern void Battery_Notify (UINT16 conn_id, UINT8 app_id, BD_ADDR remote_bda, UINT8 battery_level); + +/***************************************************************************** +** Function bas_s_read_attr_value +** +** Description it will be called when client send a read request +******************************************************************************/ +extern void bas_s_read_attr_value(tGATTS_DATA *p_data, UINT32 trans_id, UINT16 conn_id); +/***************************************************************************** +** Function bas_s_write_attr_value +** +** Description it will be called when client send a write request +******************************************************************************/ +extern void bas_s_write_attr_value(tGATTS_DATA *p_data, UINT32 trans_id, + UINT16 conn_id, BD_ADDR bd_addr); + +extern void gatts_server_test(void); +#ifdef __cplusplus + +} +#endif + +#endif diff --git a/tools/sdk/include/bluedroid/dyn_mem.h b/tools/sdk/include/bluedroid/dyn_mem.h new file mode 100755 index 00000000..9a95fb95 --- /dev/null +++ b/tools/sdk/include/bluedroid/dyn_mem.h @@ -0,0 +1,155 @@ +/****************************************************************************** + * + * Copyright (C) 2002-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ +#ifndef DYN_MEM_H +#define DYN_MEM_H + +/**************************************************************************** +** Define memory usage for each CORE component (if not defined in bdroid_buildcfg.h) +** The default for each component is to use static memory allocations. +*/ +#ifndef BTU_DYNAMIC_MEMORY +#define BTU_DYNAMIC_MEMORY FALSE +#endif + +#ifndef BTM_DYNAMIC_MEMORY +#define BTM_DYNAMIC_MEMORY FALSE +#endif + +#ifndef SDP_DYNAMIC_MEMORY +//#define SDP_DYNAMIC_MEMORY FALSE +#define SDP_DYNAMIC_MEMORY TRUE +#endif + +#ifndef L2C_DYNAMIC_MEMORY +#define L2C_DYNAMIC_MEMORY FALSE +#endif + +#ifndef RFC_DYNAMIC_MEMORY +#define RFC_DYNAMIC_MEMORY FALSE +#endif + +#ifndef TCS_DYNAMIC_MEMORY +#define TCS_DYNAMIC_MEMORY FALSE +#endif + +#ifndef BNEP_DYNAMIC_MEMORY +#define BNEP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef AVDT_DYNAMIC_MEMORY +#define AVDT_DYNAMIC_MEMORY FALSE +#endif + +#ifndef AVCT_DYNAMIC_MEMORY +#define AVCT_DYNAMIC_MEMORY FALSE +#endif + +#ifndef MCA_DYNAMIC_MEMORY +#define MCA_DYNAMIC_MEMORY FALSE +#endif + +#ifndef GATT_DYNAMIC_MEMORY +#define GATT_DYNAMIC_MEMORY FALSE +#endif + +#ifndef SMP_DYNAMIC_MEMORY +#define SMP_DYNAMIC_MEMORY FALSE +#endif + +/**************************************************************************** +** Define memory usage for each PROFILE component (if not defined in bdroid_buildcfg.h) +** The default for each component is to use static memory allocations. +*/ +#ifndef A2D_DYNAMIC_MEMORY +#define A2D_DYNAMIC_MEMORY FALSE +#endif + +#ifndef VDP_DYNAMIC_MEMORY +#define VDP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef AVRC_DYNAMIC_MEMORY +#define AVRC_DYNAMIC_MEMORY FALSE +#endif + +#ifndef BIP_DYNAMIC_MEMORY +#define BIP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef BPP_DYNAMIC_MEMORY +#define BPP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef CTP_DYNAMIC_MEMORY +#define CTP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef FTP_DYNAMIC_MEMORY +#define FTP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef HCRP_DYNAMIC_MEMORY +#define HCRP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef HFP_DYNAMIC_MEMORY +#define HFP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef HID_DYNAMIC_MEMORY +#define HID_DYNAMIC_MEMORY FALSE +#endif + +#ifndef HSP2_DYNAMIC_MEMORY +#define HSP2_DYNAMIC_MEMORY FALSE +#endif + +#ifndef ICP_DYNAMIC_MEMORY +#define ICP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef OPP_DYNAMIC_MEMORY +#define OPP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef PAN_DYNAMIC_MEMORY +#define PAN_DYNAMIC_MEMORY FALSE +#endif + +#ifndef SPP_DYNAMIC_MEMORY +#define SPP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef SLIP_DYNAMIC_MEMORY +#define SLIP_DYNAMIC_MEMORY FALSE +#endif + +#ifndef LLCP_DYNAMIC_MEMORY +#define LLCP_DYNAMIC_MEMORY FALSE +#endif + +/**************************************************************************** +** Define memory usage for BTA (if not defined in bdroid_buildcfg.h) +** The default for each component is to use static memory allocations. +*/ +#ifndef BTA_DYNAMIC_MEMORY +#define BTA_DYNAMIC_MEMORY FALSE +#endif + +#endif /* #ifdef DYN_MEM_H */ + diff --git a/tools/sdk/include/bluedroid/esp_blufi_api.h b/tools/sdk/include/bluedroid/esp_blufi_api.h new file mode 100644 index 00000000..6da65121 --- /dev/null +++ b/tools/sdk/include/bluedroid/esp_blufi_api.h @@ -0,0 +1,360 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __ESP_BLUFI_API_H__ +#define __ESP_BLUFI_API_H__ + +#include "esp_bt_defs.h" +#include "esp_gatt_defs.h" +#include "esp_err.h" +#include "esp_wifi_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + ESP_BLUFI_EVENT_INIT_FINISH = 0, /* +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/// Status Return Value +typedef enum { + ESP_BT_STATUS_SUCCESS = 0, /* Successful operation. */ + ESP_BT_STATUS_FAILURE = 1, /* Generic failure. */ + ESP_BT_STATUS_PENDING = 2, /* API cannot be completed right now */ + ESP_BT_STATUS_BUSY = 3, + ESP_BT_STATUS_NO_RESOURCES = 4, + ESP_BT_STATUS_WRONG_MODE = 5, +} esp_bt_status_t; + +/// Default GATT interface id +#define ESP_DEFAULT_GATT_IF 0xff + +/// Default BLE connection param, if the value doesn't be overwritten +#define ESP_BLE_CONN_PARAM_UNDEF 0xffff /* use this value when a specific value not to be overwritten */ + +/// Check the param is valid or not +#define ESP_BLE_IS_VALID_PARAM(x, min, max) (((x) >= (min) && (x) <= (max)) || ((x) == ESP_BLE_CONN_PARAM_UNDEF)) + +/// UUID type +typedef struct { +#define ESP_UUID_LEN_16 2 +#define ESP_UUID_LEN_32 4 +#define ESP_UUID_LEN_128 16 + uint16_t len; /*!< UUID length, 16bit, 32bit or 128bit */ + union { + uint16_t uuid16; + uint32_t uuid32; + uint8_t uuid128[ESP_UUID_LEN_128]; + } uuid; /*!< UUID */ +} __attribute__((packed)) esp_bt_uuid_t; + +/// Bluetooth device type +typedef enum { + ESP_BT_DEVICE_TYPE_BREDR = 0x01, + ESP_BT_DEVICE_TYPE_BLE = 0x02, + ESP_BT_DEVICE_TYPE_DUMO = 0x03, +} esp_bt_dev_type_t; + +/// Bluetooth address length +#define ESP_BD_ADDR_LEN 6 + +/// Bluetooth device address +typedef uint8_t esp_bd_addr_t[ESP_BD_ADDR_LEN]; + +/// Own BD address source of the device +typedef enum { + /// Public Address + BD_ADDR_PUBLIC, + /// Provided random address + BD_ADDR_PROVIDED_RND, + /// Provided static random address + BD_ADDR_GEN_STATIC_RND, + /// Generated resolvable private random address + BD_ADDR_GEN_RSLV, + /// Generated non-resolvable private random address + BD_ADDR_GEN_NON_RSLV, + /// Provided Reconnection address + BD_ADDR_PROVIDED_RECON, +} esp_bd_addr_type_t; + +/// BLE device address type +typedef enum { + BLE_ADDR_TYPE_PUBLIC = 0x00, + BLE_ADDR_TYPE_RANDOM = 0x01, + BLE_ADDR_TYPE_RPA_PUBLIC = 0x02, + BLE_ADDR_TYPE_RPA_RANDOM = 0x03, +} esp_ble_addr_type_t; + +/// Minimum of the application id +#define ESP_APP_ID_MIN 0x0000 +/// Maximum of the application id +#define ESP_APP_ID_MAX 0x7fff + +#define ESP_BD_ADDR_STR "%02x:%02x:%02x:%02x:%02x:%02x" +#define ESP_BD_ADDR_HEX(addr) addr[0], addr[1], addr[2], addr[3], addr[4], addr[5] + +#ifdef __cplusplus +} +#endif + +#endif /* __ESP_BT_DEFS_H__ */ diff --git a/tools/sdk/include/bluedroid/esp_bt_device.h b/tools/sdk/include/bluedroid/esp_bt_device.h new file mode 100644 index 00000000..c84d042d --- /dev/null +++ b/tools/sdk/include/bluedroid/esp_bt_device.h @@ -0,0 +1,38 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __ESP_BT_DEVICE_H__ +#define __ESP_BT_DEVICE_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * + * @brief Get bluetooth device address. Must use after "esp_bluedroid_enable". + * + * @return bluetooth device address (six bytes), or NULL if bluetooth stack is not enabled + */ +const uint8_t *esp_bt_dev_get_address(void); + +#ifdef __cplusplus +} +#endif + + +#endif /* __ESP_BT_DEVICE_H__ */ diff --git a/tools/sdk/include/bluedroid/esp_bt_main.h b/tools/sdk/include/bluedroid/esp_bt_main.h new file mode 100644 index 00000000..fad010d2 --- /dev/null +++ b/tools/sdk/include/bluedroid/esp_bt_main.h @@ -0,0 +1,81 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __ESP_BT_MAIN_H__ +#define __ESP_BT_MAIN_H__ + +#include "esp_err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Bluetooth stack status type, to indicate whether the bluetooth stack is ready + */ +typedef enum { + ESP_BLUEDROID_STATUS_UNINITIALIZED = 0, /*!< Bluetooth not initialized */ + ESP_BLUEDROID_STATUS_INITIALIZED, /*!< Bluetooth initialized but not enabled */ + ESP_BLUEDROID_STATUS_ENABLED /*!< Bluetooth initialized and enabled */ +} esp_bluedroid_status_t; + +/** + * @brief Get bluetooth stack status + * + * @return Bluetooth stack status + * + */ +esp_bluedroid_status_t esp_bluedroid_get_status(void); + +/** + * @brief Enable bluetooth, must after esp_bluedroid_init() + * + * @return + * - ESP_OK : Succeed + * - Other : Failed + */ +esp_err_t esp_bluedroid_enable(void); + +/** + * @brief Disable bluetooth, must prior to esp_bluedroid_deinit() + * + * @return + * - ESP_OK : Succeed + * - Other : Failed + */ +esp_err_t esp_bluedroid_disable(void); + +/** + * @brief Init and alloc the resource for bluetooth, must be prior to every bluetooth stuff + * + * @return + * - ESP_OK : Succeed + * - Other : Failed + */ +esp_err_t esp_bluedroid_init(void); + +/** + * @brief Deinit and free the resource for bluetooth, must be after every bluetooth stuff + * + * @return + * - ESP_OK : Succeed + * - Other : Failed + */ +esp_err_t esp_bluedroid_deinit(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ESP_BT_MAIN_H__ */ diff --git a/tools/sdk/include/bluedroid/esp_gap_ble_api.h b/tools/sdk/include/bluedroid/esp_gap_ble_api.h new file mode 100644 index 00000000..64aff1fb --- /dev/null +++ b/tools/sdk/include/bluedroid/esp_gap_ble_api.h @@ -0,0 +1,496 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __ESP_GAP_BLE_API_H__ +#define __ESP_GAP_BLE_API_H__ + +#include +#include + +#include "esp_err.h" +#include "esp_bt_defs.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/**@{ + * BLE_ADV_DATA_FLAG data flag bit definition used for advertising data flag + */ +#define ESP_BLE_ADV_FLAG_LIMIT_DISC (0x01 << 0) +#define ESP_BLE_ADV_FLAG_GEN_DISC (0x01 << 1) +#define ESP_BLE_ADV_FLAG_BREDR_NOT_SPT (0x01 << 2) +#define ESP_BLE_ADV_FLAG_DMT_CONTROLLER_SPT (0x01 << 3) +#define ESP_BLE_ADV_FLAG_DMT_HOST_SPT (0x01 << 4) +#define ESP_BLE_ADV_FLAG_NON_LIMIT_DISC (0x00 ) +/** + * @} + */ + +/// GAP BLE callback event type +typedef enum { + ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT = 0, /*!< When advertising data set complete, the event comes */ + ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT, /*!< When scan response data set complete, the event comes */ + ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT, /*!< When scan parameters set complete, the event comes */ + ESP_GAP_BLE_SCAN_RESULT_EVT, /*!< When one scan result ready, the event comes each time */ + ESP_GAP_BLE_ADV_DATA_RAW_SET_COMPLETE_EVT, /*!< When raw advertising data set complete, the event comes */ + ESP_GAP_BLE_SCAN_RSP_DATA_RAW_SET_COMPLETE_EVT, /*!< When raw advertising data set complete, the event comes */ +} esp_gap_ble_cb_event_t; + +/// Advertising data maximum length +#define ESP_BLE_ADV_DATA_LEN_MAX 31 +/// Scan response data maximum length +#define ESP_BLE_SCAN_RSP_DATA_LEN_MAX 31 + +/// The type of advertising data(not adv_type) +typedef enum { + ESP_BLE_AD_TYPE_FLAG = 0x01, + ESP_BLE_AD_TYPE_16SRV_PART = 0x02, + ESP_BLE_AD_TYPE_16SRV_CMPL = 0x03, + ESP_BLE_AD_TYPE_32SRV_PART = 0x04, + ESP_BLE_AD_TYPE_32SRV_CMPL = 0x05, + ESP_BLE_AD_TYPE_128SRV_PART = 0x06, + ESP_BLE_AD_TYPE_128SRV_CMPL = 0x07, + ESP_BLE_AD_TYPE_NAME_SHORT = 0x08, + ESP_BLE_AD_TYPE_NAME_CMPL = 0x09, + ESP_BLE_AD_TYPE_TX_PWR = 0x0A, + ESP_BLE_AD_TYPE_DEV_CLASS = 0x0D, + ESP_BLE_AD_TYPE_SM_TK = 0x10, + ESP_BLE_AD_TYPE_SM_OOB_FLAG = 0x11, + ESP_BLE_AD_TYPE_INT_RANGE = 0x12, + ESP_BLE_AD_TYPE_SOL_SRV_UUID = 0x14, + ESP_BLE_AD_TYPE_128SOL_SRV_UUID = 0x15, + ESP_BLE_AD_TYPE_SERVICE_DATA = 0x16, + ESP_BLE_AD_TYPE_PUBLIC_TARGET = 0x17, + ESP_BLE_AD_TYPE_RANDOM_TARGET = 0x18, + ESP_BLE_AD_TYPE_APPEARANCE = 0x19, + ESP_BLE_AD_TYPE_ADV_INT = 0x1A, + ESP_BLE_AD_TYPE_32SOL_SRV_UUID = 0x1B, + ESP_BLE_AD_TYPE_32SERVICE_DATA = 0x1C, + ESP_BLE_AD_TYPE_128SERVICE_DATA = 0x1D, + ESP_BLE_AD_MANUFACTURER_SPECIFIC_TYPE = 0xFF, +} esp_ble_adv_data_type; + +/// Advertising mode +typedef enum { + ADV_TYPE_IND = 0x00, + ADV_TYPE_DIRECT_IND_HIGH = 0x01, + ADV_TYPE_SCAN_IND = 0x02, + ADV_TYPE_NONCONN_IND = 0x03, + ADV_TYPE_DIRECT_IND_LOW = 0x04, +} esp_ble_adv_type_t; + +/// Advertising channel mask +typedef enum { + ADV_CHNL_37 = 0x01, + ADV_CHNL_38 = 0x02, + ADV_CHNL_39 = 0x04, + ADV_CHNL_ALL = 0x07, +} esp_ble_adv_channel_t; + +typedef enum { + ///Allow both scan and connection requests from anyone + ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY = 0x00, + ///Allow both scan req from White List devices only and connection req from anyone + ADV_FILTER_ALLOW_SCAN_WLST_CON_ANY, + ///Allow both scan req from anyone and connection req from White List devices only + ADV_FILTER_ALLOW_SCAN_ANY_CON_WLST, + ///Allow scan and connection requests from White List devices only + ADV_FILTER_ALLOW_SCAN_WLST_CON_WLST, + ///Enumeration end value for advertising filter policy value check +} esp_ble_adv_filter_t; + +/// Advertising parameters +typedef struct { + uint16_t adv_int_min; /*!< Minimum advertising interval for + undirected and low duty cycle directed advertising. + Range: 0x0020 to 0x4000 Default: N = 0x0800 (1.28 second) + Time = N * 0.625 msec Time Range: 20 ms to 10.24 sec */ + uint16_t adv_int_max; /*!< Maximum advertising interval for + undirected and low duty cycle directed advertising. + Range: 0x0020 to 0x4000 Default: N = 0x0800 (1.28 second) + Time = N * 0.625 msec Time Range: 20 ms to 10.24 sec Advertising max interval */ + esp_ble_adv_type_t adv_type; /*!< Advertising type */ + esp_ble_addr_type_t own_addr_type; /*!< Owner bluetooth device address type */ + esp_bd_addr_t peer_addr; /*!< Peer device bluetooth device address */ + esp_ble_addr_type_t peer_addr_type; /*!< Peer device bluetooth device address type */ + esp_ble_adv_channel_t channel_map; /*!< Advertising channel map */ + esp_ble_adv_filter_t adv_filter_policy; /*!< Advertising filter policy */ +} esp_ble_adv_params_t; + +/// Advertising data content, according to "Supplement to the Bluetooth Core Specification" +typedef struct { + bool set_scan_rsp; /*!< Set this advertising data as scan response or not*/ + bool include_name; /*!< Advertising data include device name or not */ + bool include_txpower; /*!< Advertising data include TX power */ + int min_interval; /*!< Advertising data show advertising min interval */ + int max_interval; /*!< Advertising data show advertising max interval */ + int appearance; /*!< External appearance of device */ + uint16_t manufacturer_len; /*!< Manufacturer data length */ + uint8_t *p_manufacturer_data; /*!< Manufacturer data point */ + uint16_t service_data_len; /*!< Service data length */ + uint8_t *p_service_data; /*!< Service data point */ + uint16_t service_uuid_len; /*!< Service uuid length */ + uint8_t *p_service_uuid; /*!< Service uuid array point */ + uint8_t flag; /*!< Advertising flag of discovery mode, see BLE_ADV_DATA_FLAG detail */ +} esp_ble_adv_data_t; + +/// Own BD address source of the device +typedef enum { + /// Public Address + ESP_PUBLIC_ADDR, + /// Provided random address + ESP_PROVIDED_RND_ADDR, + /// Provided static random address + ESP_GEN_STATIC_RND_ADDR, + /// Generated resolvable private random address + ESP_GEN_RSLV_ADDR, + /// Generated non-resolvable private random address + ESP_GEN_NON_RSLV_ADDR, + /// Provided Reconnection address + ESP_PROVIDED_RECON_ADDR, +} esp_ble_own_addr_src_t; + +/// Ble scan type +typedef enum { + BLE_SCAN_TYPE_PASSIVE = 0x0, /*!< Passive scan */ + BLE_SCAN_TYPE_ACTIVE = 0x1, /*!< Active scan */ +} esp_ble_scan_type_t; + +/// Ble scan filter type +typedef enum { + BLE_SCAN_FILTER_ALLOW_ALL = 0x0, /*!< Accept all : + 1. advertisement packets except directed advertising packets not addressed to this device (default). */ + BLE_SCAN_FILTER_ALLOW_ONLY_WLST = 0x1, /*!< Accept only : + 1. advertisement packets from devices where the advertiser’s address is in the White list. + 2. Directed advertising packets which are not addressed for this device shall be ignored. */ + BLE_SCAN_FILTER_ALLOW_UND_RPA_DIR = 0x2, /*!< Accept all : + 1. undirected advertisement packets, and + 2. directed advertising packets where the initiator address is a resolvable private address, and + 3. directed advertising packets addressed to this device. */ + BLE_SCAN_FILTER_ALLOW_WLIST_PRA_DIR = 0x3, /*!< Accept all : + 1. advertisement packets from devices where the advertiser’s address is in the White list, and + 2. directed advertising packets where the initiator address is a resolvable private address, and + 3. directed advertising packets addressed to this device.*/ +} esp_ble_scan_filter_t; + +/// Ble scan parameters +typedef struct { + esp_ble_scan_type_t scan_type; /*!< Scan type */ + esp_ble_addr_type_t own_addr_type; /*!< Owner address type */ + esp_ble_scan_filter_t scan_filter_policy; /*!< Scan filter policy */ + uint16_t scan_interval; /*!< Scan interval. This is defined as the time interval from + when the Controller started its last LE scan until it begins the subsequent LE scan. + Range: 0x0004 to 0x4000 Default: 0x0010 (10 ms) + Time = N * 0.625 msec + Time Range: 2.5 msec to 10.24 seconds*/ + uint16_t scan_window; /*!< Scan window. The duration of the LE scan. LE_Scan_Window + shall be less than or equal to LE_Scan_Interval + Range: 0x0004 to 0x4000 Default: 0x0010 (10 ms) + Time = N * 0.625 msec + Time Range: 2.5 msec to 10240 msec */ +} esp_ble_scan_params_t; + +/// Connection update parameters +typedef struct { + esp_bd_addr_t bda; /*!< Bluetooth device address */ + uint16_t min_int; /*!< Min connection interval */ + uint16_t max_int; /*!< Max connection interval */ + uint16_t latency; /*!< Slave latency for the connection in number of connection events. Range: 0x0000 to 0x01F3 */ + uint16_t timeout; /*!< Supervision timeout for the LE Link. Range: 0x000A to 0x0C80. + Mandatory Range: 0x000A to 0x0C80 Time = N * 10 msec + Time Range: 100 msec to 32 seconds */ +} esp_ble_conn_update_params_t; + +/// Sub Event of ESP_GAP_BLE_SCAN_RESULT_EVT +typedef enum { + ESP_GAP_SEARCH_INQ_RES_EVT = 0, /*!< Inquiry result for a peer device. */ + ESP_GAP_SEARCH_INQ_CMPL_EVT = 1, /*!< Inquiry complete. */ + ESP_GAP_SEARCH_DISC_RES_EVT = 2, /*!< Discovery result for a peer device. */ + ESP_GAP_SEARCH_DISC_BLE_RES_EVT = 3, /*!< Discovery result for BLE GATT based service on a peer device. */ + ESP_GAP_SEARCH_DISC_CMPL_EVT = 4, /*!< Discovery complete. */ + ESP_GAP_SEARCH_DI_DISC_CMPL_EVT = 5, /*!< Discovery complete. */ + ESP_GAP_SEARCH_SEARCH_CANCEL_CMPL_EVT = 6, /*!< Search cancelled */ +} esp_gap_search_evt_t; + +/** + * @brief Ble scan result event type, to indicate the + * result is scan response or advertising data or other + */ +typedef enum { + ESP_BLE_EVT_CONN_ADV = 0x00, /*!< Connectable undirected advertising (ADV_IND) */ + ESP_BLE_EVT_CONN_DIR_ADV = 0x01, /*!< Connectable directed advertising (ADV_DIRECT_IND) */ + ESP_BLE_EVT_DISC_ADV = 0x02, /*!< Scannable undirected advertising (ADV_SCAN_IND) */ + ESP_BLE_EVT_NON_CONN_ADV = 0x03, /*!< Non connectable undirected advertising (ADV_NONCONN_IND) */ + ESP_BLE_EVT_SCAN_RSP = 0x04, /*!< Scan Response (SCAN_RSP) */ +} esp_ble_evt_type_t; + +/** + * @brief Gap callback parameters union + */ +typedef union { + /** + * @brief ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT + */ + struct ble_adv_data_cmpl_evt_param { + esp_bt_status_t status; /*!< Indicate the set advertising data operation success status */ + } adv_data_cmpl; /*!< Event parameter of ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT */ + /** + * @brief ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT + */ + struct ble_scan_rsp_data_cmpl_evt_param { + esp_bt_status_t status; /*!< Indicate the set scan response data operation success status */ + } scan_rsp_data_cmpl; /*!< Event parameter of ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT */ + /** + * @brief ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT + */ + struct ble_scan_param_cmpl_evt_param { + esp_bt_status_t status; /*!< Indicate the set scan param operation success status */ + } scan_param_cmpl; /*!< Event parameter of ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT */ + /** + * @brief ESP_GAP_BLE_SCAN_RESULT_EVT + */ + struct ble_scan_result_evt_param { + esp_gap_search_evt_t search_evt; /*!< Search event type */ + esp_bd_addr_t bda; /*!< Bluetooth device address which has been searched */ + esp_bt_dev_type_t dev_type; /*!< Device type */ + esp_ble_addr_type_t ble_addr_type; /*!< Ble device address type */ + esp_ble_evt_type_t ble_evt_type; /*!< Ble scan result event type */ + int rssi; /*!< Searched device's RSSI */ + uint8_t ble_adv[ESP_BLE_ADV_DATA_LEN_MAX + ESP_BLE_SCAN_RSP_DATA_LEN_MAX]; /*!< Received EIR */ + int flag; /*!< Advertising data flag bit */ + int num_resps; /*!< Scan result number */ + } scan_rst; /*!< Event parameter of ESP_GAP_BLE_SCAN_RESULT_EVT */ + /** + * @brief ESP_GAP_BLE_ADV_DATA_RAW_SET_COMPLETE_EVT + */ + struct ble_adv_data_raw_cmpl_evt_param { + esp_bt_status_t status; /*!< Indicate the set raw advertising data operation success status */ + } adv_data_raw_cmpl; /*!< Event parameter of ESP_GAP_BLE_ADV_DATA_RAW_SET_COMPLETE_EVT */ + /** + * @brief ESP_GAP_BLE_SCAN_RSP_DATA_RAW_SET_COMPLETE_EVT + */ + struct ble_scan_rsp_data_raw_cmpl_evt_param { + esp_bt_status_t status; /*!< Indicate the set raw advertising data operation success status */ + } scan_rsp_data_raw_cmpl; /*!< Event parameter of ESP_GAP_BLE_SCAN_RSP_DATA_RAW_SET_COMPLETE_EVT */ +} esp_ble_gap_cb_param_t; + +/** + * @brief GAP callback function type + * @param event : Event type + * @param param : Point to callback parameter, currently is union type + */ +typedef void (* esp_gap_ble_cb_t)(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param); + +/** + * @brief This function is called to occur gap event, such as scan result + * + * @param[in] callback: callback function + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_register_callback(esp_gap_ble_cb_t callback); + + +/** + * @brief This function is called to override the BTA default ADV parameters. + * + * @param[in] adv_data: Pointer to User defined ADV data structure. This + * memory space can not be freed until callback of config_adv_data + * is received. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_config_adv_data (esp_ble_adv_data_t *adv_data); + + + +/** + * @brief This function is called to set scan parameters + * + * @param[in] scan_params: Pointer to User defined scan_params data structure. This + * memory space can not be freed until callback of set_scan_params + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_set_scan_params(esp_ble_scan_params_t *scan_params); + + +/** + * @brief This procedure keep the device scanning the peer device which advertising on the air + * + * @param[in] duration: Keeping the scanning time, the unit is second. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_start_scanning(uint32_t duration); + + +/** + * @brief This function call to stop the device scanning the peer device which advertising on the air + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_stop_scanning(void); + +/** + * @brief This function is called to start advertising. + * + * @param[in] adv_params: pointer to User defined adv_params data structure. + + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_start_advertising (esp_ble_adv_params_t *adv_params); + + + +/** + * @brief This function is called to stop advertising. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_stop_advertising(void); + + + +/** + * @brief Update connection parameters, can only be used when connection is up. + * + * @param[in] params - connection update parameters + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_update_conn_params(esp_ble_conn_update_params_t *params); + + +/** + * @brief This function is to set maximum LE data packet size + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_set_pkt_data_len(esp_bd_addr_t remote_device, uint16_t tx_data_length); + + + +/** + * @brief This function set the random address for the application + * + * @param[in] rand_addr: the random address which should be setting + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_set_rand_addr(esp_bd_addr_t rand_addr); + + + +/** + * @brief Enable/disable privacy on the local device + * + * @param[in] privacy_enable - enable/disable privacy on remote device. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_config_local_privacy (bool privacy_enable); + + +/** + * @brief Set device name to the local device + * + * @param[in] name - device name. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_set_device_name(const char *name); + + +/** + * @brief This function is called to get ADV data for a specific type. + * + * @param[in] adv_data - pointer of ADV data which to be resolved + * @param[in] type - finding ADV data type + * @param[out] length - return the length of ADV data not including type + * + * @return - ESP_OK : success + * - other : failed + * + */ +uint8_t *esp_ble_resolve_adv_data(uint8_t *adv_data, uint8_t type, uint8_t *length); + +/** + * @brief This function is called to set raw advertising data. User need to fill + * ADV data by self. + * + * @param[in] raw_data : raw advertising data + * @param[in] raw_data_len : raw advertising data length , less than 31 bytes + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gap_config_adv_data_raw(uint8_t *raw_data, uint32_t raw_data_len); + +/** + * @brief This function is called to set raw scan response data. User need to fill + * scan response data by self. + * + * @param[in] raw_data : raw scan response data + * @param[in] raw_data_len : raw scan response data length , less than 31 bytes + * + * @return + * - ESP_OK : success + * - other : failed + */ +esp_err_t esp_ble_gap_config_scan_rsp_data_raw(uint8_t *raw_data, uint32_t raw_data_len); + +#ifdef __cplusplus +} +#endif + +#endif /* __ESP_GAP_BLE_API_H__ */ diff --git a/tools/sdk/include/bluedroid/esp_gatt_defs.h b/tools/sdk/include/bluedroid/esp_gatt_defs.h new file mode 100644 index 00000000..153a7027 --- /dev/null +++ b/tools/sdk/include/bluedroid/esp_gatt_defs.h @@ -0,0 +1,384 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __ESP_GATT_DEFS_H__ +#define __ESP_GATT_DEFS_H__ + +#include "esp_bt_defs.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/// GATT INVALID UUID +#define ESP_GATT_ILLEGAL_UUID 0 +/// GATT INVALID HANDLE +#define ESP_GATT_ILLEGAL_HANDLE 0 +/// GATT attribute max handle +#define ESP_GATT_ATTR_HANDLE_MAX 100 + + +/**@{ + * All "ESP_GATT_UUID_xxx" is attribute types + */ +#define ESP_GATT_UUID_IMMEDIATE_ALERT_SVC 0x1802 /* Immediate alert Service*/ +#define ESP_GATT_UUID_LINK_LOSS_SVC 0x1803 /* Link Loss Service*/ +#define ESP_GATT_UUID_TX_POWER_SVC 0x1804 /* TX Power Service*/ +#define ESP_GATT_UUID_CURRENT_TIME_SVC 0x1805 /* Current Time Service Service*/ +#define ESP_GATT_UUID_REF_TIME_UPDATE_SVC 0x1806 /* Reference Time Update Service*/ +#define ESP_GATT_UUID_NEXT_DST_CHANGE_SVC 0x1807 /* Next DST Change Service*/ +#define ESP_GATT_UUID_GLUCOSE_SVC 0x1808 /* Glucose Service*/ +#define ESP_GATT_UUID_HEALTH_THERMOM_SVC 0x1809 /* Health Thermometer Service*/ +#define ESP_GATT_UUID_DEVICE_INFO_SVC 0x180A /* Device Information Service*/ +#define ESP_GATT_UUID_HEART_RATE_SVC 0x180D /* Heart Rate Service*/ +#define ESP_GATT_UUID_PHONE_ALERT_STATUS_SVC 0x180E /* Phone Alert Status Service*/ +#define ESP_GATT_UUID_BATTERY_SERVICE_SVC 0x180F /* Battery Service*/ +#define ESP_GATT_UUID_BLOOD_PRESSURE_SVC 0x1810 /* Blood Pressure Service*/ +#define ESP_GATT_UUID_ALERT_NTF_SVC 0x1811 /* Alert Notification Service*/ +#define ESP_GATT_UUID_HID_SVC 0x1812 /* HID Service*/ +#define ESP_GATT_UUID_SCAN_PARAMETERS_SVC 0x1813 /* Scan Parameters Service*/ +#define ESP_GATT_UUID_RUNNING_SPEED_CADENCE_SVC 0x1814 /* Running Speed and Cadence Service*/ +#define ESP_GATT_UUID_CYCLING_SPEED_CADENCE_SVC 0x1816 /* Cycling Speed and Cadence Service*/ +#define ESP_GATT_UUID_CYCLING_POWER_SVC 0x1818 /* Cycling Power Service*/ +#define ESP_GATT_UUID_LOCATION_AND_NAVIGATION_SVC 0x1819 /* Location and Navigation Service*/ +#define ESP_GATT_UUID_USER_DATA_SVC 0x181C /* User Data Service*/ +#define ESP_GATT_UUID_WEIGHT_SCALE_SVC 0x181D /* Weight Scale Service*/ + +#define ESP_GATT_UUID_PRI_SERVICE 0x2800 +#define ESP_GATT_UUID_SEC_SERVICE 0x2801 +#define ESP_GATT_UUID_INCLUDE_SERVICE 0x2802 +#define ESP_GATT_UUID_CHAR_DECLARE 0x2803 /* Characteristic Declaration*/ + +#define ESP_GATT_UUID_CHAR_EXT_PROP 0x2900 /* Characteristic Extended Properties */ +#define ESP_GATT_UUID_CHAR_DESCRIPTION 0x2901 /* Characteristic User Description*/ +#define ESP_GATT_UUID_CHAR_CLIENT_CONFIG 0x2902 /* Client Characteristic Configuration */ +#define ESP_GATT_UUID_CHAR_SRVR_CONFIG 0x2903 /* Server Characteristic Configuration */ +#define ESP_GATT_UUID_CHAR_PRESENT_FORMAT 0x2904 /* Characteristic Presentation Format*/ +#define ESP_GATT_UUID_CHAR_AGG_FORMAT 0x2905 /* Characteristic Aggregate Format*/ +#define ESP_GATT_UUID_CHAR_VALID_RANGE 0x2906 /* Characteristic Valid Range */ +#define ESP_GATT_UUID_EXT_RPT_REF_DESCR 0x2907 +#define ESP_GATT_UUID_RPT_REF_DESCR 0x2908 + +/* GAP Profile Attributes */ +#define ESP_GATT_UUID_GAP_DEVICE_NAME 0x2A00 +#define ESP_GATT_UUID_GAP_ICON 0x2A01 +#define ESP_GATT_UUID_GAP_PREF_CONN_PARAM 0x2A04 +#define ESP_GATT_UUID_GAP_CENTRAL_ADDR_RESOL 0x2AA6 + +/* Attribute Profile Attribute UUID */ +#define ESP_GATT_UUID_GATT_SRV_CHGD 0x2A05 + +/* Link ESP_Loss Service */ +#define ESP_GATT_UUID_ALERT_LEVEL 0x2A06 /* Alert Level */ +#define ESP_GATT_UUID_TX_POWER_LEVEL 0x2A07 /* TX power level */ + +/* Current Time Service */ +#define ESP_GATT_UUID_CURRENT_TIME 0x2A2B /* Current Time */ +#define ESP_GATT_UUID_LOCAL_TIME_INFO 0x2A0F /* Local time info */ +#define ESP_GATT_UUID_REF_TIME_INFO 0x2A14 /* reference time information */ + +/* Network availability Profile */ +#define ESP_GATT_UUID_NW_STATUS 0x2A18 /* network availability status */ +#define ESP_GATT_UUID_NW_TRIGGER 0x2A1A /* Network availability trigger */ + +/* Phone alert */ +#define ESP_GATT_UUID_ALERT_STATUS 0x2A3F /* alert status */ +#define ESP_GATT_UUID_RINGER_CP 0x2A40 /* ringer control point */ +#define ESP_GATT_UUID_RINGER_SETTING 0x2A41 /* ringer setting */ + +/* Glucose Service */ +#define ESP_GATT_UUID_GM_MEASUREMENT 0x2A18 +#define ESP_GATT_UUID_GM_CONTEXT 0x2A34 +#define ESP_GATT_UUID_GM_CONTROL_POINT 0x2A52 +#define ESP_GATT_UUID_GM_FEATURE 0x2A51 + +/* device information characteristic */ +#define ESP_GATT_UUID_SYSTEM_ID 0x2A23 +#define ESP_GATT_UUID_MODEL_NUMBER_STR 0x2A24 +#define ESP_GATT_UUID_SERIAL_NUMBER_STR 0x2A25 +#define ESP_GATT_UUID_FW_VERSION_STR 0x2A26 +#define ESP_GATT_UUID_HW_VERSION_STR 0x2A27 +#define ESP_GATT_UUID_SW_VERSION_STR 0x2A28 +#define ESP_GATT_UUID_MANU_NAME 0x2A29 +#define ESP_GATT_UUID_IEEE_DATA 0x2A2A +#define ESP_GATT_UUID_PNP_ID 0x2A50 + +/* HID characteristics */ +#define ESP_GATT_UUID_HID_INFORMATION 0x2A4A +#define ESP_GATT_UUID_HID_REPORT_MAP 0x2A4B +#define ESP_GATT_UUID_HID_CONTROL_POINT 0x2A4C +#define ESP_GATT_UUID_HID_REPORT 0x2A4D +#define ESP_GATT_UUID_HID_PROTO_MODE 0x2A4E +#define ESP_GATT_UUID_HID_BT_KB_INPUT 0x2A22 +#define ESP_GATT_UUID_HID_BT_KB_OUTPUT 0x2A32 +#define ESP_GATT_UUID_HID_BT_MOUSE_INPUT 0x2A33 + + /// Heart Rate Measurement +#define ESP_GATT_HEART_RATE_MEAS 0x2A37 +/// Body Sensor Location +#define ESP_GATT_BODY_SENSOR_LOCATION 0x2A38 +/// Heart Rate Control Point +#define ESP_GATT_HEART_RATE_CNTL_POINT 0x2A39 + +/* Battery Service characteristics */ +#define ESP_GATT_UUID_BATTERY_LEVEL 0x2A19 + +/* Sensor Service */ +#define ESP_GATT_UUID_SC_CONTROL_POINT 0x2A55 +#define ESP_GATT_UUID_SENSOR_LOCATION 0x2A5D + +/* Runners speed and cadence service */ +#define ESP_GATT_UUID_RSC_MEASUREMENT 0x2A53 +#define ESP_GATT_UUID_RSC_FEATURE 0x2A54 + +/* Cycling speed and cadence service */ +#define ESP_GATT_UUID_CSC_MEASUREMENT 0x2A5B +#define ESP_GATT_UUID_CSC_FEATURE 0x2A5C + +/* Scan ESP_Parameter characteristics */ +#define ESP_GATT_UUID_SCAN_INT_WINDOW 0x2A4F +#define ESP_GATT_UUID_SCAN_REFRESH 0x2A31 +/** + * @} + */ + +/// Attribute write data type from the client +typedef enum { + ESP_GATT_PREP_WRITE_CANCEL = 0x00, /*!< Prepare write cancel */ + ESP_GATT_PREP_WRITE_EXEC = 0x01, /*!< Prepare write execute */ +} esp_gatt_prep_write_type; + +/** + * @brief GATT success code and error codes + */ +typedef enum { + ESP_GATT_OK = 0x0, + ESP_GATT_INVALID_HANDLE = 0x01, /* 0x0001 */ + ESP_GATT_READ_NOT_PERMIT = 0x02, /* 0x0002 */ + ESP_GATT_WRITE_NOT_PERMIT = 0x03, /* 0x0003 */ + ESP_GATT_INVALID_PDU = 0x04, /* 0x0004 */ + ESP_GATT_INSUF_AUTHENTICATION = 0x05, /* 0x0005 */ + ESP_GATT_REQ_NOT_SUPPORTED = 0x06, /* 0x0006 */ + ESP_GATT_INVALID_OFFSET = 0x07, /* 0x0007 */ + ESP_GATT_INSUF_AUTHORIZATION = 0x08, /* 0x0008 */ + ESP_GATT_PREPARE_Q_FULL = 0x09, /* 0x0009 */ + ESP_GATT_NOT_FOUND = 0x0a, /* 0x000a */ + ESP_GATT_NOT_LONG = 0x0b, /* 0x000b */ + ESP_GATT_INSUF_KEY_SIZE = 0x0c, /* 0x000c */ + ESP_GATT_INVALID_ATTR_LEN = 0x0d, /* 0x000d */ + ESP_GATT_ERR_UNLIKELY = 0x0e, /* 0x000e */ + ESP_GATT_INSUF_ENCRYPTION = 0x0f, /* 0x000f */ + ESP_GATT_UNSUPPORT_GRP_TYPE = 0x10, /* 0x0010 */ + ESP_GATT_INSUF_RESOURCE = 0x11, /* 0x0011 */ + + ESP_GATT_NO_RESOURCES = 0x80, /* 0x80 */ + ESP_GATT_INTERNAL_ERROR = 0x81, /* 0x81 */ + ESP_GATT_WRONG_STATE = 0x82, /* 0x82 */ + ESP_GATT_DB_FULL = 0x83, /* 0x83 */ + ESP_GATT_BUSY = 0x84, /* 0x84 */ + ESP_GATT_ERROR = 0x85, /* 0x85 */ + ESP_GATT_CMD_STARTED = 0x86, /* 0x86 */ + ESP_GATT_ILLEGAL_PARAMETER = 0x87, /* 0x87 */ + ESP_GATT_PENDING = 0x88, /* 0x88 */ + ESP_GATT_AUTH_FAIL = 0x89, /* 0x89 */ + ESP_GATT_MORE = 0x8a, /* 0x8a */ + ESP_GATT_INVALID_CFG = 0x8b, /* 0x8b */ + ESP_GATT_SERVICE_STARTED = 0x8c, /* 0x8c */ + ESP_GATT_ENCRYPED_MITM = ESP_GATT_OK, + ESP_GATT_ENCRYPED_NO_MITM = 0x8d, /* 0x8d */ + ESP_GATT_NOT_ENCRYPTED = 0x8e, /* 0x8e */ + ESP_GATT_CONGESTED = 0x8f, /* 0x8f */ + ESP_GATT_DUP_REG = 0x90, /* 0x90 */ + ESP_GATT_ALREADY_OPEN = 0x91, /* 0x91 */ + ESP_GATT_CANCEL = 0x92, /* 0x92 */ + + /* 0xE0 ~ 0xFC reserved for future use */ + ESP_GATT_CCC_CFG_ERR = 0xfd, /* 0xFD Client Characteristic Configuration Descriptor Improperly Configured */ + ESP_GATT_PRC_IN_PROGRESS = 0xfe, /* 0xFE Procedure Already in progress */ + ESP_GATT_OUT_OF_RANGE = 0xff, /* 0xFFAttribute value out of range */ +} esp_gatt_status_t; + +/** + * @brief Gatt Connection reason enum + */ +typedef enum { + ESP_GATT_CONN_UNKNOWN = 0, /*!< Gatt connection unknown */ + ESP_GATT_CONN_L2C_FAILURE = 1, /*!< General L2cap failure */ + ESP_GATT_CONN_TIMEOUT = 0x08, /*!< Connection timeout */ + ESP_GATT_CONN_TERMINATE_PEER_USER = 0x13, /*!< Connection terminate by peer user */ + ESP_GATT_CONN_TERMINATE_LOCAL_HOST = 0x16, /*!< Connectionterminated by local host */ + ESP_GATT_CONN_FAIL_ESTABLISH = 0x3e, /*!< Connection fail to establish */ + ESP_GATT_CONN_LMP_TIMEOUT = 0x22, /*!< Connection fail for LMP response tout */ + ESP_GATT_CONN_CONN_CANCEL = 0x0100, /*!< L2CAP connection cancelled */ + ESP_GATT_CONN_NONE = 0x0101 /*!< No connection to cancel */ +} esp_gatt_conn_reason_t; + +/** + * @brief Gatt id, include uuid and instance id + */ +typedef struct { + esp_bt_uuid_t uuid; /*!< UUID */ + uint8_t inst_id; /*!< Instance id */ +} __attribute__((packed)) esp_gatt_id_t; + +/** + * @brief Gatt service id, include id + * (uuid and instance id) and primary flag + */ +typedef struct { + esp_gatt_id_t id; /*!< Gatt id, include uuid and instance */ + bool is_primary; /*!< This service is primary or not */ +} __attribute__((packed)) esp_gatt_srvc_id_t; + +/** + * @brief Gatt authentication request type + */ +typedef enum { + ESP_GATT_AUTH_REQ_NONE = 0, + ESP_GATT_AUTH_REQ_NO_MITM = 1, /* unauthenticated encryption */ + ESP_GATT_AUTH_REQ_MITM = 2, /* authenticated encryption */ + ESP_GATT_AUTH_REQ_SIGNED_NO_MITM = 3, + ESP_GATT_AUTH_REQ_SIGNED_MITM = 4, +} esp_gatt_auth_req_t; + +/** + * @brief Attribute permissions + */ +typedef enum { + ESP_GATT_PERM_READ = (1 << 0), /* bit 0 - 0x0001 */ + ESP_GATT_PERM_READ_ENCRYPTED = (1 << 1), /* bit 1 - 0x0002 */ + ESP_GATT_PERM_READ_ENC_MITM = (1 << 2), /* bit 2 - 0x0004 */ + ESP_GATT_PERM_WRITE = (1 << 4), /* bit 4 - 0x0010 */ + ESP_GATT_PERM_WRITE_ENCRYPTED = (1 << 5), /* bit 5 - 0x0020 */ + ESP_GATT_PERM_WRITE_ENC_MITM = (1 << 6), /* bit 6 - 0x0040 */ + ESP_GATT_PERM_WRITE_SIGNED = (1 << 7), /* bit 7 - 0x0080 */ + ESP_GATT_PERM_WRITE_SIGNED_MITM = (1 << 8), /* bit 8 - 0x0100 */ +} esp_gatt_perm_t; + +/* definition of characteristic properties */ +typedef enum { + ESP_GATT_CHAR_PROP_BIT_BROADCAST = (1 << 0), /* 0x01 */ + ESP_GATT_CHAR_PROP_BIT_READ = (1 << 1), /* 0x02 */ + ESP_GATT_CHAR_PROP_BIT_WRITE_NR = (1 << 2), /* 0x04 */ + ESP_GATT_CHAR_PROP_BIT_WRITE = (1 << 3), /* 0x08 */ + ESP_GATT_CHAR_PROP_BIT_NOTIFY = (1 << 4), /* 0x10 */ + ESP_GATT_CHAR_PROP_BIT_INDICATE = (1 << 5), /* 0x20 */ + ESP_GATT_CHAR_PROP_BIT_AUTH = (1 << 6), /* 0x40 */ + ESP_GATT_CHAR_PROP_BIT_EXT_PROP = (1 << 7), /* 0x80 */ +} esp_gatt_char_prop_t; + +/// GATT maximum attribute length +#define ESP_GATT_MAX_ATTR_LEN 600 //as same as GATT_MAX_ATTR_LEN + + +/** + * @brief Attribute description (used to create database) + */ + typedef struct + { + uint16_t uuid_length; /*!< UUID length */ + uint8_t *uuid_p; /*!< UUID value */ + uint16_t perm; /*!< Attribute permission */ + uint16_t max_length; /*!< Maximum length of the element*/ + uint16_t length; /*!< Current length of the element*/ + uint8_t *value; /*!< Element value array*/ + } esp_attr_desc_t; + + +/** + * @brief attribute auto respose flag + */ +typedef struct +{ +#define ESP_GATT_RSP_BY_APP 0 +#define ESP_GATT_AUTO_RSP 1 + uint8_t auto_rsp; /*!< need the app response to the client if need_rsp set to 1*/ +} esp_attr_control_t; + + +/** + * @brief attribute type added to the gatt server database + */ +typedef struct +{ + esp_attr_control_t attr_control; /*!< The attribue control type*/ + esp_attr_desc_t att_desc; /*!< The attribue type*/ +} esp_gatts_attr_db_t; + + +/** + * @brief set the attribute value type + */ +typedef struct +{ + uint16_t attr_max_len; /*!< attribute max value length */ + uint16_t attr_len; /*!< attribute current value length */ + uint8_t *attr_value; /*!< the pointer to attribute value */ +} esp_attr_value_t; + + +/** + * @brief Gatt include service entry element + */ +typedef struct +{ + uint16_t start_hdl; /*!< Gatt start handle value of included service */ + uint16_t end_hdl; /*!< Gatt end handle value of included service */ + uint16_t uuid; /*!< Gatt attribute value UUID of included service */ +} esp_gatts_incl_svc_desc_t; /*!< Gatt include service entry element */ + +/** + * @brief Gatt include 128 bit service entry element + */ +typedef struct +{ + uint16_t start_hdl; /*!< Gatt start handle value of included 128 bit service */ + uint16_t end_hdl; /*!< Gatt end handle value of included 128 bit service */ +} esp_gatts_incl128_svc_desc_t; /*!< Gatt include 128 bit service entry element */ + + + + +/// Gatt attribute value +typedef struct { + uint8_t value[ESP_GATT_MAX_ATTR_LEN]; /*!< Gatt attribute value */ + uint16_t handle; /*!< Gatt attribute handle */ + uint16_t offset; /*!< Gatt attribute value offset */ + uint16_t len; /*!< Gatt attribute value length */ + uint8_t auth_req; /*!< Gatt authentication request */ +} esp_gatt_value_t; + +/// GATT remote read request response type +typedef union { + esp_gatt_value_t attr_value; /*!< Gatt attribute structure */ + uint16_t handle; /*!< Gatt attribute handle */ +} esp_gatt_rsp_t; + +/** + * @brief Gatt write type + */ +typedef enum { + ESP_GATT_WRITE_TYPE_NO_RSP = 1, /*!< Gatt write attribute need no response */ + ESP_GATT_WRITE_TYPE_RSP, /*!< Gatt write attribute need remote response */ +} esp_gatt_write_type_t; + +#define ESP_GATT_IF_NONE 0xff /*!< If callback report gattc_if/gatts_if as this macro, means this event is not correspond to any app */ + +typedef uint8_t esp_gatt_if_t; /*!< Gatt interface type, different application on GATT client use different gatt_if */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ESP_GATT_DEFS_H__ */ diff --git a/tools/sdk/include/bluedroid/esp_gattc_api.h b/tools/sdk/include/bluedroid/esp_gattc_api.h new file mode 100644 index 00000000..b52dabbd --- /dev/null +++ b/tools/sdk/include/bluedroid/esp_gattc_api.h @@ -0,0 +1,607 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __ESP_GATTC_API_H__ +#define __ESP_GATTC_API_H__ + +#include "esp_bt_defs.h" +#include "esp_gatt_defs.h" +#include "esp_err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/// GATT Client callback function events +typedef enum { + ESP_GATTC_REG_EVT = 0, /*!< When GATT client is registered, the event comes */ + ESP_GATTC_UNREG_EVT = 1, /*!< When GATT client is unregistered, the event comes */ + ESP_GATTC_OPEN_EVT = 2, /*!< When GATT connection is set up, the event comes */ + ESP_GATTC_READ_CHAR_EVT = 3, /*!< When GATT characteristic is read, the event comes */ + ESP_GATTC_WRITE_CHAR_EVT = 4, /*!< When GATT characteristic write operation completes, the event comes */ + ESP_GATTC_CLOSE_EVT = 5, /*!< When GATT connection is closed, the event comes */ + ESP_GATTC_SEARCH_CMPL_EVT = 6, /*!< When GATT service discovery is completed, the event comes */ + ESP_GATTC_SEARCH_RES_EVT = 7, /*!< When GATT service discovery result is got, the event comes */ + ESP_GATTC_READ_DESCR_EVT = 8, /*!< When GATT characteristic descriptor read completes, the event comes */ + ESP_GATTC_WRITE_DESCR_EVT = 9, /*!< When GATT characteristic descriptor write completes, the event comes */ + ESP_GATTC_NOTIFY_EVT = 10, /*!< When GATT notification or indication arrives, the event comes */ + ESP_GATTC_PREP_WRITE_EVT = 11, /*!< When GATT prepare-write operation completes, the event comes */ + ESP_GATTC_EXEC_EVT = 12, /*!< When write execution completes, the event comes */ + ESP_GATTC_ACL_EVT = 13, /*!< When ACL connection is up, the event comes */ + ESP_GATTC_CANCEL_OPEN_EVT = 14, /*!< When GATT client ongoing connection is cancelled, the event comes */ + ESP_GATTC_SRVC_CHG_EVT = 15, /*!< When "service changed" occurs, the event comes */ + ESP_GATTC_ENC_CMPL_CB_EVT = 17, /*!< When encryption procedure completes, the event comes */ + ESP_GATTC_CFG_MTU_EVT = 18, /*!< When configuration of MTU completes, the event comes */ + ESP_GATTC_ADV_DATA_EVT = 19, /*!< When advertising of data, the event comes */ + ESP_GATTC_MULT_ADV_ENB_EVT = 20, /*!< When multi-advertising is enabled, the event comes */ + ESP_GATTC_MULT_ADV_UPD_EVT = 21, /*!< When multi-advertising parameters are updated, the event comes */ + ESP_GATTC_MULT_ADV_DATA_EVT = 22, /*!< When multi-advertising data arrives, the event comes */ + ESP_GATTC_MULT_ADV_DIS_EVT = 23, /*!< When multi-advertising is disabled, the event comes */ + ESP_GATTC_CONGEST_EVT = 24, /*!< When GATT connection congestion comes, the event comes */ + ESP_GATTC_BTH_SCAN_ENB_EVT = 25, /*!< When batch scan is enabled, the event comes */ + ESP_GATTC_BTH_SCAN_CFG_EVT = 26, /*!< When batch scan storage is configured, the event comes */ + ESP_GATTC_BTH_SCAN_RD_EVT = 27, /*!< When Batch scan read event is reported, the event comes */ + ESP_GATTC_BTH_SCAN_THR_EVT = 28, /*!< When Batch scan threshold is set, the event comes */ + ESP_GATTC_BTH_SCAN_PARAM_EVT = 29, /*!< When Batch scan parameters are set, the event comes */ + ESP_GATTC_BTH_SCAN_DIS_EVT = 30, /*!< When Batch scan is disabled, the event comes */ + ESP_GATTC_SCAN_FLT_CFG_EVT = 31, /*!< When Scan filter configuration completes, the event comes */ + ESP_GATTC_SCAN_FLT_PARAM_EVT = 32, /*!< When Scan filter parameters are set, the event comes */ + ESP_GATTC_SCAN_FLT_STATUS_EVT = 33, /*!< When Scan filter status is reported, the event comes */ + ESP_GATTC_ADV_VSC_EVT = 34, /*!< When advertising vendor spec content event is reported, the event comes */ + ESP_GATTC_GET_CHAR_EVT = 35, /*!< When characteristic is got from GATT server, the event comes */ + ESP_GATTC_GET_DESCR_EVT = 36, /*!< When characteristic descriptor is got from GATT server, the event comes */ + ESP_GATTC_GET_INCL_SRVC_EVT = 37, /*!< When included service is got from GATT server, the event comes */ + ESP_GATTC_REG_FOR_NOTIFY_EVT = 38, /*!< When register for notification of a service completes, the event comes */ + ESP_GATTC_UNREG_FOR_NOTIFY_EVT = 39, /*!< When unregister for notification of a service completes, the event comes */ +} esp_gattc_cb_event_t; + +/// Maximum Transmission Unit used in GATT +#define ESP_GATT_DEF_BLE_MTU_SIZE 23 + +/// Maximum Transmission Unit allowed in GATT +#define ESP_GATT_MAX_MTU_SIZE 517 + +/** + * @brief Gatt client callback parameters union + */ +typedef union { + /** + * @brief ESP_GATTC_REG_EVT + */ + struct gattc_reg_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t app_id; /*!< Application id which input in register API */ + } reg; /*!< Gatt client callback param of ESP_GATTC_REG_EVT */ + + /** + * @brief ESP_GATTC_OPEN_EVT + */ + struct gattc_open_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t conn_id; /*!< Connection id */ + esp_bd_addr_t remote_bda; /*!< Remote bluetooth device address */ + uint16_t mtu; /*!< MTU size */ + } open; /*!< Gatt client callback param of ESP_GATTC_OPEN_EVT */ + + /** + * @brief ESP_GATTC_CLOSE_EVT + */ + struct gattc_close_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t conn_id; /*!< Connection id */ + esp_bd_addr_t remote_bda; /*!< Remote bluetooth device address */ + esp_gatt_conn_reason_t reason; /*!< The reason of gatt connection close */ + } close; /*!< Gatt client callback param of ESP_GATTC_CLOSE_EVT */ + + /** + * @brief ESP_GATTC_CFG_MTU_EVT + */ + struct gattc_cfg_mtu_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t conn_id; /*!< Connection id */ + uint16_t mtu; /*!< MTU size */ + } cfg_mtu; /*!< Gatt client callback param of ESP_GATTC_CFG_MTU_EVT */ + + /** + * @brief ESP_GATTC_SEARCH_CMPL_EVT + */ + struct gattc_search_cmpl_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t conn_id; /*!< Connection id */ + } search_cmpl; /*!< Gatt client callback param of ESP_GATTC_SEARCH_CMPL_EVT */ + + /** + * @brief ESP_GATTC_SEARCH_RES_EVT + */ + struct gattc_search_res_evt_param { + uint16_t conn_id; /*!< Connection id */ + esp_gatt_srvc_id_t srvc_id; /*!< Service id, include service uuid and other information */ + } search_res; /*!< Gatt client callback param of ESP_GATTC_SEARCH_RES_EVT */ + + /** + * @brief ESP_GATTC_READ_CHAR_EVT, ESP_GATTC_READ_DESCR_EVT + */ + struct gattc_read_char_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t conn_id; /*!< Connection id */ + esp_gatt_srvc_id_t srvc_id; /*!< Service id, include service uuid and other information */ + esp_gatt_id_t char_id; /*!< Characteristic id, include characteristic uuid and other information */ + esp_gatt_id_t descr_id; /*!< Descriptor id, include descriptor uuid and other information */ + uint8_t *value; /*!< Characteristic value */ + uint16_t value_type; /*!< Characteristic value type */ + uint16_t value_len; /*!< Characteristic value length */ + } read; /*!< Gatt client callback param of ESP_GATTC_READ_CHAR_EVT */ + + /** + * @brief ESP_GATTC_WRITE_CHAR_EVT, ESP_GATTC_PREP_WRITE_EVT, ESP_GATTC_WRITE_DESCR_EVT + */ + struct gattc_write_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t conn_id; /*!< Connection id */ + esp_gatt_srvc_id_t srvc_id; /*!< Service id, include service uuid and other information */ + esp_gatt_id_t char_id; /*!< Characteristic id, include characteristic uuid and other information */ + esp_gatt_id_t descr_id; /*!< Descriptor id, include descriptor uuid and other information */ + } write; /*!< Gatt client callback param of ESP_GATTC_WRITE_DESCR_EVT */ + + /** + * @brief ESP_GATTC_EXEC_EVT + */ + struct gattc_exec_cmpl_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t conn_id; /*!< Connection id */ + } exec_cmpl; /*!< Gatt client callback param of ESP_GATTC_EXEC_EVT */ + + /** + * @brief ESP_GATTC_NOTIFY_EVT + */ + struct gattc_notify_evt_param { + uint16_t conn_id; /*!< Connection id */ + esp_bd_addr_t remote_bda; /*!< Remote bluetooth device address */ + esp_gatt_srvc_id_t srvc_id; /*!< Service id, include service uuid and other information */ + esp_gatt_id_t char_id; /*!< Characteristic id, include characteristic uuid and other information */ + esp_gatt_id_t descr_id; /*!< Descriptor id, include descriptor uuid and other information */ + uint16_t value_len; /*!< Notify attribute value */ + uint8_t *value; /*!< Notify attribute value */ + bool is_notify; /*!< True means notify, false means indicate */ + } notify; /*!< Gatt client callback param of ESP_GATTC_NOTIFY_EVT */ + + /** + * @brief ESP_GATTC_SRVC_CHG_EVT + */ + struct gattc_srvc_chg_evt_param { + esp_bd_addr_t remote_bda; /*!< Remote bluetooth device address */ + } srvc_chg; /*!< Gatt client callback param of ESP_GATTC_SRVC_CHG_EVT */ + + /** + * @brief ESP_GATTC_CONGEST_EVT + */ + struct gattc_congest_evt_param { + uint16_t conn_id; /*!< Connection id */ + bool congested; /*!< Congested or not */ + } congest; /*!< Gatt client callback param of ESP_GATTC_CONGEST_EVT */ + + /** + * @brief ESP_GATTC_GET_CHAR_EVT + */ + struct gattc_get_char_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t conn_id; /*!< Connection id */ + esp_gatt_srvc_id_t srvc_id; /*!< Service id, include service uuid and other information */ + esp_gatt_id_t char_id; /*!< Characteristic id, include characteristic uuid and other information */ + esp_gatt_char_prop_t char_prop; /*!< Characteristic property */ + } get_char; /*!< Gatt client callback param of ESP_GATTC_GET_CHAR_EVT */ + + /** + * @brief ESP_GATTC_GET_DESCR_EVT + */ + struct gattc_get_descr_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t conn_id; /*!< Connection id */ + esp_gatt_srvc_id_t srvc_id; /*!< Service id, include service uuid and other information */ + esp_gatt_id_t char_id; /*!< Characteristic id, include characteristic uuid and other information */ + esp_gatt_id_t descr_id; /*!< Descriptor id, include descriptor uuid and other information */ + } get_descr; /*!< Gatt client callback param of ESP_GATTC_GET_DESCR_EVT */ + + /** + * @brief ESP_GATTC_GET_INCL_SRVC_EVT + */ + struct gattc_get_incl_srvc_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t conn_id; /*!< Connection id */ + esp_gatt_srvc_id_t srvc_id; /*!< Service id, include service uuid and other information */ + esp_gatt_srvc_id_t incl_srvc_id;/*!< Included service id, include service uuid and other information */ + } get_incl_srvc; /*!< Gatt client callback param of ESP_GATTC_GET_INCL_SRVC_EVT */ + + /** + * @brief ESP_GATTC_REG_FOR_NOTIFY_EVT + */ + struct gattc_reg_for_notify_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + esp_gatt_srvc_id_t srvc_id; /*!< Service id, include service uuid and other information */ + esp_gatt_id_t char_id; /*!< Characteristic id, include characteristic uuid and other information */ + } reg_for_notify; /*!< Gatt client callback param of ESP_GATTC_REG_FOR_NOTIFY_EVT */ + + /** + * @brief ESP_GATTC_UNREG_FOR_NOTIFY_EVT + */ + struct gattc_unreg_for_notify_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + esp_gatt_srvc_id_t srvc_id; /*!< Service id, include service uuid and other information */ + esp_gatt_id_t char_id; /*!< Characteristic id, include characteristic uuid and other information */ + } unreg_for_notify; /*!< Gatt client callback param of ESP_GATTC_UNREG_FOR_NOTIFY_EVT */ + + +} esp_ble_gattc_cb_param_t; /*!< GATT client callback parameter union type */ + +/** + * @brief GATT Client callback function type + * @param event : Event type + * @param gatts_if : GATT client access interface, normally + * different gattc_if correspond to different profile + * @param param : Point to callback parameter, currently is union type + */ +typedef void (* esp_gattc_cb_t)(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if, esp_ble_gattc_cb_param_t *param); + +/** + * @brief This function is called to register application callbacks + * with GATTC module. + * + * @param[in] callback : pointer to the application callback function. + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_register_callback(esp_gattc_cb_t callback); + + +/** + * @brief This function is called to register application callbacks + * with GATTC module. + * + * @param[in] app_id : Application Identify (UUID), for different application + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_app_register(uint16_t app_id); + + +/** + * @brief This function is called to unregister an application + * from GATTC module. + * + * @param[in] gattc_if: Gatt client access interface. + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_app_unregister(esp_gatt_if_t gattc_if); + + +/** + * @brief Open a direct connection or add a background auto connection + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] remote_bda: remote device bluetooth device address. + * @param[in] is_direct: direct connection or background auto connection + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_open(esp_gatt_if_t gattc_if, esp_bd_addr_t remote_bda, bool is_direct); + + +/** + * @brief Close a connection to a GATT server. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id: connection ID to be closed. + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_close (esp_gatt_if_t gattc_if, uint16_t conn_id); + + +/** + * @brief Configure the MTU size in the GATT channel. This can be done + * only once per connection. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id: connection ID. + * @param[in] mtu: desired MTU size to use. + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_config_mtu (esp_gatt_if_t gattc_if, uint16_t conn_id, uint16_t mtu); + + +/** + * @brief This function is called to request a GATT service discovery + * on a GATT server. This function report service search result + * by a callback event, and followed by a service search complete + * event. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id: connection ID. + * @param[in] filter_uuid: a UUID of the service application is interested in. + * If Null, discover for all services. + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_search_service(esp_gatt_if_t gattc_if, uint16_t conn_id, esp_bt_uuid_t *filter_uuid); + + +/** + * @brief This function is called to find the first characteristic of the + * service on the given server. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id: connection ID which identify the server. + * @param[in] srvc_id: service ID + * @param[in] start_char_id: the start characteristic ID + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_get_characteristic(esp_gatt_if_t gattc_if, + uint16_t conn_id, + esp_gatt_srvc_id_t *srvc_id, + esp_gatt_id_t *start_char_id); + +/** + * @brief This function is called to find the descriptor of the + * service on the given server. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id: connection ID which identify the server. + * @param[in] srvc_id: the service ID of which the characteristic is belonged to. + * @param[in] char_id: Characteristic ID, if NULL find the first available + * characteristic. + * @param[in] start_descr_id: the start descriptor id + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_get_descriptor(esp_gatt_if_t gattc_if, + uint16_t conn_id, + esp_gatt_srvc_id_t *srvc_id, + esp_gatt_id_t *char_id, + esp_gatt_id_t *start_descr_id); + + +/** + * @brief This function is called to find the first characteristic of the + * service on the given server. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id: connection ID which identify the server. + * @param[in] srvc_id: the service ID of which the characteristic is belonged to. + * @param[in] start_incl_srvc_id: the start include service id + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_get_included_service(esp_gatt_if_t gattc_if, + uint16_t conn_id, + esp_gatt_srvc_id_t *srvc_id, + esp_gatt_srvc_id_t *start_incl_srvc_id); + + +/** + * @brief This function is called to read a service's characteristics of + * the given characteristic ID + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id : connection ID. + * @param[in] srvc_id : service ID. + * @param[in] char_id : characteristic ID to read. + * @param[in] auth_req : authenticate request type + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_read_char (esp_gatt_if_t gattc_if, + uint16_t conn_id, + esp_gatt_srvc_id_t *srvc_id, + esp_gatt_id_t *char_id, + esp_gatt_auth_req_t auth_req); + + +/** + * @brief This function is called to read a characteristics descriptor. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id : connection ID. + * @param[in] srvc_id : service ID. + * @param[in] char_id : characteristic ID to read. + * @param[in] descr_id : characteristic descriptor ID to read. + * @param[in] auth_req : authenticate request type + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_read_char_descr (esp_gatt_if_t gattc_if, + uint16_t conn_id, + esp_gatt_srvc_id_t *srvc_id, + esp_gatt_id_t *char_id, + esp_gatt_id_t *descr_id, + esp_gatt_auth_req_t auth_req); + + +/** + * @brief This function is called to write characteristic value. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id : connection ID. + * @param[in] srvc_id : service ID. + * @param[in] char_id : characteristic ID to write. + * @param[in] value_len: length of the value to be written. + * @param[in] value : the value to be written. + * @param[in] write_type : the type of attribute write operation. + * @param[in] auth_req : authentication request. + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_write_char( esp_gatt_if_t gattc_if, + uint16_t conn_id, + esp_gatt_srvc_id_t *srvc_id, + esp_gatt_id_t *char_id, + uint16_t value_len, + uint8_t *value, + esp_gatt_write_type_t write_type, + esp_gatt_auth_req_t auth_req); + + +/** + * @brief This function is called to write characteristic descriptor value. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id : connection ID + * @param[in] srvc_id : service ID. + * @param[in] char_id : characteristic ID. + * @param[in] descr_id : characteristic descriptor ID to write. + * @param[in] value_len: length of the value to be written. + * @param[in] value : the value to be written. + * @param[in] write_type : the type of attribute write operation. + * @param[in] auth_req : authentication request. + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_write_char_descr (esp_gatt_if_t gattc_if, + uint16_t conn_id, + esp_gatt_srvc_id_t *srvc_id, + esp_gatt_id_t *char_id, + esp_gatt_id_t *descr_id, + uint16_t value_len, + uint8_t *value, + esp_gatt_write_type_t write_type, + esp_gatt_auth_req_t auth_req); + + +/** + * @brief This function is called to prepare write a characteristic value. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id : connection ID. + * @param[in] srvc_id : service ID. + * @param[in] char_id : GATT characteristic ID of the service. + * @param[in] offset : offset of the write value. + * @param[in] value_len: length of the value to be written. + * @param[in] value : the value to be written. + * @param[in] auth_req : authentication request. + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_prepare_write(esp_gatt_if_t gattc_if, + uint16_t conn_id, + esp_gatt_srvc_id_t *srvc_id, + esp_gatt_id_t *char_id, + uint16_t offset, + uint16_t value_len, + uint8_t *value, + esp_gatt_auth_req_t auth_req); + + +/** + * @brief This function is called to execute write a prepare write sequence. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] conn_id : connection ID. + * @param[in] is_execute : execute or cancel. + * + * @return + * - ESP_OK: success + * - other: failed + * + */ +esp_err_t esp_ble_gattc_execute_write (esp_gatt_if_t gattc_if, uint16_t conn_id, bool is_execute); + + +/** + * @brief This function is called to register for notification of a service. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] server_bda : target GATT server. + * @param[in] srvc_id : pointer to GATT service ID. + * @param[in] char_id : pointer to GATT characteristic ID. + * + * @return + * - ESP_OK: registration succeeds + * - other: failed + * + */ +esp_gatt_status_t esp_ble_gattc_register_for_notify (esp_gatt_if_t gattc_if, + esp_bd_addr_t server_bda, + esp_gatt_srvc_id_t *srvc_id, + esp_gatt_id_t *char_id); + + +/** + * @brief This function is called to de-register for notification of a service. + * + * @param[in] gattc_if: Gatt client access interface. + * @param[in] server_bda : target GATT server. + * @param[in] srvc_id : pointer to GATT service ID. + * @param[in] char_id : pointer to GATT characteristic ID. + * + * @return + * - ESP_OK: unregister succeeds + * - other: failed + * + */ +esp_gatt_status_t esp_ble_gattc_unregister_for_notify (esp_gatt_if_t gattc_if, + esp_bd_addr_t server_bda, + esp_gatt_srvc_id_t *srvc_id, + esp_gatt_id_t *char_id); + +#ifdef __cplusplus +} +#endif + +#endif /* __ESP_GATTC_API_H__ */ diff --git a/tools/sdk/include/bluedroid/esp_gatts_api.h b/tools/sdk/include/bluedroid/esp_gatts_api.h new file mode 100644 index 00000000..777bbec3 --- /dev/null +++ b/tools/sdk/include/bluedroid/esp_gatts_api.h @@ -0,0 +1,542 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __ESP_GATTS_API_H__ +#define __ESP_GATTS_API_H__ + +#include "esp_bt_defs.h" +#include "esp_gatt_defs.h" +#include "esp_err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/// GATT Server callback function events +typedef enum { + ESP_GATTS_REG_EVT = 0, /*!< When register application id, the event comes */ + ESP_GATTS_READ_EVT = 1, /*!< When gatt client request read operation, the event comes */ + ESP_GATTS_WRITE_EVT = 2, /*!< When gatt client request write operation, the event comes */ + ESP_GATTS_EXEC_WRITE_EVT = 3, /*!< When gatt client request execute write, the event comes */ + ESP_GATTS_MTU_EVT = 4, /*!< When set mtu complete, the event comes */ + ESP_GATTS_CONF_EVT = 5, /*!< When receive confirm, the event comes */ + ESP_GATTS_UNREG_EVT = 6, /*!< When unregister application id, the event comes */ + ESP_GATTS_CREATE_EVT = 7, /*!< When create service complete, the event comes */ + ESP_GATTS_ADD_INCL_SRVC_EVT = 8, /*!< When add included service complete, the event comes */ + ESP_GATTS_ADD_CHAR_EVT = 9, /*!< When add characteristic complete, the event comes */ + ESP_GATTS_ADD_CHAR_DESCR_EVT = 10, /*!< When add descriptor complete, the event comes */ + ESP_GATTS_DELETE_EVT = 11, /*!< When delete service complete, the event comes */ + ESP_GATTS_START_EVT = 12, /*!< When start service complete, the event comes */ + ESP_GATTS_STOP_EVT = 13, /*!< When stop service complete, the event comes */ + ESP_GATTS_CONNECT_EVT = 14, /*!< When gatt client connect, the event comes */ + ESP_GATTS_DISCONNECT_EVT = 15, /*!< When gatt client disconnect, the event comes */ + ESP_GATTS_OPEN_EVT = 16, /*!< When connect to peer, the event comes */ + ESP_GATTS_CANCEL_OPEN_EVT = 17, /*!< When disconnect from peer, the event comes */ + ESP_GATTS_CLOSE_EVT = 18, /*!< When gatt server close, the event comes */ + ESP_GATTS_LISTEN_EVT = 19, /*!< When gatt listen to be connected the event comes */ + ESP_GATTS_CONGEST_EVT = 20, /*!< When congest happen, the event comes */ + /* following is extra event */ + ESP_GATTS_RESPONSE_EVT = 21, /*!< When gatt send response complete, the event comes */ + ESP_GATTS_CREAT_ATTR_TAB_EVT = 22, + ESP_GATTS_SET_ATTR_VAL_EVT = 23, +} esp_gatts_cb_event_t; + +/** + * @brief Gatt server callback parameters union + */ +typedef union { + /** + * @brief ESP_GATTS_REG_EVT + */ + struct gatts_reg_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t app_id; /*!< Application id which input in register API */ + } reg; /*!< Gatt server callback param of ESP_GATTS_REG_EVT */ + + /** + * @brief ESP_GATTS_READ_EVT + */ + struct gatts_read_evt_param { + uint16_t conn_id; /*!< Connection id */ + uint32_t trans_id; /*!< Transfer id */ + esp_bd_addr_t bda; /*!< The bluetooth device address which been read */ + uint16_t handle; /*!< The attribute handle */ + uint16_t offset; /*!< Offset of the value, if the value is too long */ + bool is_long; /*!< The value is too long or not */ + bool need_rsp; /*!< The read operation need to do response */ + } read; /*!< Gatt server callback param of ESP_GATTS_READ_EVT */ + + + /** + * @brief ESP_GATTS_WRITE_EVT + */ + struct gatts_write_evt_param { + uint16_t conn_id; /*!< Connection id */ + uint32_t trans_id; /*!< Transfer id */ + esp_bd_addr_t bda; /*!< The bluetooth device address which been written */ + uint16_t handle; /*!< The attribute handle */ + uint16_t offset; /*!< Offset of the value, if the value is too long */ + bool need_rsp; /*!< The write operation need to do response */ + bool is_prep; /*!< This write operation is prepare write */ + uint16_t len; /*!< The write attribute value length */ + uint8_t *value; /*!< The write attribute value */ + } write; /*!< Gatt server callback param of ESP_GATTS_WRITE_EVT */ + + /** + * @brief ESP_GATTS_EXEC_WRITE_EVT + */ + struct gatts_exec_write_evt_param { + uint16_t conn_id; /*!< Connection id */ + uint32_t trans_id; /*!< Transfer id */ + esp_bd_addr_t bda; /*!< The bluetooth device address which been written */ +#define ESP_GATT_PREP_WRITE_CANCEL 0x00 /*!< Prepare write flag to indicate cancel prepare write */ +#define ESP_GATT_PREP_WRITE_EXEC 0x01 /*!< Prepare write flag to indicate execute prepare write */ + uint8_t exec_write_flag; /*!< Execute write flag */ + } exec_write; /*!< Gatt server callback param of ESP_GATTS_EXEC_WRITE_EVT */ + + /** + * @brief ESP_GATTS_MTU_EVT + */ + struct gatts_mtu_evt_param { + uint16_t conn_id; /*!< Connection id */ + uint16_t mtu; /*!< MTU size */ + } mtu; /*!< Gatt server callback param of ESP_GATTS_MTU_EVT */ + + /** + * @brief ESP_GATTS_CONF_EVT + */ + struct gatts_conf_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t conn_id; /*!< Connection id */ + } conf; /*!< Gatt server callback param of ESP_GATTS_CONF_EVT (confirm) */ + + /** + * @brief ESP_GATTS_UNREG_EVT + */ + + /** + * @brief ESP_GATTS_CREATE_EVT + */ + struct gatts_create_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t service_handle; /*!< Service attribute handle */ + esp_gatt_srvc_id_t service_id; /*!< Service id, include service uuid and other information */ + } create; /*!< Gatt server callback param of ESP_GATTS_CREATE_EVT */ + + /** + * @brief ESP_GATTS_ADD_INCL_SRVC_EVT + */ + struct gatts_add_incl_srvc_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t attr_handle; /*!< Included service attribute handle */ + uint16_t service_handle; /*!< Service attribute handle */ + } add_incl_srvc; /*!< Gatt server callback param of ESP_GATTS_ADD_INCL_SRVC_EVT */ + + /** + * @brief ESP_GATTS_ADD_CHAR_EVT + */ + struct gatts_add_char_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t attr_handle; /*!< Characteristic attribute handle */ + uint16_t service_handle; /*!< Service attribute handle */ + esp_bt_uuid_t char_uuid; /*!< Characteristic uuid */ + } add_char; /*!< Gatt server callback param of ESP_GATTS_ADD_CHAR_EVT */ + + /** + * @brief ESP_GATTS_ADD_CHAR_DESCR_EVT + */ + struct gatts_add_char_descr_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t attr_handle; /*!< Descriptor attribute handle */ + uint16_t service_handle; /*!< Service attribute handle */ + esp_bt_uuid_t char_uuid; /*!< Characteristic uuid */ + } add_char_descr; /*!< Gatt server callback param of ESP_GATTS_ADD_CHAR_DESCR_EVT */ + + /** + * @brief ESP_GATTS_DELETE_EVT + */ + struct gatts_delete_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t service_handle; /*!< Service attribute handle */ + } del; /*!< Gatt server callback param of ESP_GATTS_DELETE_EVT */ + + /** + * @brief ESP_GATTS_START_EVT + */ + struct gatts_start_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t service_handle; /*!< Service attribute handle */ + } start; /*!< Gatt server callback param of ESP_GATTS_START_EVT */ + + /** + * @brief ESP_GATTS_STOP_EVT + */ + struct gatts_stop_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t service_handle; /*!< Service attribute handle */ + } stop; /*!< Gatt server callback param of ESP_GATTS_STOP_EVT */ + + /** + * @brief ESP_GATTS_CONNECT_EVT + */ + struct gatts_connect_evt_param { + uint16_t conn_id; /*!< Connection id */ + esp_bd_addr_t remote_bda; /*!< Remote bluetooth device address */ + bool is_connected; /*!< Indicate it is connected or not */ + } connect; /*!< Gatt server callback param of ESP_GATTS_CONNECT_EVT */ + + /** + * @brief ESP_GATTS_DISCONNECT_EVT + */ + struct gatts_disconnect_evt_param { + uint16_t conn_id; /*!< Connection id */ + esp_bd_addr_t remote_bda; /*!< Remote bluetooth device address */ + bool is_connected; /*!< Indicate it is connected or not */ + } disconnect; /*!< Gatt server callback param of ESP_GATTS_DISCONNECT_EVT */ + + /** + * @brief ESP_GATTS_OPEN_EVT + */ + /** + * @brief ESP_GATTS_CANCEL_OPEN_EVT + */ + /** + * @brief ESP_GATTS_CLOSE_EVT + */ + /** + * @brief ESP_GATTS_LISTEN_EVT + */ + /** + * @brief ESP_GATTS_CONGEST_EVT + */ + struct gatts_congest_evt_param { + uint16_t conn_id; /*!< Connection id */ + bool congested; /*!< Congested or not */ + } congest; /*!< Gatt server callback param of ESP_GATTS_CONGEST_EVT */ + + /** + * @brief ESP_GATTS_RESPONSE_EVT + */ + struct gatts_rsp_evt_param { + esp_gatt_status_t status; /*!< Operation status */ + uint16_t handle; /*!< Attribute handle which send response */ + } rsp; /*!< Gatt server callback param of ESP_GATTS_RESPONSE_EVT */ + + /** + * @brief ESP_GATTS_CREAT_ATTR_TAB_EVT + */ + struct gatts_add_attr_tab_evt_param{ + esp_gatt_status_t status; /*!< Operation status */ + esp_bt_uuid_t svc_uuid; /*!< Service uuid type */ + uint16_t num_handle; /*!< The number of the attribute handle to be added to the gatts database */ + uint16_t *handles; /*!< The number to the handles */ + } add_attr_tab; /*!< Gatt server callback param of ESP_GATTS_CREAT_ATTR_TAB_EVT */ + + + /** + * @brief ESP_GATTS_SET_ATTR_VAL_EVT + */ + struct gatts_set_attr_val_evt_param{ + uint16_t srvc_handle; /*!< The service handle */ + uint16_t attr_handle; /*!< The attribute handle */ + esp_gatt_status_t status; /*!< Operation status*/ + } set_attr_val; /*!< Gatt server callback param of ESP_GATTS_SET_ATTR_VAL_EVT */ + +} esp_ble_gatts_cb_param_t; + +/** + * @brief GATT Server callback function type + * @param event : Event type + * @param gatts_if : GATT server access interface, normally + * different gatts_if correspond to different profile + * @param param : Point to callback parameter, currently is union type + */ +typedef void (* esp_gatts_cb_t)(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param); + +/** + * @brief This function is called to register application callbacks + * with BTA GATTS module. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_register_callback(esp_gatts_cb_t callback); + +/** + * @brief This function is called to register application identifier + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_app_register(uint16_t app_id); + + + +/** + * @brief unregister with GATT Server. + * + * @param[in] gatts_if: GATT server access interface + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_app_unregister(esp_gatt_if_t gatts_if); + + +/** + * @brief Create a service. When service creation is done, a callback + * event BTA_GATTS_CREATE_SRVC_EVT is called to report status + * and service ID to the profile. The service ID obtained in + * the callback function needs to be used when adding included + * service and characteristics/descriptors into the service. + * + * @param[in] gatts_if: GATT server access interface + * @param[in] service_id: service ID. + * @param[in] num_handle: number of handle requested for this service. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_create_service(esp_gatt_if_t gatts_if, + esp_gatt_srvc_id_t *service_id, uint16_t num_handle); + + +/** + * @brief Create a service attribute tab. + * @param[in] gatts_attr_db: the pointer to the service attr tab + * @param[in] gatts_if: GATT server access interface + * @param[in] max_nb_attr: the number of attribute to be added to the service database. + * @param[in] srvc_inst_id: the instance id of the service + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_create_attr_tab(const esp_gatts_attr_db_t *gatts_attr_db, + esp_gatt_if_t gatts_if, + uint8_t max_nb_attr, + uint8_t srvc_inst_id); +/** + * @brief This function is called to add an included service. After included + * service is included, a callback event BTA_GATTS_ADD_INCL_SRVC_EVT + * is reported the included service ID. + * + * @param[in] service_handle: service handle to which this included service is to + * be added. + * @param[in] included_service_handle: the service ID to be included. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_add_included_service(uint16_t service_handle, uint16_t included_service_handle); + + + +/** + * @brief This function is called to add a characteristic into a service. + * + * @param[in] service_handle: service handle to which this included service is to + * be added. + * @param[in] char_uuid : Characteristic UUID. + * @param[in] perm : Characteristic value declaration attribute permission. + * @param[in] property : Characteristic Properties + * @param[in] char_val : Characteristic value + * @param[in] control : attribute response control byte + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_add_char(uint16_t service_handle, esp_bt_uuid_t *char_uuid, + esp_gatt_perm_t perm, esp_gatt_char_prop_t property, esp_attr_value_t *char_val, + esp_attr_control_t *control); + + +/** + * @brief This function is called to add characteristic descriptor. When + * it's done, a callback event BTA_GATTS_ADD_DESCR_EVT is called + * to report the status and an ID number for this descriptor. + * + * @param[in] service_handle: service handle to which this characteristic descriptor is to + * be added. + * @param[in] perm: descriptor access permission. + * @param[in] descr_uuid: descriptor UUID. + * @param[in] char_descr_val : Characteristic descriptor value + * @param[in] control : attribute response control byte + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_add_char_descr (uint16_t service_handle, + esp_bt_uuid_t *descr_uuid, + esp_gatt_perm_t perm, esp_attr_value_t *char_descr_val, + esp_attr_control_t *control); + + + +/** + * @brief This function is called to delete a service. When this is done, + * a callback event BTA_GATTS_DELETE_EVT is report with the status. + * + * @param[in] service_handle: service_handle to be deleted. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_delete_service(uint16_t service_handle); + + + +/** + * @brief This function is called to start a service. + * + * @param[in] service_handle: the service handle to be started. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_start_service(uint16_t service_handle); + + + +/** + * @brief This function is called to stop a service. + * + * @param[in] service_handle - service to be topped. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_stop_service(uint16_t service_handle); + + + +/** + * @brief Send indicate or notify to GATT client. + * Set param need_confirm as false will send notification, otherwise indication. + * + * @param[in] gatts_if: GATT server access interface + * @param[in] conn_id - connection id to indicate. + * @param[in] attr_handle - attribute handle to indicate. + * @param[in] value_len - indicate value length. + * @param[in] value: value to indicate. + * @param[in] need_confirm - Whether a confirmation is required. + * false sends a GATT notification, true sends a GATT indication. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_send_indicate(esp_gatt_if_t gatts_if, uint16_t conn_id, uint16_t attr_handle, + uint16_t value_len, uint8_t *value, bool need_confirm); + + +/** + * @brief This function is called to send a response to a request. + * + * @param[in] gatts_if: GATT server access interface + * @param[in] conn_id - connection identifier. + * @param[in] trans_id - transfer id + * @param[in] status - response status + * @param[in] rsp - response data. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_send_response(esp_gatt_if_t gatts_if, uint16_t conn_id, uint32_t trans_id, + esp_gatt_status_t status, esp_gatt_rsp_t *rsp); + + +/** + * @brief This function is called to set the attribute value by the application + * + * @param[in] attr_handle: the attribute handle which to be set + * @param[in] length: the value length + * @param[in] value: the pointer to the attribute value + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_set_attr_value(uint16_t attr_handle, uint16_t length, const uint8_t *value); + +/** + * @brief Retrieve attribute value + * + * @param[in] attr_handle: Attribute handle. + * @param[out] length: pointer to the attribute value length + * @param[out] value: Pointer to attribute value payload, the value cannot be modified by user + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_get_attr_value(uint16_t attr_handle, uint16_t *length, const uint8_t **value); + + +/** + * @brief Open a direct open connection or add a background auto connection + * + * @param[in] gatts_if: GATT server access interface + * @param[in] remote_bda: remote device bluetooth device address. + * @param[in] is_direct: direct connection or background auto connection + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_open(esp_gatt_if_t gatts_if, esp_bd_addr_t remote_bda, bool is_direct); + +/** + * @brief Close a connection a remote device. + * + * @param[in] gatts_if: GATT server access interface + * @param[in] conn_id: connection ID to be closed. + * + * @return + * - ESP_OK : success + * - other : failed + * + */ +esp_err_t esp_ble_gatts_close(esp_gatt_if_t gatts_if, uint16_t conn_id); + +#ifdef __cplusplus +} +#endif + +#endif /* __ESP_GATTS_API_H__ */ diff --git a/tools/sdk/include/bluedroid/event_mask.h b/tools/sdk/include/bluedroid/event_mask.h new file mode 100644 index 00000000..d4d036d5 --- /dev/null +++ b/tools/sdk/include/bluedroid/event_mask.h @@ -0,0 +1,30 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ +#ifndef _EVENT_MASK_H_ +#define _EVENT_MASK_H_ + +#include + +// Represents a mask which can be used to tell the controller which +// HCI events the stack wishes to be informed about. See the bluetooth +// spec for more information on what each bit means. +typedef struct { + uint8_t as_array[8]; +} bt_event_mask_t; + +#endif /*_EVENT_MASK_H_*/ diff --git a/tools/sdk/include/bluedroid/fixed_queue.h b/tools/sdk/include/bluedroid/fixed_queue.h new file mode 100755 index 00000000..9cbb846d --- /dev/null +++ b/tools/sdk/include/bluedroid/fixed_queue.h @@ -0,0 +1,102 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _FIXED_QUEUE_H_ +#define _FIXED_QUEUE_H_ + +#include + +struct fixed_queue_t; +typedef struct fixed_queue_t fixed_queue_t; +//typedef struct reactor_t reactor_t; + +typedef void (*fixed_queue_free_cb)(void *data); +typedef void (*fixed_queue_cb)(fixed_queue_t *queue); + +// Creates a new fixed queue with the given |capacity|. If more elements than +// |capacity| are added to the queue, the caller is blocked until space is +// made available in the queue. Returns NULL on failure. The caller must free +// the returned queue with |fixed_queue_free|. +fixed_queue_t *fixed_queue_new(size_t capacity); + +// Freeing a queue that is currently in use (i.e. has waiters +// blocked on it) results in undefined behaviour. +void fixed_queue_free(fixed_queue_t *queue, fixed_queue_free_cb free_cb); + +// Returns a value indicating whether the given |queue| is empty. |queue| may +// not be NULL. +bool fixed_queue_is_empty(fixed_queue_t *queue); + +// Returns the maximum number of elements this queue may hold. |queue| may +// not be NULL. +size_t fixed_queue_capacity(fixed_queue_t *queue); + +// Enqueues the given |data| into the |queue|. The caller will be blocked +// if nore more space is available in the queue. Neither |queue| nor |data| +// may be NULL. +void fixed_queue_enqueue(fixed_queue_t *queue, void *data); + +// Dequeues the next element from |queue|. If the queue is currently empty, +// this function will block the caller until an item is enqueued. This +// function will never return NULL. |queue| may not be NULL. +void *fixed_queue_dequeue(fixed_queue_t *queue); + +// Tries to enqueue |data| into the |queue|. This function will never block +// the caller. If the queue capacity would be exceeded by adding one more +// element, this function returns false immediately. Otherwise, this function +// returns true. Neither |queue| nor |data| may be NULL. +bool fixed_queue_try_enqueue(fixed_queue_t *queue, void *data); + +// Tries to dequeue an element from |queue|. This function will never block +// the caller. If the queue is empty, this function returns NULL immediately. +// Otherwise, the next element in the queue is returned. |queue| may not be +// NULL. +//void *fixed_queue_try_dequeue(fixed_queue_t *queue); + +// Returns the first element from |queue|, if present, without dequeuing it. +// This function will never block the caller. Returns NULL if there are no elements +// in the queue. |queue| may not be NULL. +//void *fixed_queue_try_peek(fixed_queue_t *queue); + +// This function returns a valid file descriptor. Callers may perform one +// operation on the fd: select(2). If |select| indicates that the file +// descriptor is readable, the caller may call |fixed_queue_enqueue| without +// blocking. The caller must not close the returned file descriptor. |queue| +// may not be NULL. +//int fixed_queue_get_enqueue_fd(const fixed_queue_t *queue); + +// This function returns a valid file descriptor. Callers may perform one +// operation on the fd: select(2). If |select| indicates that the file +// descriptor is readable, the caller may call |fixed_queue_dequeue| without +// blocking. The caller must not close the returned file descriptor. |queue| +// may not be NULL. +//int fixed_queue_get_dequeue_fd(const fixed_queue_t *queue); + +// Registers |queue| with |reactor| for dequeue operations. When there is an element +// in the queue, ready_cb will be called. The |context| parameter is passed, untouched, +// to the callback routine. Neither |queue|, nor |reactor|, nor |read_cb| may be NULL. +// |context| may be NULL. +void fixed_queue_register_dequeue(fixed_queue_t *queue, fixed_queue_cb ready_cb); + +// Unregisters the dequeue ready callback for |queue| from whichever reactor +// it is registered with, if any. This function is idempotent. +void fixed_queue_unregister_dequeue(fixed_queue_t *queue); + +void fixed_queue_process(fixed_queue_t *queue); + +#endif diff --git a/tools/sdk/include/bluedroid/future.h b/tools/sdk/include/bluedroid/future.h new file mode 100644 index 00000000..d54f2378 --- /dev/null +++ b/tools/sdk/include/bluedroid/future.h @@ -0,0 +1,52 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef __FUTURE_H__ +#define __FUTURE_H__ +// #pragma once + +#include "osi_arch.h" + +struct future { + bool ready_can_be_called; + osi_sem_t semaphore; // NULL semaphore means immediate future + void *result; +}; +typedef struct future future_t; + +#define FUTURE_SUCCESS ((void *)1) +#define FUTURE_FAIL ((void *)0) + +// Constructs a new future_t object. Returns NULL on failure. +future_t *future_new(void); + +// Constructs a new future_t object with an immediate |value|. No waiting will +// occur in the call to |future_await| because the value is already present. +// Returns NULL on failure. +future_t *future_new_immediate(void *value); + +// Signals that the |future| is ready, passing |value| back to the context +// waiting for the result. Must only be called once for every future. +// |future| may not be NULL. +void future_ready(future_t *future, void *value); + +// Waits for the |future| to be ready. Returns the value set in |future_ready|. +// Frees the future before return. |future| may not be NULL. +void *future_await(future_t *async_result); + +#endif /* __FUTURE_H__ */ diff --git a/tools/sdk/include/bluedroid/gap_api.h b/tools/sdk/include/bluedroid/gap_api.h new file mode 100644 index 00000000..1f22db00 --- /dev/null +++ b/tools/sdk/include/bluedroid/gap_api.h @@ -0,0 +1,391 @@ +/****************************************************************************** + * + * Copyright (C) 2009-2013 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef GAP_API_H +#define GAP_API_H + +#include "sdpdefs.h" +#include "profiles_api.h" +#include "btm_api.h" +#include "l2c_api.h" + +/***************************************************************************** +** Constants +*****************************************************************************/ +/*** GAP Error and Status Codes ***/ +#define GAP_UNSUPPORTED (GAP_ERR_GRP + 0x01) /* Unsupported call */ +#define GAP_EOINQDB (GAP_ERR_GRP + 0x02) /* End of inquiry database marker */ +#define GAP_ERR_BUSY (GAP_ERR_GRP + 0x03) /* The requested function was busy */ +#define GAP_ERR_NO_CTRL_BLK (GAP_ERR_GRP + 0x04) /* No control blocks available */ +#define GAP_ERR_STARTING_CMD (GAP_ERR_GRP + 0x05) /* Error occurred while initiating the command */ +#define GAP_NO_BDADDR_REC (GAP_ERR_GRP + 0x06) /* No Inquiry DB record for BD_ADDR */ +#define GAP_ERR_ILL_MODE (GAP_ERR_GRP + 0x07) /* An illegal mode parameter was detected */ +#define GAP_ERR_ILL_INQ_TIME (GAP_ERR_GRP + 0x08) /* An illegal time parameter was detected */ +#define GAP_ERR_ILL_PARM (GAP_ERR_GRP + 0x09) /* An illegal parameter was detected */ +#define GAP_ERR_REM_NAME (GAP_ERR_GRP + 0x0a) /* Error starting the remote device name request */ +#define GAP_CMD_INITIATED (GAP_ERR_GRP + 0x0b) /* The GAP command was started (result pending) */ +#define GAP_DEVICE_NOT_UP (GAP_ERR_GRP + 0x0c) /* The device was not up; the request was not executed */ +#define GAP_BAD_BD_ADDR (GAP_ERR_GRP + 0x0d) /* The bd addr passed in was not found or invalid */ + +#define GAP_ERR_BAD_HANDLE (GAP_ERR_GRP + 0x0e) /* Bad GAP handle */ +#define GAP_ERR_BUF_OFFSET (GAP_ERR_GRP + 0x0f) /* Buffer offset invalid */ +#define GAP_ERR_BAD_STATE (GAP_ERR_GRP + 0x10) /* Connection is in invalid state */ +#define GAP_NO_DATA_AVAIL (GAP_ERR_GRP + 0x11) /* No data available */ +#define GAP_ERR_CONGESTED (GAP_ERR_GRP + 0x12) /* BT stack is congested */ +#define GAP_ERR_SECURITY (GAP_ERR_GRP + 0x13) /* Security failed */ + +#define GAP_ERR_PROCESSING (GAP_ERR_GRP + 0x14) /* General error processing BTM request */ +#define GAP_ERR_TIMEOUT (GAP_ERR_GRP + 0x15) /* Timeout occurred while processing cmd */ +#define GAP_EVT_CONN_OPENED 0x0100 +#define GAP_EVT_CONN_CLOSED 0x0101 +#define GAP_EVT_CONN_DATA_AVAIL 0x0102 +#define GAP_EVT_CONN_CONGESTED 0x0103 +#define GAP_EVT_CONN_UNCONGESTED 0x0104 +/* Values for 'chan_mode_mask' field */ +/* GAP_ConnOpen() - optional channels to negotiate */ +#define GAP_FCR_CHAN_OPT_BASIC L2CAP_FCR_CHAN_OPT_BASIC +#define GAP_FCR_CHAN_OPT_ERTM L2CAP_FCR_CHAN_OPT_ERTM +#define GAP_FCR_CHAN_OPT_STREAM L2CAP_FCR_CHAN_OPT_STREAM +/*** used in connection variables and functions ***/ +#define GAP_INVALID_HANDLE 0xFFFF + +/* This is used to change the criteria for AMP */ +#define GAP_PROTOCOL_ID (UUID_PROTOCOL_UDP) + + +#ifndef GAP_PREFER_CONN_INT_MAX +#define GAP_PREFER_CONN_INT_MAX BTM_BLE_CONN_INT_MIN +#endif + +#ifndef GAP_PREFER_CONN_INT_MIN +#define GAP_PREFER_CONN_INT_MIN BTM_BLE_CONN_INT_MIN +#endif + +#ifndef GAP_PREFER_CONN_LATENCY +#define GAP_PREFER_CONN_LATENCY 0 +#endif + +#ifndef GAP_PREFER_CONN_SP_TOUT +#define GAP_PREFER_CONN_SP_TOUT 2000 +#endif + +/***************************************************************************** +** Type Definitions +*****************************************************************************/ +/* +** Callback function for connection services +*/ +typedef void (tGAP_CONN_CALLBACK) (UINT16 gap_handle, UINT16 event); + +/* +** Define the callback function prototypes. Parameters are specific +** to each event and are described below +*/ +typedef void (tGAP_CALLBACK) (UINT16 event, void *p_data); + + +/* Definition of the GAP_FindAddrByName results structure */ +typedef struct { + UINT16 status; + BD_ADDR bd_addr; + tBTM_BD_NAME devname; +} tGAP_FINDADDR_RESULTS; + +typedef struct { + UINT16 int_min; + UINT16 int_max; + UINT16 latency; + UINT16 sp_tout; +} tGAP_BLE_PREF_PARAM; + +typedef union { + tGAP_BLE_PREF_PARAM conn_param; + BD_ADDR reconn_bda; + UINT16 icon; + UINT8 *p_dev_name; + UINT8 addr_resolution; + +} tGAP_BLE_ATTR_VALUE; + +typedef void (tGAP_BLE_CMPL_CBACK)(BOOLEAN status, BD_ADDR addr, UINT16 length, char *p_name); + + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ + +/*** Functions for L2CAP connection interface ***/ + +/******************************************************************************* +** +** Function GAP_ConnOpen +** +** Description This function is called to open a generic L2CAP connection. +** +** Returns handle of the connection if successful, else GAP_INVALID_HANDLE +** +*******************************************************************************/ +extern UINT16 GAP_ConnOpen (char *p_serv_name, UINT8 service_id, BOOLEAN is_server, + BD_ADDR p_rem_bda, UINT16 psm, tL2CAP_CFG_INFO *p_cfg, + tL2CAP_ERTM_INFO *ertm_info, + UINT16 security, UINT8 chan_mode_mask, tGAP_CONN_CALLBACK *p_cb); + +/******************************************************************************* +** +** Function GAP_ConnClose +** +** Description This function is called to close a connection. +** +** Returns BT_PASS - closed OK +** GAP_ERR_BAD_HANDLE - invalid handle +** +*******************************************************************************/ +extern UINT16 GAP_ConnClose (UINT16 gap_handle); + +/******************************************************************************* +** +** Function GAP_ConnReadData +** +** Description GKI buffer unaware application will call this function +** after receiving GAP_EVT_RXDATA event. A data copy is made +** into the receive buffer parameter. +** +** Returns BT_PASS - data read +** GAP_ERR_BAD_HANDLE - invalid handle +** GAP_NO_DATA_AVAIL - no data available +** +*******************************************************************************/ +extern UINT16 GAP_ConnReadData (UINT16 gap_handle, UINT8 *p_data, + UINT16 max_len, UINT16 *p_len); + +/******************************************************************************* +** +** Function GAP_GetRxQueueCnt +** +** Description This function return number of bytes on the rx queue. +** +** Parameters: handle - Handle returned in the GAP_ConnOpen +** p_rx_queue_count - Pointer to return queue count in. +** +** +*******************************************************************************/ +extern int GAP_GetRxQueueCnt (UINT16 handle, UINT32 *p_rx_queue_count); + +/******************************************************************************* +** +** Function GAP_ConnBTRead +** +** Description GKI buffer aware applications will call this function after +** receiving an GAP_EVT_RXDATA event to process the incoming +** data buffer. +** +** Returns BT_PASS - data read +** GAP_ERR_BAD_HANDLE - invalid handle +** GAP_NO_DATA_AVAIL - no data available +** +*******************************************************************************/ +extern UINT16 GAP_ConnBTRead (UINT16 gap_handle, BT_HDR **pp_buf); + +/******************************************************************************* +** +** Function GAP_ConnBTWrite +** +** Description GKI buffer aware applications can call this function to write data +** by passing a pointer to the GKI buffer of data. +** +** Returns BT_PASS - data read +** GAP_ERR_BAD_HANDLE - invalid handle +** GAP_ERR_BAD_STATE - connection not established +** GAP_INVALID_BUF_OFFSET - buffer offset is invalid +*******************************************************************************/ +extern UINT16 GAP_ConnBTWrite (UINT16 gap_handle, BT_HDR *p_buf); + +/******************************************************************************* +** +** Function GAP_ConnWriteData +** +** Description GKI buffer unaware application will call this function +** to send data to the connection. A data copy is made into a GKI +** buffer. +** +** Returns BT_PASS - data read +** GAP_ERR_BAD_HANDLE - invalid handle +** GAP_ERR_BAD_STATE - connection not established +** GAP_CONGESTION - system is congested +** +*******************************************************************************/ +extern UINT16 GAP_ConnWriteData (UINT16 gap_handle, UINT8 *p_data, + UINT16 max_len, UINT16 *p_len); + +/******************************************************************************* +** +** Function GAP_ConnReconfig +** +** Description Applications can call this function to reconfigure the connection. +** +** Returns BT_PASS - config process started +** GAP_ERR_BAD_HANDLE - invalid handle +** +*******************************************************************************/ +extern UINT16 GAP_ConnReconfig (UINT16 gap_handle, tL2CAP_CFG_INFO *p_cfg); + +/******************************************************************************* +** +** Function GAP_ConnSetIdleTimeout +** +** Description Higher layers call this function to set the idle timeout for +** a connection, or for all future connections. The "idle timeout" +** is the amount of time that a connection can remain up with +** no L2CAP channels on it. A timeout of zero means that the +** connection will be torn down immediately when the last channel +** is removed. A timeout of 0xFFFF means no timeout. Values are +** in seconds. +** +** Returns BT_PASS - config process started +** GAP_ERR_BAD_HANDLE - invalid handle +** +*******************************************************************************/ +extern UINT16 GAP_ConnSetIdleTimeout (UINT16 gap_handle, UINT16 timeout); + +/******************************************************************************* +** +** Function GAP_ConnGetRemoteAddr +** +** Description This function is called to get the remote BD address +** of a connection. +** +** Returns BT_PASS - closed OK +** GAP_ERR_BAD_HANDLE - invalid handle +** +*******************************************************************************/ +extern UINT8 *GAP_ConnGetRemoteAddr (UINT16 gap_handle); + +/******************************************************************************* +** +** Function GAP_ConnGetRemMtuSize +** +** Description Returns the remote device's MTU size. +** +** Returns UINT16 - maximum size buffer that can be transmitted to the peer +** +*******************************************************************************/ +extern UINT16 GAP_ConnGetRemMtuSize (UINT16 gap_handle); + +/******************************************************************************* +** +** Function GAP_ConnGetL2CAPCid +** +** Description Returns the L2CAP channel id +** +** Parameters: handle - Handle of the connection +** +** Returns UINT16 - The L2CAP channel id +** 0, if error +** +*******************************************************************************/ +extern UINT16 GAP_ConnGetL2CAPCid (UINT16 gap_handle); + +/******************************************************************************* +** +** Function GAP_SetTraceLevel +** +** Description This function sets the trace level for GAP. If called with +** a value of 0xFF, it simply returns the current trace level. +** +** Returns The new or current trace level +** +*******************************************************************************/ +extern UINT8 GAP_SetTraceLevel (UINT8 new_level); + +/******************************************************************************* +** +** Function GAP_Init +** +** Description Initializes the control blocks used by GAP. +** This routine should not be called except once per +** stack invocation. +** +** Returns Nothing +** +*******************************************************************************/ +extern void GAP_Init(void); + +#if (BLE_INCLUDED == TRUE) +/******************************************************************************* +** +** Function GAP_BleAttrDBUpdate +** +** Description update GAP local BLE attribute database. +** +** Returns Nothing +** +*******************************************************************************/ +extern void GAP_BleAttrDBUpdate(UINT16 attr_uuid, tGAP_BLE_ATTR_VALUE *p_value); + + +/******************************************************************************* +** +** Function GAP_BleReadPeerPrefConnParams +** +** Description Start a process to read a connected peripheral's preferred +** connection parameters +** +** Returns TRUE if read started, else FALSE if GAP is busy +** +*******************************************************************************/ +extern BOOLEAN GAP_BleReadPeerPrefConnParams (BD_ADDR peer_bda); + +/******************************************************************************* +** +** Function GAP_BleReadPeerDevName +** +** Description Start a process to read a connected peripheral's device name. +** +** Returns TRUE if request accepted +** +*******************************************************************************/ +extern BOOLEAN GAP_BleReadPeerDevName (BD_ADDR peer_bda, tGAP_BLE_CMPL_CBACK *p_cback); + + +/******************************************************************************* +** +** Function GAP_BleReadPeerAddressResolutionCap +** +** Description Start a process to read peer address resolution capability +** +** Returns TRUE if request accepted +** +*******************************************************************************/ +extern BOOLEAN GAP_BleReadPeerAddressResolutionCap (BD_ADDR peer_bda, + tGAP_BLE_CMPL_CBACK *p_cback); + +/******************************************************************************* +** +** Function GAP_BleCancelReadPeerDevName +** +** Description Cancel reading a peripheral's device name. +** +** Returns TRUE if request accepted +** +*******************************************************************************/ +extern BOOLEAN GAP_BleCancelReadPeerDevName (BD_ADDR peer_bda); + + +#endif + +#endif /* GAP_API_H */ diff --git a/tools/sdk/include/bluedroid/gap_int.h b/tools/sdk/include/bluedroid/gap_int.h new file mode 100644 index 00000000..fbddf67c --- /dev/null +++ b/tools/sdk/include/bluedroid/gap_int.h @@ -0,0 +1,154 @@ +/****************************************************************************** + * + * Copyright (C) 2009-2013 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + + +#ifndef GAP_INT_H +#define GAP_INT_H + +#include "bt_target.h" +#include "gap_api.h" +#include "gki.h" +#include "gatt_api.h" +#define GAP_MAX_BLOCKS 2 /* Concurrent GAP commands pending at a time*/ +/* Define the Generic Access Profile control structure */ +typedef struct { + void *p_data; /* Pointer to any data returned in callback */ + tGAP_CALLBACK *gap_cback; /* Pointer to users callback function */ + tGAP_CALLBACK *gap_inq_rslt_cback; /* Used for inquiry results */ + UINT16 event; /* Passed back in the callback */ + UINT8 index; /* Index of this control block and callback */ + BOOLEAN in_use; /* True when structure is allocated */ +} tGAP_INFO; + +/* Define the control block for the FindAddrByName operation (Only 1 active at a time) */ +typedef struct { + tGAP_CALLBACK *p_cback; + tBTM_INQ_INFO *p_cur_inq; /* Pointer to the current inquiry database entry */ + tGAP_FINDADDR_RESULTS results; + BOOLEAN in_use; +} tGAP_FINDADDR_CB; + +/* Define the GAP Connection Control Block. +*/ +typedef struct { +#define GAP_CCB_STATE_IDLE 0 +#define GAP_CCB_STATE_LISTENING 1 +#define GAP_CCB_STATE_CONN_SETUP 2 +#define GAP_CCB_STATE_CFG_SETUP 3 +#define GAP_CCB_STATE_WAIT_SEC 4 +#define GAP_CCB_STATE_CONNECTED 5 + UINT8 con_state; + +#define GAP_CCB_FLAGS_IS_ORIG 0x01 +#define GAP_CCB_FLAGS_HIS_CFG_DONE 0x02 +#define GAP_CCB_FLAGS_MY_CFG_DONE 0x04 +#define GAP_CCB_FLAGS_SEC_DONE 0x08 +#define GAP_CCB_FLAGS_CONN_DONE 0x0E + UINT8 con_flags; + + UINT8 service_id; /* Used by BTM */ + UINT16 gap_handle; /* GAP handle */ + UINT16 connection_id; /* L2CAP CID */ + BOOLEAN rem_addr_specified; + UINT8 chan_mode_mask; /* Supported channel modes (FCR) */ + BD_ADDR rem_dev_address; + UINT16 psm; + UINT16 rem_mtu_size; + + BOOLEAN is_congested; + BUFFER_Q tx_queue; /* Queue of buffers waiting to be sent */ + BUFFER_Q rx_queue; /* Queue of buffers waiting to be read */ + + UINT32 rx_queue_size; /* Total data count in rx_queue */ + + tGAP_CONN_CALLBACK *p_callback; /* Users callback function */ + + tL2CAP_CFG_INFO cfg; /* Configuration */ + tL2CAP_ERTM_INFO ertm_info; /* Pools and modes for ertm */ +} tGAP_CCB; + +typedef struct { +#if ((defined AMP_INCLUDED) && (AMP_INCLUDED == TRUE)) + tAMP_APPL_INFO reg_info; +#else + tL2CAP_APPL_INFO reg_info; /* L2CAP Registration info */ +#endif + tGAP_CCB ccb_pool[GAP_MAX_CONNECTIONS]; +} tGAP_CONN; + + +#if BLE_INCLUDED == TRUE +#define GAP_MAX_CHAR_NUM 4 + +typedef struct { + UINT16 handle; + UINT16 uuid; + tGAP_BLE_ATTR_VALUE attr_value; +} tGAP_ATTR; +#endif +/********************************************************************** +** M A I N C O N T R O L B L O C K +***********************************************************************/ + +#define GAP_MAX_CL GATT_CL_MAX_LCB + +typedef struct { + UINT16 uuid; + tGAP_BLE_CMPL_CBACK *p_cback; +} tGAP_BLE_REQ; + +typedef struct { + BD_ADDR bda; + tGAP_BLE_CMPL_CBACK *p_cback; + UINT16 conn_id; + UINT16 cl_op_uuid; + BOOLEAN in_use; + BOOLEAN connected; + BUFFER_Q pending_req_q; + +} tGAP_CLCB; + +typedef struct { + tGAP_INFO blk[GAP_MAX_BLOCKS]; + tBTM_CMPL_CB *btm_cback[GAP_MAX_BLOCKS]; + UINT8 trace_level; + tGAP_FINDADDR_CB findaddr_cb; /* Contains the control block for finding a device addr */ + tBTM_INQ_INFO *cur_inqptr; + +#if GAP_CONN_INCLUDED == TRUE + tGAP_CONN conn; +#endif + + /* LE GAP attribute database */ +#if BLE_INCLUDED == TRUE + tGAP_ATTR gatt_attr[GAP_MAX_CHAR_NUM]; + tGAP_CLCB clcb[GAP_MAX_CL]; /* connection link*/ + tGATT_IF gatt_if; +#endif +} tGAP_CB; + + +extern tGAP_CB gap_cb; +#if (GAP_CONN_INCLUDED == TRUE) +extern void gap_conn_init(void); +#endif +#if (BLE_INCLUDED == TRUE) +extern void gap_attr_db_init(void); +#endif + +#endif diff --git a/tools/sdk/include/bluedroid/gatt_api.h b/tools/sdk/include/bluedroid/gatt_api.h new file mode 100644 index 00000000..9360d4fb --- /dev/null +++ b/tools/sdk/include/bluedroid/gatt_api.h @@ -0,0 +1,1204 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ +#ifndef GATT_API_H +#define GATT_API_H + +#include "bt_target.h" +#include "gattdefs.h" +#include "btm_ble_api.h" + +/***************************************************************************** +** Constants +*****************************************************************************/ +/* Success code and error codes */ +#define GATT_SUCCESS 0x00 +#define GATT_INVALID_HANDLE 0x01 +#define GATT_READ_NOT_PERMIT 0x02 +#define GATT_WRITE_NOT_PERMIT 0x03 +#define GATT_INVALID_PDU 0x04 +#define GATT_INSUF_AUTHENTICATION 0x05 +#define GATT_REQ_NOT_SUPPORTED 0x06 +#define GATT_INVALID_OFFSET 0x07 +#define GATT_INSUF_AUTHORIZATION 0x08 +#define GATT_PREPARE_Q_FULL 0x09 +#define GATT_NOT_FOUND 0x0a +#define GATT_NOT_LONG 0x0b +#define GATT_INSUF_KEY_SIZE 0x0c +#define GATT_INVALID_ATTR_LEN 0x0d +#define GATT_ERR_UNLIKELY 0x0e +#define GATT_INSUF_ENCRYPTION 0x0f +#define GATT_UNSUPPORT_GRP_TYPE 0x10 +#define GATT_INSUF_RESOURCE 0x11 + + +#define GATT_ILLEGAL_PARAMETER 0x87 +#define GATT_NO_RESOURCES 0x80 +#define GATT_INTERNAL_ERROR 0x81 +#define GATT_WRONG_STATE 0x82 +#define GATT_DB_FULL 0x83 +#define GATT_BUSY 0x84 +#define GATT_ERROR 0x85 +#define GATT_CMD_STARTED 0x86 +#define GATT_PENDING 0x88 +#define GATT_AUTH_FAIL 0x89 +#define GATT_MORE 0x8a +#define GATT_INVALID_CFG 0x8b +#define GATT_SERVICE_STARTED 0x8c +#define GATT_ENCRYPED_MITM GATT_SUCCESS +#define GATT_ENCRYPED_NO_MITM 0x8d +#define GATT_NOT_ENCRYPTED 0x8e +#define GATT_CONGESTED 0x8f +#define GATT_STACK_RSP 0x90 +#define GATT_APP_RSP 0x91 + +/* 0xE0 ~ 0xFC reserved for future use */ +#define GATT_CCC_CFG_ERR 0xFD /* Client Characteristic Configuration Descriptor Improperly Configured */ +#define GATT_PRC_IN_PROGRESS 0xFE /* Procedure Already in progress */ +#define GATT_OUT_OF_RANGE 0xFF /* Attribute value out of range */ +typedef UINT8 tGATT_STATUS; + + +#define GATT_RSP_ERROR 0x01 +#define GATT_REQ_MTU 0x02 +#define GATT_RSP_MTU 0x03 +#define GATT_REQ_FIND_INFO 0x04 +#define GATT_RSP_FIND_INFO 0x05 +#define GATT_REQ_FIND_TYPE_VALUE 0x06 +#define GATT_RSP_FIND_TYPE_VALUE 0x07 +#define GATT_REQ_READ_BY_TYPE 0x08 +#define GATT_RSP_READ_BY_TYPE 0x09 +#define GATT_REQ_READ 0x0A +#define GATT_RSP_READ 0x0B +#define GATT_REQ_READ_BLOB 0x0C +#define GATT_RSP_READ_BLOB 0x0D +#define GATT_REQ_READ_MULTI 0x0E +#define GATT_RSP_READ_MULTI 0x0F +#define GATT_REQ_READ_BY_GRP_TYPE 0x10 +#define GATT_RSP_READ_BY_GRP_TYPE 0x11 +#define GATT_REQ_WRITE 0x12 /* 0001-0010 (write)*/ +#define GATT_RSP_WRITE 0x13 +#define GATT_CMD_WRITE 0x52 /* changed in V4.0 01001-0010(write cmd)*/ +#define GATT_REQ_PREPARE_WRITE 0x16 +#define GATT_RSP_PREPARE_WRITE 0x17 +#define GATT_REQ_EXEC_WRITE 0x18 +#define GATT_RSP_EXEC_WRITE 0x19 +#define GATT_HANDLE_VALUE_NOTIF 0x1B +#define GATT_HANDLE_VALUE_IND 0x1D +#define GATT_HANDLE_VALUE_CONF 0x1E +#define GATT_SIGN_CMD_WRITE 0xD2 /* changed in V4.0 1101-0010 (signed write) see write cmd above*/ +#define GATT_OP_CODE_MAX GATT_HANDLE_VALUE_CONF + 1 /* 0x1E = 30 + 1 = 31*/ + + +#define GATT_HANDLE_IS_VALID(x) ((x) != 0) + +#define GATT_CONN_UNKNOWN 0 +#define GATT_CONN_L2C_FAILURE 1 /* general L2cap failure */ +#define GATT_CONN_TIMEOUT HCI_ERR_CONNECTION_TOUT /* 0x08 connection timeout */ +#define GATT_CONN_TERMINATE_PEER_USER HCI_ERR_PEER_USER /* 0x13 connection terminate by peer user */ +#define GATT_CONN_TERMINATE_LOCAL_HOST HCI_ERR_CONN_CAUSE_LOCAL_HOST /* 0x16 connectionterminated by local host */ +#define GATT_CONN_FAIL_ESTABLISH HCI_ERR_CONN_FAILED_ESTABLISHMENT/* 0x03E connection fail to establish */ +#define GATT_CONN_LMP_TIMEOUT HCI_ERR_LMP_RESPONSE_TIMEOUT /* 0x22 connection fail for LMP response tout */ +#define GATT_CONN_CANCEL L2CAP_CONN_CANCEL /* 0x0100 L2CAP connection cancelled */ +typedef UINT16 tGATT_DISCONN_REASON; + +/* MAX GATT MTU size +*/ +#ifndef GATT_MAX_MTU_SIZE +#define GATT_MAX_MTU_SIZE 517 +#endif + +/* max legth of an attribute value +*/ +#ifndef GATT_MAX_ATTR_LEN +#define GATT_MAX_ATTR_LEN 600 +#endif + +/* default GATT MTU size over LE link +*/ +#define GATT_DEF_BLE_MTU_SIZE 23 + +/* invalid connection ID +*/ +#define GATT_INVALID_CONN_ID 0xFFFF + +#ifndef GATT_CL_MAX_LCB +#define GATT_CL_MAX_LCB 12 // 22 +#endif + +#ifndef GATT_MAX_SCCB +#define GATT_MAX_SCCB 10 +#endif + + +/* GATT notification caching timer, default to be three seconds +*/ +#ifndef GATTC_NOTIF_TIMEOUT +#define GATTC_NOTIF_TIMEOUT 3 +#endif + +/***************************************************************************** +** GATT Structure Definition +*****************************************************************************/ + +/* Attribute permissions +*/ +#define GATT_PERM_READ (1 << 0) /* bit 0 */ +#define GATT_PERM_READ_ENCRYPTED (1 << 1) /* bit 1 */ +#define GATT_PERM_READ_ENC_MITM (1 << 2) /* bit 2 */ +#define GATT_PERM_WRITE (1 << 4) /* bit 4 */ +#define GATT_PERM_WRITE_ENCRYPTED (1 << 5) /* bit 5 */ +#define GATT_PERM_WRITE_ENC_MITM (1 << 6) /* bit 6 */ +#define GATT_PERM_WRITE_SIGNED (1 << 7) /* bit 7 */ +#define GATT_PERM_WRITE_SIGNED_MITM (1 << 8) /* bit 8 */ +typedef UINT16 tGATT_PERM; + +#define GATT_ENCRYPT_KEY_SIZE_MASK (0xF000) /* the MS nibble of tGATT_PERM; key size 7=0; size 16=9 */ + +#define GATT_READ_ALLOWED (GATT_PERM_READ | GATT_PERM_READ_ENCRYPTED | GATT_PERM_READ_ENC_MITM) +#define GATT_READ_AUTH_REQUIRED (GATT_PERM_READ_ENCRYPTED) +#define GATT_READ_MITM_REQUIRED (GATT_PERM_READ_ENC_MITM) +#define GATT_READ_ENCRYPTED_REQUIRED (GATT_PERM_READ_ENCRYPTED | GATT_PERM_READ_ENC_MITM) + + +#define GATT_WRITE_ALLOWED (GATT_PERM_WRITE | GATT_PERM_WRITE_ENCRYPTED | GATT_PERM_WRITE_ENC_MITM | \ + GATT_PERM_WRITE_SIGNED | GATT_PERM_WRITE_SIGNED_MITM) + +#define GATT_WRITE_AUTH_REQUIRED (GATT_PERM_WRITE_ENCRYPTED | GATT_PERM_WRITE_SIGNED) + +#define GATT_WRITE_MITM_REQUIRED (GATT_PERM_WRITE_ENC_MITM | GATT_PERM_WRITE_SIGNED_MITM) + +#define GATT_WRITE_ENCRYPTED_PERM (GATT_PERM_WRITE_ENCRYPTED | GATT_PERM_WRITE_ENC_MITM) + +#define GATT_WRITE_SIGNED_PERM (GATT_PERM_WRITE_SIGNED | GATT_PERM_WRITE_SIGNED_MITM) + + +/* Characteristic properties +*/ +#define GATT_CHAR_PROP_BIT_BROADCAST (1 << 0) +#define GATT_CHAR_PROP_BIT_READ (1 << 1) +#define GATT_CHAR_PROP_BIT_WRITE_NR (1 << 2) +#define GATT_CHAR_PROP_BIT_WRITE (1 << 3) +#define GATT_CHAR_PROP_BIT_NOTIFY (1 << 4) +#define GATT_CHAR_PROP_BIT_INDICATE (1 << 5) +#define GATT_CHAR_PROP_BIT_AUTH (1 << 6) +#define GATT_CHAR_PROP_BIT_EXT_PROP (1 << 7) +typedef UINT8 tGATT_CHAR_PROP; + + +/* Format of the value of a characteristic. enumeration type +*/ +enum { + GATT_FORMAT_RES, /* rfu */ + GATT_FORMAT_BOOL, /* 0x01 boolean */ + GATT_FORMAT_2BITS, /* 0x02 2 bit */ + GATT_FORMAT_NIBBLE, /* 0x03 nibble */ + GATT_FORMAT_UINT8, /* 0x04 uint8 */ + GATT_FORMAT_UINT12, /* 0x05 uint12 */ + GATT_FORMAT_UINT16, /* 0x06 uint16 */ + GATT_FORMAT_UINT24, /* 0x07 uint24 */ + GATT_FORMAT_UINT32, /* 0x08 uint32 */ + GATT_FORMAT_UINT48, /* 0x09 uint48 */ + GATT_FORMAT_UINT64, /* 0x0a uint64 */ + GATT_FORMAT_UINT128, /* 0x0B uint128 */ + GATT_FORMAT_SINT8, /* 0x0C signed 8 bit integer */ + GATT_FORMAT_SINT12, /* 0x0D signed 12 bit integer */ + GATT_FORMAT_SINT16, /* 0x0E signed 16 bit integer */ + GATT_FORMAT_SINT24, /* 0x0F signed 24 bit integer */ + GATT_FORMAT_SINT32, /* 0x10 signed 32 bit integer */ + GATT_FORMAT_SINT48, /* 0x11 signed 48 bit integer */ + GATT_FORMAT_SINT64, /* 0x12 signed 64 bit integer */ + GATT_FORMAT_SINT128, /* 0x13 signed 128 bit integer */ + GATT_FORMAT_FLOAT32, /* 0x14 float 32 */ + GATT_FORMAT_FLOAT64, /* 0x15 float 64*/ + GATT_FORMAT_SFLOAT, /* 0x16 IEEE-11073 16 bit SFLOAT */ + GATT_FORMAT_FLOAT, /* 0x17 IEEE-11073 32 bit SFLOAT */ + GATT_FORMAT_DUINT16, /* 0x18 IEEE-20601 format */ + GATT_FORMAT_UTF8S, /* 0x19 UTF-8 string */ + GATT_FORMAT_UTF16S, /* 0x1a UTF-16 string */ + GATT_FORMAT_STRUCT, /* 0x1b Opaque structure*/ + GATT_FORMAT_MAX /* 0x1c or above reserved */ +}; +typedef UINT8 tGATT_FORMAT; + +/* Characteristic Presentation Format Descriptor value +*/ +typedef struct { + UINT16 unit; /* as UUIUD defined by SIG */ + UINT16 descr; /* as UUID as defined by SIG */ + tGATT_FORMAT format; + INT8 exp; + UINT8 name_spc; /* The name space of the description */ +} tGATT_CHAR_PRES; + +/* Characteristic Report reference Descriptor format +*/ +typedef struct { + UINT8 rpt_id; /* report ID */ + UINT8 rpt_type; /* report type */ +} tGATT_CHAR_RPT_REF; + + +#define GATT_VALID_RANGE_MAX_SIZE 16 +typedef struct { + UINT8 format; + UINT16 len; + UINT8 lower_range[GATT_VALID_RANGE_MAX_SIZE]; /* in little endian format */ + UINT8 upper_range[GATT_VALID_RANGE_MAX_SIZE]; +} tGATT_VALID_RANGE; + +/* Characteristic Aggregate Format attribute value +*/ +#define GATT_AGGR_HANDLE_NUM_MAX 10 +typedef struct { + UINT8 num_handle; + UINT16 handle_list[GATT_AGGR_HANDLE_NUM_MAX]; +} tGATT_CHAR_AGGRE; + +/* Characteristic descriptor: Extended Properties value +*/ +#define GATT_CHAR_BIT_REL_WRITE 0x0001 /* permits reliable writes of the Characteristic Value */ +#define GATT_CHAR_BIT_WRITE_AUX 0x0002 /* permits writes to the characteristic descriptor */ + + +/* characteristic descriptor: client configuration value +*/ +#define GATT_CLT_CONFIG_NONE 0x0000 +#define GATT_CLT_CONFIG_NOTIFICATION 0x0001 +#define GATT_CLT_CONFIG_INDICATION 0x0002 +typedef UINT16 tGATT_CLT_CHAR_CONFIG; + + +/* characteristic descriptor: server configuration value +*/ +#define GATT_SVR_CONFIG_NONE 0x0000 +#define GATT_SVR_CONFIG_BROADCAST 0x0001 +typedef UINT16 tGATT_SVR_CHAR_CONFIG; + +/* Characteristic descriptor: Extended Properties value +*/ +#define GATT_CHAR_BIT_REL_WRITE 0x0001 /* permits reliable writes of the Characteristic Value */ +#define GATT_CHAR_BIT_WRITE_AUX 0x0002 /* permits writes to the characteristic descriptor */ + +/* authentication requirement +*/ +#define GATT_AUTH_REQ_NONE 0 +#define GATT_AUTH_REQ_NO_MITM 1 /* unauthenticated encryption */ +#define GATT_AUTH_REQ_MITM 2 /* authenticated encryption */ +#define GATT_AUTH_REQ_SIGNED_NO_MITM 3 +#define GATT_AUTH_REQ_SIGNED_MITM 4 +typedef UINT8 tGATT_AUTH_REQ; + +/* Attribute Value structure +*/ +typedef struct { + UINT16 conn_id; + UINT16 handle; /* attribute handle */ + UINT16 offset; /* attribute value offset, if no offfset is needed for the command, ignore it */ + UINT16 len; /* length of attribute value */ + tGATT_AUTH_REQ auth_req; /* authentication request */ + UINT8 value[GATT_MAX_ATTR_LEN]; /* the actual attribute value */ +} tGATT_VALUE; + +typedef struct{ + UINT16 attr_max_len; + UINT16 attr_len; + UINT8 *attr_val; +}tGATT_ATTR_VAL; + +typedef struct{ + uint8_t auto_rsp; +}tGATTS_ATTR_CONTROL; + +/* Union of the event data which is used in the server respond API to carry the server response information +*/ +typedef union { + /* data type member event */ + tGATT_VALUE attr_value; /* READ, HANDLE_VALUE_IND, PREPARE_WRITE */ + /* READ_BLOB, READ_BY_TYPE */ + UINT16 handle; /* WRITE, WRITE_BLOB */ + +} tGATTS_RSP; + +/* Transports for the primary service */ +#define GATT_TRANSPORT_LE BT_TRANSPORT_LE +#define GATT_TRANSPORT_BR_EDR BT_TRANSPORT_BR_EDR +#define GATT_TRANSPORT_LE_BR_EDR (BT_TRANSPORT_LE|BT_TRANSPORT_BR_EDR) +typedef UINT8 tGATT_TRANSPORT; + +#define GATT_PREP_WRITE_CANCEL 0x00 +#define GATT_PREP_WRITE_EXEC 0x01 +typedef UINT8 tGATT_EXEC_FLAG; + +/* read request always based on UUID */ +typedef struct { + UINT16 handle; + UINT16 offset; + BOOLEAN is_long; + BOOLEAN need_rsp; +} tGATT_READ_REQ; + +/* write request data */ +typedef struct { + UINT16 handle; /* attribute handle */ + UINT16 offset; /* attribute value offset, if no offfset is needed for the command, ignore it */ + UINT16 len; /* length of attribute value */ + UINT8 value[GATT_MAX_ATTR_LEN]; /* the actual attribute value */ + BOOLEAN need_rsp; /* need write response */ + BOOLEAN is_prep; /* is prepare write */ +} tGATT_WRITE_REQ; + +/* callback data for server access request from client */ +typedef union { + tGATT_READ_REQ read_req; /* read request, read by Type, read blob */ + + tGATT_WRITE_REQ write_req; /* write */ + /* prepare write */ + /* write blob */ + UINT16 handle; /* handle value confirmation */ + UINT16 mtu; /* MTU exchange request */ + tGATT_EXEC_FLAG exec_write; /* execute write */ +} tGATTS_DATA; + +typedef UINT8 tGATT_SERV_IF; /* GATT Service Interface */ + +enum { + GATTS_REQ_TYPE_READ = 1, /* Attribute read request */ + GATTS_REQ_TYPE_WRITE, /* Attribute write request */ + GATTS_REQ_TYPE_WRITE_EXEC, /* Execute write */ + GATTS_REQ_TYPE_MTU, /* MTU exchange information */ + GATTS_REQ_TYPE_CONF /* handle value confirmation */ +}; +typedef UINT8 tGATTS_REQ_TYPE; + + + +/* Client Used Data Structure +*/ +/* definition of different discovery types */ +enum { + GATT_DISC_SRVC_ALL = 1, /* discover all services */ + GATT_DISC_SRVC_BY_UUID, /* discover service of a special type */ + GATT_DISC_INC_SRVC, /* discover the included service within a service */ + GATT_DISC_CHAR, /* discover characteristics of a service with/without type requirement */ + GATT_DISC_CHAR_DSCPT, /* discover characteristic descriptors of a character */ + GATT_DISC_MAX /* maximnun discover type */ +}; +typedef UINT8 tGATT_DISC_TYPE; + +/* Discover parameters of different discovery types +*/ +typedef struct { + tBT_UUID service; + UINT16 s_handle; + UINT16 e_handle; +} tGATT_DISC_PARAM; + +/* GATT read type enumeration +*/ +enum { + GATT_READ_BY_TYPE = 1, + GATT_READ_BY_HANDLE, + GATT_READ_MULTIPLE, + GATT_READ_CHAR_VALUE, + GATT_READ_PARTIAL, + GATT_READ_MAX +}; +typedef UINT8 tGATT_READ_TYPE; + +/* Read By Type Request (GATT_READ_BY_TYPE) Data +*/ +typedef struct { + tGATT_AUTH_REQ auth_req; + UINT16 s_handle; + UINT16 e_handle; + tBT_UUID uuid; +} tGATT_READ_BY_TYPE; + +/* GATT_READ_MULTIPLE request data +*/ +#define GATT_MAX_READ_MULTI_HANDLES 10 /* Max attributes to read in one request */ +typedef struct { + tGATT_AUTH_REQ auth_req; + UINT16 num_handles; /* number of handles to read */ + UINT16 handles[GATT_MAX_READ_MULTI_HANDLES]; /* handles list to be read */ +} tGATT_READ_MULTI; + +/* Read By Handle Request (GATT_READ_BY_HANDLE) data */ +typedef struct { + tGATT_AUTH_REQ auth_req; + UINT16 handle; +} tGATT_READ_BY_HANDLE; + +/* READ_BT_HANDLE_Request data */ +typedef struct { + tGATT_AUTH_REQ auth_req; + UINT16 handle; + UINT16 offset; +} tGATT_READ_PARTIAL; + +/* Read Request Data +*/ +typedef union { + tGATT_READ_BY_TYPE service; + tGATT_READ_BY_TYPE char_type; /* characterisitc type */ + tGATT_READ_MULTI read_multiple; + tGATT_READ_BY_HANDLE by_handle; + tGATT_READ_PARTIAL partial; +} tGATT_READ_PARAM; + +/* GATT write type enumeration */ +enum { + GATT_WRITE_NO_RSP = 1, + GATT_WRITE , + GATT_WRITE_PREPARE +}; +typedef UINT8 tGATT_WRITE_TYPE; + +/* Client Operation Complete Callback Data +*/ +typedef union { + tGATT_VALUE att_value; + UINT16 mtu; + UINT16 handle; +} tGATT_CL_COMPLETE; + +/* GATT client operation type, used in client callback function +*/ +#define GATTC_OPTYPE_NONE 0 +#define GATTC_OPTYPE_DISCOVERY 1 +#define GATTC_OPTYPE_READ 2 +#define GATTC_OPTYPE_WRITE 3 +#define GATTC_OPTYPE_EXE_WRITE 4 +#define GATTC_OPTYPE_CONFIG 5 +#define GATTC_OPTYPE_NOTIFICATION 6 +#define GATTC_OPTYPE_INDICATION 7 +typedef UINT8 tGATTC_OPTYPE; + +/* characteristic declaration +*/ +typedef struct { + tGATT_CHAR_PROP char_prop; /* characterisitc properties */ + UINT16 val_handle; /* characteristic value attribute handle */ + tBT_UUID char_uuid; /* characteristic UUID type */ +} tGATT_CHAR_DCLR_VAL; + +/* primary service group data +*/ +typedef struct { + UINT16 e_handle; /* ending handle of the group */ + tBT_UUID service_type; /* group type */ +} tGATT_GROUP_VALUE; + + +/* included service attribute value +*/ +typedef struct { + tBT_UUID service_type; /* included service UUID */ + UINT16 s_handle; /* starting handle */ + UINT16 e_handle; /* ending handle */ +} tGATT_INCL_SRVC; + +typedef union { + tGATT_INCL_SRVC incl_service; /* include service value */ + tGATT_GROUP_VALUE group_value; /* Service UUID type. + This field is used with GATT_DISC_SRVC_ALL + or GATT_DISC_SRVC_BY_UUID + type of discovery result callback. */ + + UINT16 handle; /* When used with GATT_DISC_INC_SRVC type discovery result, + it is the included service starting handle.*/ + + tGATT_CHAR_DCLR_VAL dclr_value; /* Characteristic declaration value. + This field is used with GATT_DISC_CHAR type discovery.*/ +} tGATT_DISC_VALUE; + +/* discover result record +*/ +typedef struct { + tBT_UUID type; + UINT16 handle; + tGATT_DISC_VALUE value; +} tGATT_DISC_RES; + + +#define GATT_LINK_IDLE_TIMEOUT_WHEN_NO_APP 0 /* start a idle timer for this duration + when no application need to use the link */ + +#define GATT_LINK_NO_IDLE_TIMEOUT 0xFFFF + +#define GATT_INVALID_ACL_HANDLE 0xFFFF +/* discover result callback function */ +typedef void (tGATT_DISC_RES_CB) (UINT16 conn_id, tGATT_DISC_TYPE disc_type, + tGATT_DISC_RES *p_data); + +/* discover complete callback function */ +typedef void (tGATT_DISC_CMPL_CB) (UINT16 conn_id, tGATT_DISC_TYPE disc_type, tGATT_STATUS status); + +/* Define a callback function for when read/write/disc/config operation is completed. */ +typedef void (tGATT_CMPL_CBACK) (UINT16 conn_id, tGATTC_OPTYPE op, tGATT_STATUS status, + tGATT_CL_COMPLETE *p_data); + +/* Define a callback function when an initialized connection is established. */ +typedef void (tGATT_CONN_CBACK) (tGATT_IF gatt_if, BD_ADDR bda, UINT16 conn_id, BOOLEAN connected, + tGATT_DISCONN_REASON reason, tBT_TRANSPORT transport); + +/* attribute request callback for ATT server */ +typedef void (tGATT_REQ_CBACK )(UINT16 conn_id, UINT32 trans_id, tGATTS_REQ_TYPE type, + tGATTS_DATA *p_data); + +/* channel congestion/uncongestion callback */ +typedef void (tGATT_CONGESTION_CBACK )(UINT16 conn_id, BOOLEAN congested); + +/* Define a callback function when encryption is established. */ +typedef void (tGATT_ENC_CMPL_CB)(tGATT_IF gatt_if, BD_ADDR bda); + + +/* Define the structure that applications use to register with +** GATT. This structure includes callback functions. All functions +** MUST be provided. +*/ +typedef struct { + tGATT_CONN_CBACK *p_conn_cb; + tGATT_CMPL_CBACK *p_cmpl_cb; + tGATT_DISC_RES_CB *p_disc_res_cb; + tGATT_DISC_CMPL_CB *p_disc_cmpl_cb; + tGATT_REQ_CBACK *p_req_cb; + tGATT_ENC_CMPL_CB *p_enc_cmpl_cb; + tGATT_CONGESTION_CBACK *p_congestion_cb; +} tGATT_CBACK; + +/*********************** Start Handle Management Definitions ********************** +*/ + + +typedef struct { + tBT_UUID app_uuid128; + tBT_UUID svc_uuid; + UINT16 svc_inst; + UINT16 s_handle; + UINT16 e_handle; + BOOLEAN is_primary; /* primary service or secondary */ +} tGATTS_HNDL_RANGE; + + + +#define GATTS_SRV_CHG_CMD_ADD_CLIENT 1 +#define GATTS_SRV_CHG_CMD_UPDATE_CLIENT 2 +#define GATTS_SRV_CHG_CMD_REMOVE_CLIENT 3 +#define GATTS_SRV_CHG_CMD_READ_NUM_CLENTS 4 +#define GATTS_SRV_CHG_CMD_READ_CLENT 5 +typedef UINT8 tGATTS_SRV_CHG_CMD; + +typedef struct { + BD_ADDR bda; + BOOLEAN srv_changed; +} tGATTS_SRV_CHG; + + +typedef union { + tGATTS_SRV_CHG srv_chg; + UINT8 client_read_index; /* only used for sequential reading client srv chg info */ +} tGATTS_SRV_CHG_REQ; + +typedef union { + tGATTS_SRV_CHG srv_chg; + UINT8 num_clients; +} tGATTS_SRV_CHG_RSP; + + + +typedef struct { + tGATTS_HNDL_RANGE *p_new_srv_start; +} tGATTS_PENDING_NEW_SRV_START; + +/* Attibute server handle ranges NV storage callback functions +*/ +typedef void (tGATTS_NV_SAVE_CBACK)(BOOLEAN is_saved, tGATTS_HNDL_RANGE *p_hndl_range); +typedef BOOLEAN (tGATTS_NV_SRV_CHG_CBACK)(tGATTS_SRV_CHG_CMD cmd, tGATTS_SRV_CHG_REQ *p_req, + tGATTS_SRV_CHG_RSP *p_rsp); + +typedef struct { + tGATTS_NV_SAVE_CBACK *p_nv_save_callback; + tGATTS_NV_SRV_CHG_CBACK *p_srv_chg_callback; +} tGATT_APPL_INFO; + +/* +*********************** End Handle Management Definitions **********************/ + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif + +/******************************************************************************* +** +** Function GATT_SetTraceLevel +** +** Description This function sets the trace level. If called with +** a value of 0xFF, it simply returns the current trace level. +** +** Returns The new or current trace level +** +*******************************************************************************/ +extern UINT8 GATT_SetTraceLevel (UINT8 new_level); + + +/*******************************************************************************/ +/* GATT Profile API Functions */ +/*******************************************************************************/ +/* GATT Profile Server Functions */ +/*******************************************************************************/ +/******************************************************************************* +** +** Function GATTS_AddHandleRange +** +** Description This function add the allocated handles range for the specifed +** application UUID, service UUID and service instance +** +** Parameter p_hndl_range: pointer to allocated handles information +** +** Returns TRUE if handle range is added sucessfully; otherwise FALSE. +** +*******************************************************************************/ + +extern BOOLEAN GATTS_AddHandleRange(tGATTS_HNDL_RANGE *p_hndl_range); + +/******************************************************************************* +** +** Function GATTS_NVRegister +** +** Description Application manager calls this function to register for +** NV save callback function. There can be one and only one +** NV save callback function. +** +** Parameter p_cb_info : callback informaiton +** +** Returns TRUE if registered OK, else FALSE +** +*******************************************************************************/ +extern BOOLEAN GATTS_NVRegister (tGATT_APPL_INFO *p_cb_info); + + +/******************************************************************************* +** +** Function GATTS_CreateService +** +** Description This function is called to reserve a block of handles for a service. +** +** *** It should be called only once per service instance *** +** +** Parameter gatt_if : application if +** p_svc_uuid : service UUID +** svc_inst : instance of the service inside the application +** num_handles : number of handles needed by the service. +** is_pri : is a primary service or not. +** +** Returns service handle if sucessful, otherwise 0. +** +*******************************************************************************/ +extern UINT16 GATTS_CreateService (tGATT_IF gatt_if, tBT_UUID *p_svc_uuid, + UINT16 svc_inst, UINT16 num_handles, BOOLEAN is_pri); + + +/******************************************************************************* +** +** Function GATTS_AddIncludeService +** +** Description This function is called to add an included service. +** +** Parameter service_handle : To which service this included service is added to. +** include_svc_handle : included service handle. +** +** Returns included service attribute handle. If 0, add included service +** fail. +** +*******************************************************************************/ +extern UINT16 GATTS_AddIncludeService (UINT16 service_handle, + UINT16 include_svc_handle); + + +/******************************************************************************* +** +** Function GATTS_AddCharacteristic +** +** Description This function is called to add a characteristic into a service. +** It will add a characteristic declaration and characteristic +** value declaration into the service database identified by the +** service handle. +** +** Parameter service_handle : To which service this included service is added to. +** char_uuid : Characteristic UUID. +** perm : Characteristic value declaration attribute permission. +** property : Characteristic Properties +** +** Returns Characteristic value declaration attribute handle. 0 if add +** characteristic failed. +** +*******************************************************************************/ +extern UINT16 GATTS_AddCharacteristic (UINT16 service_handle, tBT_UUID *p_char_uuid, + tGATT_PERM perm, tGATT_CHAR_PROP property, + tGATT_ATTR_VAL *attr_val, tGATTS_ATTR_CONTROL *control); + +/******************************************************************************* +** +** Function GATTS_AddCharDescriptor +** +** Description This function is called to add a characteristic descriptor +** into a service database. Add descriptor should follow add char +** to which it belongs, and next add char should be done only +** after all add descriptors for the previous char. +** +** Parameter service_handle : To which service this characteristic descriptor +** is added to. +** perm : Characteristic value declaration attribute +** permission. +** p_descr_uuid : Characteristic descriptor UUID. +** +** Returns Characteristic descriptor attribute handle. 0 if add +** characteristic descriptor failed. +** +*******************************************************************************/ +extern UINT16 GATTS_AddCharDescriptor (UINT16 service_handle, tGATT_PERM perm, + tBT_UUID *p_descr_uuid, tGATT_ATTR_VAL *attr_val, + tGATTS_ATTR_CONTROL *control); + +/******************************************************************************* +** +** Function GATTS_DeleteService +** +** Description This function is called to delete a service. +** +** Parameter gatt_if : application interface +** p_svc_uuid : service UUID +** svc_inst : instance of the service inside the application +** +** Returns TRUE if operation succeed, FALSE if handle block was not found. +** +*******************************************************************************/ +extern BOOLEAN GATTS_DeleteService (tGATT_IF gatt_if, tBT_UUID *p_svc_uuid, + UINT16 svc_inst); + +/******************************************************************************* +** +** Function GATTS_StartService +** +** Description This function is called to start a service with GATT +** +** Parameter gatt_if : service handle. +** p_cback : application service callback functions. +** sup_transport : supported transport(s) for this primary service +** +** return GATT_SUCCESS if sucessfully started; otherwise error code. +** +*******************************************************************************/ +extern tGATT_STATUS GATTS_StartService (tGATT_IF gatt_if, UINT16 service_handle, + tGATT_TRANSPORT sup_transport); + + +/******************************************************************************* +** +** Function GATTS_StopService +** +** Description This function is called to stop a service +** +** Parameter service_handle : this is the start handle of a service +** +** Returns None. +** +*******************************************************************************/ +extern void GATTS_StopService (UINT16 service_handle); + + +/******************************************************************************* +** +** Function GATTs_HandleValueIndication +** +** Description This function sends a handle value indication to a client. +** +** Parameter conn_id: connection identifier. +** attr_handle: Attribute handle of this handle value indication. +** val_len: Length of the indicated attribute value. +** p_val: Pointer to the indicated attribute value data. +** +** Returns GATT_SUCCESS if sucessfully sent or queued; otherwise error code. +** +*******************************************************************************/ +extern tGATT_STATUS GATTS_HandleValueIndication (UINT16 conn_id, + UINT16 attr_handle, + UINT16 val_len, UINT8 *p_val); + +/******************************************************************************* +** +** Function GATTS_HandleValueNotification +** +** Description This function sends a handle value notification to a client. +** +** Parameter conn_id: connection identifier. +** attr_handle: Attribute handle of this handle value indication. +** val_len: Length of the indicated attribute value. +** p_val: Pointer to the indicated attribute value data. +** +** Returns GATT_SUCCESS if sucessfully sent; otherwise error code. +** +*******************************************************************************/ +extern tGATT_STATUS GATTS_HandleValueNotification (UINT16 conn_id, UINT16 attr_handle, + UINT16 val_len, UINT8 *p_val); + + +/******************************************************************************* +** +** Function GATTS_SendRsp +** +** Description This function sends the server response to client. +** +** Parameter conn_id: connection identifier. +** trans_id: transaction id +** status: response status +** p_msg: pointer to message parameters structure. +** +** Returns GATT_SUCCESS if sucessfully sent; otherwise error code. +** +*******************************************************************************/ +extern tGATT_STATUS GATTS_SendRsp (UINT16 conn_id, UINT32 trans_id, + tGATT_STATUS status, tGATTS_RSP *p_msg); + + +/******************************************************************************* +** +** Function GATTS_SetAttributeValue +** +** Description This function sends to set the attribute value . +** +** Parameter attr_handle:the attribute handle +** length: the attribute length +** value: the value to be set to the attribute in the database +** +** Returns GATT_SUCCESS if sucessfully sent; otherwise error code. +** +*******************************************************************************/ +tGATT_STATUS GATTS_SetAttributeValue(UINT16 attr_handle, UINT16 length, UINT8 *value); + + +/******************************************************************************* +** +** Function GATTS_GetAttributeValue +** +** Description This function sends to set the attribute value . +** +** Parameter attr_handle: the attribute handle +** length:the attribute value length in the database +** value: the attribute value out put +** +** Returns GATT_SUCCESS if sucessfully sent; otherwise error code. +** +*******************************************************************************/ +tGATT_STATUS GATTS_GetAttributeValue(UINT16 attr_handle, UINT16 *length, UINT8 **value); + + + +/*******************************************************************************/ +/* GATT Profile Client Functions */ +/*******************************************************************************/ + +/******************************************************************************* +** +** Function GATTC_ConfigureMTU +** +** Description This function is called to configure the ATT MTU size for +** a connection on an LE transport. +** +** Parameters conn_id: connection identifier. +** mtu - attribute MTU size.. +** +** Returns GATT_SUCCESS if command started successfully. +** +*******************************************************************************/ +extern tGATT_STATUS GATTC_ConfigureMTU (UINT16 conn_id, UINT16 mtu); + +/******************************************************************************* +** +** Function GATTC_Discover +** +** Description This function is called to do a discovery procedure on ATT server. +** +** Parameters conn_id: connection identifier. +** disc_type:discovery type. +** p_param: parameters of discovery requirement. +** +** Returns GATT_SUCCESS if command received/sent successfully. +** +*******************************************************************************/ +extern tGATT_STATUS GATTC_Discover (UINT16 conn_id, + tGATT_DISC_TYPE disc_type, + tGATT_DISC_PARAM *p_param ); +/******************************************************************************* +** +** Function GATTC_Read +** +** Description This function is called to read the value of an attribute from +** the server. +** +** Parameters conn_id: connection identifier. +** type - attribute read type. +** p_read - read operation parameters. +** +** Returns GATT_SUCCESS if command started successfully. +** +*******************************************************************************/ +extern tGATT_STATUS GATTC_Read (UINT16 conn_id, tGATT_READ_TYPE type, + tGATT_READ_PARAM *p_read); + +/******************************************************************************* +** +** Function GATTC_Write +** +** Description This function is called to read the value of an attribute from +** the server. +** +** Parameters conn_id: connection identifier. +** type - attribute write type. +** p_write - write operation parameters. +** +** Returns GATT_SUCCESS if command started successfully. +** +*******************************************************************************/ +extern tGATT_STATUS GATTC_Write (UINT16 conn_id, tGATT_WRITE_TYPE type, + tGATT_VALUE *p_write); + + +/******************************************************************************* +** +** Function GATTC_ExecuteWrite +** +** Description This function is called to send an Execute write request to +** the server. +** +** Parameters conn_id: connection identifier. +** is_execute - to execute or cancel the prepare write requet(s) +** +** Returns GATT_SUCCESS if command started successfully. +** +*******************************************************************************/ +extern tGATT_STATUS GATTC_ExecuteWrite (UINT16 conn_id, BOOLEAN is_execute); + +/******************************************************************************* +** +** Function GATTC_SendHandleValueConfirm +** +** Description This function is called to send a handle value confirmation +** as response to a handle value notification from server. +** +** Parameters conn_id: connection identifier. +** handle: the handle of the attribute confirmation. +** +** Returns GATT_SUCCESS if command started successfully. +** +*******************************************************************************/ +extern tGATT_STATUS GATTC_SendHandleValueConfirm (UINT16 conn_id, UINT16 handle); + + +/******************************************************************************* +** +** Function GATT_SetIdleTimeout +** +** Description This function (common to both client and server) sets the idle +** timeout for a tansport connection +** +** Parameter bd_addr: target device bd address. +** idle_tout: timeout value in seconds. +** transport: trasnport option. +** +** Returns void +** +*******************************************************************************/ +extern void GATT_SetIdleTimeout (BD_ADDR bd_addr, UINT16 idle_tout, + tGATT_TRANSPORT transport); + + +/******************************************************************************* +** +** Function GATT_Register +** +** Description This function is called to register an application +** with GATT +** +** Parameter p_app_uuid128: Application UUID +** p_cb_info: callback functions. +** +** Returns 0 for error, otherwise the index of the client registered with GATT +** +*******************************************************************************/ +extern tGATT_IF GATT_Register (tBT_UUID *p_app_uuid128, tGATT_CBACK *p_cb_info); + +/******************************************************************************* +** +** Function GATT_Deregister +** +** Description This function deregistered the application from GATT. +** +** Parameters gatt_if: applicaiton interface. +** +** Returns None. +** +*******************************************************************************/ +extern void GATT_Deregister (tGATT_IF gatt_if); + +/******************************************************************************* +** +** Function GATT_StartIf +** +** Description This function is called after registration to start receiving +** callbacks for registered interface. Function may call back +** with connection status and queued notifications +** +** Parameter gatt_if: applicaiton interface. +** +** Returns None +** +*******************************************************************************/ +extern void GATT_StartIf (tGATT_IF gatt_if); + +/******************************************************************************* +** +** Function GATT_Connect +** +** Description This function initiate a connecttion to a remote device on GATT +** channel. +** +** Parameters gatt_if: applicaiton interface +** bd_addr: peer device address. +** is_direct: is a direct conenection or a background auto connection +** transport : Physical transport for GATT connection (BR/EDR or LE) +** +** Returns TRUE if connection started; FALSE if connection start failure. +** +*******************************************************************************/ +extern BOOLEAN GATT_Connect (tGATT_IF gatt_if, BD_ADDR bd_addr, + BOOLEAN is_direct, tBT_TRANSPORT transport); + + +/******************************************************************************* +** +** Function GATT_CancelConnect +** +** Description This function terminate the connection initaition to a remote +** device on GATT channel. +** +** Parameters gatt_if: client interface. If 0 used as unconditionally disconnect, +** typically used for direct connection cancellation. +** bd_addr: peer device address. +** is_direct: is a direct conenection or a background auto connection +** +** Returns TRUE if connection started; FALSE if connection start failure. +** +*******************************************************************************/ +extern BOOLEAN GATT_CancelConnect (tGATT_IF gatt_if, BD_ADDR bd_addr, + BOOLEAN is_direct); + +/******************************************************************************* +** +** Function GATT_Disconnect +** +** Description This function disconnect the GATT channel for this registered +** application. +** +** Parameters conn_id: connection identifier. +** +** Returns GATT_SUCCESS if disconnected. +** +*******************************************************************************/ +extern tGATT_STATUS GATT_Disconnect (UINT16 conn_id); + + + +/******************************************************************************* +** +** Function GATT_GetConnectionInfor +** +** Description This function use conn_id to find its associated BD address and applciation +** interface +** +** Parameters conn_id: connection id (input) +** p_gatt_if: applicaiton interface (output) +** bd_addr: peer device address. (output) +** transport : physical transport of the GATT connection (BR/EDR or LE) +** +** Returns TRUE the ligical link information is found for conn_id +** +*******************************************************************************/ +extern BOOLEAN GATT_GetConnectionInfor(UINT16 conn_id, tGATT_IF *p_gatt_if, + BD_ADDR bd_addr, tBT_TRANSPORT *p_transport); + + +/******************************************************************************* +** +** Function GATT_GetConnIdIfConnected +** +** Description This function find the conn_id if the logical link for BD address +** and applciation interface is connected +** +** Parameters gatt_if: applicaiton interface (input) +** bd_addr: peer device address. (input) +** p_conn_id: connection id (output) +** transport : physical transport of the GATT connection (BR/EDR or LE) +** +** Returns TRUE the ligical link is connected +** +*******************************************************************************/ +extern BOOLEAN GATT_GetConnIdIfConnected(tGATT_IF gatt_if, BD_ADDR bd_addr, + UINT16 *p_conn_id, tBT_TRANSPORT transport); + + +/******************************************************************************* +** +** Function GATT_Listen +** +** Description This function start or stop LE advertisement and listen for +** connection. +** +** Parameters gatt_if: applicaiton interface +** p_bd_addr: listen for specific address connection, or NULL for +** listen to all device connection. +** start: is a direct conenection or a background auto connection +** +** Returns TRUE if advertisement is started; FALSE if adv start failure. +** +*******************************************************************************/ +extern BOOLEAN GATT_Listen (tGATT_IF gatt_if, BOOLEAN start, BD_ADDR_PTR bd_addr); + +/******************************************************************************* +** +** Function GATT_ConfigServiceChangeCCC +** +** Description Configure service change indication on remote device +** +** Returns None. +** +*******************************************************************************/ +extern void GATT_ConfigServiceChangeCCC (BD_ADDR remote_bda, BOOLEAN enable, + tBT_TRANSPORT transport); + +#ifdef __cplusplus + +} +#endif + +#endif /* GATT_API_H */ diff --git a/tools/sdk/include/bluedroid/gatt_int.h b/tools/sdk/include/bluedroid/gatt_int.h new file mode 100644 index 00000000..c9622a24 --- /dev/null +++ b/tools/sdk/include/bluedroid/gatt_int.h @@ -0,0 +1,698 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef GATT_INT_H +#define GATT_INT_H + +#include "bt_target.h" + + +#include "bt_trace.h" +#include "gatt_api.h" +#include "btm_ble_api.h" +#include "btu.h" + +#include + + +#define GATT_CREATE_CONN_ID(tcb_idx, gatt_if) ((UINT16) ((((UINT8)(tcb_idx) ) << 8) | ((UINT8) (gatt_if)))) +#define GATT_GET_TCB_IDX(conn_id) ((UINT8) (((UINT16) (conn_id)) >> 8)) +#define GATT_GET_GATT_IF(conn_id) ((tGATT_IF)((UINT8) (conn_id))) + +#define GATT_GET_SR_REG_PTR(index) (&gatt_cb.sr_reg[(UINT8) (index)]); +#define GATT_TRANS_ID_MAX 0x0fffffff /* 4 MSB is reserved */ +#define GATT_RSP_BY_APP 0x00 +#define GATT_RSP_BY_STACK 0x01 +#define GATT_RSP_DEFAULT GATT_RSP_BY_APP //need to rsp by the app. + +/* security action for GATT write and read request */ +#define GATT_SEC_NONE 0 +#define GATT_SEC_OK 1 +#define GATT_SEC_SIGN_DATA 2 /* compute the signature for the write cmd */ +#define GATT_SEC_ENCRYPT 3 /* encrypt the link with current key */ +#define GATT_SEC_ENCRYPT_NO_MITM 4 /* unauthenticated encryption or better */ +#define GATT_SEC_ENCRYPT_MITM 5 /* authenticated encryption */ +#define GATT_SEC_ENC_PENDING 6 /* wait for link encryption pending */ +typedef UINT8 tGATT_SEC_ACTION; + + +#define GATT_ATTR_OP_SPT_MTU (0x00000001 << 0) +#define GATT_ATTR_OP_SPT_FIND_INFO (0x00000001 << 1) +#define GATT_ATTR_OP_SPT_FIND_BY_TYPE (0x00000001 << 2) +#define GATT_ATTR_OP_SPT_READ_BY_TYPE (0x00000001 << 3) +#define GATT_ATTR_OP_SPT_READ (0x00000001 << 4) +#define GATT_ATTR_OP_SPT_MULT_READ (0x00000001 << 5) +#define GATT_ATTR_OP_SPT_READ_BLOB (0x00000001 << 6) +#define GATT_ATTR_OP_SPT_READ_BY_GRP_TYPE (0x00000001 << 7) +#define GATT_ATTR_OP_SPT_WRITE (0x00000001 << 8) +#define GATT_ATTR_OP_SPT_WRITE_CMD (0x00000001 << 9) +#define GATT_ATTR_OP_SPT_PREP_WRITE (0x00000001 << 10) +#define GATT_ATTR_OP_SPT_EXE_WRITE (0x00000001 << 11) +#define GATT_ATTR_OP_SPT_HDL_VALUE_CONF (0x00000001 << 12) +#define GATT_ATTR_OP_SP_SIGN_WRITE (0x00000001 << 13) + +#define GATT_INDEX_INVALID 0xff + +#define GATT_PENDING_REQ_NONE 0 + + +#define GATT_WRITE_CMD_MASK 0xc0 /*0x1100-0000*/ +#define GATT_AUTH_SIGN_MASK 0x80 /*0x1000-0000*/ +#define GATT_AUTH_SIGN_LEN 12 + +#define GATT_HDR_SIZE 3 /* 1B opcode + 2B handle */ + +/* wait for ATT cmd response timeout value */ +#define GATT_WAIT_FOR_RSP_TOUT 30 +#define GATT_WAIT_FOR_DISC_RSP_TOUT 5 +#define GATT_REQ_RETRY_LIMIT 2 + +/* characteristic descriptor type */ +#define GATT_DESCR_EXT_DSCPTOR 1 /* Characteristic Extended Properties */ +#define GATT_DESCR_USER_DSCPTOR 2 /* Characteristic User Description */ +#define GATT_DESCR_CLT_CONFIG 3 /* Client Characteristic Configuration */ +#define GATT_DESCR_SVR_CONFIG 4 /* Server Characteristic Configuration */ +#define GATT_DESCR_PRES_FORMAT 5 /* Characteristic Presentation Format */ +#define GATT_DESCR_AGGR_FORMAT 6 /* Characteristic Aggregate Format */ +#define GATT_DESCR_VALID_RANGE 7 /* Characteristic Valid Range */ +#define GATT_DESCR_UNKNOWN 0xff + +#define GATT_SEC_FLAG_LKEY_UNAUTHED BTM_SEC_FLAG_LKEY_KNOWN +#define GATT_SEC_FLAG_LKEY_AUTHED BTM_SEC_FLAG_LKEY_AUTHED +#define GATT_SEC_FLAG_ENCRYPTED BTM_SEC_FLAG_ENCRYPTED +typedef UINT8 tGATT_SEC_FLAG; + +/* Find Information Response Type +*/ +#define GATT_INFO_TYPE_PAIR_16 0x01 +#define GATT_INFO_TYPE_PAIR_128 0x02 + +/* GATT client FIND_TYPE_VALUE_Request data */ +typedef struct { + tBT_UUID uuid; /* type of attribute to be found */ + UINT16 s_handle; /* starting handle */ + UINT16 e_handle; /* ending handle */ + UINT16 value_len; /* length of the attribute value */ + UINT8 value[GATT_MAX_MTU_SIZE]; /* pointer to the attribute value to be found */ +} tGATT_FIND_TYPE_VALUE; + +/* client request message to ATT protocol +*/ +typedef union { + tGATT_READ_BY_TYPE browse; /* read by type request */ + tGATT_FIND_TYPE_VALUE find_type_value;/* find by type value */ + tGATT_READ_MULTI read_multi; /* read multiple request */ + tGATT_READ_PARTIAL read_blob; /* read blob */ + tGATT_VALUE attr_value; /* write request */ + /* prepare write */ + /* write blob */ + UINT16 handle; /* read, handle value confirmation */ + UINT16 mtu; + tGATT_EXEC_FLAG exec_write; /* execute write */ +} tGATT_CL_MSG; + +/* error response strucutre */ +typedef struct { + UINT16 handle; + UINT8 cmd_code; + UINT8 reason; +} tGATT_ERROR; + +/* server response message to ATT protocol +*/ +typedef union { + /* data type member event */ + tGATT_VALUE attr_value; /* READ, HANDLE_VALUE_IND, PREPARE_WRITE */ + /* READ_BLOB, READ_BY_TYPE */ + tGATT_ERROR error; /* ERROR_RSP */ + UINT16 handle; /* WRITE, WRITE_BLOB */ + UINT16 mtu; /* exchange MTU request */ +} tGATT_SR_MSG; + +/* Characteristic declaration attribute value +*/ +typedef struct { + tGATT_CHAR_PROP property; + UINT16 char_val_handle; +} tGATT_CHAR_DECL; + +/* attribute value maintained in the server database +*/ +typedef union { + tBT_UUID uuid; /* service declaration */ + tGATT_CHAR_DECL char_decl; /* characteristic declaration */ + tGATT_INCL_SRVC incl_handle; /* included service */ + tGATT_ATTR_VAL attr_val; +} tGATT_ATTR_VALUE; + +/* Attribute UUID type +*/ +#define GATT_ATTR_UUID_TYPE_16 0 +#define GATT_ATTR_UUID_TYPE_128 1 +#define GATT_ATTR_UUID_TYPE_32 2 +typedef UINT8 tGATT_ATTR_UUID_TYPE; + +/* 16 bits UUID Attribute in server database +*/ +typedef struct { + void *p_next; /* pointer to the next attribute, either tGATT_ATTR16 or tGATT_ATTR128 */ + tGATT_ATTR_VALUE *p_value; + tGATT_ATTR_UUID_TYPE uuid_type; + tGATT_PERM permission; + tGATTS_ATTR_CONTROL control; + UINT16 handle; + UINT16 uuid; +} tGATT_ATTR16; + +/* 32 bits UUID Attribute in server database +*/ +typedef struct { + void *p_next; /* pointer to the next attribute, either tGATT_ATTR16, tGATT_ATTR32 or tGATT_ATTR128 */ + tGATT_ATTR_VALUE *p_value; + tGATT_ATTR_UUID_TYPE uuid_type; + tGATT_PERM permission; + tGATTS_ATTR_CONTROL control; + UINT16 handle; + UINT32 uuid; +} tGATT_ATTR32; + + +/* 128 bits UUID Attribute in server database +*/ +typedef struct { + void *p_next; /* pointer to the next attribute, either tGATT_ATTR16 or tGATT_ATTR128 */ + tGATT_ATTR_VALUE *p_value; + tGATT_ATTR_UUID_TYPE uuid_type; + tGATT_PERM permission; + tGATTS_ATTR_CONTROL control; + UINT16 handle; + UINT8 uuid[LEN_UUID_128]; +} tGATT_ATTR128; + +/* Service Database definition +*/ +typedef struct { + void *p_attr_list; /* pointer to the first attribute, either tGATT_ATTR16 or tGATT_ATTR128 */ + UINT8 *p_free_mem; /* Pointer to free memory */ + BUFFER_Q svc_buffer; /* buffer queue used for service database */ + UINT32 mem_free; /* Memory still available */ + UINT16 end_handle; /* Last handle number */ + UINT16 next_handle; /* Next usable handle value */ +} tGATT_SVC_DB; + +/* Data Structure used for GATT server */ +/* A GATT registration record consists of a handle, and 1 or more attributes */ +/* A service registration information record consists of beginning and ending */ +/* attribute handle, service UUID and a set of GATT server callback. */ +typedef struct { + tGATT_SVC_DB *p_db; /* pointer to the service database */ + tBT_UUID app_uuid; /* applicatino UUID */ + UINT32 sdp_handle; /* primamry service SDP handle */ + UINT16 service_instance; /* service instance number */ + UINT16 type; /* service type UUID, primary or secondary */ + UINT16 s_hdl; /* service starting handle */ + UINT16 e_hdl; /* service ending handle */ + tGATT_IF gatt_if; /* this service is belong to which application */ + BOOLEAN in_use; +} tGATT_SR_REG; + +#define GATT_LISTEN_TO_ALL 0xff +#define GATT_LISTEN_TO_NONE 0 + +/* Data Structure used for GATT server */ +/* An GATT registration record consists of a handle, and 1 or more attributes */ +/* A service registration information record consists of beginning and ending */ +/* attribute handle, service UUID and a set of GATT server callback. */ + +typedef struct { + tBT_UUID app_uuid128; + tGATT_CBACK app_cb; + tGATT_IF gatt_if; /* one based */ + BOOLEAN in_use; + UINT8 listening; /* if adv for all has been enabled */ +} tGATT_REG; + + + + +/* command queue for each connection */ +typedef struct { + BT_HDR *p_cmd; + UINT16 clcb_idx; + UINT8 op_code; + BOOLEAN to_send; +} tGATT_CMD_Q; + + +#if GATT_MAX_SR_PROFILES <= 8 +typedef UINT8 tGATT_APP_MASK; +#elif GATT_MAX_SR_PROFILES <= 16 +typedef UINT16 tGATT_APP_MASK; +#elif GATT_MAX_SR_PROFILES <= 32 +typedef UINT32 tGATT_APP_MASK; +#endif + +/* command details for each connection */ +typedef struct { + BT_HDR *p_rsp_msg; + UINT32 trans_id; + tGATT_READ_MULTI multi_req; + BUFFER_Q multi_rsp_q; + UINT16 handle; + UINT8 op_code; + UINT8 status; + UINT8 cback_cnt[GATT_MAX_APPS]; +} tGATT_SR_CMD; + +#define GATT_CH_CLOSE 0 +#define GATT_CH_CLOSING 1 +#define GATT_CH_CONN 2 +#define GATT_CH_CFG 3 +#define GATT_CH_OPEN 4 + +typedef UINT8 tGATT_CH_STATE; + +#define GATT_GATT_START_HANDLE 1 +#define GATT_GAP_START_HANDLE 20 +#define GATT_APP_START_HANDLE 40 + +typedef struct hdl_cfg { + UINT16 gatt_start_hdl; + UINT16 gap_start_hdl; + UINT16 app_start_hdl; +} tGATT_HDL_CFG; + +typedef struct hdl_list_elem { + struct hdl_list_elem *p_next; + struct hdl_list_elem *p_prev; + tGATTS_HNDL_RANGE asgn_range; /* assigned handle range */ + tGATT_SVC_DB svc_db; + BOOLEAN in_use; +} tGATT_HDL_LIST_ELEM; + +typedef struct { + tGATT_HDL_LIST_ELEM *p_first; + tGATT_HDL_LIST_ELEM *p_last; + UINT16 count; +} tGATT_HDL_LIST_INFO; + + +typedef struct srv_list_elem { + struct srv_list_elem *p_next; + struct srv_list_elem *p_prev; + UINT16 s_hdl; + UINT8 i_sreg; + BOOLEAN in_use; + BOOLEAN is_primary; +} tGATT_SRV_LIST_ELEM; + + +typedef struct { + tGATT_SRV_LIST_ELEM *p_last_primary; + tGATT_SRV_LIST_ELEM *p_first; + tGATT_SRV_LIST_ELEM *p_last; + UINT16 count; +} tGATT_SRV_LIST_INFO; + +typedef struct { + BUFFER_Q pending_enc_clcb; /* pending encryption channel q */ + tGATT_SEC_ACTION sec_act; + BD_ADDR peer_bda; + tBT_TRANSPORT transport; + UINT32 trans_id; + + UINT16 att_lcid; /* L2CAP channel ID for ATT */ + UINT16 payload_size; + + tGATT_CH_STATE ch_state; + UINT8 ch_flags; + + tGATT_IF app_hold_link[GATT_MAX_APPS]; + + /* server needs */ + /* server response data */ + tGATT_SR_CMD sr_cmd; + UINT16 indicate_handle; + BUFFER_Q pending_ind_q; + + TIMER_LIST_ENT conf_timer_ent; /* peer confirm to indication timer */ + + UINT8 prep_cnt[GATT_MAX_APPS]; + UINT8 ind_count; + + tGATT_CMD_Q cl_cmd_q[GATT_CL_MAX_LCB]; + TIMER_LIST_ENT ind_ack_timer_ent; /* local app confirm to indication timer */ + UINT8 pending_cl_req; + UINT8 next_slot_inq; /* index of next available slot in queue */ + + BOOLEAN in_use; + UINT8 tcb_idx; +} tGATT_TCB; + + +/* logic channel */ +typedef struct { + UINT16 next_disc_start_hdl; /* starting handle for the next inc srvv discovery */ + tGATT_DISC_RES result; + BOOLEAN wait_for_read_rsp; +} tGATT_READ_INC_UUID128; +typedef struct { + tGATT_TCB *p_tcb; /* associated TCB of this CLCB */ + tGATT_REG *p_reg; /* owner of this CLCB */ + UINT8 sccb_idx; + UINT8 *p_attr_buf; /* attribute buffer for read multiple, prepare write */ + tBT_UUID uuid; + UINT16 conn_id; /* connection handle */ + UINT16 clcb_idx; + UINT16 s_handle; /* starting handle of the active request */ + UINT16 e_handle; /* ending handle of the active request */ + UINT16 counter; /* used as offset, attribute length, num of prepare write */ + UINT16 start_offset; + tGATT_AUTH_REQ auth_req; /* authentication requirement */ + UINT8 operation; /* one logic channel can have one operation active */ + UINT8 op_subtype; /* operation subtype */ + UINT8 status; /* operation status */ + BOOLEAN first_read_blob_after_read; + tGATT_READ_INC_UUID128 read_uuid128; + BOOLEAN in_use; + TIMER_LIST_ENT rsp_timer_ent; /* peer response timer */ + UINT8 retry_count; + +} tGATT_CLCB; + +typedef struct { + tGATT_CLCB *p_clcb; +} tGATT_PENDING_ENC_CLCB; + + +#define GATT_SIGN_WRITE 1 +#define GATT_VERIFY_SIGN_DATA 2 + +typedef struct { + BT_HDR hdr; + tGATT_CLCB *p_clcb; +} tGATT_SIGN_WRITE_OP; + +typedef struct { + BT_HDR hdr; + tGATT_TCB *p_tcb; + BT_HDR *p_data; + +} tGATT_VERIFY_SIGN_OP; + + +typedef struct { + UINT16 clcb_idx; + BOOLEAN in_use; +} tGATT_SCCB; + +typedef struct { + UINT16 handle; + UINT16 uuid; + UINT32 service_change; +} tGATT_SVC_CHG; + +typedef struct { + tGATT_IF gatt_if[GATT_MAX_APPS]; + tGATT_IF listen_gif[GATT_MAX_APPS]; + BD_ADDR remote_bda; + BOOLEAN in_use; +} tGATT_BG_CONN_DEV; + +#define GATT_SVC_CHANGED_CONNECTING 1 /* wait for connection */ +#define GATT_SVC_CHANGED_SERVICE 2 /* GATT service discovery */ +#define GATT_SVC_CHANGED_CHARACTERISTIC 3 /* service change char discovery */ +#define GATT_SVC_CHANGED_DESCRIPTOR 4 /* service change CCC discoery */ +#define GATT_SVC_CHANGED_CONFIGURE_CCCD 5 /* config CCC */ + +typedef struct { + UINT16 conn_id; + BOOLEAN in_use; + BOOLEAN connected; + BD_ADDR bda; + tBT_TRANSPORT transport; + + /* GATT service change CCC related variables */ + UINT8 ccc_stage; + UINT8 ccc_result; + UINT16 s_handle; + UINT16 e_handle; +} tGATT_PROFILE_CLCB; + +typedef struct { + tGATT_TCB tcb[GATT_MAX_PHY_CHANNEL]; + BUFFER_Q sign_op_queue; + + tGATT_SR_REG sr_reg[GATT_MAX_SR_PROFILES]; + UINT16 next_handle; /* next available handle */ + tGATT_SVC_CHG gattp_attr; /* GATT profile attribute service change */ + tGATT_IF gatt_if; + tGATT_HDL_LIST_INFO hdl_list_info; + tGATT_HDL_LIST_ELEM hdl_list[GATT_MAX_SR_PROFILES]; + tGATT_SRV_LIST_INFO srv_list_info; + tGATT_SRV_LIST_ELEM srv_list[GATT_MAX_SR_PROFILES]; + + BUFFER_Q srv_chg_clt_q; /* service change clients queue */ + BUFFER_Q pending_new_srv_start_q; /* pending new service start queue */ + tGATT_REG cl_rcb[GATT_MAX_APPS]; + tGATT_CLCB clcb[GATT_CL_MAX_LCB]; /* connection link control block*/ + tGATT_SCCB sccb[GATT_MAX_SCCB]; /* sign complete callback function GATT_MAX_SCCB <= GATT_CL_MAX_LCB */ + UINT8 trace_level; + UINT16 def_mtu_size; + +#if GATT_CONFORMANCE_TESTING == TRUE + BOOLEAN enable_err_rsp; + UINT8 req_op_code; + UINT8 err_status; + UINT16 handle; +#endif + + tGATT_PROFILE_CLCB profile_clcb[GATT_MAX_APPS]; + UINT16 handle_of_h_r; /* Handle of the handles reused characteristic value */ + + tGATT_APPL_INFO cb_info; + + + + tGATT_HDL_CFG hdl_cfg; + tGATT_BG_CONN_DEV bgconn_dev[GATT_MAX_BG_CONN_DEV]; + +} tGATT_CB; + + +#define GATT_SIZE_OF_SRV_CHG_HNDL_RANGE 4 + +#ifdef __cplusplus +extern "C" { +#endif + +/* Global GATT data */ +#if GATT_DYNAMIC_MEMORY == FALSE +extern tGATT_CB gatt_cb; +#else +extern tGATT_CB *gatt_cb_ptr; +#define gatt_cb (*gatt_cb_ptr) +#endif + +#if GATT_CONFORMANCE_TESTING == TRUE +extern void gatt_set_err_rsp(BOOLEAN enable, UINT8 req_op_code, UINT8 err_status); +#endif + +#ifdef __cplusplus +} +#endif + +/* internal functions */ +extern void gatt_init (void); +extern void gatt_free(void); + +/* from gatt_main.c */ +extern BOOLEAN gatt_disconnect (tGATT_TCB *p_tcb); +extern BOOLEAN gatt_act_connect (tGATT_REG *p_reg, BD_ADDR bd_addr, tBT_TRANSPORT transport); +extern BOOLEAN gatt_connect (BD_ADDR rem_bda, tGATT_TCB *p_tcb, tBT_TRANSPORT transport); +extern void gatt_data_process (tGATT_TCB *p_tcb, BT_HDR *p_buf); +extern void gatt_update_app_use_link_flag ( tGATT_IF gatt_if, tGATT_TCB *p_tcb, BOOLEAN is_add, BOOLEAN check_acl_link); + +extern void gatt_profile_db_init(void); +extern void gatt_set_ch_state(tGATT_TCB *p_tcb, tGATT_CH_STATE ch_state); +extern tGATT_CH_STATE gatt_get_ch_state(tGATT_TCB *p_tcb); +extern void gatt_init_srv_chg(void); +extern void gatt_proc_srv_chg (void); +extern void gatt_send_srv_chg_ind (BD_ADDR peer_bda); +extern void gatt_chk_srv_chg(tGATTS_SRV_CHG *p_srv_chg_clt); +extern void gatt_add_a_bonded_dev_for_srv_chg (BD_ADDR bda); + +/* from gatt_attr.c */ +extern UINT16 gatt_profile_find_conn_id_by_bd_addr(BD_ADDR bda); + + +/* Functions provided by att_protocol.c */ +extern tGATT_STATUS attp_send_cl_msg (tGATT_TCB *p_tcb, UINT16 clcb_idx, UINT8 op_code, tGATT_CL_MSG *p_msg); +extern BT_HDR *attp_build_sr_msg(tGATT_TCB *p_tcb, UINT8 op_code, tGATT_SR_MSG *p_msg); +extern tGATT_STATUS attp_send_sr_msg (tGATT_TCB *p_tcb, BT_HDR *p_msg); +extern tGATT_STATUS attp_send_msg_to_l2cap(tGATT_TCB *p_tcb, BT_HDR *p_toL2CAP); + +/* utility functions */ +extern UINT8 *gatt_dbg_op_name(UINT8 op_code); +extern UINT32 gatt_add_sdp_record (tBT_UUID *p_uuid, UINT16 start_hdl, UINT16 end_hdl); +extern BOOLEAN gatt_parse_uuid_from_cmd(tBT_UUID *p_uuid, UINT16 len, UINT8 **p_data); +extern UINT8 gatt_build_uuid_to_stream(UINT8 **p_dst, tBT_UUID uuid); +extern BOOLEAN gatt_uuid_compare(tBT_UUID src, tBT_UUID tar); +extern void gatt_convert_uuid32_to_uuid128(UINT8 uuid_128[LEN_UUID_128], UINT32 uuid_32); +extern void gatt_sr_get_sec_info(BD_ADDR rem_bda, tBT_TRANSPORT transport, UINT8 *p_sec_flag, UINT8 *p_key_size); +extern void gatt_start_rsp_timer(UINT16 clcb_idx); +extern void gatt_start_conf_timer(tGATT_TCB *p_tcb); +extern void gatt_rsp_timeout(TIMER_LIST_ENT *p_tle); +extern void gatt_ind_ack_timeout(TIMER_LIST_ENT *p_tle); +extern void gatt_start_ind_ack_timer(tGATT_TCB *p_tcb); +extern tGATT_STATUS gatt_send_error_rsp(tGATT_TCB *p_tcb, UINT8 err_code, UINT8 op_code, UINT16 handle, BOOLEAN deq); +extern void gatt_dbg_display_uuid(tBT_UUID bt_uuid); +extern tGATT_PENDING_ENC_CLCB *gatt_add_pending_enc_channel_clcb(tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb ); + +extern tGATTS_PENDING_NEW_SRV_START *gatt_sr_is_new_srv_chg(tBT_UUID *p_app_uuid128, tBT_UUID *p_svc_uuid, UINT16 svc_inst); + +extern BOOLEAN gatt_is_srv_chg_ind_pending (tGATT_TCB *p_tcb); +extern tGATTS_SRV_CHG *gatt_is_bda_in_the_srv_chg_clt_list (BD_ADDR bda); + +extern BOOLEAN gatt_find_the_connected_bda(UINT8 start_idx, BD_ADDR bda, UINT8 *p_found_idx, tBT_TRANSPORT *p_transport); +extern void gatt_set_srv_chg(void); +extern void gatt_delete_dev_from_srv_chg_clt_list(BD_ADDR bd_addr); +extern tGATT_VALUE *gatt_add_pending_ind(tGATT_TCB *p_tcb, tGATT_VALUE *p_ind); +extern tGATTS_PENDING_NEW_SRV_START *gatt_add_pending_new_srv_start( tGATTS_HNDL_RANGE *p_new_srv_start); +extern void gatt_free_srvc_db_buffer_app_id(tBT_UUID *p_app_id); +extern BOOLEAN gatt_update_listen_mode(void); +extern BOOLEAN gatt_cl_send_next_cmd_inq(tGATT_TCB *p_tcb); + +/* reserved handle list */ +extern tGATT_HDL_LIST_ELEM *gatt_find_hdl_buffer_by_app_id (tBT_UUID *p_app_uuid128, tBT_UUID *p_svc_uuid, UINT16 svc_inst); +extern tGATT_HDL_LIST_ELEM *gatt_find_hdl_buffer_by_handle(UINT16 handle); +extern tGATT_HDL_LIST_ELEM *gatt_find_hdl_buffer_by_attr_handle(UINT16 attr_handle); +extern tGATT_HDL_LIST_ELEM *gatt_alloc_hdl_buffer(void); +extern void gatt_free_hdl_buffer(tGATT_HDL_LIST_ELEM *p); +extern BOOLEAN gatt_is_last_attribute(tGATT_SRV_LIST_INFO *p_list, tGATT_SRV_LIST_ELEM *p_start, tBT_UUID value); +extern void gatt_update_last_pri_srv_info(tGATT_SRV_LIST_INFO *p_list); +extern BOOLEAN gatt_add_a_srv_to_list(tGATT_SRV_LIST_INFO *p_list, tGATT_SRV_LIST_ELEM *p_new); +extern BOOLEAN gatt_remove_a_srv_from_list(tGATT_SRV_LIST_INFO *p_list, tGATT_SRV_LIST_ELEM *p_remove); +extern BOOLEAN gatt_add_an_item_to_list(tGATT_HDL_LIST_INFO *p_list, tGATT_HDL_LIST_ELEM *p_new); +extern BOOLEAN gatt_remove_an_item_from_list(tGATT_HDL_LIST_INFO *p_list, tGATT_HDL_LIST_ELEM *p_remove); +extern tGATTS_SRV_CHG *gatt_add_srv_chg_clt(tGATTS_SRV_CHG *p_srv_chg); + +/* for background connection */ +extern BOOLEAN gatt_update_auto_connect_dev (tGATT_IF gatt_if, BOOLEAN add, BD_ADDR bd_addr, BOOLEAN is_initiator); +extern BOOLEAN gatt_is_bg_dev_for_app(tGATT_BG_CONN_DEV *p_dev, tGATT_IF gatt_if); +extern BOOLEAN gatt_remove_bg_dev_for_app(tGATT_IF gatt_if, BD_ADDR bd_addr); +extern UINT8 gatt_get_num_apps_for_bg_dev(BD_ADDR bd_addr); +extern BOOLEAN gatt_find_app_for_bg_dev(BD_ADDR bd_addr, tGATT_IF *p_gatt_if); +extern tGATT_BG_CONN_DEV *gatt_find_bg_dev(BD_ADDR remote_bda); +extern void gatt_deregister_bgdev_list(tGATT_IF gatt_if); +extern void gatt_reset_bgdev_list(void); + +/* server function */ +extern UINT8 gatt_sr_find_i_rcb_by_handle(UINT16 handle); +extern UINT8 gatt_sr_find_i_rcb_by_app_id(tBT_UUID *p_app_uuid128, tBT_UUID *p_svc_uuid, UINT16 svc_inst); +extern UINT8 gatt_sr_alloc_rcb(tGATT_HDL_LIST_ELEM *p_list); +extern tGATT_STATUS gatt_sr_process_app_rsp (tGATT_TCB *p_tcb, tGATT_IF gatt_if, UINT32 trans_id, UINT8 op_code, tGATT_STATUS status, tGATTS_RSP *p_msg); +extern void gatt_server_handle_client_req (tGATT_TCB *p_tcb, UINT8 op_code, + UINT16 len, UINT8 *p_data); +extern void gatt_sr_send_req_callback(UINT16 conn_id, UINT32 trans_id, + UINT8 op_code, tGATTS_DATA *p_req_data); +extern UINT32 gatt_sr_enqueue_cmd (tGATT_TCB *p_tcb, UINT8 op_code, UINT16 handle); +extern BOOLEAN gatt_cancel_open(tGATT_IF gatt_if, BD_ADDR bda); + +/* */ + +extern tGATT_REG *gatt_get_regcb (tGATT_IF gatt_if); +extern BOOLEAN gatt_is_clcb_allocated (UINT16 conn_id); +extern tGATT_CLCB *gatt_clcb_alloc (UINT16 conn_id); +extern void gatt_clcb_dealloc (tGATT_CLCB *p_clcb); + +extern void gatt_sr_copy_prep_cnt_to_cback_cnt(tGATT_TCB *p_tcb ); +extern BOOLEAN gatt_sr_is_cback_cnt_zero(tGATT_TCB *p_tcb ); +extern BOOLEAN gatt_sr_is_prep_cnt_zero(tGATT_TCB *p_tcb ); +extern void gatt_sr_reset_cback_cnt(tGATT_TCB *p_tcb ); +extern void gatt_sr_reset_prep_cnt(tGATT_TCB *p_tcb ); +extern void gatt_sr_update_cback_cnt(tGATT_TCB *p_tcb, tGATT_IF gatt_if, BOOLEAN is_inc, BOOLEAN is_reset_first); +extern void gatt_sr_update_prep_cnt(tGATT_TCB *p_tcb, tGATT_IF gatt_if, BOOLEAN is_inc, BOOLEAN is_reset_first); + +extern BOOLEAN gatt_find_app_hold_link(tGATT_TCB *p_tcb, UINT8 start_idx, UINT8 *p_found_idx, tGATT_IF *p_gatt_if); +extern UINT8 gatt_num_apps_hold_link(tGATT_TCB *p_tcb); +extern UINT8 gatt_num_clcb_by_bd_addr(BD_ADDR bda); +extern tGATT_TCB *gatt_find_tcb_by_cid(UINT16 lcid); +extern tGATT_TCB *gatt_allocate_tcb_by_bdaddr(BD_ADDR bda, tBT_TRANSPORT transport); +extern tGATT_TCB *gatt_get_tcb_by_idx(UINT8 tcb_idx); +extern tGATT_TCB *gatt_find_tcb_by_addr(BD_ADDR bda, tBT_TRANSPORT transport); +extern BOOLEAN gatt_send_ble_burst_data (BD_ADDR remote_bda, BT_HDR *p_buf); + +/* GATT client functions */ +extern void gatt_dequeue_sr_cmd (tGATT_TCB *p_tcb); +extern UINT8 gatt_send_write_msg(tGATT_TCB *p_tcb, UINT16 clcb_idx, UINT8 op_code, UINT16 handle, + UINT16 len, UINT16 offset, UINT8 *p_data); +extern void gatt_cleanup_upon_disc(BD_ADDR bda, UINT16 reason, tBT_TRANSPORT transport); +extern void gatt_end_operation(tGATT_CLCB *p_clcb, tGATT_STATUS status, void *p_data); + +extern void gatt_act_discovery(tGATT_CLCB *p_clcb); +extern void gatt_act_read(tGATT_CLCB *p_clcb, UINT16 offset); +extern void gatt_act_write(tGATT_CLCB *p_clcb, UINT8 sec_act); +extern UINT8 gatt_act_send_browse(tGATT_TCB *p_tcb, UINT16 index, UINT8 op, UINT16 s_handle, UINT16 e_handle, + tBT_UUID uuid); +extern tGATT_CLCB *gatt_cmd_dequeue(tGATT_TCB *p_tcb, UINT8 *p_opcode); +extern BOOLEAN gatt_cmd_enq(tGATT_TCB *p_tcb, UINT16 clcb_idx, BOOLEAN to_send, UINT8 op_code, BT_HDR *p_buf); +extern void gatt_client_handle_server_rsp (tGATT_TCB *p_tcb, UINT8 op_code, + UINT16 len, UINT8 *p_data); +extern void gatt_send_queue_write_cancel (tGATT_TCB *p_tcb, tGATT_CLCB *p_clcb, tGATT_EXEC_FLAG flag); + +/* gatt_auth.c */ +extern BOOLEAN gatt_security_check_start(tGATT_CLCB *p_clcb); +extern void gatt_verify_signature(tGATT_TCB *p_tcb, BT_HDR *p_buf); +extern tGATT_SEC_ACTION gatt_determine_sec_act(tGATT_CLCB *p_clcb ); +extern tGATT_STATUS gatt_get_link_encrypt_status(tGATT_TCB *p_tcb); +extern tGATT_SEC_ACTION gatt_get_sec_act(tGATT_TCB *p_tcb); +extern void gatt_set_sec_act(tGATT_TCB *p_tcb, tGATT_SEC_ACTION sec_act); + +/* gatt_db.c */ +extern BOOLEAN gatts_init_service_db (tGATT_SVC_DB *p_db, tBT_UUID *p_service, BOOLEAN is_pri, UINT16 s_hdl, UINT16 num_handle); +extern UINT16 gatts_add_included_service (tGATT_SVC_DB *p_db, UINT16 s_handle, UINT16 e_handle, tBT_UUID service); +extern UINT16 gatts_add_characteristic (tGATT_SVC_DB *p_db, tGATT_PERM perm, + tGATT_CHAR_PROP property, + tBT_UUID *p_char_uuid, tGATT_ATTR_VAL *attr_val, + tGATTS_ATTR_CONTROL *control); +extern UINT16 gatts_add_char_descr (tGATT_SVC_DB *p_db, tGATT_PERM perm, + tBT_UUID *p_dscp_uuid, tGATT_ATTR_VAL *attr_val, + tGATTS_ATTR_CONTROL *control); + +extern tGATT_STATUS gatts_set_attribute_value(tGATT_SVC_DB *p_db, UINT16 attr_handle, + UINT16 length, UINT8 *value); + +extern tGATT_STATUS gatts_get_attribute_value(tGATT_SVC_DB *p_db, UINT16 attr_handle, + UINT16 *length, UINT8 **value); +extern BOOLEAN gatts_is_auto_response(UINT16 attr_handle); +extern tGATT_STATUS gatts_db_read_attr_value_by_type (tGATT_TCB *p_tcb, tGATT_SVC_DB *p_db, UINT8 op_code, BT_HDR *p_rsp, UINT16 s_handle, + UINT16 e_handle, tBT_UUID type, UINT16 *p_len, tGATT_SEC_FLAG sec_flag, UINT8 key_size, UINT32 trans_id, UINT16 *p_cur_handle); +extern tGATT_STATUS gatts_read_attr_value_by_handle(tGATT_TCB *p_tcb, tGATT_SVC_DB *p_db, UINT8 op_code, UINT16 handle, UINT16 offset, + UINT8 *p_value, UINT16 *p_len, UINT16 mtu, tGATT_SEC_FLAG sec_flag, UINT8 key_size, UINT32 trans_id); +extern tGATT_STATUS gatts_write_attr_value_by_handle(tGATT_SVC_DB *p_db, + UINT16 handle, UINT16 offset, + UINT8 *p_value, UINT16 len); +extern tGATT_STATUS gatts_write_attr_perm_check (tGATT_SVC_DB *p_db, UINT8 op_code, UINT16 handle, UINT16 offset, UINT8 *p_data, + UINT16 len, tGATT_SEC_FLAG sec_flag, UINT8 key_size); +extern tGATT_STATUS gatts_read_attr_perm_check(tGATT_SVC_DB *p_db, BOOLEAN is_long, UINT16 handle, tGATT_SEC_FLAG sec_flag, UINT8 key_size); +extern void gatts_update_srv_list_elem(UINT8 i_sreg, UINT16 handle, BOOLEAN is_primary); +extern tBT_UUID *gatts_get_service_uuid (tGATT_SVC_DB *p_db); + +extern void gatt_reset_bgdev_list(void); +#endif diff --git a/tools/sdk/include/bluedroid/gattdefs.h b/tools/sdk/include/bluedroid/gattdefs.h new file mode 100644 index 00000000..9380e2e9 --- /dev/null +++ b/tools/sdk/include/bluedroid/gattdefs.h @@ -0,0 +1,124 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This file contains internally used ATT definitions + * + ******************************************************************************/ + +#ifndef _GATTDEFS_H +#define _GATTDEFS_H + +#define GATT_ILLEGAL_UUID 0 + +/* GATT attribute types +*/ +#define GATT_UUID_PRI_SERVICE 0x2800 +#define GATT_UUID_SEC_SERVICE 0x2801 +#define GATT_UUID_INCLUDE_SERVICE 0x2802 +#define GATT_UUID_CHAR_DECLARE 0x2803 /* Characteristic Declaration*/ + +#define GATT_UUID_CHAR_EXT_PROP 0x2900 /* Characteristic Extended Properties */ +#define GATT_UUID_CHAR_DESCRIPTION 0x2901 /* Characteristic User Description*/ +#define GATT_UUID_CHAR_CLIENT_CONFIG 0x2902 /* Client Characteristic Configuration */ +#define GATT_UUID_CHAR_SRVR_CONFIG 0x2903 /* Server Characteristic Configuration */ +#define GATT_UUID_CHAR_PRESENT_FORMAT 0x2904 /* Characteristic Presentation Format*/ +#define GATT_UUID_CHAR_AGG_FORMAT 0x2905 /* Characteristic Aggregate Format*/ +#define GATT_UUID_CHAR_VALID_RANGE 0x2906 /* Characteristic Valid Range */ +#define GATT_UUID_EXT_RPT_REF_DESCR 0x2907 +#define GATT_UUID_RPT_REF_DESCR 0x2908 + + +/* GAP Profile Attributes +*/ +#define GATT_UUID_GAP_DEVICE_NAME 0x2A00 +#define GATT_UUID_GAP_ICON 0x2A01 +#define GATT_UUID_GAP_PREF_CONN_PARAM 0x2A04 +#define GATT_UUID_GAP_CENTRAL_ADDR_RESOL 0x2AA6 + +/* Attribute Profile Attribute UUID */ +#define GATT_UUID_GATT_SRV_CHGD 0x2A05 +/* Attribute Protocol Test */ + +/* Link Loss Service */ +#define GATT_UUID_ALERT_LEVEL 0x2A06 /* Alert Level */ +#define GATT_UUID_TX_POWER_LEVEL 0x2A07 /* TX power level */ + +/* Time Profile */ +/* Current Time Service */ +#define GATT_UUID_CURRENT_TIME 0x2A2B /* Current Time */ +#define GATT_UUID_LOCAL_TIME_INFO 0x2A0F /* Local time info */ +#define GATT_UUID_REF_TIME_INFO 0x2A14 /* reference time information */ + +/* NwA Profile */ +#define GATT_UUID_NW_STATUS 0x2A18 /* network availability status */ +#define GATT_UUID_NW_TRIGGER 0x2A1A /* Network availability trigger */ + +/* phone alert */ +#define GATT_UUID_ALERT_STATUS 0x2A3F /* alert status */ +#define GATT_UUID_RINGER_CP 0x2A40 /* ringer control point */ +#define GATT_UUID_RINGER_SETTING 0x2A41 /* ringer setting */ + +/* Glucose Service */ +#define GATT_UUID_GM_MEASUREMENT 0x2A18 +#define GATT_UUID_GM_CONTEXT 0x2A34 +#define GATT_UUID_GM_CONTROL_POINT 0x2A52 +#define GATT_UUID_GM_FEATURE 0x2A51 + +/* device infor characteristic */ +#define GATT_UUID_SYSTEM_ID 0x2A23 +#define GATT_UUID_MODEL_NUMBER_STR 0x2A24 +#define GATT_UUID_SERIAL_NUMBER_STR 0x2A25 +#define GATT_UUID_FW_VERSION_STR 0x2A26 +#define GATT_UUID_HW_VERSION_STR 0x2A27 +#define GATT_UUID_SW_VERSION_STR 0x2A28 +#define GATT_UUID_MANU_NAME 0x2A29 +#define GATT_UUID_IEEE_DATA 0x2A2A +#define GATT_UUID_PNP_ID 0x2A50 + +/* HID characteristics */ +#define GATT_UUID_HID_INFORMATION 0x2A4A +#define GATT_UUID_HID_REPORT_MAP 0x2A4B +#define GATT_UUID_HID_CONTROL_POINT 0x2A4C +#define GATT_UUID_HID_REPORT 0x2A4D +#define GATT_UUID_HID_PROTO_MODE 0x2A4E +#define GATT_UUID_HID_BT_KB_INPUT 0x2A22 +#define GATT_UUID_HID_BT_KB_OUTPUT 0x2A32 +#define GATT_UUID_HID_BT_MOUSE_INPUT 0x2A33 + +/* Battery Service char */ +#define GATT_UUID_BATTERY_LEVEL 0x2A19 + +#define GATT_UUID_SC_CONTROL_POINT 0x2A55 +#define GATT_UUID_SENSOR_LOCATION 0x2A5D + +/* RUNNERS SPEED AND CADENCE SERVICE */ +#define GATT_UUID_RSC_MEASUREMENT 0x2A53 +#define GATT_UUID_RSC_FEATURE 0x2A54 + +/* CYCLING SPEED AND CADENCE SERVICE */ +#define GATT_UUID_CSC_MEASUREMENT 0x2A5B +#define GATT_UUID_CSC_FEATURE 0x2A5C + + +/* Scan Parameter charatceristics */ +#define GATT_UUID_SCAN_INT_WINDOW 0x2A4F +#define GATT_UUID_SCAN_REFRESH 0x2A31 + +#endif diff --git a/tools/sdk/include/bluedroid/gki.h b/tools/sdk/include/bluedroid/gki.h new file mode 100644 index 00000000..4e5f3c2b --- /dev/null +++ b/tools/sdk/include/bluedroid/gki.h @@ -0,0 +1,132 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _GKI_H_ +#define _GKI_H_ + +#include "bt_target.h" +#include "bt_types.h" +#include "gki_common.h" +#include "gki_int.h" +#include "allocator.h" + +#define ALIGN_POOL(pl_size) ( (((pl_size) + 3) / sizeof(UINT32)) * sizeof(UINT32)) +#define BUFFER_HDR_SIZE (sizeof(BUFFER_HDR_T)) /* Offset past header */ +#define BUFFER_PADDING_SIZE (sizeof(BUFFER_HDR_T) + sizeof(UINT32)) /* Header + Magic Number */ +#define MAGIC_NO 0xDDBADDBA + +#define BUF_STATUS_FREE 0 +#define BUF_STATUS_UNLINKED 1 +#define BUF_STATUS_QUEUED 2 + +/* Timer list entry callback type +*/ +typedef void (TIMER_CBACK)(void *p_tle); +#ifndef TIMER_PARAM_TYPE +#define TIMER_PARAM_TYPE UINT32 +#endif +/* Define a timer list entry +*/ +typedef struct _tle { + struct _tle *p_next; + struct _tle *p_prev; + TIMER_CBACK *p_cback; + INT32 ticks; + INT32 ticks_initial; + TIMER_PARAM_TYPE param; + TIMER_PARAM_TYPE data; + UINT16 event; + UINT8 in_use; +} TIMER_LIST_ENT; + +/*********************************************************************** +** This queue is a general purpose buffer queue, for application use. +*/ +typedef struct { + void *_p_first; + void *_p_last; + UINT16 _count; +} BUFFER_Q; + +#define GKI_PUBLIC_POOL 0 /* General pool accessible to GKI_getbuf() */ +#define GKI_RESTRICTED_POOL 1 /* Inaccessible pool to GKI_getbuf() */ + +/*********************************************************************** +** Function prototypes +*/ + +/* To get and release buffers, change owner and get size +*/ +void *GKI_getbuf_func(UINT16); +void *GKI_getpoolbuf_func(UINT8); +void GKI_freebuf(void *); +UINT16 GKI_get_buf_size (void *); +void *GKI_getpoolbuf (UINT8); +UINT16 GKI_poolcount (UINT8); +UINT16 GKI_poolfreecount (UINT8); +UINT16 GKI_poolutilization (UINT8); + +#ifdef CONFIG_BLUEDROID_MEM_DEBUG + +#define GKI_getbuf(_size) \ +({ \ + BUFFER_HDR_T *header = osi_malloc((_size) + BUFFER_HDR_SIZE); \ + header->status = BUF_STATUS_UNLINKED; \ + header->p_next = NULL; \ + header->Type = 0; \ + header->size = (_size); \ + (void *)(header + 1); \ +}) + +#define GKI_getpoolbuf(_pool_id) \ +({ \ + (void *)GKI_getbuf(gki_cb.com.pool_size[(_pool_id)]); \ +}) + +#else +#define GKI_getbuf GKI_getbuf_func +#define GKI_getpoolbuf GKI_getpoolbuf_func + +#endif /* CONFIG_BLUEDROID_MEM_DEBUG */ + +/* User buffer queue management +*/ +void *GKI_dequeue (BUFFER_Q *); +void GKI_enqueue (BUFFER_Q *, void *); +void *GKI_getfirst (BUFFER_Q *); +void *GKI_getlast (BUFFER_Q *); +void *GKI_getnext (void *); +void GKI_init_q (BUFFER_Q *); +UINT16 GKI_queue_length(BUFFER_Q *); +BOOLEAN GKI_queue_is_empty(BUFFER_Q *); +void *GKI_remove_from_queue (BUFFER_Q *, void *); +UINT16 GKI_get_pool_bufsize (UINT8); + +/* Timer management +*/ +void GKI_delay(UINT32); + +/* Disable Interrupts, Enable Interrupts +*/ +void GKI_enable(void); +void GKI_disable(void); + +/* os timer operation */ +UINT32 GKI_get_os_tick_count(void); + +#endif /*_GKI_H_*/ diff --git a/tools/sdk/include/bluedroid/gki_common.h b/tools/sdk/include/bluedroid/gki_common.h new file mode 100644 index 00000000..838896ee --- /dev/null +++ b/tools/sdk/include/bluedroid/gki_common.h @@ -0,0 +1,65 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _GKI_COMMON_H_ +#define _GKI_COMMON_H_ + +#include "gki.h" + +typedef struct _buffer_hdr { + struct _buffer_hdr *p_next; /* next buffer in the queue */ + UINT8 q_id; /* id of the queue */ + UINT8 status; /* FREE, UNLINKED or QUEUED */ + UINT8 Type; + UINT16 size; +} BUFFER_HDR_T; + +typedef struct _free_queue { + BUFFER_HDR_T *_p_first; /* first buffer in the queue */ + BUFFER_HDR_T *_p_last; /* last buffer in the queue */ + UINT16 size; /* size of the buffers in the pool */ + UINT16 total; /* toatal number of buffers */ + UINT16 cur_cnt; /* number of buffers currently allocated */ + UINT16 max_cnt; /* maximum number of buffers allocated at any time */ +} FREE_QUEUE_T; + +/* Put all GKI variables into one control block +*/ +typedef struct { + /* Define the buffer pool management variables + */ + FREE_QUEUE_T freeq[GKI_NUM_TOTAL_BUF_POOLS]; + + UINT16 pool_buf_size[GKI_NUM_TOTAL_BUF_POOLS]; + + /* Define the buffer pool start addresses + */ + UINT8 *pool_start[GKI_NUM_TOTAL_BUF_POOLS]; /* array of pointers to the start of each buffer pool */ + UINT8 *pool_end[GKI_NUM_TOTAL_BUF_POOLS]; /* array of pointers to the end of each buffer pool */ + UINT16 pool_size[GKI_NUM_TOTAL_BUF_POOLS]; /* actual size of the buffers in a pool */ + + /* Define the buffer pool access control variables */ + UINT16 pool_access_mask; /* Bits are set if the corresponding buffer pool is a restricted pool */ +} tGKI_COM_CB; + +/* Internal GKI function prototypes +*/ +void gki_buffer_init(void); +void gki_buffer_cleanup(void); + +#endif /*_GKI_COMMON_H_*/ diff --git a/tools/sdk/include/bluedroid/gki_int.h b/tools/sdk/include/bluedroid/gki_int.h new file mode 100644 index 00000000..3307066e --- /dev/null +++ b/tools/sdk/include/bluedroid/gki_int.h @@ -0,0 +1,34 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _GKI_INT_H_ +#define _GKI_INT_H_ + +//#include +#include "bt_defs.h" + +#include "gki_common.h" + +typedef struct { + pthread_mutex_t lock; + tGKI_COM_CB com; +} tGKI_CB; + +extern tGKI_CB gki_cb; + +#endif /*_GKI_INT_H_*/ diff --git a/tools/sdk/include/bluedroid/gki_target.h b/tools/sdk/include/bluedroid/gki_target.h new file mode 100755 index 00000000..fc844518 --- /dev/null +++ b/tools/sdk/include/bluedroid/gki_target.h @@ -0,0 +1,244 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _GKI_TARGET_H_ +#define _GKI_TARGET_H_ + +/****************************************************************************** +** +** Buffer configuration +** +******************************************************************************/ + +/* The size of the buffers in pool 0. */ +#ifndef GKI_BUF0_SIZE +#define GKI_BUF0_SIZE 64 +#endif + +/* The number of buffers in buffer pool 0. */ +#ifndef GKI_BUF0_MAX +#define GKI_BUF0_MAX 96 +#endif + +/* The ID of buffer pool 0. */ +#ifndef GKI_POOL_ID_0 +#define GKI_POOL_ID_0 0 +#endif + +/* The size of the buffers in pool 1. */ +#ifndef GKI_BUF1_SIZE +#define GKI_BUF1_SIZE 288 +#endif + +/* The number of buffers in buffer pool 1. */ +#ifndef GKI_BUF1_MAX +#define GKI_BUF1_MAX 52 +#endif + +/* The ID of buffer pool 1. */ +#ifndef GKI_POOL_ID_1 +#define GKI_POOL_ID_1 1 +#endif + +/* The size of the buffers in pool 2. */ +#ifndef GKI_BUF2_SIZE +#define GKI_BUF2_SIZE 660 +#endif + +/* The number of buffers in buffer pool 2. */ +#ifndef GKI_BUF2_MAX +#define GKI_BUF2_MAX 90 +#endif + +/* The ID of buffer pool 2. */ +#ifndef GKI_POOL_ID_2 +#define GKI_POOL_ID_2 2 +#endif + +/* The size of the buffers in pool 3. */ +#ifndef GKI_BUF3_SIZE +#define GKI_BUF3_SIZE (4096+16) +#endif + +/* The number of buffers in buffer pool 3. */ +#ifndef GKI_BUF3_MAX +#define GKI_BUF3_MAX 400 +#endif + +/* The ID of buffer pool 3. */ +#ifndef GKI_POOL_ID_3 +#define GKI_POOL_ID_3 3 +#endif + +/* The size of the largest PUBLIC fixed buffer in system. */ +#ifndef GKI_MAX_BUF_SIZE +#define GKI_MAX_BUF_SIZE GKI_BUF3_SIZE +#endif + +/* The pool ID of the largest PUBLIC fixed buffer in system. */ +#ifndef GKI_MAX_BUF_SIZE_POOL_ID +#define GKI_MAX_BUF_SIZE_POOL_ID GKI_POOL_ID_3 +#endif + +/* Pool 4 is used for BluetoothSocket L2CAP connections */ +/* The size of the buffers in pool 4. */ +#ifndef GKI_BUF4_SIZE +#define GKI_BUF4_SIZE (8080+26) +#endif + +/* The number of buffers in buffer pool 4. */ +#ifndef GKI_BUF4_MAX +#define GKI_BUF4_MAX (OBX_NUM_SERVERS + OBX_NUM_CLIENTS) +#endif + +/* The ID of buffer pool 4. */ +#ifndef GKI_POOL_ID_4 +#define GKI_POOL_ID_4 4 +#endif + +/* The number of fixed GKI buffer pools. +eL2CAP requires Pool ID 5 +If BTM_SCO_HCI_INCLUDED is FALSE, Pool ID 6 is unnecessary, otherwise set to 7 +If BTA_HL_INCLUDED is FALSE then Pool ID 7 is uncessary and set the following to 7, otherwise set to 8 +If BLE_INCLUDED is FALSE then Pool ID 8 is uncessary and set the following to 8, otherwise set to 9 +POOL_ID 9 is a public pool meant for large buffer needs such as SDP_DB +*/ +#ifndef GKI_NUM_FIXED_BUF_POOLS +#define GKI_NUM_FIXED_BUF_POOLS 10 +#endif + +/* The buffer pool usage mask. */ +#ifndef GKI_DEF_BUFPOOL_PERM_MASK +/* Setting POOL_ID 9 as a public pool meant for large buffers such as SDP_DB */ +#define GKI_DEF_BUFPOOL_PERM_MASK 0xfdf0 +#endif + +/* The following is intended to be a reserved pool for L2CAP +Flow control and retransmissions and intentionally kept out +of order */ + +/* The number of buffers in buffer pool 5. */ +#ifndef GKI_BUF5_MAX +#define GKI_BUF5_MAX 64 +#endif + +/* The ID of buffer pool 5. */ +#ifndef GKI_POOL_ID_5 +#define GKI_POOL_ID_5 5 +#endif + +/* The size of the buffers in pool 5 +** Special pool used by L2CAP retransmissions only. This size based on segment +** that will fit into both DH5 and 2-DH3 packet types after accounting for GKI +** header. 13 bytes of max headers allows us a 339 payload max. (in btui_app.txt) +** Note: 748 used for insight scriptwrapper with CAT-2 scripts. +*/ +#ifndef GKI_BUF5_SIZE +#define GKI_BUF5_SIZE 748 +#endif + +/* The following is intended to be a reserved pool for SCO +over HCI data and intentionally kept out of order */ + +/* The ID of buffer pool 6. */ +#ifndef GKI_POOL_ID_6 +#define GKI_POOL_ID_6 6 +#endif + +/* The size of the buffers in pool 6, + BUF_SIZE = max SCO data 255 + sizeof(BT_HDR) = 8 + SCO packet header 3 + padding 2 = 268 */ +#ifndef GKI_BUF6_SIZE +#define GKI_BUF6_SIZE 268 +#endif + +/* The number of buffers in buffer pool 6. */ +#ifndef GKI_BUF6_MAX +#define GKI_BUF6_MAX 60 +#endif + + +/* The following pool is a dedicated pool for HDP + If a shared pool is more desirable then + 1. set BTA_HL_LRG_DATA_POOL_ID to the desired Gki Pool ID + 2. make sure that the shared pool size is larger than 9472 + 3. adjust GKI_NUM_FIXED_BUF_POOLS accordingly since + POOL ID 7 is not needed +*/ + +/* The ID of buffer pool 7. */ +#ifndef GKI_POOL_ID_7 +#define GKI_POOL_ID_7 7 +#endif + +/* The size of the buffers in pool 7 */ +#ifndef GKI_BUF7_SIZE +#define GKI_BUF7_SIZE (10240 + 24) +#endif + +/* The number of buffers in buffer pool 7. */ +#ifndef GKI_BUF7_MAX +#define GKI_BUF7_MAX 2 +#endif + +/* The following pool is a dedicated pool for GATT + If a shared pool is more desirable then + 1. set GATT_DB_POOL_ID to the desired Gki Pool ID + 2. make sure that the shared pool size fit a common GATT database needs + 3. adjust GKI_NUM_FIXED_BUF_POOLS accordingly since + POOL ID 8 is not needed +*/ + +/* The ID of buffer pool 8. */ +#ifndef GKI_POOL_ID_8 +#define GKI_POOL_ID_8 8 +#endif + +/* The size of the buffers in pool 8 */ +#ifndef GKI_BUF8_SIZE +#define GKI_BUF8_SIZE 128 +#endif + +/* The number of buffers in buffer pool 8. */ +#ifndef GKI_BUF8_MAX +#define GKI_BUF8_MAX 30 +#endif + +/* The following pool is meant for large allocations such as SDP_DB */ +#ifndef GKI_POOL_ID_9 +#define GKI_POOL_ID_9 9 +#endif + +#ifndef GKI_BUF9_SIZE +#define GKI_BUF9_SIZE 8192 +#endif + +#ifndef GKI_BUF9_MAX +#define GKI_BUF9_MAX 5 +#endif + +/* The number of fixed and dynamic buffer pools */ +#ifndef GKI_NUM_TOTAL_BUF_POOLS +#define GKI_NUM_TOTAL_BUF_POOLS 10 +#endif + +int gki_init(void); +void gki_clean_up(void); + +//void LogMsg (UINT32 trace_set_mask, const char *fmt_str, ...); + +#endif /*_GKI_TARGET_H_*/ diff --git a/tools/sdk/include/bluedroid/hash_functions.h b/tools/sdk/include/bluedroid/hash_functions.h new file mode 100755 index 00000000..2edbeb8b --- /dev/null +++ b/tools/sdk/include/bluedroid/hash_functions.h @@ -0,0 +1,33 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _HASH_FUNCTIONS_H_ +#define _HASH_FUNCTIONS_H_ + +#include "hash_map.h" + +hash_index_t hash_function_naive(const void *key); + +hash_index_t hash_function_integer(const void *key); + +// Hashes a pointer based only on its address value +hash_index_t hash_function_pointer(const void *key); + +hash_index_t hash_function_string(const void *key); + +#endif /* _HASH_FUNCTIONS_H_ */ diff --git a/tools/sdk/include/bluedroid/hash_map.h b/tools/sdk/include/bluedroid/hash_map.h new file mode 100644 index 00000000..fea1e021 --- /dev/null +++ b/tools/sdk/include/bluedroid/hash_map.h @@ -0,0 +1,110 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _HASH_MAP_H_ +#define _HASH_MAP_H_ + +#include +#include + +struct hash_map_t; +typedef struct hash_map_t hash_map_t; + +typedef struct hash_map_entry_t { + const void *key; + void *data; + const hash_map_t *hash_map; +} hash_map_entry_t; + +typedef size_t hash_index_t; + +// Takes a key structure and returns a hash value. +typedef hash_index_t (*hash_index_fn)(const void *key); +typedef bool (*hash_map_iter_cb)(hash_map_entry_t *hash_entry, void *context); + +typedef bool (*key_equality_fn)(const void *x, const void *y); + +typedef void (*key_free_fn)(void *data); +typedef void (*data_free_fn)(void *data); + +// Returns a new, empty hash_map. Returns NULL if not enough memory could be allocated +// for the hash_map structure. The returned hash_map must be freed with |hash_map_free|. +// The |num_bucket| specifies the number of hashable buckets for the map and must not +// be zero. The |hash_fn| specifies a hash function to be used and must not be NULL. +// The |key_fn| and |data_fn| are called whenever a hash_map element is removed from +// the hash_map. They can be used to release resources held by the hash_map element, +// e.g. memory or file descriptor. |key_fn| and |data_fn| may be NULL if no cleanup +// is necessary on element removal. |equality_fn| is used to check for key equality. +// If |equality_fn| is NULL, default pointer equality is used. +hash_map_t *hash_map_new( + size_t size, + hash_index_fn hash_fn, + key_free_fn key_fn, + data_free_fn data_fn, + key_equality_fn equality_fn); + +// Frees the hash_map. This function accepts NULL as an argument, in which case it +// behaves like a no-op. +void hash_map_free(hash_map_t *hash_map); + +// Returns true if the hash_map is empty (has no elements), false otherwise. +// Note that a NULL |hash_map| is not the same as an empty |hash_map|. This function +// does not accept a NULL |hash_map|. +//bool hash_map_is_empty(const hash_map_t *hash_map); + +// Returns the number of elements in the hash map. This function does not accept a +// NULL |hash_map|. +//size_t hash_map_size(const hash_map_t *hash_map); + +// Returns the number of buckets in the hash map. This function does not accept a +// NULL |hash_map|. +//size_t hash_map_num_buckets(const hash_map_t *hash_map); + +// Returns true if the hash_map has a valid entry for the presented key. +// This function does not accept a NULL |hash_map|. +bool hash_map_has_key(const hash_map_t *hash_map, const void *key); + +// Returns the element indexed by |key| in the hash_map without removing it. |hash_map| +// may not be NULL. Returns NULL if no entry indexed by |key|. +void *hash_map_get(const hash_map_t *hash_map, const void *key); + +// Sets the value |data| indexed by |key| into the |hash_map|. Neither |data| nor +// |hash_map| may be NULL. This function does not make copies of |data| nor |key| +// so the pointers must remain valid at least until the element is removed from the +// hash_map or the hash_map is freed. Returns true if |data| could be set, false +// otherwise (e.g. out of memory). +bool hash_map_set(hash_map_t *hash_map, const void *key, void *data); + +// Removes data indexed by |key| from the hash_map. |hash_map| may not be NULL. +// If |key_fn| or |data_fn| functions were specified in |hash_map_new|, they +// will be called back with |key| or |data| respectively. This function returns true +// if |key| was found in the hash_map and removed, false otherwise. +bool hash_map_erase(hash_map_t *hash_map, const void *key); + +// Removes all elements in the hash_map. Calling this function will return the hash_map +// to the same state it was in after |hash_map_new|. |hash_map| may not be NULL. +void hash_map_clear(hash_map_t *hash_map); + +// Iterates through the entire |hash_map| and calls |callback| for each data +// element and passes through the |context| argument. If the hash_map is +// empty, |callback| will never be called. It is not safe to mutate the +// hash_map inside the callback. Neither |hash_map| nor |callback| may be NULL. +// If |callback| returns false, the iteration loop will immediately exit. +void hash_map_foreach(hash_map_t *hash_map, hash_map_iter_cb callback, void *context); + +#endif /* _HASH_MAP_H_ */ diff --git a/tools/sdk/include/bluedroid/hci_hal.h b/tools/sdk/include/bluedroid/hci_hal.h new file mode 100644 index 00000000..9853211d --- /dev/null +++ b/tools/sdk/include/bluedroid/hci_hal.h @@ -0,0 +1,85 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _HCI_HAL_H_ +#define _HCI_HAL_H_ + +#include +#include + +#include "bt_types.h" + +typedef enum { + DATA_TYPE_COMMAND = 1, + DATA_TYPE_ACL = 2, + DATA_TYPE_SCO = 3, + DATA_TYPE_EVENT = 4 +} serial_data_type_t; + +typedef void (*packet_ready_cb)(BT_HDR *packet); + +typedef struct { + // Called when the HAL detects inbound data. + // Data |type| may be ACL, SCO, or EVENT. + // Executes in the context of the thread supplied to |init|. + packet_ready_cb packet_ready; + + /* + // Called when the HAL detects inbound astronauts named Dave. + // HAL will deny all requests to open the pod bay doors after this. + dave_ready_cb dave_ready; + */ +} hci_hal_callbacks_t; + +typedef struct hci_hal_t { + // Initialize the HAL, with |upper_callbacks| and |upper_thread| to run in the context of. + //bool (*init)(const hci_hal_callbacks_t *upper_callbacks); + + // Connect to the underlying hardware, and let data start flowing. + bool (*open)(const hci_hal_callbacks_t *upper_callbacks); + // Disconnect from the underlying hardware, and close the HAL. + // "Daisy, Daisy..." + void (*close)(void); + + // Retrieve up to |max_size| bytes for ACL, SCO, or EVENT data packets into + // |buffer|, blocking until max_size bytes read if |block| is true. + // Only guaranteed to be correct in the context of a data_ready callback + // of the corresponding type. + //size_t (*read_data)(serial_data_type_t type, uint8_t *buffer, size_t max_size); + // The upper layer must call this to notify the HAL that it has finished + // reading a packet of the specified |type|. Underlying implementations that + // use shared channels for multiple data types depend on this to know when + // to reinterpret the data stream. + //void (*packet_finished)(serial_data_type_t type); + // Transmit COMMAND, ACL, or SCO data packets. + // |data| may not be NULL. |length| must be greater than zero. + // + // IMPORTANT NOTE: + // Depending on the underlying implementation, the byte right + // before the beginning of |data| may be borrowed during this call + // and then restored to its original value. + // This is safe in the bluetooth context, because there is always a buffer + // header that prefixes data you're sending. + uint16_t (*transmit_data)(serial_data_type_t type, uint8_t *data, uint16_t length); +} hci_hal_t; + + +// Gets the correct hal implementation, as compiled for. +const hci_hal_t *hci_hal_h4_get_interface(void); + +#endif /* _HCI_HAL_H */ diff --git a/tools/sdk/include/bluedroid/hci_internals.h b/tools/sdk/include/bluedroid/hci_internals.h new file mode 100755 index 00000000..41c792cf --- /dev/null +++ b/tools/sdk/include/bluedroid/hci_internals.h @@ -0,0 +1,31 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _HCI_INTERNALS_H_ +#define _HCI_INTERNALS_H_ + +// 2 bytes for opcode, 1 byte for parameter length (Volume 2, Part E, 5.4.1) +#define HCI_COMMAND_PREAMBLE_SIZE 3 +// 2 bytes for handle, 2 bytes for data length (Volume 2, Part E, 5.4.2) +#define HCI_ACL_PREAMBLE_SIZE 4 +// 2 bytes for handle, 1 byte for data length (Volume 2, Part E, 5.4.3) +#define HCI_SCO_PREAMBLE_SIZE 3 +// 1 byte for event code, 1 byte for parameter length (Volume 2, Part E, 5.4.4) +#define HCI_EVENT_PREAMBLE_SIZE 2 + +#endif /* _HCI_INTERNALS_H_ */ diff --git a/tools/sdk/include/bluedroid/hci_layer.h b/tools/sdk/include/bluedroid/hci_layer.h new file mode 100644 index 00000000..caea29f2 --- /dev/null +++ b/tools/sdk/include/bluedroid/hci_layer.h @@ -0,0 +1,103 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _HCI_LAYER_H_ +#define _HCI_LAYER_H_ + +#include "bt_types.h" +#include "allocator.h" +#include "fixed_queue.h" +#include "osi.h" +#include "future.h" +///// LEGACY DEFINITIONS ///// + +/* Message event mask across Host/Controller lib and stack */ +#define MSG_EVT_MASK 0xFF00 /* eq. BT_EVT_MASK */ +#define MSG_SUB_EVT_MASK 0x00FF /* eq. BT_SUB_EVT_MASK */ + +/* Message event ID passed from Host/Controller lib to stack */ +#define MSG_HC_TO_STACK_HCI_ERR 0x1300 /* eq. BT_EVT_TO_BTU_HCIT_ERR */ +#define MSG_HC_TO_STACK_HCI_ACL 0x1100 /* eq. BT_EVT_TO_BTU_HCI_ACL */ +#define MSG_HC_TO_STACK_HCI_SCO 0x1200 /* eq. BT_EVT_TO_BTU_HCI_SCO */ +#define MSG_HC_TO_STACK_HCI_EVT 0x1000 /* eq. BT_EVT_TO_BTU_HCI_EVT */ +#define MSG_HC_TO_STACK_L2C_SEG_XMIT 0x1900 /* eq. BT_EVT_TO_BTU_L2C_SEG_XMIT */ + +/* Message event ID passed from stack to vendor lib */ +#define MSG_STACK_TO_HC_HCI_ACL 0x2100 /* eq. BT_EVT_TO_LM_HCI_ACL */ +#define MSG_STACK_TO_HC_HCI_SCO 0x2200 /* eq. BT_EVT_TO_LM_HCI_SCO */ +#define MSG_STACK_TO_HC_HCI_CMD 0x2000 /* eq. BT_EVT_TO_LM_HCI_CMD */ + +/* Local Bluetooth Controller ID for BR/EDR */ +#define LOCAL_BR_EDR_CONTROLLER_ID 0 + +///// END LEGACY DEFINITIONS ///// + +typedef struct hci_hal_t hci_hal_t; +//typedef struct btsnoop_t btsnoop_t; +typedef struct controller_t controller_t; +//typedef struct hci_inject_t hci_inject_t; +typedef struct packet_fragmenter_t packet_fragmenter_t; +//typedef struct vendor_t vendor_t; +//typedef struct low_power_manager_t low_power_manager_t; + +//typedef unsigned char * bdaddr_t; +typedef uint16_t command_opcode_t; + +/* +typedef enum { + LPM_DISABLE, + LPM_ENABLE, + LPM_WAKE_ASSERT, + LPM_WAKE_DEASSERT +} low_power_command_t; +*/ + +typedef void (*command_complete_cb)(BT_HDR *response, void *context); +typedef void (*command_status_cb)(uint8_t status, BT_HDR *command, void *context); + +typedef struct hci_t { + // Send a low power command, if supported and the low power manager is enabled. + //void (*send_low_power_command)(low_power_command_t command); + + // Do the postload sequence (call after the rest of the BT stack initializes). + void (*do_postload)(void); + + // Set the queue to receive ACL data in + void (*set_data_queue)(fixed_queue_t *queue); + + // Send a command through the HCI layer + void (*transmit_command)( + BT_HDR *command, + command_complete_cb complete_callback, + command_status_cb status_cb, + void *context + ); + + future_t *(*transmit_command_futured)(BT_HDR *command); + + // Send some data downward through the HCI layer + void (*transmit_downward)(uint16_t type, void *data); +} hci_t; + +const hci_t *hci_layer_get_interface(); + +int hci_start_up(void); +void hci_shut_down(void); + + +#endif /* _HCI_LAYER_H_ */ diff --git a/tools/sdk/include/bluedroid/hci_packet_factory.h b/tools/sdk/include/bluedroid/hci_packet_factory.h new file mode 100644 index 00000000..879962c2 --- /dev/null +++ b/tools/sdk/include/bluedroid/hci_packet_factory.h @@ -0,0 +1,48 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _HCI_PACKET_FACTORY_H_ +#define _HCI_PACKET_FACTORY_H_ + +#include "bt_types.h" +#include "event_mask.h" + +typedef struct { + BT_HDR *(*make_reset)(void); + BT_HDR *(*make_read_buffer_size)(void); + BT_HDR *(*make_host_buffer_size)(uint16_t acl_size, uint8_t sco_size, uint16_t acl_count, uint16_t sco_count); + BT_HDR *(*make_read_local_version_info)(void); + BT_HDR *(*make_read_bd_addr)(void); + BT_HDR *(*make_read_local_supported_commands)(void); + BT_HDR *(*make_read_local_extended_features)(uint8_t page_number); + BT_HDR *(*make_write_simple_pairing_mode)(uint8_t mode); + BT_HDR *(*make_write_secure_connections_host_support)(uint8_t mode); + BT_HDR *(*make_set_event_mask)(const bt_event_mask_t *event_mask); + BT_HDR *(*make_ble_write_host_support)(uint8_t supported_host, uint8_t simultaneous_host); + BT_HDR *(*make_ble_read_white_list_size)(void); + BT_HDR *(*make_ble_read_buffer_size)(void); + BT_HDR *(*make_ble_read_supported_states)(void); + BT_HDR *(*make_ble_read_local_supported_features)(void); + BT_HDR *(*make_ble_read_resolving_list_size)(void); + BT_HDR *(*make_ble_read_suggested_default_data_length)(void); + BT_HDR *(*make_ble_set_event_mask)(const bt_event_mask_t *event_mask); +} hci_packet_factory_t; + +const hci_packet_factory_t *hci_packet_factory_get_interface(); + +#endif /*_HCI_PACKET_FACTORY_H_*/ diff --git a/tools/sdk/include/bluedroid/hci_packet_parser.h b/tools/sdk/include/bluedroid/hci_packet_parser.h new file mode 100644 index 00000000..916ea313 --- /dev/null +++ b/tools/sdk/include/bluedroid/hci_packet_parser.h @@ -0,0 +1,99 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _HCI_PACKET_PARSER_H_ +#define _HCI_PACKET_PARSER_H_ + +#include + +#include "allocator.h" +#include "bdaddr.h" +#include "bt_types.h" +#include "device_features.h" +//#include "features.h" +#include "version.h" + +typedef struct { + void (*parse_generic_command_complete)(BT_HDR *response); + + void (*parse_read_buffer_size_response)( + BT_HDR *response, + uint16_t *data_size_ptr, + uint16_t *acl_buffer_count_ptr + ); + + void (*parse_read_local_version_info_response)( + BT_HDR *response, + bt_version_t *bt_version_ptr + ); + + void (*parse_read_bd_addr_response)( + BT_HDR *response, + bt_bdaddr_t *address_ptr + ); + + void (*parse_read_local_supported_commands_response)( + BT_HDR *response, + uint8_t *supported_commands_ptr, + size_t supported_commands_length + ); + + void (*parse_read_local_extended_features_response)( + BT_HDR *response, + uint8_t *page_number_ptr, + uint8_t *max_page_number_ptr, + bt_device_features_t *feature_pages, + size_t feature_pages_count + ); + + void (*parse_ble_read_white_list_size_response)( + BT_HDR *response, + uint8_t *white_list_size_ptr + ); + + void (*parse_ble_read_buffer_size_response)( + BT_HDR *response, + uint16_t *data_size_ptr, + uint8_t *acl_buffer_count_ptr + ); + + void (*parse_ble_read_supported_states_response)( + BT_HDR *response, + uint8_t *supported_states, + size_t supported_states_size + ); + + void (*parse_ble_read_local_supported_features_response)( + BT_HDR *response, + bt_device_features_t *supported_features + ); + + void (*parse_ble_read_resolving_list_size_response) ( + BT_HDR *response, + uint8_t *resolving_list_size_ptr + ); + + void (*parse_ble_read_suggested_default_data_length_response)( + BT_HDR *response, + uint16_t *ble_default_packet_length_ptr + ); +} hci_packet_parser_t; + +const hci_packet_parser_t *hci_packet_parser_get_interface(); + +#endif /*_HCI_PACKET_PARSER_H_*/ diff --git a/tools/sdk/include/bluedroid/hcidefs.h b/tools/sdk/include/bluedroid/hcidefs.h new file mode 100644 index 00000000..faf04fd9 --- /dev/null +++ b/tools/sdk/include/bluedroid/hcidefs.h @@ -0,0 +1,2605 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2014 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef HCIDEFS_H +#define HCIDEFS_H + +#include "bt_target.h" + +#include "bt_types.h" + +#define HCI_PROTO_VERSION 0x01 /* Version for BT spec 1.1 */ +#define HCI_PROTO_VERSION_1_2 0x02 /* Version for BT spec 1.2 */ +#define HCI_PROTO_VERSION_2_0 0x03 /* Version for BT spec 2.0 */ +#define HCI_PROTO_VERSION_2_1 0x04 /* Version for BT spec 2.1 [Lisbon] */ +#define HCI_PROTO_VERSION_3_0 0x05 /* Version for BT spec 3.0 */ +#define HCI_PROTO_VERSION_4_0 0x06 /* Version for BT spec 4.0 */ +#define HCI_PROTO_VERSION_4_1 0x07 /* Version for BT spec 4.1 */ +#define HCI_PROTO_VERSION_4_2 0x08 /* Version for BT spec 4.2 */ +#define HCI_PROTO_REVISION 0x000C /* Current implementation version */ +/* +** Definitions for HCI groups +*/ +#define HCI_GRP_LINK_CONTROL_CMDS (0x01 << 10) /* 0x0400 */ +#define HCI_GRP_LINK_POLICY_CMDS (0x02 << 10) /* 0x0800 */ +#define HCI_GRP_HOST_CONT_BASEBAND_CMDS (0x03 << 10) /* 0x0C00 */ +#define HCI_GRP_INFORMATIONAL_PARAMS (0x04 << 10) /* 0x1000 */ +#define HCI_GRP_STATUS_PARAMS (0x05 << 10) /* 0x1400 */ +#define HCI_GRP_TESTING_CMDS (0x06 << 10) /* 0x1800 */ + +#define HCI_GRP_VENDOR_SPECIFIC (0x3F << 10) /* 0xFC00 */ + +/* Group occupies high 6 bits of the HCI command rest is opcode itself */ +#define HCI_OGF(p) (UINT8)((0xFC00 & (p)) >> 10) +#define HCI_OCF(p) ( 0x3FF & (p)) + +/* +** Definitions for Link Control Commands +*/ +/* Following opcode is used only in command complete event for flow control */ +#define HCI_COMMAND_NONE 0x0000 + +/* Commands of HCI_GRP_LINK_CONTROL_CMDS group */ +#define HCI_INQUIRY (0x0001 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_INQUIRY_CANCEL (0x0002 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_PERIODIC_INQUIRY_MODE (0x0003 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_EXIT_PERIODIC_INQUIRY_MODE (0x0004 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_CREATE_CONNECTION (0x0005 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_DISCONNECT (0x0006 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_ADD_SCO_CONNECTION (0x0007 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_CREATE_CONNECTION_CANCEL (0x0008 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_ACCEPT_CONNECTION_REQUEST (0x0009 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_REJECT_CONNECTION_REQUEST (0x000A | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_LINK_KEY_REQUEST_REPLY (0x000B | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_LINK_KEY_REQUEST_NEG_REPLY (0x000C | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_PIN_CODE_REQUEST_REPLY (0x000D | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_PIN_CODE_REQUEST_NEG_REPLY (0x000E | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_CHANGE_CONN_PACKET_TYPE (0x000F | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_AUTHENTICATION_REQUESTED (0x0011 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_SET_CONN_ENCRYPTION (0x0013 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_CHANGE_CONN_LINK_KEY (0x0015 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_MASTER_LINK_KEY (0x0017 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_RMT_NAME_REQUEST (0x0019 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_RMT_NAME_REQUEST_CANCEL (0x001A | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_READ_RMT_FEATURES (0x001B | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_READ_RMT_EXT_FEATURES (0x001C | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_READ_RMT_VERSION_INFO (0x001D | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_READ_RMT_CLOCK_OFFSET (0x001F | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_READ_LMP_HANDLE (0x0020 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_SETUP_ESCO_CONNECTION (0x0028 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_ACCEPT_ESCO_CONNECTION (0x0029 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_REJECT_ESCO_CONNECTION (0x002A | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_IO_CAPABILITY_REQUEST_REPLY (0x002B | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_USER_CONF_REQUEST_REPLY (0x002C | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_USER_CONF_VALUE_NEG_REPLY (0x002D | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_USER_PASSKEY_REQ_REPLY (0x002E | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_USER_PASSKEY_REQ_NEG_REPLY (0x002F | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_REM_OOB_DATA_REQ_REPLY (0x0030 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_REM_OOB_DATA_REQ_NEG_REPLY (0x0033 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_IO_CAP_REQ_NEG_REPLY (0x0034 | HCI_GRP_LINK_CONTROL_CMDS) + +/* AMP HCI */ +#define HCI_CREATE_PHYSICAL_LINK (0x0035 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_ACCEPT_PHYSICAL_LINK (0x0036 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_DISCONNECT_PHYSICAL_LINK (0x0037 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_CREATE_LOGICAL_LINK (0x0038 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_ACCEPT_LOGICAL_LINK (0x0039 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_DISCONNECT_LOGICAL_LINK (0x003A | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_LOGICAL_LINK_CANCEL (0x003B | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_FLOW_SPEC_MODIFY (0x003C | HCI_GRP_LINK_CONTROL_CMDS) + +#define HCI_ENH_SETUP_ESCO_CONNECTION (0x003D | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_ENH_ACCEPT_ESCO_CONNECTION (0x003E | HCI_GRP_LINK_CONTROL_CMDS) + +/* ConnectionLess Broadcast */ +#define HCI_TRUNCATED_PAGE (0x003F | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_TRUNCATED_PAGE_CANCEL (0x0040 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_SET_CLB (0x0041 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_RECEIVE_CLB (0x0042 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_START_SYNC_TRAIN (0x0043 | HCI_GRP_LINK_CONTROL_CMDS) +#define HCI_RECEIVE_SYNC_TRAIN (0x0044 | HCI_GRP_LINK_CONTROL_CMDS) + +#define HCI_LINK_CTRL_CMDS_FIRST HCI_INQUIRY +#define HCI_LINK_CTRL_CMDS_LAST HCI_RECEIVE_SYNC_TRAIN + +/* Commands of HCI_GRP_LINK_POLICY_CMDS */ +#define HCI_HOLD_MODE (0x0001 | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_SNIFF_MODE (0x0003 | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_EXIT_SNIFF_MODE (0x0004 | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_PARK_MODE (0x0005 | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_EXIT_PARK_MODE (0x0006 | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_QOS_SETUP (0x0007 | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_ROLE_DISCOVERY (0x0009 | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_SWITCH_ROLE (0x000B | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_READ_POLICY_SETTINGS (0x000C | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_WRITE_POLICY_SETTINGS (0x000D | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_READ_DEF_POLICY_SETTINGS (0x000E | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_WRITE_DEF_POLICY_SETTINGS (0x000F | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_FLOW_SPECIFICATION (0x0010 | HCI_GRP_LINK_POLICY_CMDS) +#define HCI_SNIFF_SUB_RATE (0x0011 | HCI_GRP_LINK_POLICY_CMDS) + +#define HCI_LINK_POLICY_CMDS_FIRST HCI_HOLD_MODE +#define HCI_LINK_POLICY_CMDS_LAST HCI_SNIFF_SUB_RATE + + +/* Commands of HCI_GRP_HOST_CONT_BASEBAND_CMDS */ +#define HCI_SET_EVENT_MASK (0x0001 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_RESET (0x0003 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_SET_EVENT_FILTER (0x0005 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_FLUSH (0x0008 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_PIN_TYPE (0x0009 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_PIN_TYPE (0x000A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_CREATE_NEW_UNIT_KEY (0x000B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_GET_MWS_TRANS_LAYER_CFG (0x000C | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_STORED_LINK_KEY (0x000D | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_STORED_LINK_KEY (0x0011 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_DELETE_STORED_LINK_KEY (0x0012 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_CHANGE_LOCAL_NAME (0x0013 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_LOCAL_NAME (0x0014 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_CONN_ACCEPT_TOUT (0x0015 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_CONN_ACCEPT_TOUT (0x0016 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_PAGE_TOUT (0x0017 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_PAGE_TOUT (0x0018 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_SCAN_ENABLE (0x0019 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_SCAN_ENABLE (0x001A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_PAGESCAN_CFG (0x001B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_PAGESCAN_CFG (0x001C | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_INQUIRYSCAN_CFG (0x001D | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_INQUIRYSCAN_CFG (0x001E | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_AUTHENTICATION_ENABLE (0x001F | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_AUTHENTICATION_ENABLE (0x0020 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_ENCRYPTION_MODE (0x0021 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_ENCRYPTION_MODE (0x0022 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_CLASS_OF_DEVICE (0x0023 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_CLASS_OF_DEVICE (0x0024 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_VOICE_SETTINGS (0x0025 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_VOICE_SETTINGS (0x0026 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_AUTO_FLUSH_TOUT (0x0027 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_AUTO_FLUSH_TOUT (0x0028 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_NUM_BCAST_REXMITS (0x0029 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_NUM_BCAST_REXMITS (0x002A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_HOLD_MODE_ACTIVITY (0x002B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_HOLD_MODE_ACTIVITY (0x002C | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_TRANSMIT_POWER_LEVEL (0x002D | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_SCO_FLOW_CTRL_ENABLE (0x002E | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_SCO_FLOW_CTRL_ENABLE (0x002F | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_SET_HC_TO_HOST_FLOW_CTRL (0x0031 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_HOST_BUFFER_SIZE (0x0033 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_HOST_NUM_PACKETS_DONE (0x0035 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_LINK_SUPER_TOUT (0x0036 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_LINK_SUPER_TOUT (0x0037 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_NUM_SUPPORTED_IAC (0x0038 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_CURRENT_IAC_LAP (0x0039 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_CURRENT_IAC_LAP (0x003A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_PAGESCAN_PERIOD_MODE (0x003B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_PAGESCAN_PERIOD_MODE (0x003C | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_PAGESCAN_MODE (0x003D | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_PAGESCAN_MODE (0x003E | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_SET_AFH_CHANNELS (0x003F | HCI_GRP_HOST_CONT_BASEBAND_CMDS) + +#define HCI_READ_INQSCAN_TYPE (0x0042 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_INQSCAN_TYPE (0x0043 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_INQUIRY_MODE (0x0044 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_INQUIRY_MODE (0x0045 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_PAGESCAN_TYPE (0x0046 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_PAGESCAN_TYPE (0x0047 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_AFH_ASSESSMENT_MODE (0x0048 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_AFH_ASSESSMENT_MODE (0x0049 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_EXT_INQ_RESPONSE (0x0051 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_EXT_INQ_RESPONSE (0x0052 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_REFRESH_ENCRYPTION_KEY (0x0053 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_SIMPLE_PAIRING_MODE (0x0055 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_SIMPLE_PAIRING_MODE (0x0056 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_LOCAL_OOB_DATA (0x0057 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_INQ_TX_POWER_LEVEL (0x0058 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_INQ_TX_POWER_LEVEL (0x0059 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_ERRONEOUS_DATA_RPT (0x005A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_ERRONEOUS_DATA_RPT (0x005B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_ENHANCED_FLUSH (0x005F | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_SEND_KEYPRESS_NOTIF (0x0060 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) + + +/* AMP HCI */ +#define HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT (0x0061 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT (0x0062 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_SET_EVENT_MASK_PAGE_2 (0x0063 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_LOCATION_DATA (0x0064 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_LOCATION_DATA (0x0065 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_FLOW_CONTROL_MODE (0x0066 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_FLOW_CONTROL_MODE (0x0067 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_BE_FLUSH_TOUT (0x0069 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_BE_FLUSH_TOUT (0x006A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_SHORT_RANGE_MODE (0x006B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) /* 802.11 only */ +#define HCI_READ_LE_HOST_SUPPORT (0x006C | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_LE_HOST_SUPPORT (0x006D | HCI_GRP_HOST_CONT_BASEBAND_CMDS) + + +/* MWS coexistence */ +#define HCI_SET_MWS_CHANNEL_PARAMETERS (0x006E | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_SET_EXTERNAL_FRAME_CONFIGURATION (0x006F | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_SET_MWS_SIGNALING (0x0070 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_SET_MWS_TRANSPORT_LAYER (0x0071 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_SET_MWS_SCAN_FREQUENCY_TABLE (0x0072 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_SET_MWS_PATTERN_CONFIGURATION (0x0073 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) + +/* Connectionless Broadcast */ +#define HCI_SET_RESERVED_LT_ADDR (0x0074 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_DELETE_RESERVED_LT_ADDR (0x0075 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_CLB_DATA (0x0076 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_READ_SYNC_TRAIN_PARAM (0x0077 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_SYNC_TRAIN_PARAM (0x0078 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) + +#define HCI_READ_SECURE_CONNS_SUPPORT (0x0079 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_WRITE_SECURE_CONNS_SUPPORT (0x007A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) +#define HCI_CONT_BASEBAND_CMDS_FIRST HCI_SET_EVENT_MASK +#define HCI_CONT_BASEBAND_CMDS_LAST HCI_READ_SYNC_TRAIN_PARAM + + +/* Commands of HCI_GRP_INFORMATIONAL_PARAMS group */ +#define HCI_READ_LOCAL_VERSION_INFO (0x0001 | HCI_GRP_INFORMATIONAL_PARAMS) +#define HCI_READ_LOCAL_SUPPORTED_CMDS (0x0002 | HCI_GRP_INFORMATIONAL_PARAMS) +#define HCI_READ_LOCAL_FEATURES (0x0003 | HCI_GRP_INFORMATIONAL_PARAMS) +#define HCI_READ_LOCAL_EXT_FEATURES (0x0004 | HCI_GRP_INFORMATIONAL_PARAMS) +#define HCI_READ_BUFFER_SIZE (0x0005 | HCI_GRP_INFORMATIONAL_PARAMS) +#define HCI_READ_COUNTRY_CODE (0x0007 | HCI_GRP_INFORMATIONAL_PARAMS) +#define HCI_READ_BD_ADDR (0x0009 | HCI_GRP_INFORMATIONAL_PARAMS) +#define HCI_READ_DATA_BLOCK_SIZE (0x000A | HCI_GRP_INFORMATIONAL_PARAMS) +#define HCI_READ_LOCAL_SUPPORTED_CODECS (0x000B | HCI_GRP_INFORMATIONAL_PARAMS) + +#define HCI_INFORMATIONAL_CMDS_FIRST HCI_READ_LOCAL_VERSION_INFO +#define HCI_INFORMATIONAL_CMDS_LAST HCI_READ_LOCAL_SUPPORTED_CODECS + + +/* Commands of HCI_GRP_STATUS_PARAMS group */ +#define HCI_READ_FAILED_CONTACT_COUNT (0x0001 | HCI_GRP_STATUS_PARAMS) +#define HCI_RESET_FAILED_CONTACT_COUNT (0x0002 | HCI_GRP_STATUS_PARAMS) +#define HCI_GET_LINK_QUALITY (0x0003 | HCI_GRP_STATUS_PARAMS) +#define HCI_READ_RSSI (0x0005 | HCI_GRP_STATUS_PARAMS) +#define HCI_READ_AFH_CH_MAP (0x0006 | HCI_GRP_STATUS_PARAMS) +#define HCI_READ_CLOCK (0x0007 | HCI_GRP_STATUS_PARAMS) +#define HCI_READ_ENCR_KEY_SIZE (0x0008 | HCI_GRP_STATUS_PARAMS) + +/* AMP HCI */ +#define HCI_READ_LOCAL_AMP_INFO (0x0009 | HCI_GRP_STATUS_PARAMS) +#define HCI_READ_LOCAL_AMP_ASSOC (0x000A | HCI_GRP_STATUS_PARAMS) +#define HCI_WRITE_REMOTE_AMP_ASSOC (0x000B | HCI_GRP_STATUS_PARAMS) + +#define HCI_STATUS_PARAMS_CMDS_FIRST HCI_READ_FAILED_CONTACT_COUNT +#define HCI_STATUS_PARAMS_CMDS_LAST HCI_WRITE_REMOTE_AMP_ASSOC + +/* Commands of HCI_GRP_TESTING_CMDS group */ +#define HCI_READ_LOOPBACK_MODE (0x0001 | HCI_GRP_TESTING_CMDS) +#define HCI_WRITE_LOOPBACK_MODE (0x0002 | HCI_GRP_TESTING_CMDS) +#define HCI_ENABLE_DEV_UNDER_TEST_MODE (0x0003 | HCI_GRP_TESTING_CMDS) +#define HCI_WRITE_SIMP_PAIR_DEBUG_MODE (0x0004 | HCI_GRP_TESTING_CMDS) + +/* AMP HCI */ +#define HCI_ENABLE_AMP_RCVR_REPORTS (0x0007 | HCI_GRP_TESTING_CMDS) +#define HCI_AMP_TEST_END (0x0008 | HCI_GRP_TESTING_CMDS) +#define HCI_AMP_TEST (0x0009 | HCI_GRP_TESTING_CMDS) + +#define HCI_TESTING_CMDS_FIRST HCI_READ_LOOPBACK_MODE +#define HCI_TESTING_CMDS_LAST HCI_AMP_TEST + +#define HCI_VENDOR_CMDS_FIRST 0x0001 +#define HCI_VENDOR_CMDS_LAST 0xFFFF +#define HCI_VSC_MULTI_AV_HANDLE 0x0AAA +#define HCI_VSC_BURST_MODE_HANDLE 0x0BBB + +/* BLE HCI */ +#define HCI_GRP_BLE_CMDS (0x08 << 10) +/* Commands of BLE Controller setup and configuration */ +#define HCI_BLE_SET_EVENT_MASK (0x0001 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_READ_BUFFER_SIZE (0x0002 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_READ_LOCAL_SPT_FEAT (0x0003 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_WRITE_LOCAL_SPT_FEAT (0x0004 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_WRITE_RANDOM_ADDR (0x0005 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_WRITE_ADV_PARAMS (0x0006 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_READ_ADV_CHNL_TX_POWER (0x0007 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_WRITE_ADV_DATA (0x0008 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_WRITE_SCAN_RSP_DATA (0x0009 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_WRITE_ADV_ENABLE (0x000A | HCI_GRP_BLE_CMDS) +#define HCI_BLE_WRITE_SCAN_PARAMS (0x000B | HCI_GRP_BLE_CMDS) +#define HCI_BLE_WRITE_SCAN_ENABLE (0x000C | HCI_GRP_BLE_CMDS) +#define HCI_BLE_CREATE_LL_CONN (0x000D | HCI_GRP_BLE_CMDS) +#define HCI_BLE_CREATE_CONN_CANCEL (0x000E | HCI_GRP_BLE_CMDS) +#define HCI_BLE_READ_WHITE_LIST_SIZE (0x000F | HCI_GRP_BLE_CMDS) +#define HCI_BLE_CLEAR_WHITE_LIST (0x0010 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_ADD_WHITE_LIST (0x0011 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_REMOVE_WHITE_LIST (0x0012 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_UPD_LL_CONN_PARAMS (0x0013 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_SET_HOST_CHNL_CLASS (0x0014 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_READ_CHNL_MAP (0x0015 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_READ_REMOTE_FEAT (0x0016 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_ENCRYPT (0x0017 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_RAND (0x0018 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_START_ENC (0x0019 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_LTK_REQ_REPLY (0x001A | HCI_GRP_BLE_CMDS) +#define HCI_BLE_LTK_REQ_NEG_REPLY (0x001B | HCI_GRP_BLE_CMDS) +#define HCI_BLE_READ_SUPPORTED_STATES (0x001C | HCI_GRP_BLE_CMDS) +/*0x001D, 0x001E and 0x001F are reserved*/ +#define HCI_BLE_RECEIVER_TEST (0x001D | HCI_GRP_BLE_CMDS) +#define HCI_BLE_TRANSMITTER_TEST (0x001E | HCI_GRP_BLE_CMDS) +/* BLE TEST COMMANDS */ +#define HCI_BLE_TEST_END (0x001F | HCI_GRP_BLE_CMDS) +#define HCI_BLE_RC_PARAM_REQ_REPLY (0x0020 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_RC_PARAM_REQ_NEG_REPLY (0x0021 | HCI_GRP_BLE_CMDS) + +#define HCI_BLE_SET_DATA_LENGTH (0x0022 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_READ_DEFAULT_DATA_LENGTH (0x0023 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_WRITE_DEFAULT_DATA_LENGTH (0x0024 | HCI_GRP_BLE_CMDS) + +#define HCI_BLE_ADD_DEV_RESOLVING_LIST (0x0027 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_RM_DEV_RESOLVING_LIST (0x0028 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_CLEAR_RESOLVING_LIST (0x0029 | HCI_GRP_BLE_CMDS) +#define HCI_BLE_READ_RESOLVING_LIST_SIZE (0x002A | HCI_GRP_BLE_CMDS) +#define HCI_BLE_READ_RESOLVABLE_ADDR_PEER (0x002B | HCI_GRP_BLE_CMDS) +#define HCI_BLE_READ_RESOLVABLE_ADDR_LOCAL (0x002C | HCI_GRP_BLE_CMDS) +#define HCI_BLE_SET_ADDR_RESOLUTION_ENABLE (0x002D | HCI_GRP_BLE_CMDS) +#define HCI_BLE_SET_RAND_PRIV_ADDR_TIMOUT (0x002E | HCI_GRP_BLE_CMDS) + +/* LE Get Vendor Capabilities Command OCF */ +#define HCI_BLE_VENDOR_CAP_OCF (0x0153 | HCI_GRP_VENDOR_SPECIFIC) + +/* Multi adv OCF */ +#define HCI_BLE_MULTI_ADV_OCF (0x0154 | HCI_GRP_VENDOR_SPECIFIC) + +/* Batch scan OCF */ +#define HCI_BLE_BATCH_SCAN_OCF (0x0156 | HCI_GRP_VENDOR_SPECIFIC) + +/* ADV filter OCF */ +#define HCI_BLE_ADV_FILTER_OCF (0x0157 | HCI_GRP_VENDOR_SPECIFIC) + +/* Tracking OCF */ +#define HCI_BLE_TRACK_ADV_OCF (0x0158 | HCI_GRP_VENDOR_SPECIFIC) + +/* Energy info OCF */ +#define HCI_BLE_ENERGY_INFO_OCF (0x0159 | HCI_GRP_VENDOR_SPECIFIC) + +/* Extended BLE Scan parameters OCF */ +#define HCI_BLE_EXTENDED_SCAN_PARAMS_OCF (0x0160 | HCI_GRP_VENDOR_SPECIFIC) + +/* subcode for multi adv feature */ +#define BTM_BLE_MULTI_ADV_SET_PARAM 0x01 +#define BTM_BLE_MULTI_ADV_WRITE_ADV_DATA 0x02 +#define BTM_BLE_MULTI_ADV_WRITE_SCAN_RSP_DATA 0x03 +#define BTM_BLE_MULTI_ADV_SET_RANDOM_ADDR 0x04 +#define BTM_BLE_MULTI_ADV_ENB 0x05 + +/* multi adv VSE subcode */ +#define HCI_VSE_SUBCODE_BLE_MULTI_ADV_ST_CHG 0x55 /* multi adv instance state change */ + +/* subcode for batch scan feature */ +#define BTM_BLE_BATCH_SCAN_ENB_DISAB_CUST_FEATURE 0x01 +#define BTM_BLE_BATCH_SCAN_SET_STORAGE_PARAM 0x02 +#define BTM_BLE_BATCH_SCAN_SET_PARAMS 0x03 +#define BTM_BLE_BATCH_SCAN_READ_RESULTS 0x04 + +/* batch scan VSE subcode */ +#define HCI_VSE_SUBCODE_BLE_THRESHOLD_SUB_EVT 0x54 /* Threshold event */ + +/* tracking sub event */ +#define HCI_VSE_SUBCODE_BLE_TRACKING_SUB_EVT 0x56 /* Tracking event */ + +/* LE supported states definition */ +#define HCI_LE_ADV_STATE 0x00000001 +#define HCI_LE_SCAN_STATE 0x00000002 +#define HCI_LE_INIT_STATE 0x00000004 +#define HCI_LE_CONN_SL_STATE 0x00000008 +#define HCI_LE_ADV_SCAN_STATE 0x00000010 +#define HCI_LE_ADV_INIT_STATE 0x00000020 +#define HCI_LE_ADV_MA_STATE 0x00000040 +#define HCI_LE_ADV_SL_STATE 0x00000080 +#define HCI_LE_SCAN_INIT_STATE 0x00000100 +#define HCI_LE_SCAN_MA_STATE 0x00000200 +#define HCI_LE_SCAN_SL_STATE 0x00000400 +#define HCI_LE_INIT_MA_STATE 0x00000800 + +/* LE Supported States */ +/* Non Connectable Adv state is supported. 0x0000000000000001 */ +#define HCI_SUPP_LE_STATES_NON_CONN_ADV_MASK 0x01 +#define HCI_SUPP_LE_STATES_NON_CONN_ADV_OFF 0 +#define HCI_LE_STATES_NON_CONN_ADV_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_OFF] & HCI_SUPP_LE_STATES_NON_CONN_ADV_MASK) + +/*Scanneable Connectable Adv state is supported. 0x0000000000000002 */ +#define HCI_SUPP_LE_STATES_SCAN_ADV_MASK 0x02 +#define HCI_SUPP_LE_STATESSCAN_ADV_OFF 0 +#define HCI_LE_STATES_SCAN_ADV_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATESSCAN_ADV_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_MASK) + +/* Connectable Adv state is supported. 0x0000000000000004 */ +#define HCI_SUPP_LE_STATES_CONN_ADV_MASK 0x04 +#define HCI_SUPP_LE_STATES_CONN_ADV_OFF 0 +#define HCI_LE_STATES_CONN_ADV_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_CONN_ADV_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_MASK) + +/* Hi duty Cycle Directed Adv state is supported. 0x0000000000000008 */ +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASK 0x08 +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_OFF 0 +#define HCI_LE_STATES_HI_DUTY_DIR_ADV_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_OFF] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASK) + +/* Passive Scan state is supported. 0x0000000000000010 */ +#define HCI_SUPP_LE_STATES_PASS_SCAN_MASK 0x10 +#define HCI_SUPP_LE_STATES_PASS_SCAN_OFF 0 +#define HCI_LE_STATES_PASS_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_OFF] & HCI_SUPP_LE_STATES_PASS_SCAN_MASK) + +/* Active Scan state is supported. 0x0000000000000020 */ +#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASK 0x20 +#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_OFF 0 +#define HCI_LE_STATES_ACTIVE_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_OFF] & HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASK) + +/* Initiating state is supported. 0x0000000000000040 (or connection state in master role is also supported) */ +#define HCI_SUPP_LE_STATES_INIT_MASK 0x40 +#define HCI_SUPP_LE_STATES_INIT_OFF 0 +#define HCI_LE_STATES_INIT_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_INIT_OFF] & HCI_SUPP_LE_STATES_INIT_MASK) + +/*connection state in slave role is also supported. 0x0000000000000080 */ +#define HCI_SUPP_LE_STATES_SLAVE_MASK 0x80 +#define HCI_SUPP_LE_STATES_SLAVE_OFF 0 +#define HCI_LE_STATES_SLAVE_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_SLAVE_OFF] & HCI_SUPP_LE_STATES_SLAVE_MASK) + +/* Non Connectable Adv state and Passive Scanning State combination is supported. 0x0000000000000100 */ +#define HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_MASK 0x01 +#define HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_OFF 1 +#define HCI_LE_STATES_NON_CONN_ADV_PASS_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_OFF] & HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_MASK) + +/*Scannable Adv state and Passive Scanning State combination is supported. 0x0000000000000200 */ +#define HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_MASK 0x02 +#define HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_OFF 1 +#define HCI_LE_STATES_SCAN_ADV_PASS_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_MASK) + +/*Connectable Adv state and Passive Scanning State combination is supported. 0x0000000000000400 */ +#define HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_MASK 0x04 +#define HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_OFF 1 +#define HCI_LE_STATES_CONN_ADV_PASS_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_MASK) + +/*High Duty Cycl Directed ADv and Passive Scanning State combination is supported. 0x0000000000000800 */ +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_MASK 0x08 +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_OFF 1 +#define HCI_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_MASK] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_OFF) + +/*Non Connectable Adv state and Passive Scanning State combination is supported. 0x0000000000001000 */ +#define HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_MASK 0x10 +#define HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_OFF 1 +#define HCI_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_OFF] & HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_MASK) + +/*Scannable Adv state and Active Scanning State combination is supported. 0x0000000000002000 */ +#define HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_MASK 0x20 +#define HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_OFF 1 +#define HCI_LE_STATES_SCAN_ADV_ACTIVE_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_MASK) + +/*Connectable Adv state and Active Scanning State combination is supported. 0x0000000000004000 */ +#define HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_MASK 0x40 +#define HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_OFF 1 +#define HCI_LE_STATES_CONN_ADV_ACTIVE_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_MASK) + +/*High Duty Cycl Directed ADv and ACtive Scanning State combination is supported. 0x0000000000008000 */ +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_MASK 0x80 +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_OFF 1 +#define HCI_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_MASK] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_OFF) + +/*Non-Connectable Adv state and Initiating State combination is supported. 0x0000000000010000 */ +#define HCI_SUPP_LE_STATES_NON_CONN_INIT_MASK 0x01 +#define HCI_SUPP_LE_STATES_NON_CONN_INIT_OFF 2 +#define HCI_LE_STATES_NON_CONN_INIT_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_NON_CONN_INIT_OFF] & HCI_SUPP_LE_STATES_NON_CONN_INIT_MASK) + +/* Scannable Adv state and Initiating State combination is supported. 0x0000000000020000 */ +#define HCI_SUPP_LE_STATES_SCAN_ADV_INIT_MASK 0x02 +#define HCI_SUPP_LE_STATES_SCAN_ADV_INIT_OFF 2 +#define HCI_LE_STATES_SCAN_ADV_INIT_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_INIT_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_INIT_MASK) + +/* Non-Connectable Adv state and Master Role combination is supported. 0x0000000000040000 */ +#define HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_MASK 0x04 +#define HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_OFF 2 +#define HCI_LE_STATES_NON_CONN_ADV_MASTER_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_OFF] & HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_MASK) + +/*Scannable Adv state and Master Role combination is supported. 0x0000000000040000 */ +#define HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_MASK 0x08 +#define HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_OFF 2 +#define HCI_LE_STATES_SCAN_ADV_MASTER_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_MASK) + +/* Non-Connectable Adv and Slave Role combination is supported. 0x000000000100000 */ +#define HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_MASK 0x10 +#define HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_OFF 2 +#define HCI_LE_STATES_NON_CONN_ADV_SLAVE_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_OFF] & HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_MASK) + +/*Scannable Adv and Slave Role combination is supported. 0x000000000200000 */ +#define HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_MASK 0x20 +#define HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_OFF 2 +#define HCI_LE_STATES_SCAN_ADV_SLAVE_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_MASK) + +/*Passive Scan and Initiating State combination is supported. 0x000000000400000 */ +#define HCI_SUPP_LE_STATES_PASS_SCAN_INIT_MASK 0x40 +#define HCI_SUPP_LE_STATES_PASS_SCAN_INIT_OFF 2 +#define HCI_LE_STATES_PASS_SCAN_INIT_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_INIT_OFF] & HCI_SUPP_LE_STATES_PASS_SCAN_INIT_MASK) + +/*Active Scan and Initiating State combination is supported. 0x000000000800000 */ +#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_MASK 0x80 +#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_OFF 2 +#define HCI_LE_STATES_ACTIVE_SCAN_INIT_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_OFF] & HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_MASK) + +/*Passive Scan and Master Role combination is supported. 0x000000001000000 */ +#define HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_MASK 0x01 +#define HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_OFF 3 +#define HCI_LE_STATES_PASS_SCAN_MASTER_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_OFF] & HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_MASK) + +/*Active Scan and Master Role combination is supported. 0x000000002000000 */ +#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_MASK 0x02 +#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_OFF 3 +#define HCI_LE_STATES_ACTIVE_SCAN_MASTER_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_OFF] & HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_MASK) + +/*Passive Scan and Slave Role combination is supported. 0x000000004000000 */ +#define HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_MASK 0x04 +#define HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_OFF 3 +#define HCI_LE_STATES_PASS_SCAN_SLAVE_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_OFF] & HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_MASK) + +/*Active Scan and Slave Role combination is supported. 0x000000008000000 */ +#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_MASK 0x08 +#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_OFF 3 +#define HCI_LE_STATES_ACTIVE_SCAN_SLAVE_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_OFF] & HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_MASK) + +/*Link Layer Topology Added States Combo */ +/*Initiating State and Master Role combination supported. + Master Role and Master Role combination is also supported. 0x0000000010000000 */ +#define HCI_SUPP_LE_STATES_INIT_MASTER_MASK 0x10 +#define HCI_SUPP_LE_STATES_INIT_MASTER_OFF 3 +#define HCI_LE_STATES_INIT_MASTER_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_INIT_MASTER_OFF] & HCI_SUPP_LE_STATES_INIT_MASTER_MASK) + +/*Low Duty Cycle Directed Advertising State . 0x0000000020000000 */ +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASK 0x20 +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_OFF 3 +#define HCI_LE_STATES_LOW_DUTY_DIR_ADV_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_LOW_DUTY_DIR_ADV_OFF] & HCI_SUPP_LE_STATES_LOW_DUTY_DIR_ADV_MASK) + +/*Low Duty Cycle Directed Advertising State and Passive scan combination. 0x0000000040000000 */ +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_MASK 0x40 +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_OFF 3 +#define HCI_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_OFF] & HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_MASK) + +/*Low Duty Cycle Directed Advertising State and Active scan combination . 0x0000000080000000 */ +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_MASK 0x80 +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_OFF 3 +#define HCI_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_OFF] & HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_MASK) + +/* Connectable Advertising State and Initiating State combination supported. 0x0000000100000000 */ +#define HCI_SUPP_LE_STATES_CONN_ADV_INIT_MASK 0x01 +#define HCI_SUPP_LE_STATES_CONN_ADV_INIT_OFF 4 +#define HCI_LE_STATES_CONN_ADV_INIT_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_CONN_ADV_INIT_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_INIT_MASK) + +/* High Duty Cycle Directed Advertising State and Initiating State combination supported. */ +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_MASK 0x02 +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_OFF 4 +#define HCI_LE_STATES_HI_DUTY_DIR_ADV_INIT_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_OFF] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_MASK) + +/* Low Duty Cycle Directed Advertising State and Initiating State combination supported.*/ +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_MASK 0x04 +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_OFF 4 +#define HCI_LE_STATES_LO_DUTY_DIR_ADV_INIT_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_OFF] & HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_MASK) + +/* Connectable Advertising State and Master Role combination supported.*/ +#define HCI_SUPP_LE_STATES_CONN_ADV_MASTER_MASK 0x08 +#define HCI_SUPP_LE_STATES_CONN_ADV_MASTER_OFF 4 +#define HCI_LE_STATES_CONN_ADV_MASTER_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_CONN_ADV_MASTER_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_MASTER_MASK) + +/* High Duty Cycle Directed Advertising State and Master Role combination supported.*/ +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_MASK 0x10 +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_OFF 4 +#define HCI_LE_STATES_HI_DUTY_DIR_ADV_MASTER_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_OFF] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_MASK) + +/* Low Duty Cycle Directed Advertising State and Master Role combination supported.*/ +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_MASK 0x20 +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_OFF 4 +#define HCI_LE_STATES_LO_DUTY_DIR_ADV_MASTER_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_OFF] & HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_MASK) + +/* Connectable Advertising State and Slave Role combination supported. */ +#define HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_MASK 0x40 +#define HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_OFF 4 +#define HCI_LE_STATES_CONN_ADV_SLAVE_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_MASK) + +/* High Duty Cycle Directed Advertising State and slave Role combination supported.*/ +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_MASK 0x80 +#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_OFF 4 +#define HCI_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_OFF] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_MASK) + +/* Low Duty Cycle Directed Advertising State and slave Role combination supported.*/ +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_MASK 0x01 +#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_OFF 5 +#define HCI_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_OFF] & HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_MASK) + +/* Initiating State and Slave Role combination supported. + Master Role and Slave Role combination also supported. + */ +#define HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_MASK 0x02 +#define HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_OFF 5 +#define HCI_LE_STATES_INIT_MASTER_SLAVE_SUPPORTED(x) ((x)[HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_OFF] & HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_MASK) + +/* +** Definitions for HCI Events +*/ +#define HCI_INQUIRY_COMP_EVT 0x01 +#define HCI_INQUIRY_RESULT_EVT 0x02 +#define HCI_CONNECTION_COMP_EVT 0x03 +#define HCI_CONNECTION_REQUEST_EVT 0x04 +#define HCI_DISCONNECTION_COMP_EVT 0x05 +#define HCI_AUTHENTICATION_COMP_EVT 0x06 +#define HCI_RMT_NAME_REQUEST_COMP_EVT 0x07 +#define HCI_ENCRYPTION_CHANGE_EVT 0x08 +#define HCI_CHANGE_CONN_LINK_KEY_EVT 0x09 +#define HCI_MASTER_LINK_KEY_COMP_EVT 0x0A +#define HCI_READ_RMT_FEATURES_COMP_EVT 0x0B +#define HCI_READ_RMT_VERSION_COMP_EVT 0x0C +#define HCI_QOS_SETUP_COMP_EVT 0x0D +#define HCI_COMMAND_COMPLETE_EVT 0x0E +#define HCI_COMMAND_STATUS_EVT 0x0F +#define HCI_HARDWARE_ERROR_EVT 0x10 +#define HCI_FLUSH_OCCURED_EVT 0x11 +#define HCI_ROLE_CHANGE_EVT 0x12 +#define HCI_NUM_COMPL_DATA_PKTS_EVT 0x13 +#define HCI_MODE_CHANGE_EVT 0x14 +#define HCI_RETURN_LINK_KEYS_EVT 0x15 +#define HCI_PIN_CODE_REQUEST_EVT 0x16 +#define HCI_LINK_KEY_REQUEST_EVT 0x17 +#define HCI_LINK_KEY_NOTIFICATION_EVT 0x18 +#define HCI_LOOPBACK_COMMAND_EVT 0x19 +#define HCI_DATA_BUF_OVERFLOW_EVT 0x1A +#define HCI_MAX_SLOTS_CHANGED_EVT 0x1B +#define HCI_READ_CLOCK_OFF_COMP_EVT 0x1C +#define HCI_CONN_PKT_TYPE_CHANGE_EVT 0x1D +#define HCI_QOS_VIOLATION_EVT 0x1E +#define HCI_PAGE_SCAN_MODE_CHANGE_EVT 0x1F +#define HCI_PAGE_SCAN_REP_MODE_CHNG_EVT 0x20 +#define HCI_FLOW_SPECIFICATION_COMP_EVT 0x21 +#define HCI_INQUIRY_RSSI_RESULT_EVT 0x22 +#define HCI_READ_RMT_EXT_FEATURES_COMP_EVT 0x23 +#define HCI_ESCO_CONNECTION_COMP_EVT 0x2C +#define HCI_ESCO_CONNECTION_CHANGED_EVT 0x2D +#define HCI_SNIFF_SUB_RATE_EVT 0x2E +#define HCI_EXTENDED_INQUIRY_RESULT_EVT 0x2F +#define HCI_ENCRYPTION_KEY_REFRESH_COMP_EVT 0x30 +#define HCI_IO_CAPABILITY_REQUEST_EVT 0x31 +#define HCI_IO_CAPABILITY_RESPONSE_EVT 0x32 +#define HCI_USER_CONFIRMATION_REQUEST_EVT 0x33 +#define HCI_USER_PASSKEY_REQUEST_EVT 0x34 +#define HCI_REMOTE_OOB_DATA_REQUEST_EVT 0x35 +#define HCI_SIMPLE_PAIRING_COMPLETE_EVT 0x36 +#define HCI_LINK_SUPER_TOUT_CHANGED_EVT 0x38 +#define HCI_ENHANCED_FLUSH_COMPLETE_EVT 0x39 +#define HCI_USER_PASSKEY_NOTIFY_EVT 0x3B +#define HCI_KEYPRESS_NOTIFY_EVT 0x3C +#define HCI_RMT_HOST_SUP_FEAT_NOTIFY_EVT 0x3D + +/*#define HCI_GENERIC_AMP_LINK_KEY_NOTIF_EVT 0x3E Removed from spec */ +#define HCI_PHYSICAL_LINK_COMP_EVT 0x40 +#define HCI_CHANNEL_SELECTED_EVT 0x41 +#define HCI_DISC_PHYSICAL_LINK_COMP_EVT 0x42 +#define HCI_PHY_LINK_LOSS_EARLY_WARNING_EVT 0x43 +#define HCI_PHY_LINK_RECOVERY_EVT 0x44 +#define HCI_LOGICAL_LINK_COMP_EVT 0x45 +#define HCI_DISC_LOGICAL_LINK_COMP_EVT 0x46 +#define HCI_FLOW_SPEC_MODIFY_COMP_EVT 0x47 +#define HCI_NUM_COMPL_DATA_BLOCKS_EVT 0x48 +#define HCI_SHORT_RANGE_MODE_COMPLETE_EVT 0x4C +#define HCI_AMP_STATUS_CHANGE_EVT 0x4D +#define HCI_SET_TRIGGERED_CLOCK_CAPTURE_EVT 0x4E + +/* ULP HCI Event */ +#define HCI_BLE_EVENT 0x3e +/* ULP Event sub code */ +#define HCI_BLE_CONN_COMPLETE_EVT 0x01 +#define HCI_BLE_ADV_PKT_RPT_EVT 0x02 +#define HCI_BLE_LL_CONN_PARAM_UPD_EVT 0x03 +#define HCI_BLE_READ_REMOTE_FEAT_CMPL_EVT 0x04 +#define HCI_BLE_LTK_REQ_EVT 0x05 +#define HCI_BLE_RC_PARAM_REQ_EVT 0x06 +#define HCI_BLE_DATA_LENGTH_CHANGE_EVT 0x07 +#define HCI_BLE_ENHANCED_CONN_COMPLETE_EVT 0x0a +#define HCI_BLE_DIRECT_ADV_EVT 0x0b + +/* Definitions for LE Channel Map */ +#define HCI_BLE_CHNL_MAP_SIZE 5 + +#define HCI_VENDOR_SPECIFIC_EVT 0xFF /* Vendor specific events */ +#define HCI_NAP_TRACE_EVT 0xFF /* was define 0xFE, 0xFD, change to 0xFF + because conflict w/ TCI_EVT and per + specification compliant */ + +/* +** Defentions for HCI Error Codes that are past in the events +*/ +#define HCI_SUCCESS 0x00 +#define HCI_PENDING 0x00 +#define HCI_ERR_ILLEGAL_COMMAND 0x01 +#define HCI_ERR_NO_CONNECTION 0x02 +#define HCI_ERR_HW_FAILURE 0x03 +#define HCI_ERR_PAGE_TIMEOUT 0x04 +#define HCI_ERR_AUTH_FAILURE 0x05 +#define HCI_ERR_KEY_MISSING 0x06 +#define HCI_ERR_MEMORY_FULL 0x07 +#define HCI_ERR_CONNECTION_TOUT 0x08 +#define HCI_ERR_MAX_NUM_OF_CONNECTIONS 0x09 +#define HCI_ERR_MAX_NUM_OF_SCOS 0x0A +#define HCI_ERR_CONNECTION_EXISTS 0x0B +#define HCI_ERR_COMMAND_DISALLOWED 0x0C +#define HCI_ERR_HOST_REJECT_RESOURCES 0x0D +#define HCI_ERR_HOST_REJECT_SECURITY 0x0E +#define HCI_ERR_HOST_REJECT_DEVICE 0x0F +#define HCI_ERR_HOST_TIMEOUT 0x10 +#define HCI_ERR_UNSUPPORTED_VALUE 0x11 +#define HCI_ERR_ILLEGAL_PARAMETER_FMT 0x12 +#define HCI_ERR_PEER_USER 0x13 +#define HCI_ERR_PEER_LOW_RESOURCES 0x14 +#define HCI_ERR_PEER_POWER_OFF 0x15 +#define HCI_ERR_CONN_CAUSE_LOCAL_HOST 0x16 +#define HCI_ERR_REPEATED_ATTEMPTS 0x17 +#define HCI_ERR_PAIRING_NOT_ALLOWED 0x18 +#define HCI_ERR_UNKNOWN_LMP_PDU 0x19 +#define HCI_ERR_UNSUPPORTED_REM_FEATURE 0x1A +#define HCI_ERR_SCO_OFFSET_REJECTED 0x1B +#define HCI_ERR_SCO_INTERVAL_REJECTED 0x1C +#define HCI_ERR_SCO_AIR_MODE 0x1D +#define HCI_ERR_INVALID_LMP_PARAM 0x1E +#define HCI_ERR_UNSPECIFIED 0x1F +#define HCI_ERR_UNSUPPORTED_LMP_FEATURE 0x20 +#define HCI_ERR_ROLE_CHANGE_NOT_ALLOWED 0x21 +#define HCI_ERR_LMP_RESPONSE_TIMEOUT 0x22 +#define HCI_ERR_LMP_ERR_TRANS_COLLISION 0x23 +#define HCI_ERR_LMP_PDU_NOT_ALLOWED 0x24 +#define HCI_ERR_ENCRY_MODE_NOT_ACCEPTABLE 0x25 +#define HCI_ERR_UNIT_KEY_USED 0x26 +#define HCI_ERR_QOS_NOT_SUPPORTED 0x27 +#define HCI_ERR_INSTANT_PASSED 0x28 +#define HCI_ERR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED 0x29 +#define HCI_ERR_DIFF_TRANSACTION_COLLISION 0x2A +#define HCI_ERR_UNDEFINED_0x2B 0x2B +#define HCI_ERR_QOS_UNACCEPTABLE_PARAM 0x2C +#define HCI_ERR_QOS_REJECTED 0x2D +#define HCI_ERR_CHAN_CLASSIF_NOT_SUPPORTED 0x2E +#define HCI_ERR_INSUFFCIENT_SECURITY 0x2F +#define HCI_ERR_PARAM_OUT_OF_RANGE 0x30 +#define HCI_ERR_UNDEFINED_0x31 0x31 +#define HCI_ERR_ROLE_SWITCH_PENDING 0x32 +#define HCI_ERR_UNDEFINED_0x33 0x33 +#define HCI_ERR_RESERVED_SLOT_VIOLATION 0x34 +#define HCI_ERR_ROLE_SWITCH_FAILED 0x35 +#define HCI_ERR_INQ_RSP_DATA_TOO_LARGE 0x36 +#define HCI_ERR_SIMPLE_PAIRING_NOT_SUPPORTED 0x37 +#define HCI_ERR_HOST_BUSY_PAIRING 0x38 +#define HCI_ERR_REJ_NO_SUITABLE_CHANNEL 0x39 +#define HCI_ERR_CONTROLLER_BUSY 0x3A +#define HCI_ERR_UNACCEPT_CONN_INTERVAL 0x3B +#define HCI_ERR_DIRECTED_ADVERTISING_TIMEOUT 0x3C +#define HCI_ERR_CONN_TOUT_DUE_TO_MIC_FAILURE 0x3D +#define HCI_ERR_CONN_FAILED_ESTABLISHMENT 0x3E +#define HCI_ERR_MAC_CONNECTION_FAILED 0x3F + +/* ConnectionLess Broadcast errors */ +#define HCI_ERR_LT_ADDR_ALREADY_IN_USE 0x40 +#define HCI_ERR_LT_ADDR_NOT_ALLOCATED 0x41 +#define HCI_ERR_CLB_NOT_ENABLED 0x42 +#define HCI_ERR_CLB_DATA_TOO_BIG 0x43 + +#define HCI_ERR_MAX_ERR 0x43 + +#define HCI_HINT_TO_RECREATE_AMP_PHYS_LINK 0xFF + +/* +** Definitions for HCI enable event +*/ +#define HCI_INQUIRY_COMPLETE_EV(p) (*((UINT32 *)(p)) & 0x00000001) +#define HCI_INQUIRY_RESULT_EV(p) (*((UINT32 *)(p)) & 0x00000002) +#define HCI_CONNECTION_COMPLETE_EV(p) (*((UINT32 *)(p)) & 0x00000004) +#define HCI_CONNECTION_REQUEST_EV(p) (*((UINT32 *)(p)) & 0x00000008) +#define HCI_DISCONNECTION_COMPLETE_EV(p) (*((UINT32 *)(p)) & 0x00000010) +#define HCI_AUTHENTICATION_COMPLETE_EV(p) (*((UINT32 *)(p)) & 0x00000020) +#define HCI_RMT_NAME_REQUEST_COMPL_EV(p) (*((UINT32 *)(p)) & 0x00000040) +#define HCI_CHANGE_CONN_ENCRPT_ENABLE_EV(p) (*((UINT32 *)(p)) & 0x00000080) +#define HCI_CHANGE_CONN_LINK_KEY_EV(p) (*((UINT32 *)(p)) & 0x00000100) +#define HCI_MASTER_LINK_KEY_COMPLETE_EV(p) (*((UINT32 *)(p)) & 0x00000200) +#define HCI_READ_RMT_FEATURES_COMPL_EV(p) (*((UINT32 *)(p)) & 0x00000400) +#define HCI_READ_RMT_VERSION_COMPL_EV(p) (*((UINT32 *)(p)) & 0x00000800) +#define HCI_QOS_SETUP_COMPLETE_EV(p) (*((UINT32 *)(p)) & 0x00001000) +#define HCI_COMMAND_COMPLETE_EV(p) (*((UINT32 *)(p)) & 0x00002000) +#define HCI_COMMAND_STATUS_EV(p) (*((UINT32 *)(p)) & 0x00004000) +#define HCI_HARDWARE_ERROR_EV(p) (*((UINT32 *)(p)) & 0x00008000) +#define HCI_FLASH_OCCURED_EV(p) (*((UINT32 *)(p)) & 0x00010000) +#define HCI_ROLE_CHANGE_EV(p) (*((UINT32 *)(p)) & 0x00020000) +#define HCI_NUM_COMPLETED_PKTS_EV(p) (*((UINT32 *)(p)) & 0x00040000) +#define HCI_MODE_CHANGE_EV(p) (*((UINT32 *)(p)) & 0x00080000) +#define HCI_RETURN_LINK_KEYS_EV(p) (*((UINT32 *)(p)) & 0x00100000) +#define HCI_PIN_CODE_REQUEST_EV(p) (*((UINT32 *)(p)) & 0x00200000) +#define HCI_LINK_KEY_REQUEST_EV(p) (*((UINT32 *)(p)) & 0x00400000) +#define HCI_LINK_KEY_NOTIFICATION_EV(p) (*((UINT32 *)(p)) & 0x00800000) +#define HCI_LOOPBACK_COMMAND_EV(p) (*((UINT32 *)(p)) & 0x01000000) +#define HCI_DATA_BUF_OVERFLOW_EV(p) (*((UINT32 *)(p)) & 0x02000000) +#define HCI_MAX_SLOTS_CHANGE_EV(p) (*((UINT32 *)(p)) & 0x04000000) +#define HCI_READ_CLOCK_OFFSET_COMP_EV(p) (*((UINT32 *)(p)) & 0x08000000) +#define HCI_CONN_PKT_TYPE_CHANGED_EV(p) (*((UINT32 *)(p)) & 0x10000000) +#define HCI_QOS_VIOLATION_EV(p) (*((UINT32 *)(p)) & 0x20000000) +#define HCI_PAGE_SCAN_MODE_CHANGED_EV(p) (*((UINT32 *)(p)) & 0x40000000) +#define HCI_PAGE_SCAN_REP_MODE_CHNG_EV(p) (*((UINT32 *)(p)) & 0x80000000) + +/* the default event mask for 2.1+EDR (Lisbon) does not include Lisbon events */ +#define HCI_DEFAULT_EVENT_MASK_0 0xFFFFFFFF +#define HCI_DEFAULT_EVENT_MASK_1 0x00001FFF + +/* the event mask for 2.0 + EDR and later (includes Lisbon events) */ +#define HCI_LISBON_EVENT_MASK_0 0xFFFFFFFF +#define HCI_LISBON_EVENT_MASK_1 0x1DBFFFFF +#define HCI_LISBON_EVENT_MASK "\x0D\xBF\xFF\xFF\xFF\xFF\xFF\xFF" +#define HCI_LISBON_EVENT_MASK_EXT "\x1D\xBF\xFF\xFF\xFF\xFF\xFF\xFF" +#define HCI_DUMO_EVENT_MASK_EXT "\x3D\xBF\xFF\xFF\xFF\xFF\xFF\xFF" +/* 0x00001FFF FFFFFFFF Default - no Lisbon events + 0x00000800 00000000 Synchronous Connection Complete Event + 0x00001000 00000000 Synchronous Connection Changed Event + 0x00002000 00000000 Sniff Subrate Event + 0x00004000 00000000 Extended Inquiry Result Event + 0x00008000 00000000 Encryption Key Refresh Complete Event + 0x00010000 00000000 IO Capability Request Event + 0x00020000 00000000 IO Capability Response Event + 0x00040000 00000000 User Confirmation Request Event + 0x00080000 00000000 User Passkey Request Event + 0x00100000 00000000 Remote OOB Data Request Event + 0x00200000 00000000 Simple Pairing Complete Event + 0x00400000 00000000 Generic AMP Link Key Notification Event + 0x00800000 00000000 Link Supervision Timeout Changed Event + 0x01000000 00000000 Enhanced Flush Complete Event + 0x04000000 00000000 User Passkey Notification Event + 0x08000000 00000000 Keypress Notification Event + 0x10000000 00000000 Remote Host Supported Features Notification Event + 0x20000000 00000000 LE Meta Event + */ + + +/* the event mask for AMP controllers */ +#define HCI_AMP_EVENT_MASK_3_0 "\x00\x00\x00\x00\x00\x00\x3F\xFF" + +/* 0x0000000000000000 No events specified (default) + 0x0000000000000001 Physical Link Complete Event + 0x0000000000000002 Channel Selected Event + 0x0000000000000004 Disconnection Physical Link Event + 0x0000000000000008 Physical Link Loss Early Warning Event + 0x0000000000000010 Physical Link Recovery Event + 0x0000000000000020 Logical Link Complete Event + 0x0000000000000040 Disconnection Logical Link Complete Event + 0x0000000000000080 Flow Spec Modify Complete Event + 0x0000000000000100 Number of Completed Data Blocks Event + 0x0000000000000200 AMP Start Test Event + 0x0000000000000400 AMP Test End Event + 0x0000000000000800 AMP Receiver Report Event + 0x0000000000001000 Short Range Mode Change Complete Event + 0x0000000000002000 AMP Status Change Event +*/ + +/* the event mask page 2 (CLB + CSA4) for BR/EDR controller */ +#define HCI_PAGE_2_EVENT_MASK "\x00\x00\x00\x00\x00\x7F\xC0\x00" +/* 0x0000000000004000 Triggered Clock Capture Event + 0x0000000000008000 Sync Train Complete Event + 0x0000000000010000 Sync Train Received Event + 0x0000000000020000 Connectionless Broadcast Receive Event + 0x0000000000040000 Connectionless Broadcast Timeout Event + 0x0000000000080000 Truncated Page Complete Event + 0x0000000000100000 Salve Page Response Timeout Event + 0x0000000000200000 Connectionless Broadcast Channel Map Change Event + 0x0000000000400000 Inquiry Response Notification Event +*/ +#if BLE_PRIVACY_SPT == TRUE +/* BLE event mask */ +#define HCI_BLE_EVENT_MASK_DEF "\x00\x00\x00\x00\x00\x00\x07\xff" +#else +#define HCI_BLE_EVENT_MASK_DEF "\x00\x00\x00\x00\x00\x00\x00\x7f" +#endif +/* +** Definitions for packet type masks (BT1.2 and BT2.0 definitions) +*/ +#define HCI_PKT_TYPES_MASK_NO_2_DH1 0x0002 +#define HCI_PKT_TYPES_MASK_NO_3_DH1 0x0004 +#define HCI_PKT_TYPES_MASK_DM1 0x0008 +#define HCI_PKT_TYPES_MASK_DH1 0x0010 +#define HCI_PKT_TYPES_MASK_HV1 0x0020 +#define HCI_PKT_TYPES_MASK_HV2 0x0040 +#define HCI_PKT_TYPES_MASK_HV3 0x0080 +#define HCI_PKT_TYPES_MASK_NO_2_DH3 0x0100 +#define HCI_PKT_TYPES_MASK_NO_3_DH3 0x0200 +#define HCI_PKT_TYPES_MASK_DM3 0x0400 +#define HCI_PKT_TYPES_MASK_DH3 0x0800 +#define HCI_PKT_TYPES_MASK_NO_2_DH5 0x1000 +#define HCI_PKT_TYPES_MASK_NO_3_DH5 0x2000 +#define HCI_PKT_TYPES_MASK_DM5 0x4000 +#define HCI_PKT_TYPES_MASK_DH5 0x8000 + +/* Packet type should be one of valid but at least one should be specified */ +#define HCI_VALID_SCO_PKT_TYPE(t) (((((t) & ~(HCI_PKT_TYPES_MASK_HV1 \ + | HCI_PKT_TYPES_MASK_HV2 \ + | HCI_PKT_TYPES_MASK_HV3)) == 0)) \ + && ((t) != 0)) + + + + + +/* Packet type should not be invalid and at least one should be specified */ +#define HCI_VALID_ACL_PKT_TYPE(t) (((((t) & ~(HCI_PKT_TYPES_MASK_DM1 \ + | HCI_PKT_TYPES_MASK_DH1 \ + | HCI_PKT_TYPES_MASK_DM3 \ + | HCI_PKT_TYPES_MASK_DH3 \ + | HCI_PKT_TYPES_MASK_DM5 \ + | HCI_PKT_TYPES_MASK_DH5 \ + | HCI_PKT_TYPES_MASK_NO_2_DH1 \ + | HCI_PKT_TYPES_MASK_NO_3_DH1 \ + | HCI_PKT_TYPES_MASK_NO_2_DH3 \ + | HCI_PKT_TYPES_MASK_NO_3_DH3 \ + | HCI_PKT_TYPES_MASK_NO_2_DH5 \ + | HCI_PKT_TYPES_MASK_NO_3_DH5 )) == 0)) \ + && (((t) & (HCI_PKT_TYPES_MASK_DM1 \ + | HCI_PKT_TYPES_MASK_DH1 \ + | HCI_PKT_TYPES_MASK_DM3 \ + | HCI_PKT_TYPES_MASK_DH3 \ + | HCI_PKT_TYPES_MASK_DM5 \ + | HCI_PKT_TYPES_MASK_DH5)) != 0)) + +/* +** Definitions for eSCO packet type masks (BT1.2 and BT2.0 definitions) +*/ +#define HCI_ESCO_PKT_TYPES_MASK_HV1 0x0001 +#define HCI_ESCO_PKT_TYPES_MASK_HV2 0x0002 +#define HCI_ESCO_PKT_TYPES_MASK_HV3 0x0004 +#define HCI_ESCO_PKT_TYPES_MASK_EV3 0x0008 +#define HCI_ESCO_PKT_TYPES_MASK_EV4 0x0010 +#define HCI_ESCO_PKT_TYPES_MASK_EV5 0x0020 +#define HCI_ESCO_PKT_TYPES_MASK_NO_2_EV3 0x0040 +#define HCI_ESCO_PKT_TYPES_MASK_NO_3_EV3 0x0080 +#define HCI_ESCO_PKT_TYPES_MASK_NO_2_EV5 0x0100 +#define HCI_ESCO_PKT_TYPES_MASK_NO_3_EV5 0x0200 + +/* Packet type should be one of valid but at least one should be specified for 1.2 */ +#define HCI_VALID_ESCO_PKT_TYPE(t) (((((t) & ~(HCI_ESCO_PKT_TYPES_MASK_EV3 \ + | HCI_ESCO_PKT_TYPES_MASK_EV4 \ + | HCI_ESCO_PKT_TYPES_MASK_EV5)) == 0)) \ + && ((t) != 0))/* Packet type should be one of valid but at least one should be specified */ + +#define HCI_VALID_ESCO_SCOPKT_TYPE(t) (((((t) & ~(HCI_ESCO_PKT_TYPES_MASK_HV1 \ + | HCI_ESCO_PKT_TYPES_MASK_HV2 \ + | HCI_ESCO_PKT_TYPES_MASK_HV3)) == 0)) \ + && ((t) != 0)) + +#define HCI_VALID_SCO_ALL_PKT_TYPE(t) (((((t) & ~(HCI_ESCO_PKT_TYPES_MASK_HV1 \ + | HCI_ESCO_PKT_TYPES_MASK_HV2 \ + | HCI_ESCO_PKT_TYPES_MASK_HV3 \ + | HCI_ESCO_PKT_TYPES_MASK_EV3 \ + | HCI_ESCO_PKT_TYPES_MASK_EV4 \ + | HCI_ESCO_PKT_TYPES_MASK_EV5)) == 0)) \ + && ((t) != 0)) + +/* +** Define parameters to allow role switch during create connection +*/ +#define HCI_CR_CONN_NOT_ALLOW_SWITCH 0x00 +#define HCI_CR_CONN_ALLOW_SWITCH 0x01 + +/* +** Hold Mode command destination +*/ +#define HOLD_MODE_DEST_LOCAL_DEVICE 0x00 +#define HOLD_MODE_DEST_RMT_DEVICE 0x01 + +/* +** Definitions for different HCI parameters +*/ +#define HCI_PER_INQ_MIN_MAX_PERIOD 0x0003 +#define HCI_PER_INQ_MAX_MAX_PERIOD 0xFFFF +#define HCI_PER_INQ_MIN_MIN_PERIOD 0x0002 +#define HCI_PER_INQ_MAX_MIN_PERIOD 0xFFFE + +#define HCI_MAX_INQUIRY_LENGTH 0x30 + +#define HCI_MIN_INQ_LAP 0x9E8B00 +#define HCI_MAX_INQ_LAP 0x9E8B3F + +/* HCI role defenitions */ +#define HCI_ROLE_MASTER 0x00 +#define HCI_ROLE_SLAVE 0x01 +#define HCI_ROLE_UNKNOWN 0xff + +/* HCI mode defenitions */ +#define HCI_MODE_ACTIVE 0x00 +#define HCI_MODE_HOLD 0x01 +#define HCI_MODE_SNIFF 0x02 +#define HCI_MODE_PARK 0x03 + +/* HCI Flow Control Mode defenitions */ +#define HCI_PACKET_BASED_FC_MODE 0x00 +#define HCI_BLOCK_BASED_FC_MODE 0x01 + +/* Define Packet types as requested by the Host */ +#define HCI_ACL_PKT_TYPE_NONE 0x0000 +#define HCI_ACL_PKT_TYPE_DM1 0x0008 +#define HCI_ACL_PKT_TYPE_DH1 0x0010 +#define HCI_ACL_PKT_TYPE_AUX1 0x0200 +#define HCI_ACL_PKT_TYPE_DM3 0x0400 +#define HCI_ACL_PKT_TYPE_DH3 0x0800 +#define HCI_ACL_PKT_TYPE_DM5 0x4000 +#define HCI_ACL_PKT_TYPE_DH5 0x8000 + +/* Define key type in the Master Link Key command */ +#define HCI_USE_SEMI_PERMANENT_KEY 0x00 +#define HCI_USE_TEMPORARY_KEY 0x01 + +/* Page scan period modes */ +#define HCI_PAGE_SCAN_REP_MODE_R0 0x00 +#define HCI_PAGE_SCAN_REP_MODE_R1 0x01 +#define HCI_PAGE_SCAN_REP_MODE_R2 0x02 + +/* Define limits for page scan repetition modes */ +#define HCI_PAGE_SCAN_R1_LIMIT 0x0800 +#define HCI_PAGE_SCAN_R2_LIMIT 0x1000 + +/* Page scan period modes */ +#define HCI_PAGE_SCAN_PER_MODE_P0 0x00 +#define HCI_PAGE_SCAN_PER_MODE_P1 0x01 +#define HCI_PAGE_SCAN_PER_MODE_P2 0x02 + +/* Page scan modes */ +#define HCI_MANDATARY_PAGE_SCAN_MODE 0x00 +#define HCI_OPTIONAL_PAGE_SCAN_MODE1 0x01 +#define HCI_OPTIONAL_PAGE_SCAN_MODE2 0x02 +#define HCI_OPTIONAL_PAGE_SCAN_MODE3 0x03 + +/* Page and inquiry scan types */ +#define HCI_SCAN_TYPE_STANDARD 0x00 +#define HCI_SCAN_TYPE_INTERLACED 0x01 /* 1.2 devices or later */ +#define HCI_DEF_SCAN_TYPE HCI_SCAN_TYPE_STANDARD + +/* Definitions for quality of service service types */ +#define HCI_SERVICE_NO_TRAFFIC 0x00 +#define HCI_SERVICE_BEST_EFFORT 0x01 +#define HCI_SERVICE_GUARANTEED 0x02 + +#define HCI_QOS_LATENCY_DO_NOT_CARE 0xFFFFFFFF +#define HCI_QOS_DELAY_DO_NOT_CARE 0xFFFFFFFF + +/* Definitions for Flow Specification */ +#define HCI_FLOW_SPEC_LATENCY_DO_NOT_CARE 0xFFFFFFFF + +/* Definitions for AFH Channel Map */ +#define HCI_AFH_CHANNEL_MAP_LEN 10 + +/* Definitions for Extended Inquiry Response */ +#define HCI_EXT_INQ_RESPONSE_LEN 240 +#define HCI_EIR_FLAGS_TYPE BT_EIR_FLAGS_TYPE +#define HCI_EIR_MORE_16BITS_UUID_TYPE BT_EIR_MORE_16BITS_UUID_TYPE +#define HCI_EIR_COMPLETE_16BITS_UUID_TYPE BT_EIR_COMPLETE_16BITS_UUID_TYPE +#define HCI_EIR_MORE_32BITS_UUID_TYPE BT_EIR_MORE_32BITS_UUID_TYPE +#define HCI_EIR_COMPLETE_32BITS_UUID_TYPE BT_EIR_COMPLETE_32BITS_UUID_TYPE +#define HCI_EIR_MORE_128BITS_UUID_TYPE BT_EIR_MORE_128BITS_UUID_TYPE +#define HCI_EIR_COMPLETE_128BITS_UUID_TYPE BT_EIR_COMPLETE_128BITS_UUID_TYPE +#define HCI_EIR_SHORTENED_LOCAL_NAME_TYPE BT_EIR_SHORTENED_LOCAL_NAME_TYPE +#define HCI_EIR_COMPLETE_LOCAL_NAME_TYPE BT_EIR_COMPLETE_LOCAL_NAME_TYPE +#define HCI_EIR_TX_POWER_LEVEL_TYPE BT_EIR_TX_POWER_LEVEL_TYPE +#define HCI_EIR_MANUFACTURER_SPECIFIC_TYPE BT_EIR_MANUFACTURER_SPECIFIC_TYPE +#define HCI_EIR_OOB_BD_ADDR_TYPE BT_EIR_OOB_BD_ADDR_TYPE +#define HCI_EIR_OOB_COD_TYPE BT_EIR_OOB_COD_TYPE +#define HCI_EIR_OOB_SSP_HASH_C_TYPE BT_EIR_OOB_SSP_HASH_C_TYPE +#define HCI_EIR_OOB_SSP_RAND_R_TYPE BT_EIR_OOB_SSP_RAND_R_TYPE + +/* Definitions for Write Simple Pairing Mode */ +#define HCI_SP_MODE_UNDEFINED 0x00 +#define HCI_SP_MODE_ENABLED 0x01 + +/* Definitions for Write Simple Pairing Debug Mode */ +#define HCI_SPD_MODE_DISABLED 0x00 +#define HCI_SPD_MODE_ENABLED 0x01 + +/* Definitions for Write Secure Connections Host Support */ +#define HCI_SC_MODE_DISABLED 0x00 +#define HCI_SC_MODE_ENABLED 0x01 + +/* Definitions for IO Capability Response/Command */ +#define HCI_IO_CAP_DISPLAY_ONLY 0x00 +#define HCI_IO_CAP_DISPLAY_YESNO 0x01 +#define HCI_IO_CAP_KEYBOARD_ONLY 0x02 +#define HCI_IO_CAP_NO_IO 0x03 + +#define HCI_OOB_AUTH_DATA_NOT_PRESENT 0x00 +#define HCI_OOB_REM_AUTH_DATA_PRESENT 0x01 + +#define HCI_MITM_PROTECT_NOT_REQUIRED 0x00 +#define HCI_MITM_PROTECT_REQUIRED 0x01 + + +/* Policy settings status */ +#define HCI_DISABLE_ALL_LM_MODES 0x0000 +#define HCI_ENABLE_MASTER_SLAVE_SWITCH 0x0001 +#define HCI_ENABLE_HOLD_MODE 0x0002 +#define HCI_ENABLE_SNIFF_MODE 0x0004 +#define HCI_ENABLE_PARK_MODE 0x0008 + +/* By default allow switch, because host can not allow that */ +/* that until he created the connection */ +#define HCI_DEFAULT_POLICY_SETTINGS HCI_DISABLE_ALL_LM_MODES + +/* Filters that are sent in set filter command */ +#define HCI_FILTER_TYPE_CLEAR_ALL 0x00 +#define HCI_FILTER_INQUIRY_RESULT 0x01 +#define HCI_FILTER_CONNECTION_SETUP 0x02 + +#define HCI_FILTER_COND_NEW_DEVICE 0x00 +#define HCI_FILTER_COND_DEVICE_CLASS 0x01 +#define HCI_FILTER_COND_BD_ADDR 0x02 + +#define HCI_DO_NOT_AUTO_ACCEPT_CONNECT 1 +#define HCI_DO_AUTO_ACCEPT_CONNECT 2 /* role switch disabled */ +#define HCI_DO_AUTO_ACCEPT_CONNECT_RS 3 /* role switch enabled (1.1 errata 1115) */ + +/* Auto accept flags */ +#define HCI_AUTO_ACCEPT_OFF 0x00 +#define HCI_AUTO_ACCEPT_ACL_CONNECTIONS 0x01 +#define HCI_AUTO_ACCEPT_SCO_CONNECTIONS 0x02 + +/* PIN type */ +#define HCI_PIN_TYPE_VARIABLE 0 +#define HCI_PIN_TYPE_FIXED 1 + +/* Loopback Modes */ +#define HCI_LOOPBACK_MODE_DISABLED 0 +#define HCI_LOOPBACK_MODE_LOCAL 1 +#define HCI_LOOPBACK_MODE_REMOTE 2 + +#define SLOTS_PER_10MS 16 /* 0.625 ms slots in a 10 ms tick */ + +/* Maximum connection accept timeout in 0.625msec */ +#define HCI_MAX_CONN_ACCEPT_TOUT 0xB540 /* 29 sec */ +#define HCI_DEF_CONN_ACCEPT_TOUT 0x1F40 /* 5 sec */ + +/* Page timeout is used in LC only and LC is counting down slots not using OS */ +#define HCI_DEFAULT_PAGE_TOUT 0x2000 /* 5.12 sec (in slots) */ + +/* Scan enable flags */ +#define HCI_NO_SCAN_ENABLED 0x00 +#define HCI_INQUIRY_SCAN_ENABLED 0x01 +#define HCI_PAGE_SCAN_ENABLED 0x02 + +/* Pagescan timer definitions in 0.625 ms */ +#define HCI_MIN_PAGESCAN_INTERVAL 0x12 /* 11.25 ms */ +#define HCI_MAX_PAGESCAN_INTERVAL 0x1000 /* 2.56 sec */ +#define HCI_DEF_PAGESCAN_INTERVAL 0x0800 /* 1.28 sec */ + +/* Parameter for pagescan window is passed to LC and is kept in slots */ +#define HCI_MIN_PAGESCAN_WINDOW 0x11 /* 10.625 ms */ +#define HCI_MAX_PAGESCAN_WINDOW 0x1000 /* 2.56 sec */ +#define HCI_DEF_PAGESCAN_WINDOW 0x12 /* 11.25 ms */ + +/* Inquiryscan timer definitions in 0.625 ms */ +#define HCI_MIN_INQUIRYSCAN_INTERVAL 0x12 /* 11.25 ms */ +#define HCI_MAX_INQUIRYSCAN_INTERVAL 0x1000 /* 2.56 sec */ +#define HCI_DEF_INQUIRYSCAN_INTERVAL 0x1000 /* 2.56 sec */ + +/* Parameter for inquiryscan window is passed to LC and is kept in slots */ +#define HCI_MIN_INQUIRYSCAN_WINDOW 0x11 /* 10.625 ms */ +#define HCI_MAX_INQUIRYSCAN_WINDOW 0x1000 /* 2.56 sec */ +#define HCI_DEF_INQUIRYSCAN_WINDOW 0x12 /* 11.25 ms */ + +/* Encryption modes */ +#define HCI_ENCRYPT_MODE_DISABLED 0x00 +#define HCI_ENCRYPT_MODE_POINT_TO_POINT 0x01 +#define HCI_ENCRYPT_MODE_ALL 0x02 + +/* Voice settings */ +#define HCI_INP_CODING_LINEAR 0x0000 /* 0000000000 */ +#define HCI_INP_CODING_U_LAW 0x0100 /* 0100000000 */ +#define HCI_INP_CODING_A_LAW 0x0200 /* 1000000000 */ +#define HCI_INP_CODING_MASK 0x0300 /* 1100000000 */ + +#define HCI_INP_DATA_FMT_1S_COMPLEMENT 0x0000 /* 0000000000 */ +#define HCI_INP_DATA_FMT_2S_COMPLEMENT 0x0040 /* 0001000000 */ +#define HCI_INP_DATA_FMT_SIGN_MAGNITUDE 0x0080 /* 0010000000 */ +#define HCI_INP_DATA_FMT_UNSIGNED 0x00c0 /* 0011000000 */ +#define HCI_INP_DATA_FMT_MASK 0x00c0 /* 0011000000 */ + +#define HCI_INP_SAMPLE_SIZE_8BIT 0x0000 /* 0000000000 */ +#define HCI_INP_SAMPLE_SIZE_16BIT 0x0020 /* 0000100000 */ +#define HCI_INP_SAMPLE_SIZE_MASK 0x0020 /* 0000100000 */ + +#define HCI_INP_LINEAR_PCM_BIT_POS_MASK 0x001c /* 0000011100 */ +#define HCI_INP_LINEAR_PCM_BIT_POS_OFFS 2 + +#define HCI_AIR_CODING_FORMAT_CVSD 0x0000 /* 0000000000 */ +#define HCI_AIR_CODING_FORMAT_U_LAW 0x0001 /* 0000000001 */ +#define HCI_AIR_CODING_FORMAT_A_LAW 0x0002 /* 0000000010 */ +#define HCI_AIR_CODING_FORMAT_TRANSPNT 0x0003 /* 0000000011 */ +#define HCI_AIR_CODING_FORMAT_MASK 0x0003 /* 0000000011 */ + +/* default 0001100000 */ +#define HCI_DEFAULT_VOICE_SETTINGS (HCI_INP_CODING_LINEAR \ + | HCI_INP_DATA_FMT_2S_COMPLEMENT \ + | HCI_INP_SAMPLE_SIZE_16BIT \ + | HCI_AIR_CODING_FORMAT_CVSD) + +#define HCI_CVSD_SUPPORTED(x) (((x) & HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_CVSD) +#define HCI_U_LAW_SUPPORTED(x) (((x) & HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_U_LAW) +#define HCI_A_LAW_SUPPORTED(x) (((x) & HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_A_LAW) +#define HCI_TRANSPNT_SUPPORTED(x) (((x) & HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_TRANSPNT) + +/* Retransmit timer definitions in 0.625 */ +#define HCI_MAX_AUTO_FLUSH_TOUT 0x07FF +#define HCI_DEFAULT_AUTO_FLUSH_TOUT 0 /* No auto flush */ + +/* Broadcast retransmitions */ +#define HCI_DEFAULT_NUM_BCAST_RETRAN 1 + +/* Define broadcast data types as passed in the hci data packet */ +#define HCI_DATA_POINT_TO_POINT 0x00 +#define HCI_DATA_ACTIVE_BCAST 0x01 +#define HCI_DATA_PICONET_BCAST 0x02 + +/* Hold mode activity */ +#define HCI_MAINTAIN_CUR_POWER_STATE 0x00 +#define HCI_SUSPEND_PAGE_SCAN 0x01 +#define HCI_SUSPEND_INQUIRY_SCAN 0x02 +#define HCI_SUSPEND_PERIODIC_INQUIRIES 0x04 + +/* Default Link Supervision timeoout */ +#define HCI_DEFAULT_INACT_TOUT 0x7D00 /* BR/EDR (20 seconds) */ +#define HCI_DEFAULT_AMP_INACT_TOUT 0x3E80 /* AMP (10 seconds) */ + +/* Read transmit power level parameter */ +#define HCI_READ_CURRENT 0x00 +#define HCI_READ_MAXIMUM 0x01 + +/* Link types for connection complete event */ +#define HCI_LINK_TYPE_SCO 0x00 +#define HCI_LINK_TYPE_ACL 0x01 +#define HCI_LINK_TYPE_ESCO 0x02 + +/* Link Key Notification Event (Key Type) definitions */ +#define HCI_LKEY_TYPE_COMBINATION 0x00 +#define HCI_LKEY_TYPE_LOCAL_UNIT 0x01 +#define HCI_LKEY_TYPE_REMOTE_UNIT 0x02 +#define HCI_LKEY_TYPE_DEBUG_COMB 0x03 +#define HCI_LKEY_TYPE_UNAUTH_COMB 0x04 +#define HCI_LKEY_TYPE_AUTH_COMB 0x05 +#define HCI_LKEY_TYPE_CHANGED_COMB 0x06 +#define HCI_LKEY_TYPE_UNAUTH_COMB_P_256 0x07 +#define HCI_LKEY_TYPE_AUTH_COMB_P_256 0x08 + +/* Internal definitions - not used over HCI */ +#define HCI_LKEY_TYPE_AMP_WIFI 0x80 +#define HCI_LKEY_TYPE_AMP_UWB 0x81 +#define HCI_LKEY_TYPE_UNKNOWN 0xff + +/* Read Local Version HCI Version return values (Command Complete Event) */ +#define HCI_VERSION_1_0B 0x00 +#define HCI_VERSION_1_1 0x01 + +/* Define an invalid value for a handle */ +#define HCI_INVALID_HANDLE 0xFFFF + +/* Define max ammount of data in the HCI command */ +#define HCI_COMMAND_SIZE 255 + +/* Define the preamble length for all HCI Commands. +** This is 2-bytes for opcode and 1 byte for length +*/ +#define HCIC_PREAMBLE_SIZE 3 + +/* Define the preamble length for all HCI Events +** This is 1-byte for opcode and 1 byte for length +*/ +#define HCIE_PREAMBLE_SIZE 2 +#define HCI_SCO_PREAMBLE_SIZE 3 +#define HCI_DATA_PREAMBLE_SIZE 4 + +/* local Bluetooth controller id for AMP HCI */ +#define LOCAL_BR_EDR_CONTROLLER_ID 0 + +/* controller id types for AMP HCI */ +#define HCI_CONTROLLER_TYPE_BR_EDR 0 +#define HCI_CONTROLLER_TYPE_802_11 1 +#define HCI_CONTROLLER_TYPE_ECMA 2 +#define HCI_MAX_CONTROLLER_TYPES 3 + +/* ConnectionLess Broadcast */ +#define HCI_CLB_DISABLE 0x00 +#define HCI_CLB_ENABLE 0x01 + +/* ConnectionLess Broadcast Data fragment */ +#define HCI_CLB_FRAGMENT_CONT 0x00 +#define HCI_CLB_FRAGMENT_START 0x01 +#define HCI_CLB_FRAGMENT_END 0x02 +#define HCI_CLB_FRAGMENT_SINGLE 0x03 + +/* AMP Controller Status codes +*/ +#define HCI_AMP_CTRLR_PHYSICALLY_DOWN 0 +#define HCI_AMP_CTRLR_USABLE_BY_BT 1 +#define HCI_AMP_CTRLR_UNUSABLE_FOR_BT 2 +#define HCI_AMP_CTRLR_LOW_CAP_FOR_BT 3 +#define HCI_AMP_CTRLR_MED_CAP_FOR_BT 4 +#define HCI_AMP_CTRLR_HIGH_CAP_FOR_BT 5 +#define HCI_AMP_CTRLR_FULL_CAP_FOR_BT 6 + +#define HCI_MAX_AMP_STATUS_TYPES 7 + + +/* Define the extended flow specification fields used by AMP */ +typedef struct { + UINT8 id; + UINT8 stype; + UINT16 max_sdu_size; + UINT32 sdu_inter_time; + UINT32 access_latency; + UINT32 flush_timeout; +} tHCI_EXT_FLOW_SPEC; + + +/* HCI message type definitions (for H4 messages) */ +#define HCIT_TYPE_COMMAND 1 +#define HCIT_TYPE_ACL_DATA 2 +#define HCIT_TYPE_SCO_DATA 3 +#define HCIT_TYPE_EVENT 4 +#define HCIT_TYPE_LM_DIAG 7 +#define HCIT_TYPE_NFC 16 + +#define HCIT_LM_DIAG_LENGTH 63 + +/* Parameter information for HCI_BRCM_SET_ACL_PRIORITY */ +#define HCI_BRCM_ACL_PRIORITY_PARAM_SIZE 3 +#define HCI_BRCM_ACL_PRIORITY_LOW 0x00 +#define HCI_BRCM_ACL_PRIORITY_HIGH 0xFF +#define HCI_BRCM_SET_ACL_PRIORITY (0x0057 | HCI_GRP_VENDOR_SPECIFIC) + +/* Define values for LMP Test Control parameters +** Test Scenario, Hopping Mode, Power Control Mode +*/ +#define LMP_TESTCTL_TESTSC_PAUSE 0 +#define LMP_TESTCTL_TESTSC_TXTEST_0 1 +#define LMP_TESTCTL_TESTSC_TXTEST_1 2 +#define LMP_TESTCTL_TESTSC_TXTEST_1010 3 +#define LMP_TESTCTL_TESTSC_PSRND_BITSEQ 4 +#define LMP_TESTCTL_TESTSC_CLOSEDLB_ACL 5 +#define LMP_TESTCTL_TESTSC_CLOSEDLB_SCO 6 +#define LMP_TESTCTL_TESTSC_ACL_NOWHIT 7 +#define LMP_TESTCTL_TESTSC_SCO_NOWHIT 8 +#define LMP_TESTCTL_TESTSC_TXTEST_11110000 9 +#define LMP_TESTCTL_TESTSC_EXITTESTMODE 255 + +#define LMP_TESTCTL_HOPMOD_RXTX1FREQ 0 +#define LMP_TESTCTL_HOPMOD_HOP_EURUSA 1 +#define LMP_TESTCTL_HOPMOD_HOP_JAPAN 2 +#define LMP_TESTCTL_HOPMOD_HOP_FRANCE 3 +#define LMP_TESTCTL_HOPMOD_HOP_SPAIN 4 +#define LMP_TESTCTL_HOPMOD_REDUCED_HOP 5 + +#define LMP_TESTCTL_POWCTL_FIXEDTX_OP 0 +#define LMP_TESTCTL_POWCTL_ADAPTIVE 1 + +// TODO(zachoverflow): remove this once broadcom specific hacks are removed +#define LMP_COMPID_BROADCOM 15 + +/* +** Define the packet types in the packet header, and a couple extra +*/ +#define PKT_TYPE_NULL 0x00 +#define PKT_TYPE_POLL 0x01 +#define PKT_TYPE_FHS 0x02 +#define PKT_TYPE_DM1 0x03 + +#define PKT_TYPE_DH1 0x04 +#define PKT_TYPE_HV1 0x05 +#define PKT_TYPE_HV2 0x06 +#define PKT_TYPE_HV3 0x07 +#define PKT_TYPE_DV 0x08 +#define PKT_TYPE_AUX1 0x09 + +#define PKT_TYPE_DM3 0x0a +#define PKT_TYPE_DH3 0x0b + +#define PKT_TYPE_DM5 0x0e +#define PKT_TYPE_DH5 0x0f + + +#define PKT_TYPE_ID 0x10 /* Internally used packet types */ +#define PKT_TYPE_BAD 0x11 +#define PKT_TYPE_NONE 0x12 + +/* +** Define packet size +*/ +#define HCI_DM1_PACKET_SIZE 17 +#define HCI_DH1_PACKET_SIZE 27 +#define HCI_DM3_PACKET_SIZE 121 +#define HCI_DH3_PACKET_SIZE 183 +#define HCI_DM5_PACKET_SIZE 224 +#define HCI_DH5_PACKET_SIZE 339 +#define HCI_AUX1_PACKET_SIZE 29 +#define HCI_HV1_PACKET_SIZE 10 +#define HCI_HV2_PACKET_SIZE 20 +#define HCI_HV3_PACKET_SIZE 30 +#define HCI_DV_PACKET_SIZE 9 +#define HCI_EDR2_DH1_PACKET_SIZE 54 +#define HCI_EDR2_DH3_PACKET_SIZE 367 +#define HCI_EDR2_DH5_PACKET_SIZE 679 +#define HCI_EDR3_DH1_PACKET_SIZE 83 +#define HCI_EDR3_DH3_PACKET_SIZE 552 +#define HCI_EDR3_DH5_PACKET_SIZE 1021 + +/* Feature Pages */ +#define HCI_EXT_FEATURES_PAGE_0 0 /* Extended Feature Page 0 (regular features) */ +#define HCI_EXT_FEATURES_PAGE_1 1 /* Extended Feature Page 1 */ +#define HCI_EXT_FEATURES_PAGE_2 2 /* Extended Feature Page 2 */ +#define HCI_EXT_FEATURES_PAGE_MAX HCI_EXT_FEATURES_PAGE_2 + +#define HCI_FEATURE_BYTES_PER_PAGE 8 + +#define HCI_FEATURES_KNOWN(x) ((x[0] | x[1] | x[2] | x[3] | x[4] | x[5] | x[6] | x[7]) != 0) + +/* +** LMP features encoding - page 0 +*/ +#define HCI_FEATURE_3_SLOT_PACKETS_MASK 0x01 +#define HCI_FEATURE_3_SLOT_PACKETS_OFF 0 +#define HCI_3_SLOT_PACKETS_SUPPORTED(x) ((x)[HCI_FEATURE_3_SLOT_PACKETS_OFF] & HCI_FEATURE_3_SLOT_PACKETS_MASK) + +#define HCI_FEATURE_5_SLOT_PACKETS_MASK 0x02 +#define HCI_FEATURE_5_SLOT_PACKETS_OFF 0 +#define HCI_5_SLOT_PACKETS_SUPPORTED(x) ((x)[HCI_FEATURE_5_SLOT_PACKETS_OFF] & HCI_FEATURE_5_SLOT_PACKETS_MASK) + +#define HCI_FEATURE_ENCRYPTION_MASK 0x04 +#define HCI_FEATURE_ENCRYPTION_OFF 0 +#define HCI_ENCRYPTION_SUPPORTED(x) ((x)[HCI_FEATURE_ENCRYPTION_OFF] & HCI_FEATURE_ENCRYPTION_MASK) + +#define HCI_FEATURE_SLOT_OFFSET_MASK 0x08 +#define HCI_FEATURE_SLOT_OFFSET_OFF 0 +#define HCI_SLOT_OFFSET_SUPPORTED(x) ((x)[HCI_FEATURE_SLOT_OFFSET_OFF] & HCI_FEATURE_SLOT_OFFSET_MASK) + +#define HCI_FEATURE_TIMING_ACC_MASK 0x10 +#define HCI_FEATURE_TIMING_ACC_OFF 0 +#define HCI_TIMING_ACC_SUPPORTED(x) ((x)[HCI_FEATURE_TIMING_ACC_OFF] & HCI_FEATURE_TIMING_ACC_MASK) + +#define HCI_FEATURE_SWITCH_MASK 0x20 +#define HCI_FEATURE_SWITCH_OFF 0 +#define HCI_SWITCH_SUPPORTED(x) ((x)[HCI_FEATURE_SWITCH_OFF] & HCI_FEATURE_SWITCH_MASK) + +#define HCI_FEATURE_HOLD_MODE_MASK 0x40 +#define HCI_FEATURE_HOLD_MODE_OFF 0 +#define HCI_HOLD_MODE_SUPPORTED(x) ((x)[HCI_FEATURE_HOLD_MODE_OFF] & HCI_FEATURE_HOLD_MODE_MASK) + +#define HCI_FEATURE_SNIFF_MODE_MASK 0x80 +#define HCI_FEATURE_SNIFF_MODE_OFF 0 +#define HCI_SNIFF_MODE_SUPPORTED(x) ((x)[HCI_FEATURE_SNIFF_MODE_OFF] & HCI_FEATURE_SNIFF_MODE_MASK) + +#define HCI_FEATURE_PARK_MODE_MASK 0x01 +#define HCI_FEATURE_PARK_MODE_OFF 1 +#define HCI_PARK_MODE_SUPPORTED(x) ((x)[HCI_FEATURE_PARK_MODE_OFF] & HCI_FEATURE_PARK_MODE_MASK) + +#define HCI_FEATURE_RSSI_MASK 0x02 +#define HCI_FEATURE_RSSI_OFF 1 +#define HCI_RSSI_SUPPORTED(x) ((x)[HCI_FEATURE_RSSI_OFF] & HCI_FEATURE_RSSI_MASK) + +#define HCI_FEATURE_CQM_DATA_RATE_MASK 0x04 +#define HCI_FEATURE_CQM_DATA_RATE_OFF 1 +#define HCI_CQM_DATA_RATE_SUPPORTED(x) ((x)[HCI_FEATURE_CQM_DATA_RATE_OFF] & HCI_FEATURE_CQM_DATA_RATE_MASK) + +#define HCI_FEATURE_SCO_LINK_MASK 0x08 +#define HCI_FEATURE_SCO_LINK_OFF 1 +#define HCI_SCO_LINK_SUPPORTED(x) ((x)[HCI_FEATURE_SCO_LINK_OFF] & HCI_FEATURE_SCO_LINK_MASK) + +#define HCI_FEATURE_HV2_PACKETS_MASK 0x10 +#define HCI_FEATURE_HV2_PACKETS_OFF 1 +#define HCI_HV2_PACKETS_SUPPORTED(x) ((x)[HCI_FEATURE_HV2_PACKETS_OFF] & HCI_FEATURE_HV2_PACKETS_MASK) + +#define HCI_FEATURE_HV3_PACKETS_MASK 0x20 +#define HCI_FEATURE_HV3_PACKETS_OFF 1 +#define HCI_HV3_PACKETS_SUPPORTED(x) ((x)[HCI_FEATURE_HV3_PACKETS_OFF] & HCI_FEATURE_HV3_PACKETS_MASK) + +#define HCI_FEATURE_U_LAW_MASK 0x40 +#define HCI_FEATURE_U_LAW_OFF 1 +#define HCI_LMP_U_LAW_SUPPORTED(x) ((x)[HCI_FEATURE_U_LAW_OFF] & HCI_FEATURE_U_LAW_MASK) + +#define HCI_FEATURE_A_LAW_MASK 0x80 +#define HCI_FEATURE_A_LAW_OFF 1 +#define HCI_LMP_A_LAW_SUPPORTED(x) ((x)[HCI_FEATURE_A_LAW_OFF] & HCI_FEATURE_A_LAW_MASK) + +#define HCI_FEATURE_CVSD_MASK 0x01 +#define HCI_FEATURE_CVSD_OFF 2 +#define HCI_LMP_CVSD_SUPPORTED(x) ((x)[HCI_FEATURE_CVSD_OFF] & HCI_FEATURE_CVSD_MASK) + +#define HCI_FEATURE_PAGING_SCHEME_MASK 0x02 +#define HCI_FEATURE_PAGING_SCHEME_OFF 2 +#define HCI_PAGING_SCHEME_SUPPORTED(x) ((x)[HCI_FEATURE_PAGING_SCHEME_OFF] & HCI_FEATURE_PAGING_SCHEME_MASK) + +#define HCI_FEATURE_POWER_CTRL_MASK 0x04 +#define HCI_FEATURE_POWER_CTRL_OFF 2 +#define HCI_POWER_CTRL_SUPPORTED(x) ((x)[HCI_FEATURE_POWER_CTRL_OFF] & HCI_FEATURE_POWER_CTRL_MASK) + +#define HCI_FEATURE_TRANSPNT_MASK 0x08 +#define HCI_FEATURE_TRANSPNT_OFF 2 +#define HCI_LMP_TRANSPNT_SUPPORTED(x) ((x)[HCI_FEATURE_TRANSPNT_OFF] & HCI_FEATURE_TRANSPNT_MASK) + +#define HCI_FEATURE_FLOW_CTRL_LAG_MASK 0x70 +#define HCI_FEATURE_FLOW_CTRL_LAG_OFF 2 +#define HCI_FLOW_CTRL_LAG_VALUE(x) (((x)[HCI_FEATURE_FLOW_CTRL_LAG_OFF] & HCI_FEATURE_FLOW_CTRL_LAG_MASK) >> 4) + +#define HCI_FEATURE_BROADCAST_ENC_MASK 0x80 +#define HCI_FEATURE_BROADCAST_ENC_OFF 2 +#define HCI_LMP_BCAST_ENC_SUPPORTED(x) ((x)[HCI_FEATURE_BROADCAST_ENC_OFF] & HCI_FEATURE_BROADCAST_ENC_MASK) + +#define HCI_FEATURE_SCATTER_MODE_MASK 0x01 +#define HCI_FEATURE_SCATTER_MODE_OFF 3 +#define HCI_LMP_SCATTER_MODE_SUPPORTED(x) ((x)[HCI_FEATURE_SCATTER_MODE_OFF] & HCI_FEATURE_SCATTER_MODE_MASK) + +#define HCI_FEATURE_EDR_ACL_2MPS_MASK 0x02 +#define HCI_FEATURE_EDR_ACL_2MPS_OFF 3 +#define HCI_EDR_ACL_2MPS_SUPPORTED(x) ((x)[HCI_FEATURE_EDR_ACL_2MPS_OFF] & HCI_FEATURE_EDR_ACL_2MPS_MASK) + +#define HCI_FEATURE_EDR_ACL_3MPS_MASK 0x04 +#define HCI_FEATURE_EDR_ACL_3MPS_OFF 3 +#define HCI_EDR_ACL_3MPS_SUPPORTED(x) ((x)[HCI_FEATURE_EDR_ACL_3MPS_OFF] & HCI_FEATURE_EDR_ACL_3MPS_MASK) + +#define HCI_FEATURE_ENHANCED_INQ_MASK 0x08 +#define HCI_FEATURE_ENHANCED_INQ_OFF 3 +#define HCI_ENHANCED_INQ_SUPPORTED(x) ((x)[HCI_FEATURE_ENHANCED_INQ_OFF] & HCI_FEATURE_ENHANCED_INQ_MASK) + +#define HCI_FEATURE_INTERLACED_INQ_SCAN_MASK 0x10 +#define HCI_FEATURE_INTERLACED_INQ_SCAN_OFF 3 +#define HCI_LMP_INTERLACED_INQ_SCAN_SUPPORTED(x) ((x)[HCI_FEATURE_INTERLACED_INQ_SCAN_OFF] & HCI_FEATURE_INTERLACED_INQ_SCAN_MASK) + +#define HCI_FEATURE_INTERLACED_PAGE_SCAN_MASK 0x20 +#define HCI_FEATURE_INTERLACED_PAGE_SCAN_OFF 3 +#define HCI_LMP_INTERLACED_PAGE_SCAN_SUPPORTED(x) ((x)[HCI_FEATURE_INTERLACED_PAGE_SCAN_OFF] & HCI_FEATURE_INTERLACED_PAGE_SCAN_MASK) + +#define HCI_FEATURE_INQ_RSSI_MASK 0x40 +#define HCI_FEATURE_INQ_RSSI_OFF 3 +#define HCI_LMP_INQ_RSSI_SUPPORTED(x) ((x)[HCI_FEATURE_INQ_RSSI_OFF] & HCI_FEATURE_INQ_RSSI_MASK) + +#define HCI_FEATURE_ESCO_EV3_MASK 0x80 +#define HCI_FEATURE_ESCO_EV3_OFF 3 +#define HCI_ESCO_EV3_SUPPORTED(x) ((x)[HCI_FEATURE_ESCO_EV3_OFF] & HCI_FEATURE_ESCO_EV3_MASK) + +#define HCI_FEATURE_ESCO_EV4_MASK 0x01 +#define HCI_FEATURE_ESCO_EV4_OFF 4 +#define HCI_ESCO_EV4_SUPPORTED(x) ((x)[HCI_FEATURE_ESCO_EV4_OFF] & HCI_FEATURE_ESCO_EV4_MASK) + +#define HCI_FEATURE_ESCO_EV5_MASK 0x02 +#define HCI_FEATURE_ESCO_EV5_OFF 4 +#define HCI_ESCO_EV5_SUPPORTED(x) ((x)[HCI_FEATURE_ESCO_EV5_OFF] & HCI_FEATURE_ESCO_EV5_MASK) + +#define HCI_FEATURE_ABSENCE_MASKS_MASK 0x04 +#define HCI_FEATURE_ABSENCE_MASKS_OFF 4 +#define HCI_LMP_ABSENCE_MASKS_SUPPORTED(x) ((x)[HCI_FEATURE_ABSENCE_MASKS_OFF] & HCI_FEATURE_ABSENCE_MASKS_MASK) + +#define HCI_FEATURE_AFH_CAP_SLAVE_MASK 0x08 +#define HCI_FEATURE_AFH_CAP_SLAVE_OFF 4 +#define HCI_LMP_AFH_CAP_SLAVE_SUPPORTED(x) ((x)[HCI_FEATURE_AFH_CAP_SLAVE_OFF] & HCI_FEATURE_AFH_CAP_SLAVE_MASK) + +#define HCI_FEATURE_AFH_CLASS_SLAVE_MASK 0x10 +#define HCI_FEATURE_AFH_CLASS_SLAVE_OFF 4 +#define HCI_LMP_AFH_CLASS_SLAVE_SUPPORTED(x) ((x)[HCI_FEATURE_AFH_CLASS_SLAVE_OFF] & HCI_FEATURE_AFH_CLASS_SLAVE_MASK) + +#if 1 +#define HCI_FEATURE_BREDR_NOT_SPT_MASK 0x20 +#define HCI_FEATURE_BREDR_NOT_SPT_OFF 4 +#define HCI_BREDR_NOT_SPT_SUPPORTED(x) ((x)[HCI_FEATURE_BREDR_NOT_SPT_OFF] & HCI_FEATURE_BREDR_NOT_SPT_MASK) + +#define HCI_FEATURE_LE_SPT_MASK 0x40 +#define HCI_FEATURE_LE_SPT_OFF 4 +#define HCI_LE_SPT_SUPPORTED(x) ((x)[HCI_FEATURE_LE_SPT_OFF] & HCI_FEATURE_LE_SPT_MASK) +#else + +#define HCI_FEATURE_ALIAS_AUTH_MASK 0x20 +#define HCI_FEATURE_ALIAS_AUTH_OFF 4 +#define HCI_LMP_ALIAS_AUTH_SUPPORTED(x) ((x)[HCI_FEATURE_ALIAS_AUTH_OFF] & HCI_FEATURE_ALIAS_AUTH_MASK) + +#define HCI_FEATURE_ANON_MODE_MASK 0x40 +#define HCI_FEATURE_ANON_MODE_OFF 4 +#define HCI_LMP_ANON_MODE_SUPPORTED(x) ((x)[HCI_FEATURE_ANON_MODE_OFF] & HCI_FEATURE_ANON_MODE_MASK) +#endif + +#define HCI_FEATURE_3_SLOT_EDR_ACL_MASK 0x80 +#define HCI_FEATURE_3_SLOT_EDR_ACL_OFF 4 +#define HCI_3_SLOT_EDR_ACL_SUPPORTED(x) ((x)[HCI_FEATURE_3_SLOT_EDR_ACL_OFF] & HCI_FEATURE_3_SLOT_EDR_ACL_MASK) + +#define HCI_FEATURE_5_SLOT_EDR_ACL_MASK 0x01 +#define HCI_FEATURE_5_SLOT_EDR_ACL_OFF 5 +#define HCI_5_SLOT_EDR_ACL_SUPPORTED(x) ((x)[HCI_FEATURE_5_SLOT_EDR_ACL_OFF] & HCI_FEATURE_5_SLOT_EDR_ACL_MASK) + +#define HCI_FEATURE_SNIFF_SUB_RATE_MASK 0x02 +#define HCI_FEATURE_SNIFF_SUB_RATE_OFF 5 +#define HCI_SNIFF_SUB_RATE_SUPPORTED(x) ((x)[HCI_FEATURE_SNIFF_SUB_RATE_OFF] & HCI_FEATURE_SNIFF_SUB_RATE_MASK) + +#define HCI_FEATURE_ATOMIC_ENCRYPT_MASK 0x04 +#define HCI_FEATURE_ATOMIC_ENCRYPT_OFF 5 +#define HCI_ATOMIC_ENCRYPT_SUPPORTED(x) ((x)[HCI_FEATURE_ATOMIC_ENCRYPT_OFF] & HCI_FEATURE_ATOMIC_ENCRYPT_MASK) + +#define HCI_FEATURE_AFH_CAP_MASTR_MASK 0x08 +#define HCI_FEATURE_AFH_CAP_MASTR_OFF 5 +#define HCI_LMP_AFH_CAP_MASTR_SUPPORTED(x) ((x)[HCI_FEATURE_AFH_CAP_MASTR_OFF] & HCI_FEATURE_AFH_CAP_MASTR_MASK) + +#define HCI_FEATURE_AFH_CLASS_MASTR_MASK 0x10 +#define HCI_FEATURE_AFH_CLASS_MASTR_OFF 5 +#define HCI_LMP_AFH_CLASS_MASTR_SUPPORTED(x) ((x)[HCI_FEATURE_AFH_CLASS_MASTR_OFF] & HCI_FEATURE_AFH_CLASS_MASTR_MASK) + +#define HCI_FEATURE_EDR_ESCO_2MPS_MASK 0x20 +#define HCI_FEATURE_EDR_ESCO_2MPS_OFF 5 +#define HCI_EDR_ESCO_2MPS_SUPPORTED(x) ((x)[HCI_FEATURE_EDR_ESCO_2MPS_OFF] & HCI_FEATURE_EDR_ESCO_2MPS_MASK) + +#define HCI_FEATURE_EDR_ESCO_3MPS_MASK 0x40 +#define HCI_FEATURE_EDR_ESCO_3MPS_OFF 5 +#define HCI_EDR_ESCO_3MPS_SUPPORTED(x) ((x)[HCI_FEATURE_EDR_ESCO_3MPS_OFF] & HCI_FEATURE_EDR_ESCO_3MPS_MASK) + +#define HCI_FEATURE_3_SLOT_EDR_ESCO_MASK 0x80 +#define HCI_FEATURE_3_SLOT_EDR_ESCO_OFF 5 +#define HCI_3_SLOT_EDR_ESCO_SUPPORTED(x) ((x)[HCI_FEATURE_3_SLOT_EDR_ESCO_OFF] & HCI_FEATURE_3_SLOT_EDR_ESCO_MASK) + +#define HCI_FEATURE_EXT_INQ_RSP_MASK 0x01 +#define HCI_FEATURE_EXT_INQ_RSP_OFF 6 +#define HCI_EXT_INQ_RSP_SUPPORTED(x) ((x)[HCI_FEATURE_EXT_INQ_RSP_OFF] & HCI_FEATURE_EXT_INQ_RSP_MASK) + +#if 1 /* TOKYO spec definition */ +#define HCI_FEATURE_SIMUL_LE_BREDR_MASK 0x02 +#define HCI_FEATURE_SIMUL_LE_BREDR_OFF 6 +#define HCI_SIMUL_LE_BREDR_SUPPORTED(x) ((x)[HCI_FEATURE_SIMUL_LE_BREDR_OFF] & HCI_FEATURE_SIMUL_LE_BREDR_MASK) + +#else +#define HCI_FEATURE_ANUM_PIN_AWARE_MASK 0x02 +#define HCI_FEATURE_ANUM_PIN_AWARE_OFF 6 +#define HCI_ANUM_PIN_AWARE_SUPPORTED(x) ((x)[HCI_FEATURE_ANUM_PIN_AWARE_OFF] & HCI_FEATURE_ANUM_PIN_AWARE_MASK) +#endif + +#define HCI_FEATURE_ANUM_PIN_CAP_MASK 0x04 +#define HCI_FEATURE_ANUM_PIN_CAP_OFF 6 +#define HCI_ANUM_PIN_CAP_SUPPORTED(x) ((x)[HCI_FEATURE_ANUM_PIN_CAP_OFF] & HCI_FEATURE_ANUM_PIN_CAP_MASK) + +#define HCI_FEATURE_SIMPLE_PAIRING_MASK 0x08 +#define HCI_FEATURE_SIMPLE_PAIRING_OFF 6 +#define HCI_SIMPLE_PAIRING_SUPPORTED(x) ((x)[HCI_FEATURE_SIMPLE_PAIRING_OFF] & HCI_FEATURE_SIMPLE_PAIRING_MASK) + +#define HCI_FEATURE_ENCAP_PDU_MASK 0x10 +#define HCI_FEATURE_ENCAP_PDU_OFF 6 +#define HCI_ENCAP_PDU_SUPPORTED(x) ((x)[HCI_FEATURE_ENCAP_PDU_OFF] & HCI_FEATURE_ENCAP_PDU_MASK) + +#define HCI_FEATURE_ERROR_DATA_MASK 0x20 +#define HCI_FEATURE_ERROR_DATA_OFF 6 +#define HCI_ERROR_DATA_SUPPORTED(x) ((x)[HCI_FEATURE_ERROR_DATA_OFF] & HCI_FEATURE_ERROR_DATA_MASK) + +#define HCI_FEATURE_NON_FLUSHABLE_PB_MASK 0x40 +#define HCI_FEATURE_NON_FLUSHABLE_PB_OFF 6 + +/* This feature is causing frequent link drops when doing call switch with certain av/hfp headsets */ +#define HCI_NON_FLUSHABLE_PB_SUPPORTED(x) (0)//((x)[HCI_FEATURE_NON_FLUSHABLE_PB_OFF] & HCI_FEATURE_NON_FLUSHABLE_PB_MASK) + +#define HCI_FEATURE_LINK_SUP_TO_EVT_MASK 0x01 +#define HCI_FEATURE_LINK_SUP_TO_EVT_OFF 7 +#define HCI_LINK_SUP_TO_EVT_SUPPORTED(x) ((x)[HCI_FEATURE_LINK_SUP_TO_EVT_OFF] & HCI_FEATURE_LINK_SUP_TO_EVT_MASK) + +#define HCI_FEATURE_INQ_RESP_TX_MASK 0x02 +#define HCI_FEATURE_INQ_RESP_TX_OFF 7 +#define HCI_INQ_RESP_TX_SUPPORTED(x) ((x)[HCI_FEATURE_INQ_RESP_TX_OFF] & HCI_FEATURE_INQ_RESP_TX_MASK) + +#define HCI_FEATURE_EXTENDED_MASK 0x80 +#define HCI_FEATURE_EXTENDED_OFF 7 +#define HCI_LMP_EXTENDED_SUPPORTED(x) ((x)[HCI_FEATURE_EXTENDED_OFF] & HCI_FEATURE_EXTENDED_MASK) + +/* +** LMP features encoding - page 1 +*/ +#define HCI_EXT_FEATURE_SSP_HOST_MASK 0x01 +#define HCI_EXT_FEATURE_SSP_HOST_OFF 0 +#define HCI_SSP_HOST_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SSP_HOST_OFF] & HCI_EXT_FEATURE_SSP_HOST_MASK) + +#define HCI_EXT_FEATURE_LE_HOST_MASK 0x02 +#define HCI_EXT_FEATURE_LE_HOST_OFF 0 +#define HCI_LE_HOST_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_LE_HOST_OFF] & HCI_EXT_FEATURE_LE_HOST_MASK) + +#define HCI_EXT_FEATURE_SIMUL_DUMO_HOST_MASK 0x04 +#define HCI_EXT_FEATURE_SIMUL_DUMO_HOST_OFF 0 +#define HCI_SIMUL_DUMO_HOST_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SIMUL_DUMO_HOST_OFF] & HCI_EXT_FEATURE_SIMUL_DUMO_HOST_MASK) + +#define HCI_EXT_FEATURE_SC_HOST_MASK 0x08 +#define HCI_EXT_FEATURE_SC_HOST_OFF 0 +#define HCI_SC_HOST_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SC_HOST_OFF] & HCI_EXT_FEATURE_SC_HOST_MASK) + +/* +** LMP features encoding - page 2 +*/ +#define HCI_EXT_FEATURE_CSB_MASTER_MASK 0x01 +#define HCI_EXT_FEATURE_CSB_MASTER_OFF 0 +#define HCI_CSB_MASTER_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_CSB_MASTER_OFF] & HCI_EXT_FEATURE_CSB_MASTER_MASK) + +#define HCI_EXT_FEATURE_CSB_SLAVE_MASK 0x02 +#define HCI_EXT_FEATURE_CSB_SLAVE_OFF 0 +#define HCI_CSB_SLAVE_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_CSB_SLAVE_OFF] & HCI_EXT_FEATURE_CSB_SLAVE_MASK) + +#define HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_MASK 0x04 +#define HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_OFF 0 +#define HCI_SYNC_TRAIN_MASTER_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_OFF] & HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_MASK) + +#define HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_MASK 0x08 +#define HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_OFF 0 +#define HCI_SYNC_SCAN_SLAVE_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_OFF] & HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_MASK) + +#define HCI_EXT_FEATURE_INQ_RESP_NOTIF_MASK 0x10 +#define HCI_EXT_FEATURE_INQ_RESP_NOTIF_OFF 0 +#define HCI_INQ_RESP_NOTIF_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_INQ_RESP_NOTIF_OFF] & HCI_EXT_FEATURE_INQ_RESP_NOTIF_MASK) + +#define HCI_EXT_FEATURE_SC_CTRLR_MASK 0x01 +#define HCI_EXT_FEATURE_SC_CTRLR_OFF 1 +#define HCI_SC_CTRLR_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SC_CTRLR_OFF] & HCI_EXT_FEATURE_SC_CTRLR_MASK) + +#define HCI_EXT_FEATURE_PING_MASK 0x02 +#define HCI_EXT_FEATURE_PING_OFF 1 +#define HCI_PING_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_PING_OFF] & HCI_EXT_FEATURE_PING_MASK) + +/* +** LE features encoding - page 0 (the only page for now) +*/ +/* LE Encryption */ +#define HCI_LE_FEATURE_LE_ENCRYPTION_MASK 0x01 +#define HCI_LE_FEATURE_LE_ENCRYPTION_OFF 0 +#define HCI_LE_ENCRYPTION_SUPPORTED(x) ((x)[HCI_LE_FEATURE_LE_ENCRYPTION_OFF] & HCI_LE_FEATURE_LE_ENCRYPTION_MASK) + +/* Connection Parameters Request Procedure */ +#define HCI_LE_FEATURE_CONN_PARAM_REQ_MASK 0x02 +#define HCI_LE_FEATURE_CONN_PARAM_REQ_OFF 0 +#define HCI_LE_CONN_PARAM_REQ_SUPPORTED(x) ((x)[HCI_LE_FEATURE_CONN_PARAM_REQ_OFF] & HCI_LE_FEATURE_CONN_PARAM_REQ_MASK) + +/* Extended Reject Indication */ +#define HCI_LE_FEATURE_EXT_REJ_IND_MASK 0x04 +#define HCI_LE_FEATURE_EXT_REJ_IND_OFF 0 +#define HCI_LE_EXT_REJ_IND_SUPPORTED(x) ((x)[HCI_LE_FEATURE_EXT_REJ_IND_OFF] & HCI_LE_FEATURE_EXT_REJ_IND_MASK) + +/* Slave-initiated Features Exchange */ +#define HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_MASK 0x08 +#define HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_OFF 0 +#define HCI_LE_SLAVE_INIT_FEAT_EXC_SUPPORTED(x) ((x)[HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_OFF] & HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_MASK) + +/* Enhanced privacy Feature: bit 6 */ +#define HCI_LE_FEATURE_ENHANCED_PRIVACY_MASK 0x40 +#define HCI_LE_FEATURE_ENHANCED_PRIVACY_OFF 0 +#define HCI_LE_ENHANCED_PRIVACY_SUPPORTED(x) ((x)[HCI_LE_FEATURE_ENHANCED_PRIVACY_OFF] & HCI_LE_FEATURE_ENHANCED_PRIVACY_MASK) + +/* Extended scanner filter policy : 7 */ +#define HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_MASK 0x80 +#define HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_OFF 0 +#define HCI_LE_EXT_SCAN_FILTER_POLICY_SUPPORTED(x) ((x)[HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_OFF] & HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_MASK) + +/* Slave-initiated Features Exchange */ +#define HCI_LE_FEATURE_DATA_LEN_EXT_MASK 0x20 +#define HCI_LE_FEATURE_DATA_LEN_EXT_OFF 0 +#define HCI_LE_DATA_LEN_EXT_SUPPORTED(x) ((x)[HCI_LE_FEATURE_DATA_LEN_EXT_OFF] & HCI_LE_FEATURE_DATA_LEN_EXT_MASK) + +/* +** Local Supported Commands encoding +*/ +#define HCI_NUM_SUPP_COMMANDS_BYTES 64 + +/* Supported Commands Byte 0 */ +#define HCI_SUPP_COMMANDS_INQUIRY_MASK 0x01 +#define HCI_SUPP_COMMANDS_INQUIRY_OFF 0 +#define HCI_INQUIRY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_INQUIRY_OFF] & HCI_SUPP_COMMANDS_INQUIRY_MASK) + +#define HCI_SUPP_COMMANDS_INQUIRY_CANCEL_MASK 0x02 +#define HCI_SUPP_COMMANDS_INQUIRY_CANCEL_OFF 0 +#define HCI_INQUIRY_CANCEL_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_INQUIRY_CANCEL_OFF] & HCI_SUPP_COMMANDS_INQUIRY_CANCEL_MASK) + +#define HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_MASK 0x04 +#define HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_OFF 0 +#define HCI_PERIODIC_INQUIRY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_OFF] & HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_MASK) + +#define HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_MASK 0x08 +#define HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_OFF 0 +#define HCI_EXIT_PERIODIC_INQUIRY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_OFF] & HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_MASK) + +#define HCI_SUPP_COMMANDS_CREATE_CONN_MASK 0x10 +#define HCI_SUPP_COMMANDS_CREATE_CONN_OFF 0 +#define HCI_CREATE_CONN_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_CREATE_CONN_OFF] & HCI_SUPP_COMMANDS_CREATE_CONN_MASK) + +#define HCI_SUPP_COMMANDS_DISCONNECT_MASK 0x20 +#define HCI_SUPP_COMMANDS_DISCONNECT_OFF 0 +#define HCI_DISCONNECT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_DISCONNECT_OFF] & HCI_SUPP_COMMANDS_DISCONNECT_MASK) + +#define HCI_SUPP_COMMANDS_ADD_SCO_CONN_MASK 0x40 +#define HCI_SUPP_COMMANDS_ADD_SCO_CONN_OFF 0 +#define HCI_ADD_SCO_CONN_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_ADD_SCO_CONN_OFF] & HCI_SUPP_COMMANDS_ADD_SCO_CONN_MASK) + +#define HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_MASK 0x80 +#define HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_OFF 0 +#define HCI_CANCEL_CREATE_CONN_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_OFF] & HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_MASK) + +#define HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_MASK 0x01 +#define HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_OFF 1 +#define HCI_ACCEPT_CONN_REQUEST_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_OFF] & HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_MASK) + +#define HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_MASK 0x02 +#define HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_OFF 1 +#define HCI_REJECT_CONN_REQUEST_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_OFF] & HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_MASK) + +#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_MASK 0x04 +#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_OFF 1 +#define HCI_LINK_KEY_REQUEST_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_MASK 0x08 +#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_OFF 1 +#define HCI_LINK_KEY_REQUEST_NEG_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_MASK 0x10 +#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_OFF 1 +#define HCI_PIN_CODE_REQUEST_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_MASK 0x20 +#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_OFF 1 +#define HCI_PIN_CODE_REQUEST_NEG_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_MASK 0x40 +#define HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_OFF 1 +#define HCI_CHANGE_CONN_PKT_TYPE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_OFF] & HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_MASK) + +#define HCI_SUPP_COMMANDS_AUTH_REQUEST_MASK 0x80 +#define HCI_SUPP_COMMANDS_AUTH_REQUEST_OFF 1 +#define HCI_AUTH_REQUEST_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_AUTH_REQUEST_OFF] & HCI_SUPP_COMMANDS_AUTH_REQUEST_MASK) + +#define HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_MASK 0x01 +#define HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_OFF 2 +#define HCI_SET_CONN_ENCRYPTION_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_OFF] & HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_MASK) + +#define HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_MASK 0x02 +#define HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_OFF 2 +#define HCI_CHANGE_CONN_LINK_KEY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_OFF] & HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_MASK) + +#define HCI_SUPP_COMMANDS_MASTER_LINK_KEY_MASK 0x04 +#define HCI_SUPP_COMMANDS_MASTER_LINK_KEY_OFF 2 +#define HCI_MASTER_LINK_KEY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_MASTER_LINK_KEY_OFF] & HCI_SUPP_COMMANDS_MASTER_LINK_KEY_MASK) + +#define HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_MASK 0x08 +#define HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_OFF 2 +#define HCI_REMOTE_NAME_REQUEST_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_OFF] & HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_MASK) + +#define HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_MASK 0x10 +#define HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_OFF 2 +#define HCI_CANCEL_REMOTE_NAME_REQUEST_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_OFF] & HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_MASK) + +#define HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_MASK 0x20 +#define HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_OFF 2 +#define HCI_READ_REMOTE_SUPP_FEATURES_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_OFF] & HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_MASK) + +#define HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_MASK 0x40 +#define HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_OFF 2 +#define HCI_READ_REMOTE_EXT_FEATURES_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_OFF] & HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_MASK) + +#define HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_MASK 0x80 +#define HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_OFF 2 +#define HCI_READ_REMOTE_VER_INFO_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_OFF] & HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_MASK) + +#define HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_OFF 3 +#define HCI_READ_CLOCK_OFFSET_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_OFF] & HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_MASK) + +#define HCI_SUPP_COMMANDS_READ_LMP_HANDLE_MASK 0x02 +#define HCI_SUPP_COMMANDS_READ_LMP_HANDLE_OFF 3 +#define HCI_READ_LMP_HANDLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LMP_HANDLE_OFF] & HCI_SUPP_COMMANDS_READ_LMP_HANDLE_MASK) + +#define HCI_SUPP_COMMANDS_HOLD_MODE_CMD_MASK 0x02 +#define HCI_SUPP_COMMANDS_HOLD_MODE_CMD_OFF 4 +#define HCI_HOLD_MODE_CMD_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_HOLD_MODE_CMD_OFF] & HCI_SUPP_COMMANDS_HOLD_MODE_CMD_MASK) + +#define HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_MASK 0x04 +#define HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_OFF 4 +#define HCI_SNIFF_MODE_CMD_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_OFF] & HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_MASK) + +#define HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_MASK 0x08 +#define HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_OFF 4 +#define HCI_EXIT_SNIFF_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_OFF] & HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_MASK) + +#define HCI_SUPP_COMMANDS_PARK_STATE_MASK 0x10 +#define HCI_SUPP_COMMANDS_PARK_STATE_OFF 4 +#define HCI_PARK_STATE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_PARK_STATE_OFF] & HCI_SUPP_COMMANDS_PARK_STATE_MASK) + +#define HCI_SUPP_COMMANDS_EXIT_PARK_STATE_MASK 0x20 +#define HCI_SUPP_COMMANDS_EXIT_PARK_STATE_OFF 4 +#define HCI_EXIT_PARK_STATE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_EXIT_PARK_STATE_OFF] & HCI_SUPP_COMMANDS_EXIT_PARK_STATE_MASK) + +#define HCI_SUPP_COMMANDS_QOS_SETUP_MASK 0x40 +#define HCI_SUPP_COMMANDS_QOS_SETUP_OFF 4 +#define HCI_QOS_SETUP_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_QOS_SETUP_OFF] & HCI_SUPP_COMMANDS_QOS_SETUP_MASK) + +#define HCI_SUPP_COMMANDS_ROLE_DISCOVERY_MASK 0x80 +#define HCI_SUPP_COMMANDS_ROLE_DISCOVERY_OFF 4 +#define HCI_ROLE_DISCOVERY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_ROLE_DISCOVERY_OFF] & HCI_SUPP_COMMANDS_ROLE_DISCOVERY_MASK) + +#define HCI_SUPP_COMMANDS_SWITCH_ROLE_MASK 0x01 +#define HCI_SUPP_COMMANDS_SWITCH_ROLE_OFF 5 +#define HCI_SWITCH_ROLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SWITCH_ROLE_OFF] & HCI_SUPP_COMMANDS_SWITCH_ROLE_MASK) + +#define HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_MASK 0x02 +#define HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_OFF 5 +#define HCI_READ_LINK_POLICY_SET_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_OFF] & HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_MASK 0x04 +#define HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_OFF 5 +#define HCI_WRITE_LINK_POLICY_SET_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_OFF] & HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_MASK) + +#define HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_MASK 0x08 +#define HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_OFF 5 +#define HCI_READ_DEF_LINK_POLICY_SET_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_OFF] & HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_MASK 0x10 +#define HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_OFF 5 +#define HCI_WRITE_DEF_LINK_POLICY_SET_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_OFF] & HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_MASK) + +#define HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_MASK 0x20 +#define HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_OFF 5 +#define HCI_FLOW_SPECIFICATION_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_OFF] & HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_MASK) + +#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_MASK 0x40 +#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_OFF 5 +#define HCI_SET_EVENT_MASK_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_EVENT_MASK_OFF] & HCI_SUPP_COMMANDS_SET_EVENT_MASK_MASK) + +#define HCI_SUPP_COMMANDS_RESET_MASK 0x80 +#define HCI_SUPP_COMMANDS_RESET_OFF 5 +#define HCI_RESET_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_RESET_OFF] & HCI_SUPP_COMMANDS_RESET_MASK) + +#define HCI_SUPP_COMMANDS_SET_EVENT_FILTER_MASK 0x01 +#define HCI_SUPP_COMMANDS_SET_EVENT_FILTER_OFF 6 +#define HCI_SET_EVENT_FILTER_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_EVENT_FILTER_OFF] & HCI_SUPP_COMMANDS_SET_EVENT_FILTER_MASK) + +#define HCI_SUPP_COMMANDS_FLUSH_MASK 0x02 +#define HCI_SUPP_COMMANDS_FLUSH_OFF 6 +#define HCI_FLUSH_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_FLUSH_OFF] & HCI_SUPP_COMMANDS_FLUSH_MASK) + +#define HCI_SUPP_COMMANDS_READ_PIN_TYPE_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_PIN_TYPE_OFF 6 +#define HCI_READ_PIN_TYPE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_PIN_TYPE_OFF] & HCI_SUPP_COMMANDS_READ_PIN_TYPE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_MASK 0x08 +#define HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_OFF 6 +#define HCI_WRITE_PIN_TYPE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_OFF] & HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_MASK) + +#define HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_MASK 0x10 +#define HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_OFF 6 +#define HCI_CREATE_NEW_UNIT_KEY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_OFF] & HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_MASK) + +#define HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_MASK 0x20 +#define HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_OFF 6 +#define HCI_READ_STORED_LINK_KEY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_OFF] & HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_MASK 0x40 +#define HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_OFF 6 +#define HCI_WRITE_STORED_LINK_KEY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_OFF] & HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_MASK) + +#define HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_MASK 0x80 +#define HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_OFF 6 +#define HCI_DELETE_STORED_LINK_KEY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_OFF] & HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_MASK 0x01 +#define HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_OFF 7 +#define HCI_WRITE_LOCAL_NAME_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_OFF] & HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOCAL_NAME_MASK 0x02 +#define HCI_SUPP_COMMANDS_READ_LOCAL_NAME_OFF 7 +#define HCI_READ_LOCAL_NAME_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_NAME_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_NAME_MASK) + +#define HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_OFF 7 +#define HCI_READ_CONN_ACCEPT_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_MASK 0x08 +#define HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_OFF 7 +#define HCI_WRITE_CONN_ACCEPT_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_READ_PAGE_TOUT_MASK 0x10 +#define HCI_SUPP_COMMANDS_READ_PAGE_TOUT_OFF 7 +#define HCI_READ_PAGE_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_PAGE_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_PAGE_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_MASK 0x20 +#define HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_OFF 7 +#define HCI_WRITE_PAGE_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_MASK 0x40 +#define HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_OFF 7 +#define HCI_READ_SCAN_ENABLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_OFF] & HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_MASK 0x80 +#define HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_OFF 7 +#define HCI_WRITE_SCAN_ENABLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_OFF] & HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_MASK) + +#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_OFF 8 +#define HCI_READ_PAGE_SCAN_ACTIVITY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_MASK 0x02 +#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_OFF 8 +#define HCI_WRITE_PAGE_SCAN_ACTIVITY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_MASK) + +#define HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_OFF 8 +#define HCI_READ_INQURIY_SCAN_ACTIVITY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_MASK 0x08 +#define HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_OFF 8 +#define HCI_WRITE_INQURIY_SCAN_ACTIVITY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_MASK) + +#define HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_MASK 0x10 +#define HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_OFF 8 +#define HCI_READ_AUTH_ENABLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_OFF] & HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_MASK 0x20 +#define HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_OFF 8 +#define HCI_WRITE_AUTH_ENABLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_OFF] & HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_MASK) + +#define HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_MASK 0x40 +#define HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_OFF 8 +#define HCI_READ_ENCRYPT_ENABLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_OFF] & HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_MASK 0x80 +#define HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_OFF 8 +#define HCI_WRITE_ENCRYPT_ENABLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_OFF] & HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_MASK) + +#define HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_OFF 9 +#define HCI_READ_CLASS_DEVICE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_OFF] & HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_MASK 0x02 +#define HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_OFF 9 +#define HCI_WRITE_CLASS_DEVICE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_OFF] & HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_MASK) + +#define HCI_SUPP_COMMANDS_READ_VOICE_SETTING_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_VOICE_SETTING_OFF 9 +#define HCI_READ_VOICE_SETTING_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_VOICE_SETTING_OFF] & HCI_SUPP_COMMANDS_READ_VOICE_SETTING_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_MASK 0x08 +#define HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_OFF 9 +#define HCI_WRITE_VOICE_SETTING_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_OFF] & HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_MASK) + +#define HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_MASK 0x10 +#define HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_OFF 9 +#define HCI_READ_AUTO_FLUSH_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_MASK 0x20 +#define HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_OFF 9 +#define HCI_WRITE_AUTO_FLUSH_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_MASK 0x40 +#define HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_OFF 9 +#define HCI_READ_NUM_BROAD_RETRANS_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_OFF] & HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_MASK 0x80 +#define HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_OFF 9 +#define HCI_WRITE_NUM_BROAD_RETRANS_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_OFF] & HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_MASK) + +#define HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_OFF 10 +#define HCI_READ_HOLD_MODE_ACTIVITY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_MASK 0x02 +#define HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_OFF 10 +#define HCI_WRITE_HOLD_MODE_ACTIVITY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_MASK) + +#define HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_OFF 10 +#define HCI_READ_TRANS_PWR_LEVEL_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_OFF] & HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_MASK) + +#define HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_MASK 0x08 +#define HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_OFF 10 +#define HCI_READ_SYNCH_FLOW_CTRL_ENABLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_OFF] & HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_MASK 0x10 +#define HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_OFF 10 +#define HCI_WRITE_SYNCH_FLOW_CTRL_ENABLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_OFF] & HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_MASK) + +#define HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_MASK 0x20 +#define HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_OFF 10 +#define HCI_SET_HOST_CTRLR_TO_HOST_FC_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_OFF] & HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_MASK) + +#define HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_MASK 0x40 +#define HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_OFF 10 +#define HCI_HOST_BUFFER_SIZE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_OFF] & HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_MASK) + +#define HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_MASK 0x80 +#define HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_OFF 10 +#define HCI_HOST_NUM_COMPLETED_PKTS_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_OFF] & HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_MASK) + +#define HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_OFF 11 +#define HCI_READ_LINK_SUP_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_MASK 0x02 +#define HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_OFF 11 +#define HCI_WRITE_LINK_SUP_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_OFF 11 +#define HCI_READ_NUM_SUPP_IAC_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_OFF] & HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_MASK) + +#define HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_MASK 0x08 +#define HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_OFF 11 +#define HCI_READ_CURRENT_IAC_LAP_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_OFF] & HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_MASK 0x10 +#define HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_OFF 11 +#define HCI_WRITE_CURRENT_IAC_LAP_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_OFF] & HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_MASK) + +#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_MASK 0x20 +#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_OFF 11 +#define HCI_READ_PAGE_SCAN_PER_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_OFF] & HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_MASK 0x40 +#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_OFF 11 +#define HCI_WRITE_PAGE_SCAN_PER_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_MASK) + +#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_MASK 0x80 +#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_OFF 11 +#define HCI_READ_PAGE_SCAN_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_OFF] & HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_MASK 0x01 +#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_OFF 12 +#define HCI_WRITE_PAGE_SCAN_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_MASK) + +#define HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_MASK 0x02 +#define HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_OFF 12 +#define HCI_SET_AFH_CHNL_CLASS_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_OFF] & HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_MASK) + +#define HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_MASK 0x10 +#define HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_OFF 12 +#define HCI_READ_INQUIRY_SCAN_TYPE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_OFF] & HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_MASK 0x20 +#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_OFF 12 +#define HCI_WRITE_INQUIRY_SCAN_TYPE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_OFF] & HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_MASK) + +#define HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_MASK 0x40 +#define HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_OFF 12 +#define HCI_READ_INQUIRY_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_OFF] & HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_MASK 0x80 +#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_OFF 12 +#define HCI_WRITE_INQUIRY_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_MASK) + +#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_OFF 13 +#define HCI_READ_PAGE_SCAN_TYPE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_OFF] & HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_MASK 0x02 +#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_OFF 13 +#define HCI_WRITE_PAGE_SCAN_TYPE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_OFF] & HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_MASK) + +#define HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_OFF 13 +#define HCI_READ_AFH_CHNL_ASSESS_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_OFF] & HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_MASK 0x08 +#define HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_OFF 13 +#define HCI_WRITE_AFH_CHNL_ASSESS_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_MASK 0x08 +#define HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_OFF 14 +#define HCI_READ_LOCAL_VER_INFO_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_MASK 0x10 +#define HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_OFF 14 +#define HCI_READ_LOCAL_SUP_CMDS_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_MASK 0x20 +#define HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_OFF 14 +#define HCI_READ_LOCAL_SUPP_FEATURES_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_MASK 0x40 +#define HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_OFF 14 +#define HCI_READ_LOCAL_EXT_FEATURES_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_MASK) + +#define HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_MASK 0x80 +#define HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_OFF 14 +#define HCI_READ_BUFFER_SIZE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_OFF] & HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_MASK) + +#define HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_OFF 15 +#define HCI_READ_COUNTRY_CODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_OFF] & HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_MASK) + +#define HCI_SUPP_COMMANDS_READ_BD_ADDR_MASK 0x02 +#define HCI_SUPP_COMMANDS_READ_BD_ADDR_OFF 15 +#define HCI_READ_BD_ADDR_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_BD_ADDR_OFF] & HCI_SUPP_COMMANDS_READ_BD_ADDR_MASK) + +#define HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_OFF 15 +#define HCI_READ_FAIL_CONTACT_CNTR_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_OFF] & HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_MASK) + +#define HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_MASK 0x08 +#define HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_OFF 15 +#define HCI_RESET_FAIL_CONTACT_CNTR_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_OFF] & HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_MASK) + +#define HCI_SUPP_COMMANDS_GET_LINK_QUALITY_MASK 0x10 +#define HCI_SUPP_COMMANDS_GET_LINK_QUALITY_OFF 15 +#define HCI_GET_LINK_QUALITY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_GET_LINK_QUALITY_OFF] & HCI_SUPP_COMMANDS_GET_LINK_QUALITY_MASK) + +#define HCI_SUPP_COMMANDS_READ_RSSI_MASK 0x20 +#define HCI_SUPP_COMMANDS_READ_RSSI_OFF 15 +#define HCI_READ_RSSI_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_RSSI_OFF] & HCI_SUPP_COMMANDS_READ_RSSI_MASK) + +#define HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_MASK 0x40 +#define HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_OFF 15 +#define HCI_READ_AFH_CH_MAP_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_OFF] & HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_MASK) + +#define HCI_SUPP_COMMANDS_READ_BD_CLOCK_MASK 0x80 +#define HCI_SUPP_COMMANDS_READ_BD_CLOCK_OFF 15 +#define HCI_READ_BD_CLOCK_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_BD_CLOCK_OFF] & HCI_SUPP_COMMANDS_READ_BD_CLOCK_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_OFF 16 +#define HCI_READ_LOOPBACK_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_OFF] & HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_MASK 0x02 +#define HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_OFF 16 +#define HCI_WRITE_LOOPBACK_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_MASK) + +#define HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_MASK 0x04 +#define HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_OFF 16 +#define HCI_ENABLE_DEV_UNDER_TEST_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_OFF] & HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_MASK) + +#define HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_MASK 0x08 +#define HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_OFF 16 +#define HCI_SETUP_SYNCH_CONN_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_OFF] & HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_MASK) + +#define HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_MASK 0x10 +#define HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_OFF 16 +#define HCI_ACCEPT_SYNCH_CONN_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_OFF] & HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_MASK) + +#define HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_MASK 0x20 +#define HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_OFF 16 +#define HCI_REJECT_SYNCH_CONN_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_OFF] & HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_MASK) + +#define HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_OFF 17 +#define HCI_READ_EXT_INQUIRY_RESP_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_OFF] & HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_MASK 0x02 +#define HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_OFF 17 +#define HCI_WRITE_EXT_INQUIRY_RESP_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_OFF] & HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_MASK) + +#define HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_MASK 0x04 +#define HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_OFF 17 +#define HCI_REFRESH_ENCRYPTION_KEY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_OFF] & HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_MASK) + +/* Octet 17, bit 3 is reserved */ + +#define HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_MASK 0x10 +#define HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_OFF 17 +#define HCI_SNIFF_SUB_RATE_CMD_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_OFF] & HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_MASK) + +#define HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_MASK 0x20 +#define HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_OFF 17 +#define HCI_READ_SIMPLE_PAIRING_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_OFF] & HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_MASK 0x40 +#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_OFF 17 +#define HCI_WRITE_SIMPLE_PAIRING_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_MASK 0x80 +#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_OFF 17 +#define HCI_READ_LOCAL_OOB_DATA_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_MASK) + +#define HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_OFF 18 +#define HCI_READ_INQUIRY_RESPONSE_TX_POWER_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_OFF] & HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_MASK 0x02 +#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_OFF 18 +#define HCI_WRITE_INQUIRY_RESPONSE_TX_POWER_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_OFF] & HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_MASK) + +#define HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF 18 +#define HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF] & HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK 0x08 +#define HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF 18 +#define HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF] & HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK) + +#define HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_MASK 0x80 +#define HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_OFF 18 +#define HCI_IO_CAPABILITY_REQUEST_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_MASK 0x01 +#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_OFF 19 +#define HCI_USER_CONFIRMATION_REQUEST_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_MASK 0x02 +#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_OFF 19 +#define HCI_USER_CONFIRMATION_REQUEST_NEG_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_MASK 0x04 +#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_OFF 19 +#define HCI_USER_PASSKEY_REQUEST_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_MASK 0x08 +#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_OFF 19 +#define HCI_USER_PASSKEY_REQUEST_NEG_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_MASK 0x10 +#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_OFF 19 +#define HCI_REMOTE_OOB_DATA_REQUEST_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_MASK 0x20 +#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_OFF 19 +#define HCI_WRITE_SIMPLE_PAIRING_DBG_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_MASK) + +#define HCI_SUPP_COMMANDS_ENHANCED_FLUSH_MASK 0x40 +#define HCI_SUPP_COMMANDS_ENHANCED_FLUSH_OFF 19 +#define HCI_ENHANCED_FLUSH_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_ENHANCED_FLUSH_OFF] & HCI_SUPP_COMMANDS_ENHANCED_FLUSH_MASK) + +#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_MASK 0x80 +#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_OFF 19 +#define HCI_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_MASK) + +/* Supported Commands (Byte 20) */ +#define HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_MASK 0x04 +#define HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_OFF 20 +#define HCI_SEND_NOTIF_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_OFF] & HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_MASK) + +#define HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_MASK 0x08 +#define HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_OFF 20 +#define HCI_IO_CAP_REQ_NEG_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_MASK 0x10 +#define HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_OFF 20 +#define HCI_READ_ENCR_KEY_SIZE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_OFF] & HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_MASK) + +/* Supported Commands (Byte 21) */ +#define HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_MASK 0x01 +#define HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_OFF 21 +#define HCI_CREATE_PHYSICAL_LINK_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_OFF] & HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_MASK) + +#define HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_MASK 0x02 +#define HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_OFF 21 +#define HCI_ACCEPT_PHYSICAL_LINK_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_OFF] & HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_MASK) + +#define HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_MASK 0x04 +#define HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_OFF 21 +#define HCI_DISCONNECT_PHYSICAL_LINK_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_OFF] & HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_MASK) + +#define HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_MASK 0x08 +#define HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_OFF 21 +#define HCI_CREATE_LOGICAL_LINK_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_OFF] & HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_MASK) + +#define HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_MASK 0x10 +#define HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_OFF 21 +#define HCI_ACCEPT_LOGICAL_LINK_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_OFF] & HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_MASK) + +#define HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_MASK 0x20 +#define HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_OFF 21 +#define HCI_DISCONNECT_LOGICAL_LINK_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_OFF] & HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_MASK) + +#define HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_MASK 0x40 +#define HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_OFF 21 +#define HCI_LOGICAL_LINK_CANCEL_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_OFF] & HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_MASK) + +#define HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_MASK 0x80 +#define HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_OFF 21 +#define HCI_FLOW_SPEC_MODIFY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_OFF] & HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_MASK) + +/* Supported Commands (Byte 22) */ +#define HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF 22 +#define HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF] & HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK 0x02 +#define HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF 22 +#define HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK) + +#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_MASK 0x04 +#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_OFF 22 +#define HCI_SET_EVENT_MASK_PAGE_2_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_OFF] & HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOCATION_DATA_MASK 0x08 +#define HCI_SUPP_COMMANDS_READ_LOCATION_DATA_OFF 22 +#define HCI_READ_LOCATION_DATA_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOCATION_DATA_OFF] & HCI_SUPP_COMMANDS_READ_LOCATION_DATA_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_MASK 0x10 +#define HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_OFF 22 +#define HCI_WRITE_LOCATION_DATA_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_OFF] & HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_MASK 0x20 +#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_OFF 22 +#define HCI_READ_LOCAL_AMP_INFO_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_MASK 0x40 +#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_OFF 22 +#define HCI_READ_LOCAL_AMP_ASSOC_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_MASK 0x80 +#define HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_OFF 22 +#define HCI_WRITE_REMOTE_AMP_ASSOC_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_OFF] & HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_MASK) + +/* Supported Commands (Byte 23) */ +#define HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_OFF 23 +#define HCI_READ_FLOW_CONTROL_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_OFF] & HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_MASK 0x02 +#define HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_OFF 23 +#define HCI_WRITE_FLOW_CONTROL_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_MASK) + +#define HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_OFF 23 +#define HCI_READ_DATA_BLOCK_SIZE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_OFF] & HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_MASK) + +#define HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_MASK 0x20 +#define HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_OFF 23 +#define HCI_ENABLE_AMP_RCVR_REPORTS_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_OFF] & HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_MASK) + +#define HCI_SUPP_COMMANDS_AMP_TEST_END_MASK 0x40 +#define HCI_SUPP_COMMANDS_AMP_TEST_END_OFF 23 +#define HCI_AMP_TEST_END_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_AMP_TEST_END_OFF] & HCI_SUPP_COMMANDS_AMP_TEST_END_MASK) + +#define HCI_SUPP_COMMANDS_AMP_TEST_MASK 0x80 +#define HCI_SUPP_COMMANDS_AMP_TEST_OFF 23 +#define HCI_AMP_TEST_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_AMP_TEST_OFF] & HCI_SUPP_COMMANDS_AMP_TEST_MASK) + +/* Supported Commands (Byte 24) */ +#define HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_MASK 0x01 +#define HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_OFF 24 +#define HCI_READ_TRANSMIT_POWER_LEVEL_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_OFF] & HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_MASK) + +#define HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_OFF 24 +#define HCI_READ_BE_FLUSH_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_MASK 0x08 +#define HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_OFF 24 +#define HCI_WRITE_BE_FLUSH_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_MASK 0x10 +#define HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_OFF 24 +#define HCI_SHORT_RANGE_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_OFF] & HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_MASK) + +/* LE commands TBD +** Supported Commands (Byte 24 continued) +** Supported Commands (Byte 25) +** Supported Commands (Byte 26) +** Supported Commands (Byte 27) +** Supported Commands (Byte 28) +*/ + +/* Supported Commands (Byte 29) */ +#define HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_MASK 0x08 +#define HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_OFF 29 +#define HCI_READ_ENH_SETUP_SYNCH_CONN_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_OFF] & HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_MASK) + +#define HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_MASK 0x10 +#define HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_OFF 29 +#define HCI_READ_ENH_ACCEPT_SYNCH_CONN_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_OFF] & HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_MASK 0x20 +#define HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_OFF 29 +#define HCI_READ_LOCAL_CODECS_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_MASK) + +#define HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_MASK 0x40 +#define HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_OFF 29 +#define HCI_SET_MWS_CHANNEL_PARAMETERS_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_OFF] & HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_MASK) + +#define HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_MASK 0x80 +#define HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_OFF 29 +#define HCI_SET_EXTERNAL_FRAME_CONFIGURATION_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_OFF] & HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_MASK) + + +/* Supported Commands (Byte 30) */ +#define HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_MASK 0x01 +#define HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_OFF 30 +#define HCI_SET_MWS_SIGNALING_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_OFF] & HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_MASK) + +#define HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_MASK 0x02 +#define HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_OFF 30 +#define HCI_SET_MWS_TRANSPORT_LAYER_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_OFF] & HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_MASK) + +#define HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_MASK 0x04 +#define HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_OFF 30 +#define HCI_SET_MWS_SCAN_FREQUENCY_TABLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_OFF] & HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_MASK) + +#define HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_MASK 0x08 +#define HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_OFF 30 +#define HCI_GET_MWS_TRANS_LAYER_CFG_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_OFF] & HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_MASK) + +#define HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_MASK 0x10 +#define HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_OFF 30 +#define HCI_SET_MWS_PATTERN_CONFIGURATION_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_OFF] & HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_MASK) + +/* Supported Commands (Byte 30 bit 5) */ +#define HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_MASK 0x20 +#define HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_OFF 30 +#define HCI_SET_TRIG_CLK_CAP_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_OFF] & HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_MASK) + + +/* Supported Commands (Byte 30 bit 6-7) */ +#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE 0x06 +#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE_OFF 30 +#define HCI_TRUNCATED_PAGE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_TRUNCATED_PAGE_OFF] & HCI_SUPP_COMMANDS_TRUNCATED_PAGE) + +#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL 0x07 +#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL_OFF 30 +#define HCI_TRUNCATED_PAGE_CANCEL_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL_OFF] & HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL) + +/* Supported Commands (Byte 31 bit 6-7) */ +#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST 0x00 +#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_OFF 31 +#define HCI_SET_CONLESS_SLAVE_BRCST_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_OFF] & HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST) + +#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE 0x01 +#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE_OFF 31 +#define HCI_SET_CONLESS_SLAVE_BRCST_RECEIVE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE_OFF] & HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE) + +#define HCI_SUPP_COMMANDS_START_SYNC_TRAIN 0x02 +#define HCI_SUPP_COMMANDS_START_SYNC_TRAIN_OFF 31 +#define HCI_START_SYNC_TRAIN_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_START_SYNC_TRAIN_OFF] & HCI_SUPP_COMMANDS_START_SYNC_TRAIN) + +#define HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN 0x03 +#define HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN_OFF 31 +#define HCI_RECEIVE_SYNC_TRAIN_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN_OFF] & HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN) + +#define HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR 0x04 +#define HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR_OFF 31 +#define HCI_SET_RESERVED_LT_ADDR_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR_OFF] & HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR) + +#define HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR 0x05 +#define HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR_OFF 31 +#define HCI_DELETE_RESERVED_LT_ADDR_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR_OFF] & HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR) + +#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA 0x06 +#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA_OFF 31 +#define HCI_SET_CONLESS_SLAVE_BRCST_DATA_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA_OFF] & HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA) + +#define HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM 0x07 +#define HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM_OFF 31 +#define HCI_READ_SYNC_TRAIN_PARAM_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM_OFF] & HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM) + +/* Supported Commands (Byte 32 bit 0) */ +#define HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM 0x00 +#define HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM_OFF 32 +#define HCI_WRITE_SYNC_TRAIN_PARAM_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM_OFF] & HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM) + +#define HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_MASK 0x02 +#define HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_OFF 32 +#define HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_MASK) + +#define HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_MASK 0x04 +#define HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_OFF 32 +#define HCI_READ_SECURE_CONNS_SUPPORT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_OFF] & HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_MASK 0x08 +#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_OFF 32 +#define HCI_WRITE_SECURE_CONNS_SUPPORT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_OFF] & HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_MASK) + +#define HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_MASK 0x10 +#define HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_OFF 32 +#define HCI_READ_AUTHENT_PAYLOAD_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_MASK 0x20 +#define HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_OFF 32 +#define HCI_WRITE_AUTHENT_PAYLOAD_TOUT_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_MASK) + +#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_MASK 0x40 +#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_OFF 32 +#define HCI_READ_LOCAL_OOB_EXTENDED_DATA_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_MASK) + +#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_MASK 0x80 +#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_OFF 32 +#define HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_MASK) + +/* supported LE remote control connection parameter request reply */ +#define HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_MASK 0x10 +#define HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_OFF 33 +#define HCI_LE_RC_CONN_PARAM_UPD_RPY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_OFF] & HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_MASK) + +#define HCI_SUPP_COMMANDS_RLE_RC_CONN_PARAM_UPD_NEG_RPY_MASK 0x20 +#define HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_NEG_RPY_OFF 33 +#define HCI_LE_RC_CONN_PARAM_UPD_NEG_RPY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_NEG_RPY_OFF] & HCI_SUPP_COMMANDS_RLE_RC_CONN_PARAM_UPD_NEG_RPY_MASK) + +#endif + diff --git a/tools/sdk/include/bluedroid/hcimsgs.h b/tools/sdk/include/bluedroid/hcimsgs.h new file mode 100644 index 00000000..d360a9a1 --- /dev/null +++ b/tools/sdk/include/bluedroid/hcimsgs.h @@ -0,0 +1,811 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef HCIMSGS_H +#define HCIMSGS_H + +#include "bt_target.h" +#include "hcidefs.h" +#include "bt_types.h" + +void bte_main_hci_send(BT_HDR *p_msg, UINT16 event); +void bte_main_lpm_allow_bt_device_sleep(void); + +/* Message by message.... */ + +BOOLEAN btsnd_hcic_inquiry(const LAP inq_lap, UINT8 duration, + UINT8 response_cnt); + +#define HCIC_PARAM_SIZE_INQUIRY 5 + + +#define HCIC_INQ_INQ_LAP_OFF 0 +#define HCIC_INQ_DUR_OFF 3 +#define HCIC_INQ_RSP_CNT_OFF 4 +/* Inquiry */ + +/* Inquiry Cancel */ +BOOLEAN btsnd_hcic_inq_cancel(void); + +#define HCIC_PARAM_SIZE_INQ_CANCEL 0 + +/* Periodic Inquiry Mode */ +BOOLEAN btsnd_hcic_per_inq_mode(UINT16 max_period, UINT16 min_period, + const LAP inq_lap, UINT8 duration, + UINT8 response_cnt); + +#define HCIC_PARAM_SIZE_PER_INQ_MODE 9 + +#define HCI_PER_INQ_MAX_INTRVL_OFF 0 +#define HCI_PER_INQ_MIN_INTRVL_OFF 2 +#define HCI_PER_INQ_INQ_LAP_OFF 4 +#define HCI_PER_INQ_DURATION_OFF 7 +#define HCI_PER_INQ_RSP_CNT_OFF 8 +/* Periodic Inquiry Mode */ + +/* Exit Periodic Inquiry Mode */ +BOOLEAN btsnd_hcic_exit_per_inq(void); + +#define HCIC_PARAM_SIZE_EXIT_PER_INQ 0 +/* Create Connection */ +BOOLEAN btsnd_hcic_create_conn(BD_ADDR dest, UINT16 packet_types, + UINT8 page_scan_rep_mode, + UINT8 page_scan_mode, + UINT16 clock_offset, + UINT8 allow_switch); + +#define HCIC_PARAM_SIZE_CREATE_CONN 13 + +#define HCIC_CR_CONN_BD_ADDR_OFF 0 +#define HCIC_CR_CONN_PKT_TYPES_OFF 6 +#define HCIC_CR_CONN_REP_MODE_OFF 8 +#define HCIC_CR_CONN_PAGE_SCAN_MODE_OFF 9 +#define HCIC_CR_CONN_CLK_OFF_OFF 10 +#define HCIC_CR_CONN_ALLOW_SWITCH_OFF 12 +/* Create Connection */ + +/* Disconnect */ +BOOLEAN btsnd_hcic_disconnect(UINT16 handle, UINT8 reason); + +#define HCIC_PARAM_SIZE_DISCONNECT 3 + +#define HCI_DISC_HANDLE_OFF 0 +#define HCI_DISC_REASON_OFF 2 +/* Disconnect */ + +#if BTM_SCO_INCLUDED == TRUE +/* Add SCO Connection */ +BOOLEAN btsnd_hcic_add_SCO_conn (UINT16 handle, UINT16 packet_types); +#endif /* BTM_SCO_INCLUDED */ + +#define HCIC_PARAM_SIZE_ADD_SCO_CONN 4 + +#define HCI_ADD_SCO_HANDLE_OFF 0 +#define HCI_ADD_SCO_PACKET_TYPES_OFF 2 +/* Add SCO Connection */ + +/* Create Connection Cancel */ +BOOLEAN btsnd_hcic_create_conn_cancel(BD_ADDR dest); + +#define HCIC_PARAM_SIZE_CREATE_CONN_CANCEL 6 + +#define HCIC_CR_CONN_CANCEL_BD_ADDR_OFF 0 +/* Create Connection Cancel */ + +/* Accept Connection Request */ +BOOLEAN btsnd_hcic_accept_conn (BD_ADDR bd_addr, UINT8 role); + +#define HCIC_PARAM_SIZE_ACCEPT_CONN 7 + +#define HCI_ACC_CONN_BD_ADDR_OFF 0 +#define HCI_ACC_CONN_ROLE_OFF 6 +/* Accept Connection Request */ + +/* Reject Connection Request */ +BOOLEAN btsnd_hcic_reject_conn (BD_ADDR bd_addr, UINT8 reason); + +#define HCIC_PARAM_SIZE_REJECT_CONN 7 + +#define HCI_REJ_CONN_BD_ADDR_OFF 0 +#define HCI_REJ_CONN_REASON_OFF 6 +/* Reject Connection Request */ + +/* Link Key Request Reply */ +BOOLEAN btsnd_hcic_link_key_req_reply (BD_ADDR bd_addr, + LINK_KEY link_key); + +#define HCIC_PARAM_SIZE_LINK_KEY_REQ_REPLY 22 + +#define HCI_LINK_KEY_REPLY_BD_ADDR_OFF 0 +#define HCI_LINK_KEY_REPLY_LINK_KEY_OFF 6 +/* Link Key Request Reply */ + +/* Link Key Request Neg Reply */ +BOOLEAN btsnd_hcic_link_key_neg_reply (BD_ADDR bd_addr); + +#define HCIC_PARAM_SIZE_LINK_KEY_NEG_REPLY 6 + +#define HCI_LINK_KEY_NEG_REP_BD_ADR_OFF 0 +/* Link Key Request Neg Reply */ + +/* PIN Code Request Reply */ +BOOLEAN btsnd_hcic_pin_code_req_reply (BD_ADDR bd_addr, + UINT8 pin_code_len, + PIN_CODE pin_code); + +#define HCIC_PARAM_SIZE_PIN_CODE_REQ_REPLY 23 + +#define HCI_PIN_CODE_REPLY_BD_ADDR_OFF 0 +#define HCI_PIN_CODE_REPLY_PIN_LEN_OFF 6 +#define HCI_PIN_CODE_REPLY_PIN_CODE_OFF 7 +/* PIN Code Request Reply */ + +/* Link Key Request Neg Reply */ +BOOLEAN btsnd_hcic_pin_code_neg_reply (BD_ADDR bd_addr); + +#define HCIC_PARAM_SIZE_PIN_CODE_NEG_REPLY 6 + +#define HCI_PIN_CODE_NEG_REP_BD_ADR_OFF 0 +/* Link Key Request Neg Reply */ + +/* Change Connection Type */ +BOOLEAN btsnd_hcic_change_conn_type (UINT16 handle, UINT16 packet_types); + +#define HCIC_PARAM_SIZE_CHANGE_CONN_TYPE 4 + +#define HCI_CHNG_PKT_TYPE_HANDLE_OFF 0 +#define HCI_CHNG_PKT_TYPE_PKT_TYPE_OFF 2 +/* Change Connection Type */ + +#define HCIC_PARAM_SIZE_CMD_HANDLE 2 + +#define HCI_CMD_HANDLE_HANDLE_OFF 0 + +BOOLEAN btsnd_hcic_auth_request (UINT16 handle); /* Authentication Request */ + +/* Set Connection Encryption */ +BOOLEAN btsnd_hcic_set_conn_encrypt (UINT16 handle, BOOLEAN enable); +#define HCIC_PARAM_SIZE_SET_CONN_ENCRYPT 3 + + +#define HCI_SET_ENCRYPT_HANDLE_OFF 0 +#define HCI_SET_ENCRYPT_ENABLE_OFF 2 +/* Set Connection Encryption */ + +/* Remote Name Request */ +BOOLEAN btsnd_hcic_rmt_name_req (BD_ADDR bd_addr, + UINT8 page_scan_rep_mode, + UINT8 page_scan_mode, + UINT16 clock_offset); + +#define HCIC_PARAM_SIZE_RMT_NAME_REQ 10 + +#define HCI_RMT_NAME_BD_ADDR_OFF 0 +#define HCI_RMT_NAME_REP_MODE_OFF 6 +#define HCI_RMT_NAME_PAGE_SCAN_MODE_OFF 7 +#define HCI_RMT_NAME_CLK_OFF_OFF 8 +/* Remote Name Request */ + +/* Remote Name Request Cancel */ +BOOLEAN btsnd_hcic_rmt_name_req_cancel(BD_ADDR bd_addr); + +#define HCIC_PARAM_SIZE_RMT_NAME_REQ_CANCEL 6 + +#define HCI_RMT_NAME_CANCEL_BD_ADDR_OFF 0 +/* Remote Name Request Cancel */ + +BOOLEAN btsnd_hcic_rmt_features_req(UINT16 handle); /* Remote Features Request */ + +/* Remote Extended Features */ +BOOLEAN btsnd_hcic_rmt_ext_features(UINT16 handle, UINT8 page_num); + +#define HCIC_PARAM_SIZE_RMT_EXT_FEATURES 3 + +#define HCI_RMT_EXT_FEATURES_HANDLE_OFF 0 +#define HCI_RMT_EXT_FEATURES_PAGE_NUM_OFF 2 +/* Remote Extended Features */ + + +BOOLEAN btsnd_hcic_rmt_ver_req(UINT16 handle); /* Remote Version Info Request */ +BOOLEAN btsnd_hcic_read_rmt_clk_offset(UINT16 handle); /* Remote Clock Offset */ +BOOLEAN btsnd_hcic_read_lmp_handle(UINT16 handle); /* Remote LMP Handle */ + +BOOLEAN btsnd_hcic_setup_esco_conn (UINT16 handle, + UINT32 tx_bw, UINT32 rx_bw, + UINT16 max_latency, UINT16 voice, + UINT8 retrans_effort, + UINT16 packet_types); +#define HCIC_PARAM_SIZE_SETUP_ESCO 17 + +#define HCI_SETUP_ESCO_HANDLE_OFF 0 +#define HCI_SETUP_ESCO_TX_BW_OFF 2 +#define HCI_SETUP_ESCO_RX_BW_OFF 6 +#define HCI_SETUP_ESCO_MAX_LAT_OFF 10 +#define HCI_SETUP_ESCO_VOICE_OFF 12 +#define HCI_SETUP_ESCO_RETRAN_EFF_OFF 14 +#define HCI_SETUP_ESCO_PKT_TYPES_OFF 15 + + +BOOLEAN btsnd_hcic_accept_esco_conn (BD_ADDR bd_addr, + UINT32 tx_bw, UINT32 rx_bw, + UINT16 max_latency, + UINT16 content_fmt, + UINT8 retrans_effort, + UINT16 packet_types); +#define HCIC_PARAM_SIZE_ACCEPT_ESCO 21 + +#define HCI_ACCEPT_ESCO_BDADDR_OFF 0 +#define HCI_ACCEPT_ESCO_TX_BW_OFF 6 +#define HCI_ACCEPT_ESCO_RX_BW_OFF 10 +#define HCI_ACCEPT_ESCO_MAX_LAT_OFF 14 +#define HCI_ACCEPT_ESCO_VOICE_OFF 16 +#define HCI_ACCEPT_ESCO_RETRAN_EFF_OFF 18 +#define HCI_ACCEPT_ESCO_PKT_TYPES_OFF 19 + + +BOOLEAN btsnd_hcic_reject_esco_conn (BD_ADDR bd_addr, UINT8 reason); +#define HCIC_PARAM_SIZE_REJECT_ESCO 7 + +#define HCI_REJECT_ESCO_BDADDR_OFF 0 +#define HCI_REJECT_ESCO_REASON_OFF 6 + +/* Hold Mode */ +BOOLEAN btsnd_hcic_hold_mode(UINT16 handle, UINT16 max_hold_period, + UINT16 min_hold_period); + +#define HCIC_PARAM_SIZE_HOLD_MODE 6 + +#define HCI_HOLD_MODE_HANDLE_OFF 0 +#define HCI_HOLD_MODE_MAX_PER_OFF 2 +#define HCI_HOLD_MODE_MIN_PER_OFF 4 +/* Hold Mode */ + +/* Sniff Mode */ +BOOLEAN btsnd_hcic_sniff_mode(UINT16 handle, + UINT16 max_sniff_period, + UINT16 min_sniff_period, + UINT16 sniff_attempt, + UINT16 sniff_timeout); + +#define HCIC_PARAM_SIZE_SNIFF_MODE 10 + + +#define HCI_SNIFF_MODE_HANDLE_OFF 0 +#define HCI_SNIFF_MODE_MAX_PER_OFF 2 +#define HCI_SNIFF_MODE_MIN_PER_OFF 4 +#define HCI_SNIFF_MODE_ATTEMPT_OFF 6 +#define HCI_SNIFF_MODE_TIMEOUT_OFF 8 +/* Sniff Mode */ + +BOOLEAN btsnd_hcic_exit_sniff_mode(UINT16 handle); /* Exit Sniff Mode */ + +/* Park Mode */ +BOOLEAN btsnd_hcic_park_mode (UINT16 handle, + UINT16 beacon_max_interval, + UINT16 beacon_min_interval); + +#define HCIC_PARAM_SIZE_PARK_MODE 6 + +#define HCI_PARK_MODE_HANDLE_OFF 0 +#define HCI_PARK_MODE_MAX_PER_OFF 2 +#define HCI_PARK_MODE_MIN_PER_OFF 4 +/* Park Mode */ + +BOOLEAN btsnd_hcic_exit_park_mode(UINT16 handle); /* Exit Park Mode */ + +/* QoS Setup */ +BOOLEAN btsnd_hcic_qos_setup (UINT16 handle, UINT8 flags, + UINT8 service_type, + UINT32 token_rate, UINT32 peak, + UINT32 latency, UINT32 delay_var); + +#define HCIC_PARAM_SIZE_QOS_SETUP 20 + +#define HCI_QOS_HANDLE_OFF 0 +#define HCI_QOS_FLAGS_OFF 2 +#define HCI_QOS_SERVICE_TYPE_OFF 3 +#define HCI_QOS_TOKEN_RATE_OFF 4 +#define HCI_QOS_PEAK_BANDWIDTH_OFF 8 +#define HCI_QOS_LATENCY_OFF 12 +#define HCI_QOS_DELAY_VAR_OFF 16 +/* QoS Setup */ + +/* Switch Role Request */ +BOOLEAN btsnd_hcic_switch_role (BD_ADDR bd_addr, UINT8 role); + +#define HCIC_PARAM_SIZE_SWITCH_ROLE 7 + +#define HCI_SWITCH_BD_ADDR_OFF 0 +#define HCI_SWITCH_ROLE_OFF 6 +/* Switch Role Request */ + +/* Write Policy Settings */ +BOOLEAN btsnd_hcic_write_policy_set(UINT16 handle, UINT16 settings); + +#define HCIC_PARAM_SIZE_WRITE_POLICY_SET 4 + +#define HCI_WRITE_POLICY_HANDLE_OFF 0 +#define HCI_WRITE_POLICY_SETTINGS_OFF 2 +/* Write Policy Settings */ + +/* Write Default Policy Settings */ +BOOLEAN btsnd_hcic_write_def_policy_set(UINT16 settings); + +#define HCIC_PARAM_SIZE_WRITE_DEF_POLICY_SET 2 + +#define HCI_WRITE_DEF_POLICY_SETTINGS_OFF 0 +/* Write Default Policy Settings */ + +/****************************************** +** Lisbon Features +*******************************************/ +#if BTM_SSR_INCLUDED == TRUE +/* Sniff Subrating */ +BOOLEAN btsnd_hcic_sniff_sub_rate(UINT16 handle, UINT16 max_lat, + UINT16 min_remote_lat, + UINT16 min_local_lat); + +#define HCIC_PARAM_SIZE_SNIFF_SUB_RATE 8 + +#define HCI_SNIFF_SUB_RATE_HANDLE_OFF 0 +#define HCI_SNIFF_SUB_RATE_MAX_LAT_OFF 2 +#define HCI_SNIFF_SUB_RATE_MIN_REM_LAT_OFF 4 +#define HCI_SNIFF_SUB_RATE_MIN_LOC_LAT_OFF 6 +/* Sniff Subrating */ + +#else /* BTM_SSR_INCLUDED == FALSE */ + +#define btsnd_hcic_sniff_sub_rate(handle, max_lat, min_remote_lat, min_local_lat) FALSE + +#endif /* BTM_SSR_INCLUDED */ + +/* Extended Inquiry Response */ +void btsnd_hcic_write_ext_inquiry_response(void *buffer, UINT8 fec_req); + +#define HCIC_PARAM_SIZE_EXT_INQ_RESP 241 + +#define HCIC_EXT_INQ_RESP_FEC_OFF 0 +#define HCIC_EXT_INQ_RESP_RESPONSE 1 +/* IO Capabilities Response */ +BOOLEAN btsnd_hcic_io_cap_req_reply (BD_ADDR bd_addr, UINT8 capability, + UINT8 oob_present, UINT8 auth_req); + +#define HCIC_PARAM_SIZE_IO_CAP_RESP 9 + +#define HCI_IO_CAP_BD_ADDR_OFF 0 +#define HCI_IO_CAPABILITY_OFF 6 +#define HCI_IO_CAP_OOB_DATA_OFF 7 +#define HCI_IO_CAP_AUTH_REQ_OFF 8 + +/* IO Capabilities Req Neg Reply */ +BOOLEAN btsnd_hcic_io_cap_req_neg_reply (BD_ADDR bd_addr, UINT8 err_code); + +#define HCIC_PARAM_SIZE_IO_CAP_NEG_REPLY 7 + +#define HCI_IO_CAP_NR_BD_ADDR_OFF 0 +#define HCI_IO_CAP_NR_ERR_CODE 6 + +/* Read Local OOB Data */ +BOOLEAN btsnd_hcic_read_local_oob_data (void); + +#define HCIC_PARAM_SIZE_R_LOCAL_OOB 0 + + +BOOLEAN btsnd_hcic_user_conf_reply (BD_ADDR bd_addr, BOOLEAN is_yes); + +#define HCIC_PARAM_SIZE_UCONF_REPLY 6 + +#define HCI_USER_CONF_BD_ADDR_OFF 0 + + +BOOLEAN btsnd_hcic_user_passkey_reply (BD_ADDR bd_addr, UINT32 value); + +#define HCIC_PARAM_SIZE_U_PKEY_REPLY 10 + +#define HCI_USER_PASSKEY_BD_ADDR_OFF 0 +#define HCI_USER_PASSKEY_VALUE_OFF 6 + + +BOOLEAN btsnd_hcic_user_passkey_neg_reply (BD_ADDR bd_addr); + +#define HCIC_PARAM_SIZE_U_PKEY_NEG_REPLY 6 + +#define HCI_USER_PASSKEY_NEG_BD_ADDR_OFF 0 + +/* Remote OOB Data Request Reply */ +BOOLEAN btsnd_hcic_rem_oob_reply (BD_ADDR bd_addr, UINT8 *p_c, + UINT8 *p_r); + +#define HCIC_PARAM_SIZE_REM_OOB_REPLY 38 + +#define HCI_REM_OOB_DATA_BD_ADDR_OFF 0 +#define HCI_REM_OOB_DATA_C_OFF 6 +#define HCI_REM_OOB_DATA_R_OFF 22 + +/* Remote OOB Data Request Negative Reply */ +BOOLEAN btsnd_hcic_rem_oob_neg_reply (BD_ADDR bd_addr); + +#define HCIC_PARAM_SIZE_REM_OOB_NEG_REPLY 6 + +#define HCI_REM_OOB_DATA_NEG_BD_ADDR_OFF 0 + +/* Read Tx Power Level */ +BOOLEAN btsnd_hcic_read_inq_tx_power (void); + +#define HCIC_PARAM_SIZE_R_TX_POWER 0 + +/* Read Default Erroneous Data Reporting */ +BOOLEAN btsnd_hcic_read_default_erroneous_data_rpt (void); + +#define HCIC_PARAM_SIZE_R_ERR_DATA_RPT 0 + +#if L2CAP_NON_FLUSHABLE_PB_INCLUDED == TRUE +BOOLEAN btsnd_hcic_enhanced_flush (UINT16 handle, UINT8 packet_type); + +#define HCIC_PARAM_SIZE_ENHANCED_FLUSH 3 +#endif + + +BOOLEAN btsnd_hcic_send_keypress_notif (BD_ADDR bd_addr, UINT8 notif); + +#define HCIC_PARAM_SIZE_SEND_KEYPRESS_NOTIF 7 + +#define HCI_SEND_KEYPRESS_NOTIF_BD_ADDR_OFF 0 +#define HCI_SEND_KEYPRESS_NOTIF_NOTIF_OFF 6 + +/**** end of Simple Pairing Commands ****/ + +/* Store Current Settings */ +#define MAX_FILT_COND (sizeof (BD_ADDR) + 1) + +BOOLEAN btsnd_hcic_set_event_filter(UINT8 filt_type, + UINT8 filt_cond_type, + UINT8 *filt_cond, + UINT8 filt_cond_len); + +#define HCIC_PARAM_SIZE_SET_EVT_FILTER 9 + +#define HCI_FILT_COND_FILT_TYPE_OFF 0 +#define HCI_FILT_COND_COND_TYPE_OFF 1 +#define HCI_FILT_COND_FILT_OFF 2 +/* Set Event Filter */ + +/* Delete Stored Key */ +BOOLEAN btsnd_hcic_delete_stored_key (BD_ADDR bd_addr, BOOLEAN delete_all_flag); + +#define HCIC_PARAM_SIZE_DELETE_STORED_KEY 7 + +#define HCI_DELETE_KEY_BD_ADDR_OFF 0 +#define HCI_DELETE_KEY_ALL_FLAG_OFF 6 +/* Delete Stored Key */ + +/* Change Local Name */ +BOOLEAN btsnd_hcic_change_name(BD_NAME name); + +#define HCIC_PARAM_SIZE_CHANGE_NAME BD_NAME_LEN + +#define HCI_CHANGE_NAME_NAME_OFF 0 +/* Change Local Name */ + + +#define HCIC_PARAM_SIZE_READ_CMD 0 + +#define HCIC_PARAM_SIZE_WRITE_PARAM1 1 + +#define HCIC_WRITE_PARAM1_PARAM_OFF 0 + +#define HCIC_PARAM_SIZE_WRITE_PARAM2 2 + +#define HCIC_WRITE_PARAM2_PARAM_OFF 0 + +#define HCIC_PARAM_SIZE_WRITE_PARAM3 3 + +#define HCIC_WRITE_PARAM3_PARAM_OFF 0 + +#define HCIC_PARAM_SIZE_SET_AFH_CHANNELS 10 + +BOOLEAN btsnd_hcic_write_pin_type(UINT8 type); /* Write PIN Type */ +BOOLEAN btsnd_hcic_write_auto_accept(UINT8 flag); /* Write Auto Accept */ +BOOLEAN btsnd_hcic_read_name (void); /* Read Local Name */ +BOOLEAN btsnd_hcic_write_page_tout(UINT16 timeout); /* Write Page Timout */ +BOOLEAN btsnd_hcic_write_scan_enable(UINT8 flag); /* Write Scan Enable */ +BOOLEAN btsnd_hcic_write_pagescan_cfg(UINT16 interval, + UINT16 window); /* Write Page Scan Activity */ + +#define HCIC_PARAM_SIZE_WRITE_PAGESCAN_CFG 4 + +#define HCI_SCAN_CFG_INTERVAL_OFF 0 +#define HCI_SCAN_CFG_WINDOW_OFF 2 +/* Write Page Scan Activity */ + +/* Write Inquiry Scan Activity */ +BOOLEAN btsnd_hcic_write_inqscan_cfg(UINT16 interval, UINT16 window); + +#define HCIC_PARAM_SIZE_WRITE_INQSCAN_CFG 4 + +#define HCI_SCAN_CFG_INTERVAL_OFF 0 +#define HCI_SCAN_CFG_WINDOW_OFF 2 +/* Write Inquiry Scan Activity */ + +BOOLEAN btsnd_hcic_write_auth_enable(UINT8 flag); /* Write Authentication Enable */ +BOOLEAN btsnd_hcic_write_dev_class(DEV_CLASS dev); /* Write Class of Device */ +BOOLEAN btsnd_hcic_write_voice_settings(UINT16 flags); /* Write Voice Settings */ + +/* Host Controller to Host flow control */ +#define HCI_HOST_FLOW_CTRL_OFF 0 +#define HCI_HOST_FLOW_CTRL_ACL_ON 1 +#define HCI_HOST_FLOW_CTRL_SCO_ON 2 +#define HCI_HOST_FLOW_CTRL_BOTH_ON 3 + +BOOLEAN btsnd_hcic_write_auto_flush_tout(UINT16 handle, + UINT16 timeout); /* Write Retransmit Timout */ + +#define HCIC_PARAM_SIZE_WRITE_AUTO_FLUSH_TOUT 4 + +#define HCI_FLUSH_TOUT_HANDLE_OFF 0 +#define HCI_FLUSH_TOUT_TOUT_OFF 2 + +BOOLEAN btsnd_hcic_read_tx_power(UINT16 handle, UINT8 type); /* Read Tx Power */ + +#define HCIC_PARAM_SIZE_READ_TX_POWER 3 + +#define HCI_READ_TX_POWER_HANDLE_OFF 0 +#define HCI_READ_TX_POWER_TYPE_OFF 2 + +/* Read transmit power level parameter */ +#define HCI_READ_CURRENT 0x00 +#define HCI_READ_MAXIMUM 0x01 + +BOOLEAN btsnd_hcic_host_num_xmitted_pkts (UINT8 num_handles, + UINT16 *handle, + UINT16 *num_pkts); /* Set Host Buffer Size */ + +#define HCIC_PARAM_SIZE_NUM_PKTS_DONE_SIZE sizeof(btmsg_hcic_num_pkts_done_t) + +#define MAX_DATA_HANDLES 10 + +#define HCI_PKTS_DONE_NUM_HANDLES_OFF 0 +#define HCI_PKTS_DONE_HANDLE_OFF 1 +#define HCI_PKTS_DONE_NUM_PKTS_OFF 3 + +/* Write Link Supervision Timeout */ +BOOLEAN btsnd_hcic_write_link_super_tout(UINT8 local_controller_id, UINT16 handle, UINT16 timeout); + +#define HCIC_PARAM_SIZE_WRITE_LINK_SUPER_TOUT 4 + +#define HCI_LINK_SUPER_TOUT_HANDLE_OFF 0 +#define HCI_LINK_SUPER_TOUT_TOUT_OFF 2 +/* Write Link Supervision Timeout */ + +BOOLEAN btsnd_hcic_write_cur_iac_lap (UINT8 num_cur_iac, + LAP *const iac_lap); /* Write Current IAC LAP */ + +#define MAX_IAC_LAPS 0x40 + +#define HCI_WRITE_IAC_LAP_NUM_OFF 0 +#define HCI_WRITE_IAC_LAP_LAP_OFF 1 +/* Write Current IAC LAP */ + +BOOLEAN btsnd_hcic_get_link_quality (UINT16 handle); /* Get Link Quality */ +BOOLEAN btsnd_hcic_read_rssi (UINT16 handle); /* Read RSSI */ +BOOLEAN btsnd_hcic_enable_test_mode (void); /* Enable Device Under Test Mode */ +BOOLEAN btsnd_hcic_write_pagescan_type(UINT8 type); /* Write Page Scan Type */ +BOOLEAN btsnd_hcic_write_inqscan_type(UINT8 type); /* Write Inquiry Scan Type */ +BOOLEAN btsnd_hcic_write_inquiry_mode(UINT8 type); /* Write Inquiry Mode */ + +#define HCI_DATA_HANDLE_MASK 0x0FFF + +#define HCID_GET_HANDLE_EVENT(p) (UINT16)((*((UINT8 *)((p) + 1) + p->offset) + \ + (*((UINT8 *)((p) + 1) + p->offset + 1) << 8))) + +#define HCID_GET_HANDLE(u16) (UINT16)((u16) & HCI_DATA_HANDLE_MASK) + +#define HCI_DATA_EVENT_MASK 3 +#define HCI_DATA_EVENT_OFFSET 12 +#define HCID_GET_EVENT(u16) (UINT8)(((u16) >> HCI_DATA_EVENT_OFFSET) & HCI_DATA_EVENT_MASK) + +#define HCI_DATA_BCAST_MASK 3 +#define HCI_DATA_BCAST_OFFSET 10 +#define HCID_GET_BCAST(u16) (UINT8)(((u16) >> HCI_DATA_BCAST_OFFSET) & HCI_DATA_BCAST_MASK) + +#define HCID_GET_ACL_LEN(p) (UINT16)((*((UINT8 *)((p) + 1) + p->offset + 2) + \ + (*((UINT8 *)((p) + 1) + p->offset + 3) << 8))) + +#define HCID_HEADER_SIZE 4 + +#define HCID_GET_SCO_LEN(p) (*((UINT8 *)((p) + 1) + p->offset + 2)) + +void btsnd_hcic_vendor_spec_cmd (void *buffer, UINT16 opcode, + UINT8 len, UINT8 *p_data, + void *p_cmd_cplt_cback); + +#if (BLE_INCLUDED == TRUE) +/******************************************************************************** +** BLE Commands +** Note: "local_controller_id" is for transport, not counted in HCI message size +*********************************************************************************/ +#define HCIC_BLE_RAND_DI_SIZE 8 +#define HCIC_BLE_ENCRYT_KEY_SIZE 16 +#define HCIC_BLE_IRK_SIZE 16 + +#define HCIC_PARAM_SIZE_SET_USED_FEAT_CMD 8 +#define HCIC_PARAM_SIZE_WRITE_RANDOM_ADDR_CMD 6 +#define HCIC_PARAM_SIZE_BLE_WRITE_ADV_PARAMS 15 +#define HCIC_PARAM_SIZE_BLE_WRITE_SCAN_RSP 31 +#define HCIC_PARAM_SIZE_WRITE_ADV_ENABLE 1 +#define HCIC_PARAM_SIZE_BLE_WRITE_SCAN_PARAM 7 +#define HCIC_PARAM_SIZE_BLE_WRITE_SCAN_ENABLE 2 +#define HCIC_PARAM_SIZE_BLE_CREATE_LL_CONN 25 +#define HCIC_PARAM_SIZE_BLE_CREATE_CONN_CANCEL 0 +#define HCIC_PARAM_SIZE_CLEAR_WHITE_LIST 0 +#define HCIC_PARAM_SIZE_ADD_WHITE_LIST 7 +#define HCIC_PARAM_SIZE_REMOVE_WHITE_LIST 7 +#define HCIC_PARAM_SIZE_BLE_UPD_LL_CONN_PARAMS 14 +#define HCIC_PARAM_SIZE_SET_HOST_CHNL_CLASS 5 +#define HCIC_PARAM_SIZE_READ_CHNL_MAP 2 +#define HCIC_PARAM_SIZE_BLE_READ_REMOTE_FEAT 2 +#define HCIC_PARAM_SIZE_BLE_ENCRYPT 32 +#define HCIC_PARAM_SIZE_BLE_RAND 0 +#define HCIC_PARAM_SIZE_WRITE_LE_HOST_SUPPORTED 2 + +#define HCIC_BLE_RAND_DI_SIZE 8 +#define HCIC_BLE_ENCRYT_KEY_SIZE 16 +#define HCIC_PARAM_SIZE_BLE_START_ENC (4 + HCIC_BLE_RAND_DI_SIZE + HCIC_BLE_ENCRYT_KEY_SIZE) +#define HCIC_PARAM_SIZE_LTK_REQ_REPLY (2 + HCIC_BLE_ENCRYT_KEY_SIZE) +#define HCIC_PARAM_SIZE_LTK_REQ_NEG_REPLY 2 +#define HCIC_BLE_CHNL_MAP_SIZE 5 +#define HCIC_PARAM_SIZE_BLE_WRITE_ADV_DATA 31 + +#define HCIC_PARAM_SIZE_BLE_ADD_DEV_RESOLVING_LIST (7 + HCIC_BLE_IRK_SIZE * 2) +#define HCIC_PARAM_SIZE_BLE_RM_DEV_RESOLVING_LIST 7 +#define HCIC_PARAM_SIZE_BLE_CLEAR_RESOLVING_LIST 0 +#define HCIC_PARAM_SIZE_BLE_READ_RESOLVING_LIST_SIZE 0 +#define HCIC_PARAM_SIZE_BLE_READ_RESOLVABLE_ADDR_PEER 7 +#define HCIC_PARAM_SIZE_BLE_READ_RESOLVABLE_ADDR_LOCAL 7 +#define HCIC_PARAM_SIZE_BLE_SET_ADDR_RESOLUTION_ENABLE 1 +#define HCIC_PARAM_SIZE_BLE_SET_RAND_PRIV_ADDR_TIMOUT 2 +#define HCIC_PARAM_SIZE_BLE_SET_DATA_LENGTH 6 +#define HCIC_PARAM_SIZE_BLE_WRITE_EXTENDED_SCAN_PARAM 11 + +/* ULP HCI command */ +BOOLEAN btsnd_hcic_ble_set_evt_mask (BT_EVENT_MASK event_mask); + +BOOLEAN btsnd_hcic_ble_read_buffer_size (void); + +BOOLEAN btsnd_hcic_ble_read_local_spt_feat (void); + +BOOLEAN btsnd_hcic_ble_set_local_used_feat (UINT8 feat_set[8]); + +BOOLEAN btsnd_hcic_ble_set_random_addr (BD_ADDR random_addr); + +BOOLEAN btsnd_hcic_ble_write_adv_params (UINT16 adv_int_min, UINT16 adv_int_max, + UINT8 adv_type, UINT8 addr_type_own, + UINT8 addr_type_dir, BD_ADDR direct_bda, + UINT8 channel_map, UINT8 adv_filter_policy); + +BOOLEAN btsnd_hcic_ble_read_adv_chnl_tx_power (void); + +BOOLEAN btsnd_hcic_ble_set_adv_data (UINT8 data_len, UINT8 *p_data); + +BOOLEAN btsnd_hcic_ble_set_scan_rsp_data (UINT8 data_len, UINT8 *p_scan_rsp); + +BOOLEAN btsnd_hcic_ble_set_adv_enable (UINT8 adv_enable); + +BOOLEAN btsnd_hcic_ble_set_scan_params (UINT8 scan_type, + UINT16 scan_int, UINT16 scan_win, + UINT8 addr_type, UINT8 scan_filter_policy); + +BOOLEAN btsnd_hcic_ble_set_scan_enable (UINT8 scan_enable, UINT8 duplicate); + +BOOLEAN btsnd_hcic_ble_create_ll_conn (UINT16 scan_int, UINT16 scan_win, + UINT8 init_filter_policy, UINT8 addr_type_peer, BD_ADDR bda_peer, UINT8 addr_type_own, + UINT16 conn_int_min, UINT16 conn_int_max, UINT16 conn_latency, UINT16 conn_timeout, + UINT16 min_ce_len, UINT16 max_ce_len); + +BOOLEAN btsnd_hcic_ble_create_conn_cancel (void); + +BOOLEAN btsnd_hcic_ble_read_white_list_size (void); + +BOOLEAN btsnd_hcic_ble_clear_white_list (void); + +BOOLEAN btsnd_hcic_ble_add_white_list (UINT8 addr_type, BD_ADDR bda); + +BOOLEAN btsnd_hcic_ble_remove_from_white_list (UINT8 addr_type, BD_ADDR bda); + +BOOLEAN btsnd_hcic_ble_upd_ll_conn_params (UINT16 handle, UINT16 conn_int_min, UINT16 conn_int_max, + UINT16 conn_latency, UINT16 conn_timeout, UINT16 min_len, UINT16 max_len); + +BOOLEAN btsnd_hcic_ble_set_host_chnl_class (UINT8 chnl_map[HCIC_BLE_CHNL_MAP_SIZE]); + +BOOLEAN btsnd_hcic_ble_read_chnl_map (UINT16 handle); + +BOOLEAN btsnd_hcic_ble_read_remote_feat ( UINT16 handle); + +BOOLEAN btsnd_hcic_ble_encrypt (UINT8 *key, UINT8 key_len, UINT8 *plain_text, UINT8 pt_len, void *p_cmd_cplt_cback); + +BOOLEAN btsnd_hcic_ble_rand (void *p_cmd_cplt_cback); + +BOOLEAN btsnd_hcic_ble_start_enc ( UINT16 handle, + UINT8 rand[HCIC_BLE_RAND_DI_SIZE], + UINT16 ediv, UINT8 ltk[HCIC_BLE_ENCRYT_KEY_SIZE]); + +BOOLEAN btsnd_hcic_ble_ltk_req_reply (UINT16 handle, UINT8 ltk[HCIC_BLE_ENCRYT_KEY_SIZE]); + +BOOLEAN btsnd_hcic_ble_ltk_req_neg_reply (UINT16 handle); + +BOOLEAN btsnd_hcic_ble_read_supported_states (void); + +BOOLEAN btsnd_hcic_ble_write_host_supported (UINT8 le_host_spt, UINT8 simul_le_host_spt); + +BOOLEAN btsnd_hcic_ble_read_host_supported (void); + +BOOLEAN btsnd_hcic_ble_receiver_test(UINT8 rx_freq); + +BOOLEAN btsnd_hcic_ble_transmitter_test(UINT8 tx_freq, UINT8 test_data_len, + UINT8 payload); +BOOLEAN btsnd_hcic_ble_test_end(void); + +#if (defined BLE_LLT_INCLUDED) && (BLE_LLT_INCLUDED == TRUE) + +#define HCIC_PARAM_SIZE_BLE_RC_PARAM_REQ_REPLY 14 +BOOLEAN btsnd_hcic_ble_rc_param_req_reply(UINT16 handle, + UINT16 conn_int_min, UINT16 conn_int_max, + UINT16 conn_latency, UINT16 conn_timeout, + UINT16 min_ce_len, UINT16 max_ce_len); + +#define HCIC_PARAM_SIZE_BLE_RC_PARAM_REQ_NEG_REPLY 3 +BOOLEAN btsnd_hcic_ble_rc_param_req_neg_reply(UINT16 handle, UINT8 reason); + +#endif /* BLE_LLT_INCLUDED */ + +BOOLEAN btsnd_hcic_ble_set_data_length(UINT16 conn_handle, UINT16 tx_octets, + UINT16 tx_time); + +BOOLEAN btsnd_hcic_ble_add_device_resolving_list (UINT8 addr_type_peer, + BD_ADDR bda_peer, + UINT8 irk_peer[HCIC_BLE_IRK_SIZE], + UINT8 irk_local[HCIC_BLE_IRK_SIZE]); + +BOOLEAN btsnd_hcic_ble_rm_device_resolving_list (UINT8 addr_type_peer, + BD_ADDR bda_peer); + +BOOLEAN btsnd_hcic_ble_clear_resolving_list (void); + +BOOLEAN btsnd_hcic_ble_read_resolvable_addr_peer (UINT8 addr_type_peer, + BD_ADDR bda_peer); + +BOOLEAN btsnd_hcic_ble_read_resolvable_addr_local (UINT8 addr_type_peer, + BD_ADDR bda_peer); + +BOOLEAN btsnd_hcic_ble_set_addr_resolution_enable (UINT8 addr_resolution_enable); + +BOOLEAN btsnd_hcic_ble_set_rand_priv_addr_timeout (UINT16 rpa_timout); + +#endif /* BLE_INCLUDED */ + +BOOLEAN btsnd_hcic_read_authenticated_payload_tout(UINT16 handle); + +BOOLEAN btsnd_hcic_write_authenticated_payload_tout(UINT16 handle, + UINT16 timeout); + +#define HCIC_PARAM_SIZE_WRITE_AUTHENT_PAYLOAD_TOUT 4 + +#define HCI__WRITE_AUTHENT_PAYLOAD_TOUT_HANDLE_OFF 0 +#define HCI__WRITE_AUTHENT_PAYLOAD_TOUT_TOUT_OFF 2 + +#endif diff --git a/tools/sdk/include/bluedroid/hid_le_prf.h b/tools/sdk/include/bluedroid/hid_le_prf.h new file mode 100644 index 00000000..6436573f --- /dev/null +++ b/tools/sdk/include/bluedroid/hid_le_prf.h @@ -0,0 +1,265 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "prf_defs.h" + +#if (HIDD_LE_PROFILE_CFG) +#include "bta_gatts_int.h" +#include "bt_types.h" +#include "bta_api.h" +#include "gatt_api.h" +#include "bt_app_api.h" + +/// Maximal number of HIDS that can be added in the DB +#ifndef USE_ONE_HIDS_INSTANCE +#define HIDD_LE_NB_HIDS_INST_MAX (2) +#else +#define HIDD_LE_NB_HIDS_INST_MAX (1) +#endif + +// Number of HID reports defined in the service +#define HID_NUM_REPORTS 9 + + +#define ATT_SVC_HID 0x1812 + +/// Maximal number of Report Char. that can be added in the DB for one HIDS - Up to 11 +#define HIDD_LE_NB_REPORT_INST_MAX (5) + +/// Maximal length of Report Char. Value +#define HIDD_LE_REPORT_MAX_LEN (45) +/// Maximal length of Report Map Char. Value +#define HIDD_LE_REPORT_MAP_MAX_LEN (512) + +/// Length of Boot Report Char. Value Maximal Length +#define HIDD_LE_BOOT_REPORT_MAX_LEN (8) + +/// Boot KB Input Report Notification Configuration Bit Mask +#define HIDD_LE_BOOT_KB_IN_NTF_CFG_MASK (0x40) +/// Boot KB Input Report Notification Configuration Bit Mask +#define HIDD_LE_BOOT_MOUSE_IN_NTF_CFG_MASK (0x80) +/// Boot Report Notification Configuration Bit Mask +#define HIDD_LE_REPORT_NTF_CFG_MASK (0x20) + + +/* HID information flags */ +#define HID_FLAGS_REMOTE_WAKE 0x01 // RemoteWake +#define HID_FLAGS_NORMALLY_CONNECTABLE 0x02 // NormallyConnectable + +/* Control point commands */ +#define HID_CMD_SUSPEND 0x00 // Suspend +#define HID_CMD_EXIT_SUSPEND 0x01 // Exit Suspend + +/* HID protocol mode values */ +#define HID_PROTOCOL_MODE_BOOT 0x00 // Boot Protocol Mode +#define HID_PROTOCOL_MODE_REPORT 0x01 // Report Protocol Mode + +/* Attribute value lengths */ +#define HID_PROTOCOL_MODE_LEN 1 // HID Protocol Mode +#define HID_INFORMATION_LEN 4 // HID Information +#define HID_REPORT_REF_LEN 2 // HID Report Reference Descriptor +#define HID_EXT_REPORT_REF_LEN 2 // External Report Reference Descriptor + +// HID feature flags +#define HID_KBD_FLAGS HID_FLAGS_REMOTE_WAKE + + +/// HID Service Attributes Indexes +enum { + HIDD_LE_IDX_SVC, + + // Included Service + HIDD_LE_IDX_INCL_SVC, + + // HID Information + HIDD_LE_IDX_HID_INFO_CHAR, + HIDD_LE_IDX_HID_INFO_VAL, + + // HID Control Point + HIDD_LE_IDX_HID_CTNL_PT_CHAR, + HIDD_LE_IDX_HID_CTNL_PT_VAL, + + // Report Map + HIDD_LE_IDX_REPORT_MAP_CHAR, + HIDD_LE_IDX_REPORT_MAP_VAL, + HIDD_LE_IDX_REPORT_MAP_EXT_REP_REF, + + // Protocol Mode + HIDD_LE_IDX_PROTO_MODE_CHAR, + HIDD_LE_IDX_PROTO_MODE_VAL, + + // Boot Keyboard Input Report + HIDD_LE_IDX_BOOT_KB_IN_REPORT_CHAR, + HIDD_LE_IDX_BOOT_KB_IN_REPORT_VAL, + HIDD_LE_IDX_BOOT_KB_IN_REPORT_NTF_CFG, + + // Boot Keyboard Output Report + HIDD_LE_IDX_BOOT_KB_OUT_REPORT_CHAR, + HIDD_LE_IDX_BOOT_KB_OUT_REPORT_VAL, + + // Boot Mouse Input Report + HIDD_LE_IDX_BOOT_MOUSE_IN_REPORT_CHAR, + HIDD_LE_IDX_BOOT_MOUSE_IN_REPORT_VAL, + HIDD_LE_IDX_BOOT_MOUSE_IN_REPORT_NTF_CFG, + + // Report + HIDD_LE_IDX_REPORT_CHAR, + HIDD_LE_IDX_REPORT_VAL, + HIDD_LE_IDX_REPORT_REP_REF, + HIDD_LE_IDX_REPORT_NTF_CFG, + + HIDD_LE_IDX_NB, +}; + + +/// Attribute Table Indexes +enum { + HIDD_LE_INFO_CHAR, + HIDD_LE_CTNL_PT_CHAR, + HIDD_LE_REPORT_MAP_CHAR, + HIDD_LE_REPORT_CHAR, + HIDD_LE_PROTO_MODE_CHAR, + HIDD_LE_BOOT_KB_IN_REPORT_CHAR, + HIDD_LE_BOOT_KB_OUT_REPORT_CHAR, + HIDD_LE_BOOT_MOUSE_IN_REPORT_CHAR, + HIDD_LE_CHAR_MAX //= HIDD_LE_REPORT_CHAR + HIDD_LE_NB_REPORT_INST_MAX, +}; + +///att read event table Indexs +enum { + HIDD_LE_READ_INFO_EVT, + HIDD_LE_READ_CTNL_PT_EVT, + HIDD_LE_READ_REPORT_MAP_EVT, + HIDD_LE_READ_REPORT_EVT, + HIDD_LE_READ_PROTO_MODE_EVT, + HIDD_LE_BOOT_KB_IN_REPORT_EVT, + HIDD_LE_BOOT_KB_OUT_REPORT_EVT, + HIDD_LE_BOOT_MOUSE_IN_REPORT_EVT, + + HID_LE_EVT_MAX +}; + +/// Client Characteristic Configuration Codes +enum { + HIDD_LE_DESC_MASK = 0x10, + + HIDD_LE_BOOT_KB_IN_REPORT_CFG = HIDD_LE_BOOT_KB_IN_REPORT_CHAR | HIDD_LE_DESC_MASK, + HIDD_LE_BOOT_MOUSE_IN_REPORT_CFG = HIDD_LE_BOOT_MOUSE_IN_REPORT_CHAR | HIDD_LE_DESC_MASK, + HIDD_LE_REPORT_CFG = HIDD_LE_REPORT_CHAR | HIDD_LE_DESC_MASK, +}; + +/// Features Flag Values +enum { + HIDD_LE_CFG_KEYBOARD = 0x01, + HIDD_LE_CFG_MOUSE = 0x02, + HIDD_LE_CFG_PROTO_MODE = 0x04, + HIDD_LE_CFG_MAP_EXT_REF = 0x08, + HIDD_LE_CFG_BOOT_KB_WR = 0x10, + HIDD_LE_CFG_BOOT_MOUSE_WR = 0x20, +}; + +/// Report Char. Configuration Flag Values +enum { + HIDD_LE_CFG_REPORT_IN = 0x01, + HIDD_LE_CFG_REPORT_OUT = 0x02, + //HOGPD_CFG_REPORT_FEAT can be used as a mask to check Report type + HIDD_LE_CFG_REPORT_FEAT = 0x03, + HIDD_LE_CFG_REPORT_WR = 0x10, +}; + +/// Pointer to the connection clean-up function +#define HIDD_LE_CLEANUP_FNCT (NULL) + +/* + * TYPE DEFINITIONS + **************************************************************************************** + */ + +/// HIDD Features structure +typedef struct { + /// Service Features + uint8_t svc_features; + /// Number of Report Char. instances to add in the database + uint8_t report_nb; + /// Report Char. Configuration + uint8_t report_char_cfg[HIDD_LE_NB_REPORT_INST_MAX]; +} hidd_feature_t; + + +typedef struct { + BOOLEAN in_use; + BOOLEAN congest; + uint16_t conn_id; + BOOLEAN connected; + BD_ADDR remote_bda; + uint32_t trans_id; + uint8_t cur_srvc_id; + +} hidd_clcb_t; + +// HID report mapping table +typedef struct { + uint16_t handle; // Handle of report characteristic + uint16_t cccdHandle; // Handle of CCCD for report characteristic + uint8_t id; // Report ID + uint8_t type; // Report type + uint8_t mode; // Protocol mode (report or boot) +} hidRptMap_t; + + +typedef struct { + /// hidd profile id + uint8_t app_id; + /// Notified handle + uint16_t ntf_handle; + ///Attribute handle Table + uint16_t att_tbl[HIDD_LE_CHAR_MAX]; + /// Supported Features + hidd_feature_t hidd_feature[HIDD_LE_NB_HIDS_INST_MAX]; + /// Current Protocol Mode + uint8_t proto_mode[HIDD_LE_NB_HIDS_INST_MAX]; + /// Number of HIDS added in the database + uint8_t hids_nb; + uint8_t pending_evt; + uint16_t pending_hal; +} hidd_inst_t; + + +/* service engine control block */ +typedef struct { + hidd_clcb_t hidd_clcb; /* connection link*/ + esp_gatt_if_t gatt_if; + BOOLEAN enabled; + BOOLEAN is_primery; + hidd_inst_t hidd_inst; + uint8_t inst_id; +} hidd_le_env_t; + +extern hidd_le_env_t hidd_le_env; + + +void hidd_le_create_service(BOOLEAN is_primary); + +void hidd_rsp (uint32_t trans_id, uint16_t conn_id, uint8_t app_id, + esp_gatt_status_t status, uint8_t event, tGATTS_DATA *p_rsp); + +void hidd_read_attr_value(tGATTS_DATA *p_data, uint32_t trans_id); + + +tGATT_STATUS hidd_le_init (void); + + +#endif ///HIDD_LE_PROFILE_CFG + + diff --git a/tools/sdk/include/bluedroid/hiddefs.h b/tools/sdk/include/bluedroid/hiddefs.h new file mode 100644 index 00000000..c8c3d3cb --- /dev/null +++ b/tools/sdk/include/bluedroid/hiddefs.h @@ -0,0 +1,156 @@ +/****************************************************************************** + * + * Copyright (C) 2002-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This file contains HID protocol definitions + * + ******************************************************************************/ + +#ifndef HIDDEFS_H +#define HIDDEFS_H + +#include "sdp_api.h" +/* +** tHID_STATUS: HID result codes, returned by HID and device and host functions. +*/ +enum { + HID_SUCCESS, + HID_ERR_NOT_REGISTERED, + HID_ERR_ALREADY_REGISTERED, + HID_ERR_NO_RESOURCES, + HID_ERR_NO_CONNECTION, + HID_ERR_INVALID_PARAM, + HID_ERR_UNSUPPORTED, + HID_ERR_UNKNOWN_COMMAND, + HID_ERR_CONGESTED, + HID_ERR_CONN_IN_PROCESS, + HID_ERR_ALREADY_CONN, + HID_ERR_DISCONNECTING, + HID_ERR_SET_CONNABLE_FAIL, + /* Device specific error codes */ + HID_ERR_HOST_UNKNOWN, + HID_ERR_L2CAP_FAILED, + HID_ERR_AUTH_FAILED, + HID_ERR_SDP_BUSY, + HID_ERR_GATT, + + HID_ERR_INVALID = 0xFF +}; + +typedef UINT8 tHID_STATUS; + +#define HID_L2CAP_CONN_FAIL (0x0100) /* Connection Attempt was made but failed */ +#define HID_L2CAP_REQ_FAIL (0x0200) /* L2CAP_ConnectReq API failed */ +#define HID_L2CAP_CFG_FAIL (0x0400) /* L2CAP Configuration was rejected by peer */ + + + +/* Define the HID transaction types +*/ +#define HID_TRANS_HANDSHAKE (0) +#define HID_TRANS_CONTROL (1) +#define HID_TRANS_GET_REPORT (4) +#define HID_TRANS_SET_REPORT (5) +#define HID_TRANS_GET_PROTOCOL (6) +#define HID_TRANS_SET_PROTOCOL (7) +#define HID_TRANS_GET_IDLE (8) +#define HID_TRANS_SET_IDLE (9) +#define HID_TRANS_DATA (10) +#define HID_TRANS_DATAC (11) + +#define HID_GET_TRANS_FROM_HDR(x) ((x >> 4) & 0x0f) +#define HID_GET_PARAM_FROM_HDR(x) (x & 0x0f) +#define HID_BUILD_HDR(t,p) (UINT8)((t << 4) | (p & 0x0f)) + + +/* Parameters for Handshake +*/ +#define HID_PAR_HANDSHAKE_RSP_SUCCESS (0) +#define HID_PAR_HANDSHAKE_RSP_NOT_READY (1) +#define HID_PAR_HANDSHAKE_RSP_ERR_INVALID_REP_ID (2) +#define HID_PAR_HANDSHAKE_RSP_ERR_UNSUPPORTED_REQ (3) +#define HID_PAR_HANDSHAKE_RSP_ERR_INVALID_PARAM (4) +#define HID_PAR_HANDSHAKE_RSP_ERR_UNKNOWN (14) +#define HID_PAR_HANDSHAKE_RSP_ERR_FATAL (15) + + +/* Parameters for Control +*/ +#define HID_PAR_CONTROL_NOP (0) +#define HID_PAR_CONTROL_HARD_RESET (1) +#define HID_PAR_CONTROL_SOFT_RESET (2) +#define HID_PAR_CONTROL_SUSPEND (3) +#define HID_PAR_CONTROL_EXIT_SUSPEND (4) +#define HID_PAR_CONTROL_VIRTUAL_CABLE_UNPLUG (5) + + +/* Different report types in get, set, data +*/ +#define HID_PAR_REP_TYPE_MASK (0x03) +#define HID_PAR_REP_TYPE_OTHER (0x00) +#define HID_PAR_REP_TYPE_INPUT (0x01) +#define HID_PAR_REP_TYPE_OUTPUT (0x02) +#define HID_PAR_REP_TYPE_FEATURE (0x03) + +/* Parameters for Get Report +*/ + +/* Buffer size in two bytes after Report ID */ +#define HID_PAR_GET_REP_BUFSIZE_FOLLOWS (0x08) + + +/* Parameters for Protocol Type +*/ +#define HID_PAR_PROTOCOL_MASK (0x01) +#define HID_PAR_PROTOCOL_REPORT (0x01) +#define HID_PAR_PROTOCOL_BOOT_MODE (0x00) + +#define HID_PAR_REP_TYPE_MASK (0x03) + +/* Descriptor types in the SDP record +*/ +#define HID_SDP_DESCRIPTOR_REPORT (0x22) +#define HID_SDP_DESCRIPTOR_PHYSICAL (0x23) + +typedef struct desc_info { + UINT16 dl_len; + UINT8 *dsc_list; +} tHID_DEV_DSCP_INFO; + +#define HID_SSR_PARAM_INVALID 0xffff + +typedef struct sdp_info { + char svc_name[HID_MAX_SVC_NAME_LEN]; /*Service Name */ + char svc_descr[HID_MAX_SVC_DESCR_LEN]; /*Service Description*/ + char prov_name[HID_MAX_PROV_NAME_LEN]; /*Provider Name.*/ + UINT16 rel_num; /*Release Number */ + UINT16 hpars_ver; /*HID Parser Version.*/ + UINT16 ssr_max_latency; /* HIDSSRHostMaxLatency value, if HID_SSR_PARAM_INVALID not used*/ + UINT16 ssr_min_tout; /* HIDSSRHostMinTimeout value, if HID_SSR_PARAM_INVALID not used* */ + UINT8 sub_class; /*Device Subclass.*/ + UINT8 ctry_code; /*Country Code.*/ + UINT16 sup_timeout;/* Supervisory Timeout */ + + tHID_DEV_DSCP_INFO dscp_info; /* Descriptor list and Report list to be set in the SDP record. + This parameter is used if HID_DEV_USE_GLB_SDP_REC is set to FALSE.*/ + tSDP_DISC_REC *p_sdp_layer_rec; +} tHID_DEV_SDP_INFO; + +#endif + diff --git a/tools/sdk/include/bluedroid/hidh_api.h b/tools/sdk/include/bluedroid/hidh_api.h new file mode 100644 index 00000000..499e6462 --- /dev/null +++ b/tools/sdk/include/bluedroid/hidh_api.h @@ -0,0 +1,235 @@ +/****************************************************************************** + * + * Copyright (C) 2002-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ +#ifndef HIDH_API_H +#define HIDH_API_H + +#include "hiddefs.h" +#include "sdp_api.h" + +/***************************************************************************** +** Constants +*****************************************************************************/ + +enum { + HID_SDP_NO_SERV_UUID = (SDP_ILLEGAL_PARAMETER + 1), + HID_SDP_MANDATORY_MISSING +}; + +/* Attributes mask values to be used in HID_HostAddDev API */ +#define HID_VIRTUAL_CABLE 0x0001 +#define HID_NORMALLY_CONNECTABLE 0x0002 +#define HID_RECONN_INIT 0x0004 +#define HID_SDP_DISABLE 0x0008 +#define HID_BATTERY_POWER 0x0010 +#define HID_REMOTE_WAKE 0x0020 +#define HID_SUP_TOUT_AVLBL 0x0040 +#define HID_SSR_MAX_LATENCY 0x0080 +#define HID_SSR_MIN_TOUT 0x0100 + +#define HID_SEC_REQUIRED 0x8000 +#define HID_ATTR_MASK_IGNORE 0 + + +/***************************************************************************** +** Type Definitions +*****************************************************************************/ + +typedef void (tHID_HOST_SDP_CALLBACK) (UINT16 result, UINT16 attr_mask, + tHID_DEV_SDP_INFO *sdp_rec ); + +/* HID-HOST returns the events in the following table to the application via tHID_HOST_DEV_CALLBACK +HID_HDEV_EVT_OPEN Connected to device with Interrupt and Control Channels in OPEN state. + Data = NA +HID_HDEV_EVT_CLOSE Connection with device is closed. Data=reason code. +HID_HDEV_EVT_RETRYING Lost connection is being re-connected. + Data=Retrial number +HID_HDEV_EVT_IN_REPORT Device sent an input report Data=Report Type pdata= pointer to BT_HDR + (GKI buffer having report data.) +HID_HDEV_EVT_HANDSHAKE Device sent SET_REPORT Data=Result-code pdata=NA. +HID_HDEV_EVT_VC_UNPLUG Device sent Virtual Unplug Data=NA. pdata=NA. +*/ + +enum { + HID_HDEV_EVT_OPEN, + HID_HDEV_EVT_CLOSE, + HID_HDEV_EVT_RETRYING, + HID_HDEV_EVT_INTR_DATA, + HID_HDEV_EVT_INTR_DATC, + HID_HDEV_EVT_CTRL_DATA, + HID_HDEV_EVT_CTRL_DATC, + HID_HDEV_EVT_HANDSHAKE, + HID_HDEV_EVT_VC_UNPLUG +}; +typedef void (tHID_HOST_DEV_CALLBACK) (UINT8 dev_handle, + BD_ADDR addr, + UINT8 event, /* Event from HID-DEVICE. */ + UINT32 data, /* Integer data corresponding to the event.*/ + BT_HDR *p_buf ); /* Pointer data corresponding to the event. */ + + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif + +/******************************************************************************* +** +** Function HID_HostGetSDPRecord +** +** Description This function reads the device SDP record. +** +** Returns tHID_STATUS +** +*******************************************************************************/ +extern tHID_STATUS HID_HostGetSDPRecord (BD_ADDR addr, + tSDP_DISCOVERY_DB *p_db, + UINT32 db_len, + tHID_HOST_SDP_CALLBACK *sdp_cback ); + +/******************************************************************************* +** +** Function HID_HostRegister +** +** Description This function registers HID-Host with lower layers. +** +** Returns tHID_STATUS +** +*******************************************************************************/ +extern tHID_STATUS HID_HostRegister (tHID_HOST_DEV_CALLBACK *dev_cback); + +/******************************************************************************* +** +** Function HID_HostDeregister +** +** Description This function is called when the host is about power down. +** +** Returns tHID_STATUS +** +*******************************************************************************/ +extern tHID_STATUS HID_HostDeregister(void); + +/******************************************************************************* +** +** Function HID_HostAddDev +** +** Description This is called so HID-host may manage this device. +** +** Returns tHID_STATUS +** +*******************************************************************************/ +extern tHID_STATUS HID_HostAddDev (BD_ADDR addr, UINT16 attr_mask, + UINT8 *handle ); + +/******************************************************************************* +** +** Function HID_HostRemoveDev +** +** Description This removes the device from list devices that host has to manage. +** +** Returns tHID_STATUS +** +*******************************************************************************/ +extern tHID_STATUS HID_HostRemoveDev (UINT8 dev_handle ); + +/******************************************************************************* +** +** Function HID_HostOpenDev +** +** Description This function is called when the user wants to initiate a +** connection attempt to a device. +** +** Returns void +** +*******************************************************************************/ +extern tHID_STATUS HID_HostOpenDev (UINT8 dev_handle ); + +/******************************************************************************* +** +** Function HID_HostWriteDev +** +** Description This function is called when the host has a report to send. +** +** Returns void +** +*******************************************************************************/ +extern tHID_STATUS HID_HostWriteDev(UINT8 dev_handle, UINT8 t_type, + UINT8 param, UINT16 data, + UINT8 report_id, BT_HDR *pbuf); + +/******************************************************************************* +** +** Function HID_HostCloseDev +** +** Description This function disconnects the device. +** +** Returns void +** +*******************************************************************************/ +extern tHID_STATUS HID_HostCloseDev(UINT8 dev_handle ); + +/******************************************************************************* +** Function HID_HostInit +** +** Description This function initializes the control block and trace variable +** +** Returns void +*******************************************************************************/ +extern void HID_HostInit(void); + +/******************************************************************************* +** Function HID_HostSetSecurityLevel +** +** Description This function sets the security level for the devices which +** are marked by application as requiring security +** +** Returns tHID_STATUS +*******************************************************************************/ +extern tHID_STATUS HID_HostSetSecurityLevel( char serv_name[], UINT8 sec_lvl ); + +/******************************************************************************* +** +** Function hid_known_hid_device +** +** Description This function checks if this device is of type HID Device +** +** Returns TRUE if device exists else FALSE +** +*******************************************************************************/ +BOOLEAN hid_known_hid_device (BD_ADDR bd_addr); + + +/******************************************************************************* +** +** Function HID_HostSetTraceLevel +** +** Description This function sets the trace level for HID Host. If called with +** a value of 0xFF, it simply reads the current trace level. +** +** Returns the new (current) trace level +** +*******************************************************************************/ +extern UINT8 HID_HostSetTraceLevel (UINT8 new_level); + +#ifdef __cplusplus +} +#endif + +#endif /* HIDH_API_H */ diff --git a/tools/sdk/include/bluedroid/interop.h b/tools/sdk/include/bluedroid/interop.h new file mode 100644 index 00000000..74394d95 --- /dev/null +++ b/tools/sdk/include/bluedroid/interop.h @@ -0,0 +1,44 @@ +/****************************************************************************** + * + * Copyright (C) 2015 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _INTEROP_H_ +#define _INTEROP_H_ + +#include +#include "bt_defs.h" + +typedef enum { + // Disable secure connections + // This is for pre BT 4.1/2 devices that do not handle secure mode + // very well. + INTEROP_DISABLE_LE_SECURE_CONNECTIONS, + + // Some devices have proven problematic during the pairing process, often + // requiring multiple retries to complete pairing. To avoid degrading the user + // experience for those devices, automatically re-try pairing if page + // timeouts are received during pairing. + INTEROP_AUTO_RETRY_PAIRING +} interop_feature_t; + +// Check if a given |addr| matches a known interoperability workaround as identified +// by the |interop_feature_t| enum. This API is used for simple address based lookups +// where more information is not available. No look-ups or random address resolution +// is performed on |addr|. +bool interop_match(const interop_feature_t feature, const bt_bdaddr_t *addr); + +#endif /*_INTEROP_H_*/ diff --git a/tools/sdk/include/bluedroid/interop_database.h b/tools/sdk/include/bluedroid/interop_database.h new file mode 100644 index 00000000..5b9bc934 --- /dev/null +++ b/tools/sdk/include/bluedroid/interop_database.h @@ -0,0 +1,50 @@ +/****************************************************************************** + * + * Copyright (C) 2015 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _INTEROP_DATABASE_H_ +#define _INTEROP_DATABASE_H_ + +#include "interop.h" + +typedef struct { + bt_bdaddr_t addr; + uint8_t len; + interop_feature_t feature; +} interop_entry_t; + +static const interop_entry_t interop_database[] = { + // Nexus Remote (Spike) + // Note: May affect other Asus brand devices + {{{0x08, 0x62, 0x66, 0, 0, 0}}, 3, INTEROP_DISABLE_LE_SECURE_CONNECTIONS}, + {{{0x38, 0x2c, 0x4a, 0xc9, 0, 0}}, 4, INTEROP_DISABLE_LE_SECURE_CONNECTIONS}, + {{{0x38, 0x2c, 0x4a, 0xe6, 0, 0}}, 4, INTEROP_DISABLE_LE_SECURE_CONNECTIONS}, + {{{0x54, 0xa0, 0x50, 0xd9, 0, 0}}, 4, INTEROP_DISABLE_LE_SECURE_CONNECTIONS}, + {{{0xac, 0x9e, 0x17, 0, 0, 0}}, 3, INTEROP_DISABLE_LE_SECURE_CONNECTIONS}, + {{{0xf0, 0x79, 0x59, 0, 0, 0}}, 3, INTEROP_DISABLE_LE_SECURE_CONNECTIONS}, + + // Motorola Key Link + {{{0x1c, 0x96, 0x5a, 0, 0, 0}}, 3, INTEROP_DISABLE_LE_SECURE_CONNECTIONS}, + + // Flic smart button + {{{0x80, 0xe4, 0xda, 0x70, 0, 0}}, 4, INTEROP_DISABLE_LE_SECURE_CONNECTIONS}, + + // BMW car kits (Harman/Becker) + {{{0x9c, 0xdf, 0x03, 0, 0, 0}}, 3, INTEROP_AUTO_RETRY_PAIRING} +}; + +#endif /*_INTEROP_DATABASE_H_*/ diff --git a/tools/sdk/include/bluedroid/l2c_api.h b/tools/sdk/include/bluedroid/l2c_api.h new file mode 100644 index 00000000..d79c17a1 --- /dev/null +++ b/tools/sdk/include/bluedroid/l2c_api.h @@ -0,0 +1,1137 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * this file contains the L2CAP API definitions + * + ******************************************************************************/ +#ifndef L2C_API_H +#define L2C_API_H + +#include + +#include "bt_target.h" +#include "l2cdefs.h" +#include "hcidefs.h" + +/***************************************************************************** +** Constants +*****************************************************************************/ + +/* Define the minimum offset that L2CAP needs in a buffer. This is made up of +** HCI type(1), len(2), handle(2), L2CAP len(2) and CID(2) => 9 +*/ +#define L2CAP_MIN_OFFSET 13 /* plus control(2), SDU length(2) */ + +/* Minimum offset for broadcast needs another two bytes for the PSM */ +#define L2CAP_BCST_MIN_OFFSET 11 + +/* ping result codes */ +#define L2CAP_PING_RESULT_OK 0 /* Ping reply received OK */ +#define L2CAP_PING_RESULT_NO_LINK 1 /* Link could not be setup */ +#define L2CAP_PING_RESULT_NO_RESP 2 /* Remote L2CAP did not reply */ + +/* result code for L2CA_DataWrite() */ +#define L2CAP_DW_FAILED FALSE +#define L2CAP_DW_SUCCESS TRUE +#define L2CAP_DW_CONGESTED 2 + +/* Values for priority parameter to L2CA_SetAclPriority */ +#define L2CAP_PRIORITY_NORMAL 0 +#define L2CAP_PRIORITY_HIGH 1 + +/* Values for priority parameter to L2CA_SetTxPriority */ +#define L2CAP_CHNL_PRIORITY_HIGH 0 +#define L2CAP_CHNL_PRIORITY_MEDIUM 1 +#define L2CAP_CHNL_PRIORITY_LOW 2 + +typedef UINT8 tL2CAP_CHNL_PRIORITY; + +/* Values for Tx/Rx data rate parameter to L2CA_SetChnlDataRate */ +#define L2CAP_CHNL_DATA_RATE_HIGH 3 +#define L2CAP_CHNL_DATA_RATE_MEDIUM 2 +#define L2CAP_CHNL_DATA_RATE_LOW 1 +#define L2CAP_CHNL_DATA_RATE_NO_TRAFFIC 0 + +typedef UINT8 tL2CAP_CHNL_DATA_RATE; + +/* Data Packet Flags (bits 2-15 are reserved) */ +/* layer specific 14-15 bits are used for FCR SAR */ +#define L2CAP_FLUSHABLE_MASK 0x0003 +#define L2CAP_FLUSHABLE_CH_BASED 0x0000 +#define L2CAP_FLUSHABLE_PKT 0x0001 +#define L2CAP_NON_FLUSHABLE_PKT 0x0002 + + +/* L2CA_FlushChannel num_to_flush definitions */ +#define L2CAP_FLUSH_CHANS_ALL 0xffff +#define L2CAP_FLUSH_CHANS_GET 0x0000 + + +/* special CID for Multi-AV for reporting congestion */ +#define L2CAP_MULTI_AV_CID 0 + +/* length of the HCI header block */ +/* HCI header(4) + SNK count(1) + FCR bits(1) + AV data length(2) */ +#define L2CAP_MULTI_AV_HCI_HDR_LEN 8 + +/* length of padding for 4 bytes align */ +#define L2CAP_MULTI_AV_PADDING_LEN 2 + +/* length of the HCI header block with padding for FCR */ +/* HCI header(4) + SNK count(1) + FCR bits(1) + AV data length(2) + padding(2) */ +#define L2CAP_MULTI_AV_HCI_HDR_LEN_WITH_PADDING 10 + +/* length of the L2CAP header block */ +/* HCI header(4) + L2CAP header(4) + padding(4) or control word(2) + FCS(2) */ +#define L2CAP_MULTI_AV_L2C_HDR_LEN 12 + +/* definition used for L2CA_SetDesireRole */ +#define L2CAP_ROLE_SLAVE HCI_ROLE_SLAVE +#define L2CAP_ROLE_MASTER HCI_ROLE_MASTER +#define L2CAP_ROLE_ALLOW_SWITCH 0x80 /* set this bit to allow switch at create conn */ +#define L2CAP_ROLE_DISALLOW_SWITCH 0x40 /* set this bit to disallow switch at create conn */ +#define L2CAP_ROLE_CHECK_SWITCH 0xC0 + + +/* Values for 'allowed_modes' field passed in structure tL2CAP_ERTM_INFO +*/ +#define L2CAP_FCR_CHAN_OPT_BASIC (1 << L2CAP_FCR_BASIC_MODE) +#define L2CAP_FCR_CHAN_OPT_ERTM (1 << L2CAP_FCR_ERTM_MODE) +#define L2CAP_FCR_CHAN_OPT_STREAM (1 << L2CAP_FCR_STREAM_MODE) + +#define L2CAP_FCR_CHAN_OPT_ALL_MASK (L2CAP_FCR_CHAN_OPT_BASIC | L2CAP_FCR_CHAN_OPT_ERTM | L2CAP_FCR_CHAN_OPT_STREAM) + +/* Validity check for PSM. PSM values must be odd. Also, all PSM values must +** be assigned such that the least significant bit of the most sigificant +** octet equals zero. +*/ +#define L2C_INVALID_PSM(psm) (((psm) & 0x0101) != 0x0001) +#define L2C_IS_VALID_PSM(psm) (((psm) & 0x0101) == 0x0001) + +/***************************************************************************** +** Type Definitions +*****************************************************************************/ + +typedef struct { +#define L2CAP_FCR_BASIC_MODE 0x00 +#define L2CAP_FCR_ERTM_MODE 0x03 +#define L2CAP_FCR_STREAM_MODE 0x04 + + UINT8 mode; + + UINT8 tx_win_sz; + UINT8 max_transmit; + UINT16 rtrans_tout; + UINT16 mon_tout; + UINT16 mps; +} tL2CAP_FCR_OPTS; + +/* Define a structure to hold the configuration parameters. Since the +** parameters are optional, for each parameter there is a boolean to +** use to signify its presence or absence. +*/ +typedef struct { + UINT16 result; /* Only used in confirm messages */ + BOOLEAN mtu_present; + UINT16 mtu; + BOOLEAN qos_present; + FLOW_SPEC qos; + BOOLEAN flush_to_present; + UINT16 flush_to; + BOOLEAN fcr_present; + tL2CAP_FCR_OPTS fcr; + BOOLEAN fcs_present; /* Optionally bypasses FCS checks */ + UINT8 fcs; /* '0' if desire is to bypass FCS, otherwise '1' */ + BOOLEAN ext_flow_spec_present; + tHCI_EXT_FLOW_SPEC ext_flow_spec; + UINT16 flags; /* bit 0: 0-no continuation, 1-continuation */ +} tL2CAP_CFG_INFO; + +/* L2CAP channel configured field bitmap */ +#define L2CAP_CH_CFG_MASK_MTU 0x0001 +#define L2CAP_CH_CFG_MASK_QOS 0x0002 +#define L2CAP_CH_CFG_MASK_FLUSH_TO 0x0004 +#define L2CAP_CH_CFG_MASK_FCR 0x0008 +#define L2CAP_CH_CFG_MASK_FCS 0x0010 +#define L2CAP_CH_CFG_MASK_EXT_FLOW_SPEC 0x0020 + +typedef UINT16 tL2CAP_CH_CFG_BITS; + +/********************************* +** Callback Functions Prototypes +**********************************/ + +/* Connection indication callback prototype. Parameters are +** BD Address of remote +** Local CID assigned to the connection +** PSM that the remote wants to connect to +** Identifier that the remote sent +*/ +typedef void (tL2CA_CONNECT_IND_CB) (BD_ADDR, UINT16, UINT16, UINT8); + + +/* Connection confirmation callback prototype. Parameters are +** Local CID +** Result - 0 = connected, non-zero means failure reason +*/ +typedef void (tL2CA_CONNECT_CFM_CB) (UINT16, UINT16); + + +/* Connection pending callback prototype. Parameters are +** Local CID +*/ +typedef void (tL2CA_CONNECT_PND_CB) (UINT16); + + +/* Configuration indication callback prototype. Parameters are +** Local CID assigned to the connection +** Pointer to configuration info +*/ +typedef void (tL2CA_CONFIG_IND_CB) (UINT16, tL2CAP_CFG_INFO *); + + +/* Configuration confirm callback prototype. Parameters are +** Local CID assigned to the connection +** Pointer to configuration info +*/ +typedef void (tL2CA_CONFIG_CFM_CB) (UINT16, tL2CAP_CFG_INFO *); + + +/* Disconnect indication callback prototype. Parameters are +** Local CID +** Boolean whether upper layer should ack this +*/ +typedef void (tL2CA_DISCONNECT_IND_CB) (UINT16, BOOLEAN); + + +/* Disconnect confirm callback prototype. Parameters are +** Local CID +** Result +*/ +typedef void (tL2CA_DISCONNECT_CFM_CB) (UINT16, UINT16); + + +/* QOS Violation indication callback prototype. Parameters are +** BD Address of violating device +*/ +typedef void (tL2CA_QOS_VIOLATION_IND_CB) (BD_ADDR); + + +/* Data received indication callback prototype. Parameters are +** Local CID +** Address of buffer +*/ +typedef void (tL2CA_DATA_IND_CB) (UINT16, BT_HDR *); + + +/* Echo response callback prototype. Note that this is not included in the +** registration information, but is passed to L2CAP as part of the API to +** actually send an echo request. Parameters are +** Result +*/ +typedef void (tL2CA_ECHO_RSP_CB) (UINT16); + + +/* Callback function prototype to pass broadcom specific echo response */ +/* to the upper layer */ +typedef void (tL2CA_ECHO_DATA_CB) (BD_ADDR, UINT16, UINT8 *); + + +/* Congestion status callback protype. This callback is optional. If +** an application tries to send data when the transmit queue is full, +** the data will anyways be dropped. The parameter is: +** Local CID +** TRUE if congested, FALSE if uncongested +*/ +typedef void (tL2CA_CONGESTION_STATUS_CB) (UINT16, BOOLEAN); + +/* Callback prototype for number of packets completed events. +** This callback notifies the application when Number of Completed Packets +** event has been received. +** This callback is originally designed for 3DG devices. +** The parameter is: +** peer BD_ADDR +*/ +typedef void (tL2CA_NOCP_CB) (BD_ADDR); + +/* Transmit complete callback protype. This callback is optional. If +** set, L2CAP will call it when packets are sent or flushed. If the +** count is 0xFFFF, it means all packets are sent for that CID (eRTM +** mode only). The parameters are: +** Local CID +** Number of SDUs sent or dropped +*/ +typedef void (tL2CA_TX_COMPLETE_CB) (UINT16, UINT16); + +/* Define the structure that applications use to register with +** L2CAP. This structure includes callback functions. All functions +** MUST be provided, with the exception of the "connect pending" +** callback and "congestion status" callback. +*/ +typedef struct { + tL2CA_CONNECT_IND_CB *pL2CA_ConnectInd_Cb; + tL2CA_CONNECT_CFM_CB *pL2CA_ConnectCfm_Cb; + tL2CA_CONNECT_PND_CB *pL2CA_ConnectPnd_Cb; + tL2CA_CONFIG_IND_CB *pL2CA_ConfigInd_Cb; + tL2CA_CONFIG_CFM_CB *pL2CA_ConfigCfm_Cb; + tL2CA_DISCONNECT_IND_CB *pL2CA_DisconnectInd_Cb; + tL2CA_DISCONNECT_CFM_CB *pL2CA_DisconnectCfm_Cb; + tL2CA_QOS_VIOLATION_IND_CB *pL2CA_QoSViolationInd_Cb; + tL2CA_DATA_IND_CB *pL2CA_DataInd_Cb; + tL2CA_CONGESTION_STATUS_CB *pL2CA_CongestionStatus_Cb; + tL2CA_TX_COMPLETE_CB *pL2CA_TxComplete_Cb; + +} tL2CAP_APPL_INFO; + +/* Define the structure that applications use to create or accept +** connections with enhanced retransmission mode. +*/ +typedef struct { + UINT8 preferred_mode; + UINT8 allowed_modes; + UINT8 user_rx_pool_id; + UINT8 user_tx_pool_id; + UINT8 fcr_rx_pool_id; + UINT8 fcr_tx_pool_id; + +} tL2CAP_ERTM_INFO; + +#define L2CA_REGISTER(a,b,c) L2CA_Register(a,(tL2CAP_APPL_INFO *)b) +#define L2CA_DEREGISTER(a) L2CA_Deregister(a) +#define L2CA_CONNECT_REQ(a,b,c,d) L2CA_ErtmConnectReq(a,b,c) +#define L2CA_CONNECT_RSP(a,b,c,d,e,f,g) L2CA_ErtmConnectRsp(a,b,c,d,e,f) +#define L2CA_CONFIG_REQ(a,b) L2CA_ConfigReq(a,b) +#define L2CA_CONFIG_RSP(a,b) L2CA_ConfigRsp(a,b) +#define L2CA_DISCONNECT_REQ(a) L2CA_DisconnectReq(a) +#define L2CA_DISCONNECT_RSP(a) L2CA_DisconnectRsp(a) +#define L2CA_DATA_WRITE(a, b) L2CA_DataWrite(a, b) + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif + +/******************************************************************************* +** +** Function L2CA_Register +** +** Description Other layers call this function to register for L2CAP +** services. +** +** Returns PSM to use or zero if error. Typically, the PSM returned +** is the same as was passed in, but for an outgoing-only +** connection to a dynamic PSM, a "virtual" PSM is returned +** and should be used in the calls to L2CA_ConnectReq() and +** BTM_SetSecurityLevel(). +** +*******************************************************************************/ +extern UINT16 L2CA_Register (UINT16 psm, tL2CAP_APPL_INFO *p_cb_info); + +/******************************************************************************* +** +** Function L2CA_Deregister +** +** Description Other layers call this function to deregister for L2CAP +** services. +** +** Returns void +** +*******************************************************************************/ +extern void L2CA_Deregister (UINT16 psm); + +/******************************************************************************* +** +** Function L2CA_AllocatePSM +** +** Description Other layers call this function to find an unused PSM for L2CAP +** services. +** +** Returns PSM to use. +** +*******************************************************************************/ +extern UINT16 L2CA_AllocatePSM(void); + +/******************************************************************************* +** +** Function L2CA_ConnectReq +** +** Description Higher layers call this function to create an L2CAP connection. +** Note that the connection is not established at this time, but +** connection establishment gets started. The callback function +** will be invoked when connection establishes or fails. +** +** Returns the CID of the connection, or 0 if it failed to start +** +*******************************************************************************/ +extern UINT16 L2CA_ConnectReq (UINT16 psm, BD_ADDR p_bd_addr); + +/******************************************************************************* +** +** Function L2CA_ConnectRsp +** +** Description Higher layers call this function to accept an incoming +** L2CAP connection, for which they had gotten an connect +** indication callback. +** +** Returns TRUE for success, FALSE for failure +** +*******************************************************************************/ +extern BOOLEAN L2CA_ConnectRsp (BD_ADDR p_bd_addr, UINT8 id, UINT16 lcid, + UINT16 result, UINT16 status); + +/******************************************************************************* +** +** Function L2CA_ErtmConnectReq +** +** Description Higher layers call this function to create an L2CAP connection +** that needs to use Enhanced Retransmission Mode. +** Note that the connection is not established at this time, but +** connection establishment gets started. The callback function +** will be invoked when connection establishes or fails. +** +** Returns the CID of the connection, or 0 if it failed to start +** +*******************************************************************************/ +extern UINT16 L2CA_ErtmConnectReq (UINT16 psm, BD_ADDR p_bd_addr, + tL2CAP_ERTM_INFO *p_ertm_info); + +// This function sets the callback routines for the L2CAP connection referred to by +// |local_cid|. The callback routines can only be modified for outgoing connections +// established by |L2CA_ConnectReq| or accepted incoming connections. |callbacks| +// must not be NULL. This function returns true if the callbacks could be updated, +// false if not (e.g. |local_cid| was not found). +bool L2CA_SetConnectionCallbacks(uint16_t local_cid, const tL2CAP_APPL_INFO *callbacks); + +/******************************************************************************* +** +** Function L2CA_ErtmConnectRsp +** +** Description Higher layers call this function to accept an incoming +** L2CAP connection, for which they had gotten an connect +** indication callback, and for which the higher layer wants +** to use Enhanced Retransmission Mode. +** +** Returns TRUE for success, FALSE for failure +** +*******************************************************************************/ +extern BOOLEAN L2CA_ErtmConnectRsp (BD_ADDR p_bd_addr, UINT8 id, UINT16 lcid, + UINT16 result, UINT16 status, + tL2CAP_ERTM_INFO *p_ertm_info); + +/******************************************************************************* +** +** Function L2CA_ConfigReq +** +** Description Higher layers call this function to send configuration. +** +** Returns TRUE if configuration sent, else FALSE +** +*******************************************************************************/ +extern BOOLEAN L2CA_ConfigReq (UINT16 cid, tL2CAP_CFG_INFO *p_cfg); + +/******************************************************************************* +** +** Function L2CA_ConfigRsp +** +** Description Higher layers call this function to send a configuration +** response. +** +** Returns TRUE if configuration response sent, else FALSE +** +*******************************************************************************/ +extern BOOLEAN L2CA_ConfigRsp (UINT16 cid, tL2CAP_CFG_INFO *p_cfg); + +/******************************************************************************* +** +** Function L2CA_DisconnectReq +** +** Description Higher layers call this function to disconnect a channel. +** +** Returns TRUE if disconnect sent, else FALSE +** +*******************************************************************************/ +extern BOOLEAN L2CA_DisconnectReq (UINT16 cid); + +/******************************************************************************* +** +** Function L2CA_DisconnectRsp +** +** Description Higher layers call this function to acknowledge the +** disconnection of a channel. +** +** Returns void +** +*******************************************************************************/ +extern BOOLEAN L2CA_DisconnectRsp (UINT16 cid); + +/******************************************************************************* +** +** Function L2CA_DataWrite +** +** Description Higher layers call this function to write data. +** +** Returns L2CAP_DW_SUCCESS, if data accepted, else FALSE +** L2CAP_DW_CONGESTED, if data accepted and the channel is congested +** L2CAP_DW_FAILED, if error +** +*******************************************************************************/ +extern UINT8 L2CA_DataWrite (UINT16 cid, BT_HDR *p_data); + +/******************************************************************************* +** +** Function L2CA_Ping +** +** Description Higher layers call this function to send an echo request. +** +** Returns TRUE if echo request sent, else FALSE. +** +*******************************************************************************/ +extern BOOLEAN L2CA_Ping (BD_ADDR p_bd_addr, tL2CA_ECHO_RSP_CB *p_cb); + +/******************************************************************************* +** +** Function L2CA_Echo +** +** Description Higher layers call this function to send an echo request +** with application-specific data. +** +** Returns TRUE if echo request sent, else FALSE. +** +*******************************************************************************/ +extern BOOLEAN L2CA_Echo (BD_ADDR p_bd_addr, BT_HDR *p_data, tL2CA_ECHO_DATA_CB *p_callback); + +// Given a local channel identifier, |lcid|, this function returns the bound remote +// channel identifier, |rcid|, and the ACL link handle, |handle|. If |lcid| is not +// known or is invalid, this function returns false and does not modify the values +// pointed at by |rcid| and |handle|. |rcid| and |handle| may be NULL. +bool L2CA_GetIdentifiers(uint16_t lcid, uint16_t *rcid, uint16_t *handle); + +/******************************************************************************* +** +** Function L2CA_SetIdleTimeout +** +** Description Higher layers call this function to set the idle timeout for +** a connection, or for all future connections. The "idle timeout" +** is the amount of time that a connection can remain up with +** no L2CAP channels on it. A timeout of zero means that the +** connection will be torn down immediately when the last channel +** is removed. A timeout of 0xFFFF means no timeout. Values are +** in seconds. +** +** Returns TRUE if command succeeded, FALSE if failed +** +*******************************************************************************/ +extern BOOLEAN L2CA_SetIdleTimeout (UINT16 cid, UINT16 timeout, + BOOLEAN is_global); + +/******************************************************************************* +** +** Function L2CA_SetIdleTimeoutByBdAddr +** +** Description Higher layers call this function to set the idle timeout for +** a connection. The "idle timeout" is the amount of time that +** a connection can remain up with no L2CAP channels on it. +** A timeout of zero means that the connection will be torn +** down immediately when the last channel is removed. +** A timeout of 0xFFFF means no timeout. Values are in seconds. +** A bd_addr is the remote BD address. If bd_addr = BT_BD_ANY, +** then the idle timeouts for all active l2cap links will be +** changed. +** +** Returns TRUE if command succeeded, FALSE if failed +** +** NOTE This timeout applies to all logical channels active on the +** ACL link. +*******************************************************************************/ +extern BOOLEAN L2CA_SetIdleTimeoutByBdAddr(BD_ADDR bd_addr, UINT16 timeout, + tBT_TRANSPORT transport); + +/******************************************************************************* +** +** Function L2CA_SetTraceLevel +** +** Description This function sets the trace level for L2CAP. If called with +** a value of 0xFF, it simply reads the current trace level. +** +** Returns the new (current) trace level +** +*******************************************************************************/ +extern UINT8 L2CA_SetTraceLevel (UINT8 trace_level); + +/******************************************************************************* +** +** Function L2CA_SetDesireRole +** +** Description This function sets the desire role for L2CAP. +** If the new role is L2CAP_ROLE_ALLOW_SWITCH, allow switch on +** HciCreateConnection. +** If the new role is L2CAP_ROLE_DISALLOW_SWITCH, do not allow switch on +** HciCreateConnection. +** +** If the new role is a valid role (HCI_ROLE_MASTER or HCI_ROLE_SLAVE), +** the desire role is set to the new value. Otherwise, it is not changed. +** +** Returns the new (current) role +** +*******************************************************************************/ +extern UINT8 L2CA_SetDesireRole (UINT8 new_role); + +/******************************************************************************* +** +** Function L2CA_LocalLoopbackReq +** +** Description This function sets up a CID for local loopback +** +** Returns CID of 0 if none. +** +*******************************************************************************/ +extern UINT16 L2CA_LocalLoopbackReq (UINT16 psm, UINT16 handle, BD_ADDR p_bd_addr); + +/******************************************************************************* +** +** Function L2CA_FlushChannel +** +** Description This function flushes none, some or all buffers queued up +** for xmission for a particular CID. If called with +** L2CAP_FLUSH_CHANS_GET (0), it simply returns the number +** of buffers queued for that CID L2CAP_FLUSH_CHANS_ALL (0xffff) +** flushes all buffers. All other values specifies the maximum +** buffers to flush. +** +** Returns Number of buffers left queued for that CID +** +*******************************************************************************/ +extern UINT16 L2CA_FlushChannel (UINT16 lcid, UINT16 num_to_flush); + + +/******************************************************************************* +** +** Function L2CA_SetAclPriority +** +** Description Sets the transmission priority for an ACL channel. +** (For initial implementation only two values are valid. +** L2CAP_PRIORITY_NORMAL and L2CAP_PRIORITY_HIGH). +** +** Returns TRUE if a valid channel, else FALSE +** +*******************************************************************************/ +extern BOOLEAN L2CA_SetAclPriority (BD_ADDR bd_addr, UINT8 priority); + +/******************************************************************************* +** +** Function L2CA_FlowControl +** +** Description Higher layers call this function to flow control a channel. +** +** data_enabled - TRUE data flows, FALSE data is stopped +** +** Returns TRUE if valid channel, else FALSE +** +*******************************************************************************/ +extern BOOLEAN L2CA_FlowControl (UINT16 cid, BOOLEAN data_enabled); + +/******************************************************************************* +** +** Function L2CA_SendTestSFrame +** +** Description Higher layers call this function to send a test S-frame. +** +** Returns TRUE if valid Channel, else FALSE +** +*******************************************************************************/ +extern BOOLEAN L2CA_SendTestSFrame (UINT16 cid, UINT8 sup_type, + UINT8 back_track); + +/******************************************************************************* +** +** Function L2CA_SetTxPriority +** +** Description Sets the transmission priority for a channel. (FCR Mode) +** +** Returns TRUE if a valid channel, else FALSE +** +*******************************************************************************/ +extern BOOLEAN L2CA_SetTxPriority (UINT16 cid, tL2CAP_CHNL_PRIORITY priority); + +/******************************************************************************* +** +** Function L2CA_RegForNoCPEvt +** +** Description Register callback for Number of Completed Packets event. +** +** Input Param p_cb - callback for Number of completed packets event +** p_bda - BT address of remote device +** +** Returns +** +*******************************************************************************/ +extern BOOLEAN L2CA_RegForNoCPEvt(tL2CA_NOCP_CB *p_cb, BD_ADDR p_bda); + +/******************************************************************************* +** +** Function L2CA_SetChnlDataRate +** +** Description Sets the tx/rx data rate for a channel. +** +** Returns TRUE if a valid channel, else FALSE +** +*******************************************************************************/ +extern BOOLEAN L2CA_SetChnlDataRate (UINT16 cid, tL2CAP_CHNL_DATA_RATE tx, tL2CAP_CHNL_DATA_RATE rx); + +typedef void (tL2CA_RESERVE_CMPL_CBACK) (void); + +/******************************************************************************* +** +** Function L2CA_SetFlushTimeout +** +** Description This function set the automatic flush time out in Baseband +** for ACL-U packets. +** BdAddr : the remote BD address of ACL link. If it is BT_DB_ANY +** then the flush time out will be applied to all ACL link. +** FlushTimeout: flush time out in ms +** 0x0000 : No automatic flush +** L2CAP_NO_RETRANSMISSION : No retransmission +** 0x0002 - 0xFFFE : flush time out, if (flush_tout*8)+3/5) +** <= HCI_MAX_AUTO_FLUSH_TOUT (in 625us slot). +** Otherwise, return FALSE. +** L2CAP_NO_AUTOMATIC_FLUSH : No automatic flush +** +** Returns TRUE if command succeeded, FALSE if failed +** +** NOTE This flush timeout applies to all logical channels active on the +** ACL link. +*******************************************************************************/ +extern BOOLEAN L2CA_SetFlushTimeout (BD_ADDR bd_addr, UINT16 flush_tout); + +/******************************************************************************* +** +** Function L2CA_DataWriteEx +** +** Description Higher layers call this function to write data with extended +** flags. +** flags : L2CAP_FLUSHABLE_CH_BASED +** L2CAP_FLUSHABLE_PKT +** L2CAP_NON_FLUSHABLE_PKT +** +** Returns L2CAP_DW_SUCCESS, if data accepted, else FALSE +** L2CAP_DW_CONGESTED, if data accepted and the channel is congested +** L2CAP_DW_FAILED, if error +** +*******************************************************************************/ +extern UINT8 L2CA_DataWriteEx (UINT16 cid, BT_HDR *p_data, UINT16 flags); + +/******************************************************************************* +** +** Function L2CA_SetChnlFlushability +** +** Description Higher layers call this function to set a channels +** flushability flags +** +** Returns TRUE if CID found, else FALSE +** +*******************************************************************************/ +extern BOOLEAN L2CA_SetChnlFlushability (UINT16 cid, BOOLEAN is_flushable); + +/******************************************************************************* +** +** Function L2CA_GetPeerFeatures +** +** Description Get a peers features and fixed channel map +** +** Parameters: BD address of the peer +** Pointers to features and channel mask storage area +** +** Return value: TRUE if peer is connected +** +*******************************************************************************/ +extern BOOLEAN L2CA_GetPeerFeatures (BD_ADDR bd_addr, UINT32 *p_ext_feat, UINT8 *p_chnl_mask); + +/******************************************************************************* +** +** Function L2CA_GetBDAddrbyHandle +** +** Description Get BD address for the given HCI handle +** +** Parameters: HCI handle +** BD address of the peer +** +** Return value: TRUE if found lcb for the given handle, FALSE otherwise +** +*******************************************************************************/ +extern BOOLEAN L2CA_GetBDAddrbyHandle (UINT16 handle, BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function L2CA_GetChnlFcrMode +** +** Description Get the channel FCR mode +** +** Parameters: Local CID +** +** Return value: Channel mode +** +*******************************************************************************/ +extern UINT8 L2CA_GetChnlFcrMode (UINT16 lcid); + + +/******************************************************************************* +** +** UCD callback prototypes +** +*******************************************************************************/ + +/* UCD discovery. Parameters are +** BD Address of remote +** Data Type +** Data +*/ +#define L2CAP_UCD_INFO_TYPE_RECEPTION 0x01 +#define L2CAP_UCD_INFO_TYPE_MTU 0x02 + +typedef void (tL2CA_UCD_DISCOVER_CB) (BD_ADDR, UINT8, UINT32); + +/* UCD data received. Parameters are +** BD Address of remote +** Pointer to buffer with data +*/ +typedef void (tL2CA_UCD_DATA_CB) (BD_ADDR, BT_HDR *); + +/* Congestion status callback protype. This callback is optional. If +** an application tries to send data when the transmit queue is full, +** the data will anyways be dropped. The parameter is: +** remote BD_ADDR +** TRUE if congested, FALSE if uncongested +*/ +typedef void (tL2CA_UCD_CONGESTION_STATUS_CB) (BD_ADDR, BOOLEAN); + +/* UCD registration info (the callback addresses and PSM) +*/ +typedef struct { + tL2CA_UCD_DISCOVER_CB *pL2CA_UCD_Discover_Cb; + tL2CA_UCD_DATA_CB *pL2CA_UCD_Data_Cb; + tL2CA_UCD_CONGESTION_STATUS_CB *pL2CA_UCD_Congestion_Status_Cb; +} tL2CAP_UCD_CB_INFO; + +/******************************************************************************* +** +** Function L2CA_UcdRegister +** +** Description Register PSM on UCD. +** +** Parameters: tL2CAP_UCD_CB_INFO +** +** Return value: TRUE if successs +** +*******************************************************************************/ +extern BOOLEAN L2CA_UcdRegister ( UINT16 psm, tL2CAP_UCD_CB_INFO *p_cb_info ); + +/******************************************************************************* +** +** Function L2CA_UcdDeregister +** +** Description Deregister PSM on UCD. +** +** Parameters: PSM +** +** Return value: TRUE if successs +** +*******************************************************************************/ +extern BOOLEAN L2CA_UcdDeregister ( UINT16 psm ); + +/******************************************************************************* +** +** Function L2CA_UcdDiscover +** +** Description Discover UCD of remote device. +** +** Parameters: PSM +** BD_ADDR of remote device +** info_type : L2CAP_UCD_INFO_TYPE_RECEPTION +** L2CAP_UCD_INFO_TYPE_MTU +** +** +** Return value: TRUE if successs +** +*******************************************************************************/ +extern BOOLEAN L2CA_UcdDiscover ( UINT16 psm, BD_ADDR rem_bda, UINT8 info_type ); + +/******************************************************************************* +** +** Function L2CA_UcdDataWrite +** +** Description Send UCD to remote device +** +** Parameters: PSM +** BD Address of remote +** Pointer to buffer of type BT_HDR +** flags : L2CAP_FLUSHABLE_CH_BASED +** L2CAP_FLUSHABLE_PKT +** L2CAP_NON_FLUSHABLE_PKT +** +** Return value L2CAP_DW_SUCCESS, if data accepted +** L2CAP_DW_FAILED, if error +** +*******************************************************************************/ +extern UINT16 L2CA_UcdDataWrite (UINT16 psm, BD_ADDR rem_bda, BT_HDR *p_buf, UINT16 flags); + +/******************************************************************************* +** +** Function L2CA_UcdSetIdleTimeout +** +** Description Set UCD Idle timeout. +** +** Parameters: BD Addr +** Timeout in second +** +** Return value: TRUE if successs +** +*******************************************************************************/ +extern BOOLEAN L2CA_UcdSetIdleTimeout ( BD_ADDR rem_bda, UINT16 timeout ); + +/******************************************************************************* +** +** Function L2CA_UCDSetTxPriority +** +** Description Sets the transmission priority for a connectionless channel. +** +** Returns TRUE if a valid channel, else FALSE +** +*******************************************************************************/ +extern BOOLEAN L2CA_UCDSetTxPriority ( BD_ADDR rem_bda, tL2CAP_CHNL_PRIORITY priority ); + + +/******************************************************************************* +** +** Fixed Channel callback prototypes +** +*******************************************************************************/ + +/* Fixed channel connected and disconnected. Parameters are +** channel +** BD Address of remote +** TRUE if channel is connected, FALSE if disconnected +** Reason for connection failure +** transport : physical transport, BR/EDR or LE +*/ +typedef void (tL2CA_FIXED_CHNL_CB) (UINT16, BD_ADDR, BOOLEAN, UINT16, tBT_TRANSPORT); + +/* Signalling data received. Parameters are +** channel +** BD Address of remote +** Pointer to buffer with data +*/ +typedef void (tL2CA_FIXED_DATA_CB) (UINT16, BD_ADDR, BT_HDR *); + +/* Congestion status callback protype. This callback is optional. If +** an application tries to send data when the transmit queue is full, +** the data will anyways be dropped. The parameter is: +** remote BD_ADDR +** TRUE if congested, FALSE if uncongested +*/ +typedef void (tL2CA_FIXED_CONGESTION_STATUS_CB) (BD_ADDR, BOOLEAN); + +/* Fixed channel registration info (the callback addresses and channel config) +*/ +typedef struct { + tL2CA_FIXED_CHNL_CB *pL2CA_FixedConn_Cb; + tL2CA_FIXED_DATA_CB *pL2CA_FixedData_Cb; + tL2CA_FIXED_CONGESTION_STATUS_CB *pL2CA_FixedCong_Cb; + tL2CAP_FCR_OPTS fixed_chnl_opts; + + UINT16 default_idle_tout; + tL2CA_TX_COMPLETE_CB *pL2CA_FixedTxComplete_Cb; /* fixed channel tx complete callback */ +} tL2CAP_FIXED_CHNL_REG; + + +#if (L2CAP_NUM_FIXED_CHNLS > 0) +/******************************************************************************* +** +** Function L2CA_RegisterFixedChannel +** +** Description Register a fixed channel. +** +** Parameters: Fixed Channel # +** Channel Callbacks and config +** +** Return value: TRUE if registered OK +** +*******************************************************************************/ +extern BOOLEAN L2CA_RegisterFixedChannel (UINT16 fixed_cid, tL2CAP_FIXED_CHNL_REG *p_freg); + +/******************************************************************************* +** +** Function L2CA_ConnectFixedChnl +** +** Description Connect an fixed signalling channel to a remote device. +** +** Parameters: Fixed CID +** BD Address of remote +** +** Return value: TRUE if connection started +** +*******************************************************************************/ +extern BOOLEAN L2CA_ConnectFixedChnl (UINT16 fixed_cid, BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function L2CA_SendFixedChnlData +** +** Description Write data on a fixed signalling channel. +** +** Parameters: Fixed CID +** BD Address of remote +** Pointer to buffer of type BT_HDR +** +** Return value L2CAP_DW_SUCCESS, if data accepted +** L2CAP_DW_FAILED, if error +** +*******************************************************************************/ +extern UINT16 L2CA_SendFixedChnlData (UINT16 fixed_cid, BD_ADDR rem_bda, BT_HDR *p_buf); + +/******************************************************************************* +** +** Function L2CA_RemoveFixedChnl +** +** Description Remove a fixed channel to a remote device. +** +** Parameters: Fixed CID +** BD Address of remote +** Idle timeout to use (or 0xFFFF if don't care) +** +** Return value: TRUE if channel removed +** +*******************************************************************************/ +extern BOOLEAN L2CA_RemoveFixedChnl (UINT16 fixed_cid, BD_ADDR rem_bda); + +/******************************************************************************* +** +** Function L2CA_SetFixedChannelTout +** +** Description Higher layers call this function to set the idle timeout for +** a fixed channel. The "idle timeout" is the amount of time that +** a connection can remain up with no L2CAP channels on it. +** A timeout of zero means that the connection will be torn +** down immediately when the last channel is removed. +** A timeout of 0xFFFF means no timeout. Values are in seconds. +** A bd_addr is the remote BD address. If bd_addr = BT_BD_ANY, +** then the idle timeouts for all active l2cap links will be +** changed. +** +** Returns TRUE if command succeeded, FALSE if failed +** +*******************************************************************************/ +extern BOOLEAN L2CA_SetFixedChannelTout (BD_ADDR rem_bda, UINT16 fixed_cid, UINT16 idle_tout); + +#endif /* (L2CAP_NUM_FIXED_CHNLS > 0) */ + +/******************************************************************************* +** +** Function L2CA_GetCurrentConfig +** +** Description This function returns configurations of L2CAP channel +** pp_our_cfg : pointer of our saved configuration options +** p_our_cfg_bits : valid config in bitmap +** pp_peer_cfg: pointer of peer's saved configuration options +** p_peer_cfg_bits : valid config in bitmap +** +** Returns TRUE if successful +** +*******************************************************************************/ +extern BOOLEAN L2CA_GetCurrentConfig (UINT16 lcid, + tL2CAP_CFG_INFO **pp_our_cfg, tL2CAP_CH_CFG_BITS *p_our_cfg_bits, + tL2CAP_CFG_INFO **pp_peer_cfg, tL2CAP_CH_CFG_BITS *p_peer_cfg_bits); + +#if (BLE_INCLUDED == TRUE) +/******************************************************************************* +** +** Function L2CA_CancelBleConnectReq +** +** Description Cancel a pending connection attempt to a BLE device. +** +** Parameters: BD Address of remote +** +** Return value: TRUE if connection was cancelled +** +*******************************************************************************/ +extern BOOLEAN L2CA_CancelBleConnectReq (BD_ADDR rem_bda); + +/******************************************************************************* +** +** Function L2CA_UpdateBleConnParams +** +** Description Update BLE connection parameters. +** +** Parameters: BD Address of remote +** +** Return value: TRUE if update started +** +*******************************************************************************/ +extern BOOLEAN L2CA_UpdateBleConnParams (BD_ADDR rem_bdRa, UINT16 min_int, + UINT16 max_int, UINT16 latency, UINT16 timeout); + +/******************************************************************************* +** +** Function L2CA_EnableUpdateBleConnParams +** +** Description Update BLE connection parameters. +** +** Parameters: BD Address of remote +** enable flag +** +** Return value: TRUE if update started +** +*******************************************************************************/ +extern BOOLEAN L2CA_EnableUpdateBleConnParams (BD_ADDR rem_bda, BOOLEAN enable); + +/******************************************************************************* +** +** Function L2CA_GetBleConnRole +** +** Description This function returns the connection role. +** +** Returns link role. +** +*******************************************************************************/ +extern UINT8 L2CA_GetBleConnRole (BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function L2CA_GetDisconnectReason +** +** Description This function returns the disconnect reason code. +** +** Parameters: BD Address of remote +** Physical transport for the L2CAP connection (BR/EDR or LE) +** +** Returns disconnect reason +** +*******************************************************************************/ +extern UINT16 L2CA_GetDisconnectReason (BD_ADDR remote_bda, tBT_TRANSPORT transport); + +#endif /* (BLE_INCLUDED == TRUE) */ + +#ifdef __cplusplus +} +#endif + +#endif /* L2C_API_H */ diff --git a/tools/sdk/include/bluedroid/l2c_int.h b/tools/sdk/include/bluedroid/l2c_int.h new file mode 100644 index 00000000..56fdd0c9 --- /dev/null +++ b/tools/sdk/include/bluedroid/l2c_int.h @@ -0,0 +1,751 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This file contains L2CAP internal definitions + * + ******************************************************************************/ +#ifndef L2C_INT_H +#define L2C_INT_H + +#include + +#include "btm_api.h" +#include "gki.h" +#include "l2c_api.h" +#include "l2cdefs.h" +#include "list.h" + +#define L2CAP_MIN_MTU 48 /* Minimum acceptable MTU is 48 bytes */ + +/* Timeouts. Since L2CAP works off a 1-second list, all are in seconds. +*/ +#define L2CAP_LINK_ROLE_SWITCH_TOUT 10 /* 10 seconds */ +#define L2CAP_LINK_CONNECT_TOUT 60 /* 30 seconds */ +#define L2CAP_LINK_CONNECT_TOUT_EXT 120 /* 120 seconds */ +#define L2CAP_ECHO_RSP_TOUT 30 /* 30 seconds */ +#define L2CAP_LINK_FLOW_CONTROL_TOUT 2 /* 2 seconds */ +#define L2CAP_LINK_DISCONNECT_TOUT 30 /* 30 seconds */ + +#ifndef L2CAP_CHNL_CONNECT_TOUT /* BTIF needs to override for internal project needs */ +#define L2CAP_CHNL_CONNECT_TOUT 60 /* 60 seconds */ +#endif + +#define L2CAP_CHNL_CONNECT_TOUT_EXT 120 /* 120 seconds */ +#define L2CAP_CHNL_CFG_TIMEOUT 30 /* 30 seconds */ +#define L2CAP_CHNL_DISCONNECT_TOUT 10 /* 10 seconds */ +#define L2CAP_DELAY_CHECK_SM4 2 /* 2 seconds */ +#define L2CAP_WAIT_INFO_RSP_TOUT 3 /* 3 seconds */ +#define L2CAP_WAIT_UNPARK_TOUT 2 /* 2 seconds */ +#define L2CAP_LINK_INFO_RESP_TOUT 2 /* 2 seconds */ +#define L2CAP_BLE_LINK_CONNECT_TOUT 30 /* 30 seconds */ +#define L2CAP_BLE_CONN_PARAM_UPD_TOUT 30 /* 30 seconds */ + +/* quick timer uses millisecond unit */ +#define L2CAP_DEFAULT_RETRANS_TOUT 2000 /* 2000 milliseconds */ +#define L2CAP_DEFAULT_MONITOR_TOUT 12000 /* 12000 milliseconds */ +#define L2CAP_FCR_ACK_TOUT 200 /* 200 milliseconds */ + +/* Define the possible L2CAP channel states. The names of +** the states may seem a bit strange, but they are taken from +** the Bluetooth specification. +*/ +typedef enum { + CST_CLOSED, /* Channel is in clodes state */ + CST_ORIG_W4_SEC_COMP, /* Originator waits security clearence */ + CST_TERM_W4_SEC_COMP, /* Acceptor waits security clearence */ + CST_W4_L2CAP_CONNECT_RSP, /* Waiting for peer conenct response */ + CST_W4_L2CA_CONNECT_RSP, /* Waiting for upper layer connect rsp */ + CST_CONFIG, /* Negotiating configuration */ + CST_OPEN, /* Data transfer state */ + CST_W4_L2CAP_DISCONNECT_RSP, /* Waiting for peer disconnect rsp */ + CST_W4_L2CA_DISCONNECT_RSP /* Waiting for upper layer disc rsp */ +} tL2C_CHNL_STATE; + +/* Define the possible L2CAP link states +*/ +typedef enum { + LST_DISCONNECTED, + LST_CONNECT_HOLDING, + LST_CONNECTING_WAIT_SWITCH, + LST_CONNECTING, + LST_CONNECTED, + LST_DISCONNECTING +} tL2C_LINK_STATE; + + + +/* Define input events to the L2CAP link and channel state machines. The names +** of the events may seem a bit strange, but they are taken from +** the Bluetooth specification. +*/ +#define L2CEVT_LP_CONNECT_CFM 0 /* Lower layer connect confirm */ +#define L2CEVT_LP_CONNECT_CFM_NEG 1 /* Lower layer connect confirm (failed) */ +#define L2CEVT_LP_CONNECT_IND 2 /* Lower layer connect indication */ +#define L2CEVT_LP_DISCONNECT_IND 3 /* Lower layer disconnect indication */ +#define L2CEVT_LP_QOS_CFM 4 /* Lower layer QOS confirmation */ +#define L2CEVT_LP_QOS_CFM_NEG 5 /* Lower layer QOS confirmation (failed)*/ +#define L2CEVT_LP_QOS_VIOLATION_IND 6 /* Lower layer QOS violation indication */ + +#define L2CEVT_SEC_COMP 7 /* Security cleared successfully */ +#define L2CEVT_SEC_COMP_NEG 8 /* Security procedure failed */ + +#define L2CEVT_L2CAP_CONNECT_REQ 10 /* Peer connection request */ +#define L2CEVT_L2CAP_CONNECT_RSP 11 /* Peer connection response */ +#define L2CEVT_L2CAP_CONNECT_RSP_PND 12 /* Peer connection response pending */ +#define L2CEVT_L2CAP_CONNECT_RSP_NEG 13 /* Peer connection response (failed) */ +#define L2CEVT_L2CAP_CONFIG_REQ 14 /* Peer configuration request */ +#define L2CEVT_L2CAP_CONFIG_RSP 15 /* Peer configuration response */ +#define L2CEVT_L2CAP_CONFIG_RSP_NEG 16 /* Peer configuration response (failed) */ +#define L2CEVT_L2CAP_DISCONNECT_REQ 17 /* Peer disconnect request */ +#define L2CEVT_L2CAP_DISCONNECT_RSP 18 /* Peer disconnect response */ +#define L2CEVT_L2CAP_INFO_RSP 19 /* Peer information response */ +#define L2CEVT_L2CAP_DATA 20 /* Peer data */ + +#define L2CEVT_L2CA_CONNECT_REQ 21 /* Upper layer connect request */ +#define L2CEVT_L2CA_CONNECT_RSP 22 /* Upper layer connect response */ +#define L2CEVT_L2CA_CONNECT_RSP_NEG 23 /* Upper layer connect response (failed)*/ +#define L2CEVT_L2CA_CONFIG_REQ 24 /* Upper layer config request */ +#define L2CEVT_L2CA_CONFIG_RSP 25 /* Upper layer config response */ +#define L2CEVT_L2CA_CONFIG_RSP_NEG 26 /* Upper layer config response (failed) */ +#define L2CEVT_L2CA_DISCONNECT_REQ 27 /* Upper layer disconnect request */ +#define L2CEVT_L2CA_DISCONNECT_RSP 28 /* Upper layer disconnect response */ +#define L2CEVT_L2CA_DATA_READ 29 /* Upper layer data read */ +#define L2CEVT_L2CA_DATA_WRITE 30 /* Upper layer data write */ +#define L2CEVT_L2CA_FLUSH_REQ 31 /* Upper layer flush */ + +#define L2CEVT_TIMEOUT 32 /* Timeout */ +#define L2CEVT_SEC_RE_SEND_CMD 33 /* btm_sec has enough info to proceed */ + +#define L2CEVT_ACK_TIMEOUT 34 /* RR delay timeout */ + + +/* Bitmask to skip over Broadcom feature reserved (ID) to avoid sending two + successive ID values, '0' id only or both */ +#define L2CAP_ADJ_BRCM_ID 0x1 +#define L2CAP_ADJ_ZERO_ID 0x2 +#define L2CAP_ADJ_ID 0x3 + +/* Return values for l2cu_process_peer_cfg_req() */ +#define L2CAP_PEER_CFG_UNACCEPTABLE 0 +#define L2CAP_PEER_CFG_OK 1 +#define L2CAP_PEER_CFG_DISCONNECT 2 + +/* eL2CAP option constants */ +#define L2CAP_MIN_RETRANS_TOUT 2000 /* Min retransmission timeout if no flush timeout or PBF */ +#define L2CAP_MIN_MONITOR_TOUT 12000 /* Min monitor timeout if no flush timeout or PBF */ + +#define L2CAP_MAX_FCR_CFG_TRIES 2 /* Config attempts before disconnecting */ + +typedef uint8_t tL2C_BLE_FIXED_CHNLS_MASK; + +typedef struct { + UINT8 next_tx_seq; /* Next sequence number to be Tx'ed */ + UINT8 last_rx_ack; /* Last sequence number ack'ed by the peer */ + UINT8 next_seq_expected; /* Next peer sequence number expected */ + UINT8 last_ack_sent; /* Last peer sequence number ack'ed */ + UINT8 num_tries; /* Number of retries to send a packet */ + UINT8 max_held_acks; /* Max acks we can hold before sending */ + + BOOLEAN remote_busy; /* TRUE if peer has flowed us off */ + BOOLEAN local_busy; /* TRUE if we have flowed off the peer */ + + BOOLEAN rej_sent; /* Reject was sent */ + BOOLEAN srej_sent; /* Selective Reject was sent */ + BOOLEAN wait_ack; /* Transmitter is waiting ack (poll sent) */ + BOOLEAN rej_after_srej; /* Send a REJ when SREJ clears */ + + BOOLEAN send_f_rsp; /* We need to send an F-bit response */ + + UINT16 rx_sdu_len; /* Length of the SDU being received */ + BT_HDR *p_rx_sdu; /* Buffer holding the SDU being received */ + BUFFER_Q waiting_for_ack_q; /* Buffers sent and waiting for peer to ack */ + BUFFER_Q srej_rcv_hold_q; /* Buffers rcvd but held pending SREJ rsp */ + BUFFER_Q retrans_q; /* Buffers being retransmitted */ + + TIMER_LIST_ENT ack_timer; /* Timer delaying RR */ + TIMER_LIST_ENT mon_retrans_timer; /* Timer Monitor or Retransmission */ + +#if (L2CAP_ERTM_STATS == TRUE) + UINT32 connect_tick_count; /* Time channel was established */ + UINT32 ertm_pkt_counts[2]; /* Packets sent and received */ + UINT32 ertm_byte_counts[2]; /* Bytes sent and received */ + UINT32 s_frames_sent[4]; /* S-frames sent (RR, REJ, RNR, SREJ) */ + UINT32 s_frames_rcvd[4]; /* S-frames rcvd (RR, REJ, RNR, SREJ) */ + UINT32 xmit_window_closed; /* # of times the xmit window was closed */ + UINT32 controller_idle; /* # of times less than 2 packets in controller */ + /* when the xmit window was closed */ + UINT32 pkts_retransmitted; /* # of packets that were retransmitted */ + UINT32 retrans_touts; /* # of retransmission timouts */ + UINT32 xmit_ack_touts; /* # of xmit ack timouts */ + +#define L2CAP_ERTM_STATS_NUM_AVG 10 +#define L2CAP_ERTM_STATS_AVG_NUM_SAMPLES 100 + UINT32 ack_delay_avg_count; + UINT32 ack_delay_avg_index; + UINT32 throughput_start; + UINT32 throughput[L2CAP_ERTM_STATS_NUM_AVG]; + UINT32 ack_delay_avg[L2CAP_ERTM_STATS_NUM_AVG]; + UINT32 ack_delay_min[L2CAP_ERTM_STATS_NUM_AVG]; + UINT32 ack_delay_max[L2CAP_ERTM_STATS_NUM_AVG]; + UINT32 ack_q_count_avg[L2CAP_ERTM_STATS_NUM_AVG]; + UINT32 ack_q_count_min[L2CAP_ERTM_STATS_NUM_AVG]; + UINT32 ack_q_count_max[L2CAP_ERTM_STATS_NUM_AVG]; +#endif +} tL2C_FCRB; + + +/* Define a registration control block. Every application (e.g. RFCOMM, SDP, +** TCS etc) that registers with L2CAP is assigned one of these. +*/ +#if (L2CAP_UCD_INCLUDED == TRUE) +#define L2C_UCD_RCB_ID 0x00 +#define L2C_UCD_STATE_UNUSED 0x00 +#define L2C_UCD_STATE_W4_DATA 0x01 +#define L2C_UCD_STATE_W4_RECEPTION 0x02 +#define L2C_UCD_STATE_W4_MTU 0x04 + +typedef struct { + UINT8 state; + tL2CAP_UCD_CB_INFO cb_info; +} tL2C_UCD_REG; +#endif + +typedef struct { + BOOLEAN in_use; + UINT16 psm; + UINT16 real_psm; /* This may be a dummy RCB for an o/b connection but */ + /* this is the real PSM that we need to connect to */ +#if (L2CAP_UCD_INCLUDED == TRUE) + tL2C_UCD_REG ucd; +#endif + + tL2CAP_APPL_INFO api; +} tL2C_RCB; + + +/* Define a channel control block (CCB). There may be many channel control blocks +** between the same two Bluetooth devices (i.e. on the same link). +** Each CCB has unique local and remote CIDs. All channel control blocks on +** the same physical link and are chained together. +*/ +typedef struct t_l2c_ccb { + BOOLEAN in_use; /* TRUE when in use, FALSE when not */ + tL2C_CHNL_STATE chnl_state; /* Channel state */ + + struct t_l2c_ccb *p_next_ccb; /* Next CCB in the chain */ + struct t_l2c_ccb *p_prev_ccb; /* Previous CCB in the chain */ + struct t_l2c_linkcb *p_lcb; /* Link this CCB is assigned to */ + + UINT16 local_cid; /* Local CID */ + UINT16 remote_cid; /* Remote CID */ + + TIMER_LIST_ENT timer_entry; /* CCB Timer List Entry */ + + tL2C_RCB *p_rcb; /* Registration CB for this Channel */ + bool should_free_rcb; /* True if RCB was allocated on the heap */ + +#define IB_CFG_DONE 0x01 +#define OB_CFG_DONE 0x02 +#define RECONFIG_FLAG 0x04 /* True after initial configuration */ +#define CFG_DONE_MASK (IB_CFG_DONE | OB_CFG_DONE) + + UINT8 config_done; /* Configuration flag word */ + UINT8 local_id; /* Transaction ID for local trans */ + UINT8 remote_id; /* Transaction ID for local */ + +#define CCB_FLAG_NO_RETRY 0x01 /* no more retry */ +#define CCB_FLAG_SENT_PENDING 0x02 /* already sent pending response */ + UINT8 flags; + + tL2CAP_CFG_INFO our_cfg; /* Our saved configuration options */ + tL2CAP_CH_CFG_BITS peer_cfg_bits; /* Store what peer wants to configure */ + tL2CAP_CFG_INFO peer_cfg; /* Peer's saved configuration options */ + + BUFFER_Q xmit_hold_q; /* Transmit data hold queue */ + BOOLEAN cong_sent; /* Set when congested status sent */ + UINT16 buff_quota; /* Buffer quota before sending congestion */ + + tL2CAP_CHNL_PRIORITY ccb_priority; /* Channel priority */ + tL2CAP_CHNL_DATA_RATE tx_data_rate; /* Channel Tx data rate */ + tL2CAP_CHNL_DATA_RATE rx_data_rate; /* Channel Rx data rate */ + + /* Fields used for eL2CAP */ + tL2CAP_ERTM_INFO ertm_info; + tL2C_FCRB fcrb; + UINT16 tx_mps; /* TX MPS adjusted based on current controller */ + UINT16 max_rx_mtu; + UINT8 fcr_cfg_tries; /* Max number of negotiation attempts */ + BOOLEAN peer_cfg_already_rejected; /* If mode rejected once, set to TRUE */ + BOOLEAN out_cfg_fcr_present; /* TRUE if cfg response shoulkd include fcr options */ + +#define L2CAP_CFG_FCS_OUR 0x01 /* Our desired config FCS option */ +#define L2CAP_CFG_FCS_PEER 0x02 /* Peer's desired config FCS option */ +#define L2CAP_BYPASS_FCS (L2CAP_CFG_FCS_OUR | L2CAP_CFG_FCS_PEER) + UINT8 bypass_fcs; + +#if (L2CAP_NON_FLUSHABLE_PB_INCLUDED == TRUE) + BOOLEAN is_flushable; /* TRUE if channel is flushable */ +#endif + +#if (L2CAP_NUM_FIXED_CHNLS > 0) || (L2CAP_UCD_INCLUDED == TRUE) + UINT16 fixed_chnl_idle_tout; /* Idle timeout to use for the fixed channel */ +#endif + UINT16 tx_data_len; +} tL2C_CCB; + +/*********************************************************************** +** Define a queue of linked CCBs. +*/ +typedef struct { + tL2C_CCB *p_first_ccb; /* The first channel in this queue */ + tL2C_CCB *p_last_ccb; /* The last channel in this queue */ +} tL2C_CCB_Q; + +#if (L2CAP_ROUND_ROBIN_CHANNEL_SERVICE == TRUE) + +/* Round-Robin service for the same priority channels */ +#define L2CAP_NUM_CHNL_PRIORITY 3 /* Total number of priority group (high, medium, low)*/ +#define L2CAP_CHNL_PRIORITY_WEIGHT 5 /* weight per priority for burst transmission quota */ +#define L2CAP_GET_PRIORITY_QUOTA(pri) ((L2CAP_NUM_CHNL_PRIORITY - (pri)) * L2CAP_CHNL_PRIORITY_WEIGHT) + +/* CCBs within the same LCB are served in round robin with priority */ +/* It will make sure that low priority channel (for example, HF signaling on RFCOMM) */ +/* can be sent to headset even if higher priority channel (for example, AV media channel) */ +/* is congested. */ + +typedef struct { + tL2C_CCB *p_serve_ccb; /* current serving ccb within priority group */ + tL2C_CCB *p_first_ccb; /* first ccb of priority group */ + UINT8 num_ccb; /* number of channels in priority group */ + UINT8 quota; /* burst transmission quota */ +} tL2C_RR_SERV; + +#endif /* (L2CAP_ROUND_ROBIN_CHANNEL_SERVICE == TRUE) */ + +/* Define a link control block. There is one link control block between +** this device and any other device (i.e. BD ADDR). +*/ +typedef struct t_l2c_linkcb { + BOOLEAN in_use; /* TRUE when in use, FALSE when not */ + tL2C_LINK_STATE link_state; + + TIMER_LIST_ENT timer_entry; /* Timer list entry for timeout evt */ + UINT16 handle; /* The handle used with LM */ + + tL2C_CCB_Q ccb_queue; /* Queue of CCBs on this LCB */ + + tL2C_CCB *p_pending_ccb; /* ccb of waiting channel during link disconnect */ + TIMER_LIST_ENT info_timer_entry; /* Timer entry for info resp timeout evt */ + BD_ADDR remote_bd_addr; /* The BD address of the remote */ + + UINT8 link_role; /* Master or slave */ + UINT8 id; + UINT8 cur_echo_id; /* Current id value for echo request */ + tL2CA_ECHO_RSP_CB *p_echo_rsp_cb; /* Echo response callback */ + UINT16 idle_timeout; /* Idle timeout */ + BOOLEAN is_bonding; /* True - link active only for bonding */ + + UINT16 link_flush_tout; /* Flush timeout used */ + + UINT16 link_xmit_quota; /* Num outstanding pkts allowed */ + UINT16 sent_not_acked; /* Num packets sent but not acked */ + + BOOLEAN partial_segment_being_sent; /* Set TRUE when a partial segment */ + /* is being sent. */ + BOOLEAN w4_info_rsp; /* TRUE when info request is active */ + UINT8 info_rx_bits; /* set 1 if received info type */ + UINT32 peer_ext_fea; /* Peer's extended features mask */ + list_t *link_xmit_data_q; /* Link transmit data buffer queue */ + + UINT8 peer_chnl_mask[L2CAP_FIXED_CHNL_ARRAY_SIZE]; +#if (L2CAP_UCD_INCLUDED == TRUE) + UINT16 ucd_mtu; /* peer MTU on UCD */ + BUFFER_Q ucd_out_sec_pending_q; /* Security pending outgoing UCD packet */ + BUFFER_Q ucd_in_sec_pending_q; /* Security pending incoming UCD packet */ +#endif + + BT_HDR *p_hcit_rcv_acl; /* Current HCIT ACL buf being rcvd */ + UINT16 idle_timeout_sv; /* Save current Idle timeout */ + UINT8 acl_priority; /* L2C_PRIORITY_NORMAL or L2C_PRIORITY_HIGH */ + tL2CA_NOCP_CB *p_nocp_cb; /* Num Cmpl pkts callback */ + +#if (L2CAP_NUM_FIXED_CHNLS > 0) + tL2C_CCB *p_fixed_ccbs[L2CAP_NUM_FIXED_CHNLS]; + UINT16 disc_reason; +#endif + + tBT_TRANSPORT transport; +#if (BLE_INCLUDED == TRUE) + tBLE_ADDR_TYPE ble_addr_type; + UINT16 tx_data_len; /* tx data length used in data length extension */ + +#define L2C_BLE_CONN_UPDATE_DISABLE 0x1 /* disable update connection parameters */ +#define L2C_BLE_NEW_CONN_PARAM 0x2 /* new connection parameter to be set */ +#define L2C_BLE_UPDATE_PENDING 0x4 /* waiting for connection update finished */ +#define L2C_BLE_NOT_DEFAULT_PARAM 0x8 /* not using default connection parameters */ + UINT8 conn_update_mask; + + UINT16 min_interval; /* parameters as requested by peripheral */ + UINT16 max_interval; + UINT16 latency; + UINT16 timeout; + +#endif + +#if (L2CAP_ROUND_ROBIN_CHANNEL_SERVICE == TRUE) + /* each priority group is limited burst transmission */ + /* round robin service for the same priority channels */ + tL2C_RR_SERV rr_serv[L2CAP_NUM_CHNL_PRIORITY]; + UINT8 rr_pri; /* current serving priority group */ +#endif + +} tL2C_LCB; + +/* Define the L2CAP control structure +*/ +typedef struct { + UINT8 l2cap_trace_level; + UINT16 controller_xmit_window; /* Total ACL window for all links */ + + UINT16 round_robin_quota; /* Round-robin link quota */ + UINT16 round_robin_unacked; /* Round-robin unacked */ + BOOLEAN check_round_robin; /* Do a round robin check */ + + BOOLEAN is_cong_cback_context; + + tL2C_LCB lcb_pool[MAX_L2CAP_LINKS]; /* Link Control Block pool */ + tL2C_CCB ccb_pool[MAX_L2CAP_CHANNELS]; /* Channel Control Block pool */ + tL2C_RCB rcb_pool[MAX_L2CAP_CLIENTS]; /* Registration info pool */ + + tL2C_CCB *p_free_ccb_first; /* Pointer to first free CCB */ + tL2C_CCB *p_free_ccb_last; /* Pointer to last free CCB */ + + UINT8 desire_role; /* desire to be master/slave when accepting a connection */ + BOOLEAN disallow_switch; /* FALSE, to allow switch at create conn */ + UINT16 num_lm_acl_bufs; /* # of ACL buffers on controller */ + UINT16 idle_timeout; /* Idle timeout */ + + list_t *rcv_pending_q; /* Recv pending queue */ + TIMER_LIST_ENT rcv_hold_tle; /* Timer list entry for rcv hold */ + + tL2C_LCB *p_cur_hcit_lcb; /* Current HCI Transport buffer */ + UINT16 num_links_active; /* Number of links active */ + +#if (L2CAP_NON_FLUSHABLE_PB_INCLUDED == TRUE) + UINT16 non_flushable_pbf; /* L2CAP_PKT_START_NON_FLUSHABLE if controller supports */ + /* Otherwise, L2CAP_PKT_START */ + BOOLEAN is_flush_active; /* TRUE if an HCI_Enhanced_Flush has been sent */ +#endif + +#if L2CAP_CONFORMANCE_TESTING == TRUE + UINT32 test_info_resp; /* Conformance testing needs a dynamic response */ +#endif + +#if (L2CAP_NUM_FIXED_CHNLS > 0) + tL2CAP_FIXED_CHNL_REG fixed_reg[L2CAP_NUM_FIXED_CHNLS]; /* Reg info for fixed channels */ +#endif + +#if (BLE_INCLUDED == TRUE) + UINT16 num_ble_links_active; /* Number of LE links active */ + BOOLEAN is_ble_connecting; + BD_ADDR ble_connecting_bda; + UINT16 controller_le_xmit_window; /* Total ACL window for all links */ + tL2C_BLE_FIXED_CHNLS_MASK l2c_ble_fixed_chnls_mask; // LE fixed channels mask + UINT16 num_lm_ble_bufs; /* # of ACL buffers on controller */ + UINT16 ble_round_robin_quota; /* Round-robin link quota */ + UINT16 ble_round_robin_unacked; /* Round-robin unacked */ + BOOLEAN ble_check_round_robin; /* Do a round robin check */ +#endif + + tL2CA_ECHO_DATA_CB *p_echo_data_cb; /* Echo data callback */ + +#if (defined(L2CAP_HIGH_PRI_CHAN_QUOTA_IS_CONFIGURABLE) && (L2CAP_HIGH_PRI_CHAN_QUOTA_IS_CONFIGURABLE == TRUE)) + UINT16 high_pri_min_xmit_quota; /* Minimum number of ACL credit for high priority link */ +#endif /* (L2CAP_HIGH_PRI_CHAN_QUOTA_IS_CONFIGURABLE == TRUE) */ + + UINT16 dyn_psm; +} tL2C_CB; + + + +/* Define a structure that contains the information about a connection. +** This structure is used to pass between functions, and not all the +** fields will always be filled in. +*/ +typedef struct { + BD_ADDR bd_addr; /* Remote BD address */ + UINT8 status; /* Connection status */ + UINT16 psm; /* PSM of the connection */ + UINT16 l2cap_result; /* L2CAP result */ + UINT16 l2cap_status; /* L2CAP status */ + UINT16 remote_cid; /* Remote CID */ +} tL2C_CONN_INFO; + + +typedef void (tL2C_FCR_MGMT_EVT_HDLR) (UINT8, tL2C_CCB *); + +/* The offset in a buffer that L2CAP will use when building commands. +*/ +#define L2CAP_SEND_CMD_OFFSET 0 + + +/* Number of ACL buffers to use for high priority channel +*/ +#if (!defined(L2CAP_HIGH_PRI_CHAN_QUOTA_IS_CONFIGURABLE) || (L2CAP_HIGH_PRI_CHAN_QUOTA_IS_CONFIGURABLE == FALSE)) +#define L2CAP_HIGH_PRI_MIN_XMIT_QUOTA_A (L2CAP_HIGH_PRI_MIN_XMIT_QUOTA) +#else +#define L2CAP_HIGH_PRI_MIN_XMIT_QUOTA_A (l2cb.high_pri_min_xmit_quota) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* L2CAP global data +************************************ +*/ +#if (!defined L2C_DYNAMIC_MEMORY) || (L2C_DYNAMIC_MEMORY == FALSE) +extern tL2C_CB l2cb; +#else +extern tL2C_CB *l2c_cb_ptr; +#define l2cb (*l2c_cb_ptr) +#endif + + +/* Functions provided by l2c_main.c +************************************ +*/ +void l2c_init(void); +void l2c_free(void); + +extern void l2c_process_timeout (TIMER_LIST_ENT *p_tle); +extern UINT8 l2c_data_write (UINT16 cid, BT_HDR *p_data, UINT16 flag); +extern void l2c_rcv_acl_data (BT_HDR *p_msg); +extern void l2c_process_held_packets (BOOLEAN timed_out); + +/* Functions provided by l2c_utils.c +************************************ +*/ +extern tL2C_LCB *l2cu_allocate_lcb (BD_ADDR p_bd_addr, BOOLEAN is_bonding, tBT_TRANSPORT transport); +extern BOOLEAN l2cu_start_post_bond_timer (UINT16 handle); +extern void l2cu_release_lcb (tL2C_LCB *p_lcb); +extern tL2C_LCB *l2cu_find_lcb_by_bd_addr (BD_ADDR p_bd_addr, tBT_TRANSPORT transport); +extern tL2C_LCB *l2cu_find_lcb_by_handle (UINT16 handle); +extern void l2cu_update_lcb_4_bonding (BD_ADDR p_bd_addr, BOOLEAN is_bonding); + +extern UINT8 l2cu_get_conn_role (tL2C_LCB *p_this_lcb); +extern BOOLEAN l2cu_set_acl_priority (BD_ADDR bd_addr, UINT8 priority, BOOLEAN reset_after_rs); + +extern void l2cu_enqueue_ccb (tL2C_CCB *p_ccb); +extern void l2cu_dequeue_ccb (tL2C_CCB *p_ccb); +extern void l2cu_change_pri_ccb (tL2C_CCB *p_ccb, tL2CAP_CHNL_PRIORITY priority); + +extern tL2C_CCB *l2cu_allocate_ccb (tL2C_LCB *p_lcb, UINT16 cid); +extern void l2cu_release_ccb (tL2C_CCB *p_ccb); +extern tL2C_CCB *l2cu_find_ccb_by_cid (tL2C_LCB *p_lcb, UINT16 local_cid); +extern tL2C_CCB *l2cu_find_ccb_by_remote_cid (tL2C_LCB *p_lcb, UINT16 remote_cid); +extern void l2cu_adj_id (tL2C_LCB *p_lcb, UINT8 adj_mask); +extern BOOLEAN l2c_is_cmd_rejected (UINT8 cmd_code, UINT8 id, tL2C_LCB *p_lcb); + +extern void l2cu_send_peer_cmd_reject (tL2C_LCB *p_lcb, UINT16 reason, + UINT8 rem_id, UINT16 p1, UINT16 p2); +extern void l2cu_send_peer_connect_req (tL2C_CCB *p_ccb); +extern void l2cu_send_peer_connect_rsp (tL2C_CCB *p_ccb, UINT16 result, UINT16 status); +extern void l2cu_send_peer_config_req (tL2C_CCB *p_ccb, tL2CAP_CFG_INFO *p_cfg); +extern void l2cu_send_peer_config_rsp (tL2C_CCB *p_ccb, tL2CAP_CFG_INFO *p_cfg); +extern void l2cu_send_peer_config_rej (tL2C_CCB *p_ccb, UINT8 *p_data, UINT16 data_len, UINT16 rej_len); +extern void l2cu_send_peer_disc_req (tL2C_CCB *p_ccb); +extern void l2cu_send_peer_disc_rsp (tL2C_LCB *p_lcb, UINT8 remote_id, UINT16 local_cid, UINT16 remote_cid); +extern void l2cu_send_peer_echo_req (tL2C_LCB *p_lcb, UINT8 *p_data, UINT16 data_len); +extern void l2cu_send_peer_echo_rsp (tL2C_LCB *p_lcb, UINT8 id, UINT8 *p_data, UINT16 data_len); +extern void l2cu_send_peer_info_rsp (tL2C_LCB *p_lcb, UINT8 id, UINT16 info_type); +extern void l2cu_reject_connection (tL2C_LCB *p_lcb, UINT16 remote_cid, UINT8 rem_id, UINT16 result); +extern void l2cu_send_peer_info_req (tL2C_LCB *p_lcb, UINT16 info_type); +extern void l2cu_set_acl_hci_header (BT_HDR *p_buf, tL2C_CCB *p_ccb); +extern void l2cu_check_channel_congestion (tL2C_CCB *p_ccb); +extern void l2cu_disconnect_chnl (tL2C_CCB *p_ccb); + +#if (L2CAP_NON_FLUSHABLE_PB_INCLUDED == TRUE) +extern void l2cu_set_non_flushable_pbf(BOOLEAN); +#endif + +#if (BLE_INCLUDED == TRUE) +extern void l2cu_send_peer_ble_par_req (tL2C_LCB *p_lcb, UINT16 min_int, UINT16 max_int, UINT16 latency, UINT16 timeout); +extern void l2cu_send_peer_ble_par_rsp (tL2C_LCB *p_lcb, UINT16 reason, UINT8 rem_id); +#endif + +extern BOOLEAN l2cu_initialize_fixed_ccb (tL2C_LCB *p_lcb, UINT16 fixed_cid, tL2CAP_FCR_OPTS *p_fcr); +extern void l2cu_no_dynamic_ccbs (tL2C_LCB *p_lcb); +extern void l2cu_process_fixed_chnl_resp (tL2C_LCB *p_lcb); + +/* Functions provided by l2c_ucd.c +************************************ +*/ +#if (L2CAP_UCD_INCLUDED == TRUE) +void l2c_ucd_delete_sec_pending_q(tL2C_LCB *p_lcb); +void l2c_ucd_enqueue_pending_out_sec_q(tL2C_CCB *p_ccb, void *p_data); +BOOLEAN l2c_ucd_check_pending_info_req(tL2C_CCB *p_ccb); +BOOLEAN l2c_ucd_check_pending_out_sec_q(tL2C_CCB *p_ccb); +void l2c_ucd_send_pending_out_sec_q(tL2C_CCB *p_ccb); +void l2c_ucd_discard_pending_out_sec_q(tL2C_CCB *p_ccb); +BOOLEAN l2c_ucd_check_pending_in_sec_q(tL2C_CCB *p_ccb); +void l2c_ucd_send_pending_in_sec_q(tL2C_CCB *p_ccb); +void l2c_ucd_discard_pending_in_sec_q(tL2C_CCB *p_ccb); +BOOLEAN l2c_ucd_check_rx_pkts(tL2C_LCB *p_lcb, BT_HDR *p_msg); +BOOLEAN l2c_ucd_process_event(tL2C_CCB *p_ccb, UINT16 event, void *p_data); +#endif + +#if (BLE_INCLUDED == TRUE) +extern void l2cu_send_peer_ble_par_req (tL2C_LCB *p_lcb, UINT16 min_int, UINT16 max_int, UINT16 latency, UINT16 timeout); +extern void l2cu_send_peer_ble_par_rsp (tL2C_LCB *p_lcb, UINT16 reason, UINT8 rem_id); +#endif + +extern BOOLEAN l2cu_initialize_fixed_ccb (tL2C_LCB *p_lcb, UINT16 fixed_cid, tL2CAP_FCR_OPTS *p_fcr); +extern void l2cu_no_dynamic_ccbs (tL2C_LCB *p_lcb); +extern void l2cu_process_fixed_chnl_resp (tL2C_LCB *p_lcb); + + +/* Functions provided for Broadcom Aware +**************************************** +*/ +extern BOOLEAN l2cu_check_feature_req (tL2C_LCB *p_lcb, UINT8 id, UINT8 *p_data, UINT16 data_len); +extern void l2cu_check_feature_rsp (tL2C_LCB *p_lcb, UINT8 id, UINT8 *p_data, UINT16 data_len); +extern void l2cu_send_feature_req (tL2C_CCB *p_ccb); + +extern tL2C_RCB *l2cu_allocate_rcb (UINT16 psm); +extern tL2C_RCB *l2cu_find_rcb_by_psm (UINT16 psm); +extern void l2cu_release_rcb (tL2C_RCB *p_rcb); + +extern UINT8 l2cu_process_peer_cfg_req (tL2C_CCB *p_ccb, tL2CAP_CFG_INFO *p_cfg); +extern void l2cu_process_peer_cfg_rsp (tL2C_CCB *p_ccb, tL2CAP_CFG_INFO *p_cfg); +extern void l2cu_process_our_cfg_req (tL2C_CCB *p_ccb, tL2CAP_CFG_INFO *p_cfg); +extern void l2cu_process_our_cfg_rsp (tL2C_CCB *p_ccb, tL2CAP_CFG_INFO *p_cfg); + +extern void l2cu_device_reset (void); +extern tL2C_LCB *l2cu_find_lcb_by_state (tL2C_LINK_STATE state); +extern BOOLEAN l2cu_lcb_disconnecting (void); + +extern BOOLEAN l2cu_create_conn (tL2C_LCB *p_lcb, tBT_TRANSPORT transport); +extern BOOLEAN l2cu_create_conn_after_switch (tL2C_LCB *p_lcb); +extern BT_HDR *l2cu_get_next_buffer_to_send (tL2C_LCB *p_lcb); +extern void l2cu_resubmit_pending_sec_req (BD_ADDR p_bda); +extern void l2cu_initialize_amp_ccb (tL2C_LCB *p_lcb); +extern void l2cu_adjust_out_mps (tL2C_CCB *p_ccb); + +/* Functions provided by l2c_link.c +************************************ +*/ +extern BOOLEAN l2c_link_hci_conn_req (BD_ADDR bd_addr); +extern BOOLEAN l2c_link_hci_conn_comp (UINT8 status, UINT16 handle, BD_ADDR p_bda); +extern BOOLEAN l2c_link_hci_disc_comp (UINT16 handle, UINT8 reason); +extern BOOLEAN l2c_link_hci_qos_violation (UINT16 handle); +extern void l2c_link_timeout (tL2C_LCB *p_lcb); +extern void l2c_info_timeout (tL2C_LCB *p_lcb); +extern void l2c_link_check_send_pkts (tL2C_LCB *p_lcb, tL2C_CCB *p_ccb, BT_HDR *p_buf); +extern void l2c_link_adjust_allocation (void); +extern void l2c_link_process_num_completed_pkts (UINT8 *p); +extern void l2c_link_process_num_completed_blocks (UINT8 controller_id, UINT8 *p, UINT16 evt_len); +extern void l2c_link_processs_num_bufs (UINT16 num_lm_acl_bufs); +extern UINT8 l2c_link_pkts_rcvd (UINT16 *num_pkts, UINT16 *handles); +extern void l2c_link_role_changed (BD_ADDR bd_addr, UINT8 new_role, UINT8 hci_status); +extern void l2c_link_sec_comp (BD_ADDR p_bda, tBT_TRANSPORT trasnport, void *p_ref_data, UINT8 status); +extern void l2c_link_segments_xmitted (BT_HDR *p_msg); +extern void l2c_pin_code_request (BD_ADDR bd_addr); +extern void l2c_link_adjust_chnl_allocation (void); + +#if (BLE_INCLUDED == TRUE) +extern void l2c_link_processs_ble_num_bufs (UINT16 num_lm_acl_bufs); +#endif + +#if L2CAP_WAKE_PARKED_LINK == TRUE +extern BOOLEAN l2c_link_check_power_mode ( tL2C_LCB *p_lcb ); +#define L2C_LINK_CHECK_POWER_MODE(x) l2c_link_check_power_mode ((x)) +#else // L2CAP_WAKE_PARKED_LINK +#define L2C_LINK_CHECK_POWER_MODE(x) (FALSE) +#endif // L2CAP_WAKE_PARKED_LINK + +#if L2CAP_CONFORMANCE_TESTING == TRUE +/* Used only for conformance testing */ +extern void l2cu_set_info_rsp_mask (UINT32 mask); +#endif + +/* Functions provided by l2c_csm.c +************************************ +*/ +extern void l2c_csm_execute (tL2C_CCB *p_ccb, UINT16 event, void *p_data); + +extern void l2c_enqueue_peer_data (tL2C_CCB *p_ccb, BT_HDR *p_buf); + + +/* Functions provided by l2c_fcr.c +************************************ +*/ +extern void l2c_fcr_cleanup (tL2C_CCB *p_ccb); +extern void l2c_fcr_proc_pdu (tL2C_CCB *p_ccb, BT_HDR *p_buf); +extern void l2c_fcr_proc_tout (tL2C_CCB *p_ccb); +extern void l2c_fcr_proc_ack_tout (tL2C_CCB *p_ccb); +extern void l2c_fcr_send_S_frame (tL2C_CCB *p_ccb, UINT16 function_code, UINT16 pf_bit); +extern BT_HDR *l2c_fcr_clone_buf (BT_HDR *p_buf, UINT16 new_offset, UINT16 no_of_bytes, UINT8 pool); +extern BOOLEAN l2c_fcr_is_flow_controlled (tL2C_CCB *p_ccb); +extern BT_HDR *l2c_fcr_get_next_xmit_sdu_seg (tL2C_CCB *p_ccb, UINT16 max_packet_length); +extern void l2c_fcr_start_timer (tL2C_CCB *p_ccb); + +/* Configuration negotiation */ +extern UINT8 l2c_fcr_chk_chan_modes (tL2C_CCB *p_ccb); +extern BOOLEAN l2c_fcr_adj_our_req_options (tL2C_CCB *p_ccb, tL2CAP_CFG_INFO *p_cfg); +extern void l2c_fcr_adj_our_rsp_options (tL2C_CCB *p_ccb, tL2CAP_CFG_INFO *p_peer_cfg); +extern BOOLEAN l2c_fcr_renegotiate_chan(tL2C_CCB *p_ccb, tL2CAP_CFG_INFO *p_cfg); +extern UINT8 l2c_fcr_process_peer_cfg_req(tL2C_CCB *p_ccb, tL2CAP_CFG_INFO *p_cfg); +extern void l2c_fcr_adj_monitor_retran_timeout (tL2C_CCB *p_ccb); +extern void l2c_fcr_stop_timer (tL2C_CCB *p_ccb); + +/* Functions provided by l2c_ble.c +************************************ +*/ +#if (BLE_INCLUDED == TRUE) +extern BOOLEAN l2cble_create_conn (tL2C_LCB *p_lcb); +extern void l2cble_process_sig_cmd (tL2C_LCB *p_lcb, UINT8 *p, UINT16 pkt_len); +extern void l2cble_conn_comp (UINT16 handle, UINT8 role, BD_ADDR bda, tBLE_ADDR_TYPE type, + UINT16 conn_interval, UINT16 conn_latency, UINT16 conn_timeout); +extern BOOLEAN l2cble_init_direct_conn (tL2C_LCB *p_lcb); +extern void l2cble_notify_le_connection (BD_ADDR bda); +extern void l2c_ble_link_adjust_allocation (void); +extern void l2cble_process_conn_update_evt (UINT16 handle, UINT8 status); + +#if (defined BLE_LLT_INCLUDED) && (BLE_LLT_INCLUDED == TRUE) +extern void l2cble_process_rc_param_request_evt(UINT16 handle, UINT16 int_min, UINT16 int_max, + UINT16 latency, UINT16 timeout); +#endif + +extern void l2cble_update_data_length(tL2C_LCB *p_lcb); +extern void l2cble_set_fixed_channel_tx_data_length(BD_ADDR remote_bda, UINT16 fix_cid, + UINT16 tx_mtu); +extern void l2cble_process_data_length_change_event(UINT16 handle, UINT16 tx_data_len, + UINT16 rx_data_len); + +#endif +extern void l2cu_process_fixed_disc_cback (tL2C_LCB *p_lcb); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/tools/sdk/include/bluedroid/l2cap_client.h b/tools/sdk/include/bluedroid/l2cap_client.h new file mode 100644 index 00000000..168c8db5 --- /dev/null +++ b/tools/sdk/include/bluedroid/l2cap_client.h @@ -0,0 +1,77 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef _L2CAP_CLIENT_H_ +#define _L2CAP_CLIENT_H_ + +//#include +#include +#include + +typedef struct buffer_t buffer_t; +typedef struct l2cap_client_t l2cap_client_t; + +typedef struct { + void (*connected)(l2cap_client_t *client, void *context); + void (*disconnected)(l2cap_client_t *client, void *context); + void (*read_ready)(l2cap_client_t *client, buffer_t *packet, void *context); + void (*write_ready)(l2cap_client_t *client, void *context); +} l2cap_client_callbacks_t; + +// Returns a new buffer with enough space for |size| bytes of L2CAP payload. +// |size| must be greater than zero. This function returns NULL if the buffer +// could not be allocated. The returned buffer must be freed with |buffer_free| +// when it is no longer needed. +buffer_t *l2cap_buffer_new(size_t size); + +// Creates and returns a new L2CAP client object. |callbacks| must not be NULL and +// must specify a set of functions that should be called back when events occur +// on the L2CAP connection. |context| may be NULL and will be passed as the argument +// to all callbacks in |l2cap_client_callbacks_t|. The returned object must be freed +// with |l2cap_client_free|. +l2cap_client_t *l2cap_client_new(const l2cap_client_callbacks_t *callbacks, void *context); + +// Frees the L2CAP client object allocated with |l2cap_client_new|. |client| may be NULL. +void l2cap_client_free(l2cap_client_t *client); + +// Attempts to connect the |client| to a peer device specified by |remote_bdaddr| +// using the |psm| protocol specifier. This function returns true if the connect +// operation could be started and will indicate completion with either a 'connected' +// callback (success) or a 'disconnected' callback (failure). +// +// This function must not be called while a connect operation is in progress or +// while |l2cap_client_is_connected|. |client| and |remote_bdaddr| must not be NULL. +// |psm| must be greater than zero. +bool l2cap_client_connect(l2cap_client_t *client, const bt_bdaddr_t *remote_bdaddr, uint16_t psm); + +// Disconnects a connected |client|. This function is asynchronous and idempotent. It +// will indicate completion with a 'disconnected' callback. |client| must not be NULL. +void l2cap_client_disconnect(l2cap_client_t *client); + +// Returns true if |client| is connected and is ready to accept data written to it. +// |client| must not be NULL. +bool l2cap_client_is_connected(const l2cap_client_t *client); + +// Writes data contained in |packet| to a connected |client|. This function returns +// true if the packet was successfully queued for delivery, false if the client cannot +// accept more data at this time. If this function returns false, the caller must wait +// for the 'write_ready' callback to write additional data to the client. Neither +// |client| nor |packet| may be NULL. +bool l2cap_client_write(l2cap_client_t *client, buffer_t *packet); + +#endif /*_L2CAP_CLIENT_H_*/ diff --git a/tools/sdk/include/bluedroid/l2cdefs.h b/tools/sdk/include/bluedroid/l2cdefs.h new file mode 100644 index 00000000..e31ee24b --- /dev/null +++ b/tools/sdk/include/bluedroid/l2cdefs.h @@ -0,0 +1,318 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef L2CDEFS_H +#define L2CDEFS_H + +/* L2CAP command codes +*/ +#define L2CAP_CMD_REJECT 0x01 +#define L2CAP_CMD_CONN_REQ 0x02 +#define L2CAP_CMD_CONN_RSP 0x03 +#define L2CAP_CMD_CONFIG_REQ 0x04 +#define L2CAP_CMD_CONFIG_RSP 0x05 +#define L2CAP_CMD_DISC_REQ 0x06 +#define L2CAP_CMD_DISC_RSP 0x07 +#define L2CAP_CMD_ECHO_REQ 0x08 +#define L2CAP_CMD_ECHO_RSP 0x09 +#define L2CAP_CMD_INFO_REQ 0x0A +#define L2CAP_CMD_INFO_RSP 0x0B +#define L2CAP_CMD_AMP_CONN_REQ 0x0C +#define L2CAP_CMD_AMP_CONN_RSP 0x0D +#define L2CAP_CMD_AMP_MOVE_REQ 0x0E +#define L2CAP_CMD_AMP_MOVE_RSP 0x0F +#define L2CAP_CMD_AMP_MOVE_CFM 0x10 +#define L2CAP_CMD_AMP_MOVE_CFM_RSP 0x11 + +#define L2CAP_CMD_BLE_UPDATE_REQ 0x12 +#define L2CAP_CMD_BLE_UPDATE_RSP 0x13 + + +/* Define some packet and header lengths +*/ +#define L2CAP_PKT_OVERHEAD 4 /* Length and CID */ +#define L2CAP_CMD_OVERHEAD 4 /* Cmd code, Id and length */ +#define L2CAP_CMD_REJECT_LEN 2 /* Reason (data is optional) */ +#define L2CAP_CONN_REQ_LEN 4 /* PSM and source CID */ +#define L2CAP_CONN_RSP_LEN 8 /* Dest CID, source CID, reason, status */ +#define L2CAP_CONFIG_REQ_LEN 4 /* Dest CID, flags (data is optional) */ +#define L2CAP_CONFIG_RSP_LEN 6 /* Dest CID, flags, result,data optional*/ +#define L2CAP_DISC_REQ_LEN 4 /* Dest CID, source CID */ +#define L2CAP_DISC_RSP_LEN 4 /* Dest CID, source CID */ +#define L2CAP_ECHO_REQ_LEN 0 /* Data is optional */ +#define L2CAP_ECHO_RSP_LEN 0 /* Data is optional */ +#define L2CAP_INFO_REQ_LEN 2 /* Info type */ +#define L2CAP_INFO_RSP_LEN 4 /* Info type, result (data is optional) */ +#define L2CAP_BCST_OVERHEAD 2 /* Additional broadcast packet overhead */ +#define L2CAP_UCD_OVERHEAD 2 /* Additional connectionless packet overhead */ + +#define L2CAP_AMP_CONN_REQ_LEN 5 /* PSM, CID, and remote controller ID */ +#define L2CAP_AMP_MOVE_REQ_LEN 3 /* CID and remote controller ID */ +#define L2CAP_AMP_MOVE_RSP_LEN 4 /* CID and result */ +#define L2CAP_AMP_MOVE_CFM_LEN 4 /* CID and result */ +#define L2CAP_AMP_MOVE_CFM_RSP_LEN 2 /* CID */ + +#define L2CAP_CMD_BLE_UPD_REQ_LEN 8 /* Min and max interval, latency, tout */ +#define L2CAP_CMD_BLE_UPD_RSP_LEN 2 /* Result */ + + +/* Define the packet boundary flags +*/ +#if (L2CAP_NON_FLUSHABLE_PB_INCLUDED == TRUE) +#define L2CAP_PKT_START_FLUSHABLE 2 +#define L2CAP_PKT_START_NON_FLUSHABLE 0 +#endif +#define L2CAP_COMPLETE_AMP_PKT 3 /* complete L2CAP packet on AMP HCI */ +#define L2CAP_PKT_START 2 +#define L2CAP_PKT_CONTINUE 1 +#define L2CAP_MASK_FLAG 0x0FFF +#define L2CAP_PKT_TYPE_SHIFT 12 +#define L2CAP_PKT_TYPE_MASK 3 + + +/* Define the L2CAP connection result codes +*/ +#define L2CAP_CONN_OK 0 +#define L2CAP_CONN_PENDING 1 +#define L2CAP_CONN_NO_PSM 2 +#define L2CAP_CONN_SECURITY_BLOCK 3 +#define L2CAP_CONN_NO_RESOURCES 4 +#define L2CAP_CONN_BAD_CTLR_ID 5 /* AMP related */ +#define L2CAP_CONN_TIMEOUT 0xEEEE +#define L2CAP_CONN_AMP_FAILED 254 +#define L2CAP_CONN_NO_LINK 255 /* Add a couple of our own for internal use */ +#define L2CAP_CONN_CANCEL 256 /* L2CAP connection cancelled */ + + +/* Define L2CAP Move Channel Response result codes +*/ +#define L2CAP_MOVE_OK 0 +#define L2CAP_MOVE_PENDING 1 +#define L2CAP_MOVE_CTRL_ID_NOT_SUPPORT 2 +#define L2CAP_MOVE_SAME_CTRLR_ID 3 +#define L2CAP_MOVE_CONFIG_NOT_SUPPORTED 4 +#define L2CAP_MOVE_CHAN_COLLISION 5 +#define L2CAP_MOVE_NOT_ALLOWED 6 + + +/* Define L2CAP Move Channel Confirmation result codes +*/ +#define L2CAP_MOVE_CFM_OK 0 +#define L2CAP_MOVE_CFM_REFUSED 1 + + +/* Define the L2CAP command reject reason codes +*/ +#define L2CAP_CMD_REJ_NOT_UNDERSTOOD 0 +#define L2CAP_CMD_REJ_MTU_EXCEEDED 1 +#define L2CAP_CMD_REJ_INVALID_CID 2 + + +/* L2CAP Predefined CIDs +*/ +#define L2CAP_SIGNALLING_CID 1 +#define L2CAP_CONNECTIONLESS_CID 2 +#define L2CAP_AMP_CID 3 +#define L2CAP_ATT_CID 4 +#define L2CAP_BLE_SIGNALLING_CID 5 +#define L2CAP_SMP_CID 6 +#define L2CAP_SMP_BR_CID 7 +#define L2CAP_AMP_TEST_CID 0x003F +#define L2CAP_BASE_APPL_CID 0x0040 +#define L2CAP_BLE_CONN_MAX_CID 0x007F + +/* Fixed Channels mask bits */ + +/* Signal channel supported (Mandatory) */ +#define L2CAP_FIXED_CHNL_SIG_BIT (1 << L2CAP_SIGNALLING_CID) + +/* Connectionless reception */ +#define L2CAP_FIXED_CHNL_CNCTLESS_BIT (1 << L2CAP_CONNECTIONLESS_CID) + +/* AMP Manager supported */ +#define L2CAP_FIXED_CHNL_AMP_BIT (1 << L2CAP_AMP_CID) + +/* Attribute protocol supported */ +#define L2CAP_FIXED_CHNL_ATT_BIT (1 << L2CAP_ATT_CID) + +/* BLE Signalling supported */ +#define L2CAP_FIXED_CHNL_BLE_SIG_BIT (1 << L2CAP_BLE_SIGNALLING_CID) + +/* BLE Security Mgr supported */ +#define L2CAP_FIXED_CHNL_SMP_BIT (1 << L2CAP_SMP_CID) + +/* Security Mgr over BR supported */ +#define L2CAP_FIXED_CHNL_SMP_BR_BIT (1 << L2CAP_SMP_BR_CID) + + + +/* Define the L2CAP configuration result codes +*/ +#define L2CAP_CFG_OK 0 +#define L2CAP_CFG_UNACCEPTABLE_PARAMS 1 +#define L2CAP_CFG_FAILED_NO_REASON 2 +#define L2CAP_CFG_UNKNOWN_OPTIONS 3 +#define L2CAP_CFG_PENDING 4 +#define L2CAP_CFG_FLOW_SPEC_REJECTED 5 + + +/* Define the L2CAP configuration option types +*/ +#define L2CAP_CFG_TYPE_MTU 0x01 +#define L2CAP_CFG_TYPE_FLUSH_TOUT 0x02 +#define L2CAP_CFG_TYPE_QOS 0x03 +#define L2CAP_CFG_TYPE_FCR 0x04 +#define L2CAP_CFG_TYPE_FCS 0x05 +#define L2CAP_CFG_TYPE_EXT_FLOW 0x06 +#define L2CAP_CFG_TYPE_EXT_WIN_SIZE 0x07 + +#define L2CAP_CFG_MTU_OPTION_LEN 2 /* MTU option length */ +#define L2CAP_CFG_FLUSH_OPTION_LEN 2 /* Flush option len */ +#define L2CAP_CFG_QOS_OPTION_LEN 22 /* QOS option length */ +#define L2CAP_CFG_FCR_OPTION_LEN 9 /* FCR option length */ +#define L2CAP_CFG_FCS_OPTION_LEN 1 /* FCR option length */ +#define L2CAP_CFG_EXT_FLOW_OPTION_LEN 16 /* Extended Flow Spec */ +#define L2CAP_CFG_EXT_WIN_SIZE_LEN 2 /* Ext window size length */ +#define L2CAP_CFG_OPTION_OVERHEAD 2 /* Type and length */ + +/* Configuration Cmd/Rsp Flags mask +*/ +#define L2CAP_CFG_FLAGS_MASK_CONT 0x0001 /* Flags mask: Continuation */ + +/* FCS Check Option values +*/ +#define L2CAP_CFG_FCS_BYPASS 0 /* Bypass the FCS in streaming or ERTM modes */ +#define L2CAP_CFG_FCS_USE 1 /* Use the FCS in streaming or ERTM modes [default] */ + +/* Default values for configuration +*/ +#define L2CAP_NO_AUTOMATIC_FLUSH 0xFFFF +#define L2CAP_NO_RETRANSMISSION 0x0001 + +#define L2CAP_DEFAULT_MTU (672) +#define L2CAP_DEFAULT_FLUSH_TO L2CAP_NO_AUTOMATIC_FLUSH +#define L2CAP_DEFAULT_SERV_TYPE 1 +#define L2CAP_DEFAULT_TOKEN_RATE 0 +#define L2CAP_DEFAULT_BUCKET_SIZE 0 +#define L2CAP_DEFAULT_PEAK_BANDWIDTH 0 +#define L2CAP_DEFAULT_LATENCY 0xFFFFFFFF +#define L2CAP_DEFAULT_DELAY 0xFFFFFFFF +#define L2CAP_DEFAULT_FCS L2CAP_CFG_FCS_USE + + +/* Define the L2CAP disconnect result codes +*/ +#define L2CAP_DISC_OK 0 +#define L2CAP_DISC_TIMEOUT 0xEEEE + +/* Define the L2CAP info resp result codes +*/ +#define L2CAP_INFO_RESP_RESULT_SUCCESS 0 +#define L2CAP_INFO_RESP_RESULT_NOT_SUPPORTED 1 + +/* Define the info-type fields of information request & response +*/ +#define L2CAP_CONNLESS_MTU_INFO_TYPE 0x0001 +#define L2CAP_EXTENDED_FEATURES_INFO_TYPE 0x0002 /* Used in Information Req/Response */ +#define L2CAP_FIXED_CHANNELS_INFO_TYPE 0x0003 /* Used in AMP */ + +#define L2CAP_CONNLESS_MTU_INFO_SIZE 2 /* Connectionless MTU size */ +#define L2CAP_EXTENDED_FEATURES_ARRAY_SIZE 4 /* Extended features array size */ +#define L2CAP_FIXED_CHNL_ARRAY_SIZE 8 /* Fixed channel array size */ + +/* Extended features mask bits +*/ +#define L2CAP_EXTFEA_RTRANS 0x00000001 /* Retransmission Mode (Not Supported) */ +#define L2CAP_EXTFEA_FC 0x00000002 /* Flow Control Mode (Not Supported) */ +#define L2CAP_EXTFEA_QOS 0x00000004 +#define L2CAP_EXTFEA_ENH_RETRANS 0x00000008 /* Enhanced retransmission mode */ +#define L2CAP_EXTFEA_STREAM_MODE 0x00000010 /* Streaming Mode */ +#define L2CAP_EXTFEA_NO_CRC 0x00000020 /* Optional FCS (if set No FCS desired) */ +#define L2CAP_EXTFEA_EXT_FLOW_SPEC 0x00000040 /* Extended flow spec */ +#define L2CAP_EXTFEA_FIXED_CHNLS 0x00000080 /* Fixed channels */ +#define L2CAP_EXTFEA_EXT_WINDOW 0x00000100 /* Extended Window Size */ +#define L2CAP_EXTFEA_UCD_RECEPTION 0x00000200 /* Unicast Connectionless Data Reception */ + +/* Mask for locally supported features used in Information Response (default to none) */ +#ifndef L2CAP_EXTFEA_SUPPORTED_MASK +#define L2CAP_EXTFEA_SUPPORTED_MASK 0 +#endif + +/* Mask for LE supported features used in Information Response (default to none) */ +#ifndef L2CAP_BLE_EXTFEA_MASK +#define L2CAP_BLE_EXTFEA_MASK 0 +#endif + +/* Define a value that tells L2CAP to use the default HCI ACL buffer pool */ +#define L2CAP_DEFAULT_ERM_POOL_ID 0xFF +/* Define a value that tells L2CAP to use the default MPS */ +#define L2CAP_DEFAULT_ERM_MPS 0x0000 + +#define L2CAP_FCR_OVERHEAD 2 /* Control word */ +#define L2CAP_FCS_LEN 2 /* FCS takes 2 bytes */ +#define L2CAP_SDU_LEN_OVERHEAD 2 /* SDU length field is 2 bytes */ +#define L2CAP_SDU_LEN_OFFSET 2 /* SDU length offset is 2 bytes */ +#define L2CAP_EXT_CONTROL_OVERHEAD 4 /* Extended Control Field */ +#define L2CAP_MAX_HEADER_FCS (L2CAP_PKT_OVERHEAD + L2CAP_EXT_CONTROL_OVERHEAD + L2CAP_SDU_LEN_OVERHEAD + L2CAP_FCS_LEN) +/* length(2), channel(2), control(4), SDU length(2) FCS(2) */ +/* To optimize this, it must be a multiplum of the L2CAP PDU length AND match the 3DH5 air + * including the l2cap headers in each packet - to match the latter - the -5 is added + */ +#define L2CAP_MAX_SDU_LENGTH (GKI_BUF4_SIZE - (L2CAP_MIN_OFFSET + L2CAP_MAX_HEADER_FCS) -5) + +/* Part of L2CAP_MIN_OFFSET that is not part of L2CAP +*/ +#define L2CAP_OFFSET_WO_L2HDR (L2CAP_MIN_OFFSET-(L2CAP_PKT_OVERHEAD+L2CAP_FCR_OVERHEAD)) + +/* SAR bits in the control word +*/ +#define L2CAP_FCR_UNSEG_SDU 0x0000 /* Control word to begin with for unsegmented PDU*/ +#define L2CAP_FCR_START_SDU 0x4000 /* ...for Starting PDU of a semented SDU */ +#define L2CAP_FCR_END_SDU 0x8000 /* ...for ending PDU of a segmented SDU */ +#define L2CAP_FCR_CONT_SDU 0xc000 /* ...for continuation PDU of a segmented SDU */ + +/* Supervisory frame types +*/ +#define L2CAP_FCR_SUP_RR 0x0000 /* Supervisory frame - RR */ +#define L2CAP_FCR_SUP_REJ 0x0001 /* Supervisory frame - REJ */ +#define L2CAP_FCR_SUP_RNR 0x0002 /* Supervisory frame - RNR */ +#define L2CAP_FCR_SUP_SREJ 0x0003 /* Supervisory frame - SREJ */ + +#define L2CAP_FCR_SAR_BITS 0xC000 /* Mask to get the SAR bits from control word */ +#define L2CAP_FCR_SAR_BITS_SHIFT 14 /* Bits to shift right to get the SAR bits from ctrl-word */ + +#define L2CAP_FCR_S_FRAME_BIT 0x0001 /* Mask to check if a PDU is S-frame */ +#define L2CAP_FCR_REQ_SEQ_BITS 0x3F00 /* Mask to get the req-seq from control word */ +#define L2CAP_FCR_REQ_SEQ_BITS_SHIFT 8 /* Bits to shift right to get the req-seq from ctrl-word */ +#define L2CAP_FCR_TX_SEQ_BITS 0x007E /* Mask on get the tx-seq from control word */ +#define L2CAP_FCR_TX_SEQ_BITS_SHIFT 1 /* Bits to shift right to get the tx-seq from ctrl-word */ + +#define L2CAP_FCR_F_BIT 0x0080 /* F-bit in the control word (Sup and I frames) */ +#define L2CAP_FCR_P_BIT 0x0010 /* P-bit in the control word (Sup frames only) */ + +#define L2CAP_FCR_F_BIT_SHIFT 7 +#define L2CAP_FCR_P_BIT_SHIFT 4 + +#define L2CAP_FCR_SEG_BITS 0xC000 /* Mask to get the segmentation bits from ctrl-word */ +#define L2CAP_FCR_SUP_SHIFT 2 /* Bits to shift right to get the S-bits from ctrl-word */ +#define L2CAP_FCR_SUP_BITS 0x000C /* Mask to get the supervisory bits from ctrl-word */ + +#define L2CAP_FCR_INIT_CRC 0 /* Initial state of the CRC register */ +#define L2CAP_FCR_SEQ_MODULO 0x3F /* Mask for sequence numbers (range 0 - 63) */ + +#endif diff --git a/tools/sdk/include/bluedroid/list.h b/tools/sdk/include/bluedroid/list.h new file mode 100755 index 00000000..77097967 --- /dev/null +++ b/tools/sdk/include/bluedroid/list.h @@ -0,0 +1,110 @@ +#ifndef _LIST_H_ +#define _LIST_H_ + +#include +#include +struct list_node_t; +typedef struct list_node_t list_node_t; + +struct list_t; +typedef struct list_t list_t; + +typedef void (*list_free_cb)(void *data); +typedef bool (*list_iter_cb)(void *data); + +// Returns a new, empty list. Returns NULL if not enough memory could be allocated +// for the list structure. The returned list must be freed with |list_free|. The +// |callback| specifies a function to be called whenever a list element is removed +// from the list. It can be used to release resources held by the list element, e.g. +// memory or file descriptor. |callback| may be NULL if no cleanup is necessary on +// element removal. +list_t *list_new(list_free_cb callback); + + +list_node_t *list_free_node(list_t *list, list_node_t *node); +//list_node_t *list_free_node(list_t *list, list_node_t *node); +// Frees the list. This function accepts NULL as an argument, in which case it +// behaves like a no-op. +void list_free(list_t *list); + +// Returns true if |list| is empty (has no elements), false otherwise. +// |list| may not be NULL. +bool list_is_empty(const list_t *list); + +// Returns true if the list contains |data|, false otherwise. +// |list| may not be NULL. +bool list_contains(const list_t *list, const void *data); + +// Returns the length of the |list|. |list| may not be NULL. +size_t list_length(const list_t *list); + +// Returns the first element in the list without removing it. |list| may not +// be NULL or empty. +void *list_front(const list_t *list); + +// Returns the last element in the list without removing it. |list| may not +// be NULL or empty. +//void *list_back(const list_t *list); + +// Inserts |data| after |prev_node| in |list|. |data|, |list|, and |prev_node| +// may not be NULL. This function does not make a copy of |data| so the pointer +// must remain valid at least until the element is removed from the list or the +// list is freed. Returns true if |data| could be inserted, false otherwise +// (e.g. out of memory). +bool list_insert_after(list_t *list, list_node_t *prev_node, void *data); + +// Inserts |data| at the beginning of |list|. Neither |data| nor |list| may be NULL. +// This function does not make a copy of |data| so the pointer must remain valid +// at least until the element is removed from the list or the list is freed. +// Returns true if |data| could be inserted, false otherwise (e.g. out of memory). +bool list_prepend(list_t *list, void *data); + +// Inserts |data| at the end of |list|. Neither |data| nor |list| may be NULL. +// This function does not make a copy of |data| so the pointer must remain valid +// at least until the element is removed from the list or the list is freed. +// Returns true if |data| could be inserted, false otherwise (e.g. out of memory). +bool list_append(list_t *list, void *data); + +// Removes |data| from the list. Neither |list| nor |data| may be NULL. If |data| +// is inserted multiple times in the list, this function will only remove the first +// instance. If a free function was specified in |list_new|, it will be called back +// with |data|. This function returns true if |data| was found in the list and removed, +// false otherwise. +//list_node_t list_remove_node(list_t *list, list_node_t *prev_node, list_node_t *node); +//list_node_t list_insert_node(list_t *list, list_node_t *prev_node, list_node_t *node); + +bool list_remove(list_t *list, void *data); + +// Removes all elements in the list. Calling this function will return the list to the +// same state it was in after |list_new|. |list| may not be NULL. +void list_clear(list_t *list); + +// Iterates through the entire |list| and calls |callback| for each data element. +// If the list is empty, |callback| will never be called. It is safe to mutate the +// list inside the callback. If an element is added before the node being visited, +// there will be no callback for the newly-inserted node. Neither |list| nor +// |callback| may be NULL. +void list_foreach(const list_t *list, list_iter_cb callback); + +// Returns an iterator to the first element in |list|. |list| may not be NULL. +// The returned iterator is valid as long as it does not equal the value returned +// by |list_end|. +list_node_t *list_begin(const list_t *list); + +// Returns an iterator that points past the end of the list. In other words, +// this function returns the value of an invalid iterator for the given list. +// When an iterator has the same value as what's returned by this function, you +// may no longer call |list_next| with the iterator. |list| may not be NULL. +list_node_t *list_end(const list_t *list); + +// Given a valid iterator |node|, this function returns the next value for the +// iterator. If the returned value equals the value returned by |list_end|, the +// iterator has reached the end of the list and may no longer be used for any +// purpose. +list_node_t *list_next(const list_node_t *node); + +// Returns the value stored at the location pointed to by the iterator |node|. +// |node| must not equal the value returned by |list_end|. +void *list_node(const list_node_t *node); + +#endif /* _LIST_H_ */ diff --git a/tools/sdk/include/bluedroid/osi.h b/tools/sdk/include/bluedroid/osi.h new file mode 100755 index 00000000..3308255b --- /dev/null +++ b/tools/sdk/include/bluedroid/osi.h @@ -0,0 +1,26 @@ + +#ifndef _OSI_H_ +#define _OSI_H_ + +#include +#include + +#define UNUSED_ATTR __attribute__((unused)) +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +#define INVALID_FD (-1) + +#define CONCAT(a, b) a##b + +// Use during compile time to check conditional values +// NOTE: The the failures will present as a generic error +// "error: initialization makes pointer from integer without a cast" +// but the file and line number will present the condition that +// failed. +#define DUMMY_COUNTER(c) CONCAT(__osi_dummy_, c) +#define DUMMY_PTR DUMMY_COUNTER(__COUNTER__) + +#define COMPILE_ASSERT(x) char * DUMMY_PTR = !(x) + +typedef uint32_t timeout_t; + +#endif /*_OSI_H_*/ diff --git a/tools/sdk/include/bluedroid/osi_arch.h b/tools/sdk/include/bluedroid/osi_arch.h new file mode 100755 index 00000000..491d4829 --- /dev/null +++ b/tools/sdk/include/bluedroid/osi_arch.h @@ -0,0 +1,45 @@ +#ifndef __os_ARCH_H__ +#define __os_ARCH_H__ + +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/queue.h" +#include "freertos/semphr.h" + +#define OSI_ARCH_TIMEOUT 0xffffffffUL + +typedef xSemaphoreHandle osi_sem_t; +typedef xSemaphoreHandle osi_mutex_t; + +#define osi_mutex_valid( x ) ( ( ( *x ) == NULL) ? pdFALSE : pdTRUE ) +#define osi_mutex_set_invalid( x ) ( ( *x ) = NULL ) +#define osi_sem_valid( x ) ( ( ( *x ) == NULL) ? pdFALSE : pdTRUE ) +#define osi_sem_set_invalid( x ) ( ( *x ) = NULL ) + +int osi_mutex_new(osi_mutex_t *pxMutex); + +void osi_mutex_lock(osi_mutex_t *pxMutex); + +int osi_mutex_trylock(osi_mutex_t *pxMutex); + +void osi_mutex_unlock(osi_mutex_t *pxMutex); + +void osi_mutex_free(osi_mutex_t *pxMutex); + +int osi_sem_new(osi_sem_t *sem, uint32_t max_count, uint32_t init_count); + +void osi_sem_signal(osi_sem_t *sem); + +uint32_t osi_sem_wait(osi_sem_t *sem, uint32_t timeout); + +void osi_sem_free(osi_sem_t *sem); + +void osi_arch_init(void); + +uint32_t osi_now(void); + +void osi_delay_ms(uint32_t ms); + + +#endif /* __os_ARCH_H__ */ + diff --git a/tools/sdk/include/bluedroid/p_256_ecc_pp.h b/tools/sdk/include/bluedroid/p_256_ecc_pp.h new file mode 100644 index 00000000..029a79ff --- /dev/null +++ b/tools/sdk/include/bluedroid/p_256_ecc_pp.h @@ -0,0 +1,65 @@ +/****************************************************************************** + * + * Copyright (C) 2006-2015 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This file contains simple pairing algorithms using Elliptic Curve Cryptography for private public key + * + ******************************************************************************/ + +#pragma once + +#include "p_256_multprecision.h" + +typedef unsigned long DWORD; + +typedef struct { + DWORD x[KEY_LENGTH_DWORDS_P256]; + DWORD y[KEY_LENGTH_DWORDS_P256]; + DWORD z[KEY_LENGTH_DWORDS_P256]; +} Point; + +typedef struct { + // curve's coefficients + DWORD a[KEY_LENGTH_DWORDS_P256]; + DWORD b[KEY_LENGTH_DWORDS_P256]; + + //whether a is -3 + int a_minus3; + + // prime modulus + DWORD p[KEY_LENGTH_DWORDS_P256]; + + // Omega, p = 2^m -omega + DWORD omega[KEY_LENGTH_DWORDS_P256]; + + // base point, a point on E of order r + Point G; + +} elliptic_curve_t; + +extern elliptic_curve_t curve; +extern elliptic_curve_t curve_p256; + +void ECC_PointMult_Bin_NAF(Point *q, Point *p, DWORD *n, uint32_t keyLength); + +#define ECC_PointMult(q, p, n, keyLength) ECC_PointMult_Bin_NAF(q, p, n, keyLength) + +void p_256_init_curve(UINT32 keyLength); + + diff --git a/tools/sdk/include/bluedroid/p_256_multprecision.h b/tools/sdk/include/bluedroid/p_256_multprecision.h new file mode 100644 index 00000000..ac32320a --- /dev/null +++ b/tools/sdk/include/bluedroid/p_256_multprecision.h @@ -0,0 +1,62 @@ +/****************************************************************************** + * + * Copyright (C) 2006-2015 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This file contains simple pairing algorithms + * + ******************************************************************************/ +#pragma once + +#include "bt_types.h" + +/* Type definitions */ +typedef unsigned long DWORD; + +#define DWORD_BITS 32 +#define DWORD_BYTES 4 +#define DWORD_BITS_SHIFT 5 + +#define KEY_LENGTH_DWORDS_P192 6 +#define KEY_LENGTH_DWORDS_P256 8 +/* Arithmetic Operations */ + +int multiprecision_compare(DWORD *a, DWORD *b, uint32_t keyLength); +int multiprecision_iszero(DWORD *a, uint32_t keyLength); +void multiprecision_init(DWORD *c, uint32_t keyLength); +void multiprecision_copy(DWORD *c, DWORD *a, uint32_t keyLength); +UINT32 multiprecision_dword_bits (DWORD a); +UINT32 multiprecision_most_signdwords(DWORD *a, uint32_t keyLength); +UINT32 multiprecision_most_signbits(DWORD *a, uint32_t keyLength); +void multiprecision_inv_mod(DWORD *aminus, DWORD *a, uint32_t keyLength); +DWORD multiprecision_add(DWORD *c, DWORD *a, DWORD *b, uint32_t keyLength); // c=a+b +void multiprecision_add_mod(DWORD *c, DWORD *a, DWORD *b, uint32_t keyLength); +DWORD multiprecision_sub(DWORD *c, DWORD *a, DWORD *b, uint32_t keyLength); // c=a-b +void multiprecision_sub_mod(DWORD *c, DWORD *a, DWORD *b, uint32_t keyLength); +void multiprecision_rshift(DWORD *c, DWORD *a, uint32_t keyLength); // c=a>>1, return carrier +void multiprecision_lshift_mod(DWORD *c, DWORD *a, uint32_t keyLength); // c=a<> RFCOMM_SHIFT_CR; \ + dlci = *p_data++ >> RFCOMM_SHIFT_DLCI; \ + if (!ea) dlci += *p_data++ << RFCOMM_SHIFT_DLCI2; \ +} + +#define RFCOMM_FORMAT_CTRL_FIELD(p_data, ea, cr, dlci) \ + *p_data++ = ea | cr | (dlci << RFCOMM_SHIFT_DLCI) + +#define RFCOMM_PARSE_TYPE_FIELD(type, pf, p_data) \ +{ \ + type = *p_data & ~RFCOMM_PF_MASK; \ + pf = (*p_data++ & RFCOMM_PF_MASK) >> RFCOMM_PF_OFFSET;\ +} + +#define RFCOMM_FORMAT_TYPE_FIELD(p_data, type, pf) \ + *p_data++ = (type | (pf << RFCOMM_PF_OFFSET)) \ +{ \ + type = *p_data & ~RFCOMM_PF_MASK; \ + pf = (*p_data++ & RFCOMM_PF_MASK) >> RFCOMM_PF_OFFSET;\ +} + +#define RFCOMM_PARSE_LEN_FIELD(ea, length, p_data) \ +{ \ + ea = (*p_data & RFCOMM_EA); \ + length = (*p_data++ >> RFCOMM_SHIFT_LENGTH1); \ + if (!ea) length += (*p_data++ << RFCOMM_SHIFT_LENGTH2); \ +} + +#define RFCOMM_FRAME_IS_CMD(initiator, cr) \ + (( (initiator) && !(cr)) || (!(initiator) && (cr))) + +#define RFCOMM_FRAME_IS_RSP(initiator, cr) \ + (( (initiator) && (cr)) || (!(initiator) && !(cr))) + +#define RFCOMM_CR(initiator, is_command) \ + (( ( (initiator) && (is_command)) \ + || (!(initiator) && !(is_command))) << 1) + +#define RFCOMM_I_CR(is_command) ((is_command) ? 0x02 : 0x00) + +#define RFCOMM_MAX_DLCI 61 + +#define RFCOMM_VALID_DLCI(dlci) \ + (((dlci) == 0) || (((dlci) >= 2) && ((dlci) <= RFCOMM_MAX_DLCI))) + + +/* Port Negotiation (PN) */ +#define RFCOMM_PN_DLCI_MASK 0x3F + +#define RFCOMM_PN_FRAM_TYPE_UIH 0x00 +#define RFCOMM_PN_FRAME_TYPE_MASK 0x0F + +#define RFCOMM_PN_CONV_LAYER_MASK 0xF0 +#define RFCOMM_PN_CONV_LAYER_TYPE_1 0 +#define RFCOMM_PN_CONV_LAYER_CBFC_I 0xF0 +#define RFCOMM_PN_CONV_LAYER_CBFC_R 0xE0 + +#define RFCOMM_PN_PRIORITY_MASK 0x3F +#define RFCOMM_PN_PRIORITY_0 0 + +#define RFCOMM_PN_K_MASK 0x07 + +#define RFCOMM_T1_DSEC 0 /* None negotiable in RFCOMM */ +#define RFCOMM_N2 0 /* Number of retransmissions */ +#define RFCOMM_K 0 /* Window size */ +#define RFCOMM_K_MAX 7 /* Max value of K for credit based flow control */ + +#define RFCOMM_MSC_FC 0x02 /* Flow control*/ +#define RFCOMM_MSC_RTC 0x04 /* Ready to communicate*/ +#define RFCOMM_MSC_RTR 0x08 /* Ready to receive*/ +#define RFCOMM_MSC_IC 0x40 /* Incomming call indicator*/ +#define RFCOMM_MSC_DV 0x80 /* Data Valid*/ + +#define RFCOMM_MSC_SHIFT_BREAK 4 +#define RFCOMM_MSC_BREAK_MASK 0xF0 +#define RFCOMM_MSC_BREAK_PRESENT_MASK 0x02 + +#define RFCOMM_BAUD_RATE_2400 0x00 +#define RFCOMM_BAUD_RATE_4800 0x01 +#define RFCOMM_BAUD_RATE_7200 0x02 +#define RFCOMM_BAUD_RATE_9600 0x03 +#define RFCOMM_BAUD_RATE_19200 0x04 +#define RFCOMM_BAUD_RATE_38400 0x05 +#define RFCOMM_BAUD_RATE_57600 0x06 +#define RFCOMM_BAUD_RATE_115200 0x07 +#define RFCOMM_BAUD_RATE_230400 0x08 + +#define RFCOMM_5_BITS 0x00 +#define RFCOMM_6_BITS 0x01 +#define RFCOMM_7_BITS 0x02 +#define RFCOMM_8_BITS 0x03 + +#define RFCOMM_RPN_BITS_MASK 0x03 +#define RFCOMM_RPN_BITS_SHIFT 0 + +#define RFCOMM_ONESTOPBIT 0x00 +#define RFCOMM_ONE5STOPBITS 0x01 + +#define RFCOMM_RPN_STOP_BITS_MASK 0x01 +#define RFCOMM_RPN_STOP_BITS_SHIFT 2 + +#define RFCOMM_PARITY_NO 0x00 +#define RFCOMM_PARITY_YES 0x01 +#define RFCOMM_RPN_PARITY_MASK 0x01 +#define RFCOMM_RPN_PARITY_SHIFT 3 + +#define RFCOMM_ODD_PARITY 0x00 +#define RFCOMM_EVEN_PARITY 0x01 +#define RFCOMM_MARK_PARITY 0x02 +#define RFCOMM_SPACE_PARITY 0x03 + +#define RFCOMM_RPN_PARITY_TYPE_MASK 0x03 +#define RFCOMM_RPN_PARITY_TYPE_SHIFT 4 + +#define RFCOMM_FC_OFF 0x00 +#define RFCOMM_FC_XONXOFF_ON_INPUT 0x01 +#define RFCOMM_FC_XONXOFF_ON_OUTPUT 0x02 +#define RFCOMM_FC_RTR_ON_INPUT 0x04 +#define RFCOMM_FC_RTR_ON_OUTPUT 0x08 +#define RFCOMM_FC_RTC_ON_INPUT 0x10 +#define RFCOMM_FC_RTC_ON_OUTPUT 0x20 +#define RFCOMM_FC_MASK 0x3F + +#define RFCOMM_RPN_PM_BIT_RATE 0x0001 +#define RFCOMM_RPN_PM_DATA_BITS 0x0002 +#define RFCOMM_RPN_PM_STOP_BITS 0x0004 +#define RFCOMM_RPN_PM_PARITY 0x0008 +#define RFCOMM_RPN_PM_PARITY_TYPE 0x0010 +#define RFCOMM_RPN_PM_XON_CHAR 0x0020 +#define RFCOMM_RPN_PM_XOFF_CHAR 0x0040 +#define RFCOMM_RPN_PM_XONXOFF_ON_INPUT 0x0100 +#define RFCOMM_RPN_PM_XONXOFF_ON_OUTPUT 0x0200 +#define RFCOMM_RPN_PM_RTR_ON_INPUT 0x0400 +#define RFCOMM_RPN_PM_RTR_ON_OUTPUT 0x0800 +#define RFCOMM_RPN_PM_RTC_ON_INPUT 0x1000 +#define RFCOMM_RPN_PM_RTC_ON_OUTPUT 0x2000 +#define RFCOMM_RPN_PM_MASK 0x3F7F + +#define RFCOMM_RLS_ERROR 0x01 +#define RFCOMM_RLS_OVERRUN 0x02 +#define RFCOMM_RLS_PARITY 0x04 +#define RFCOMM_RLS_FRAMING 0x08 + +/* Multiplexor channel uses DLCI 0 */ +#define RFCOMM_MX_DLCI 0 + +/* +** Define RFCOMM Multiplexer message types +*/ +#define RFCOMM_MX_PN 0x80 +#define RFCOMM_MX_PN_LEN 8 + +#define RFCOMM_MX_CLD 0xC0 +#define RFCOMM_MX_CLD_LEN 0 + +#define RFCOMM_MX_TEST 0x20 + +#define RFCOMM_MX_FCON 0xA0 +#define RFCOMM_MX_FCON_LEN 0 + +#define RFCOMM_MX_FCOFF 0x60 +#define RFCOMM_MX_FCOFF_LEN 0 + +#define RFCOMM_MX_MSC 0xE0 +#define RFCOMM_MX_MSC_LEN_NO_BREAK 2 +#define RFCOMM_MX_MSC_LEN_WITH_BREAK 3 + +#define RFCOMM_MX_NSC 0x10 +#define RFCOMM_MX_NSC_LEN 1 + +#define RFCOMM_MX_RPN 0x90 +#define RFCOMM_MX_RPN_REQ_LEN 1 +#define RFCOMM_MX_RPN_LEN 8 + +#define RFCOMM_MX_RLS 0x50 +#define RFCOMM_MX_RLS_LEN 2 +#endif diff --git a/tools/sdk/include/bluedroid/sdp_api.h b/tools/sdk/include/bluedroid/sdp_api.h new file mode 100644 index 00000000..c35c1243 --- /dev/null +++ b/tools/sdk/include/bluedroid/sdp_api.h @@ -0,0 +1,724 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ +#ifndef SDP_API_H +#define SDP_API_H + +#include "bt_target.h" +#include "sdpdefs.h" + +/***************************************************************************** +** Constants +*****************************************************************************/ + +/* Success code and error codes */ +#define SDP_SUCCESS 0x0000 +#define SDP_INVALID_VERSION 0x0001 +#define SDP_INVALID_SERV_REC_HDL 0x0002 +#define SDP_INVALID_REQ_SYNTAX 0x0003 +#define SDP_INVALID_PDU_SIZE 0x0004 +#define SDP_INVALID_CONT_STATE 0x0005 +#define SDP_NO_RESOURCES 0x0006 +#define SDP_DI_REG_FAILED 0x0007 +#define SDP_DI_DISC_FAILED 0x0008 +#define SDP_NO_DI_RECORD_FOUND 0x0009 +#define SDP_ERR_ATTR_NOT_PRESENT 0x000A +#define SDP_ILLEGAL_PARAMETER 0x000B + +#define SDP_NO_RECS_MATCH 0xFFF0 +#define SDP_CONN_FAILED 0xFFF1 +#define SDP_CFG_FAILED 0xFFF2 +#define SDP_GENERIC_ERROR 0xFFF3 +#define SDP_DB_FULL 0xFFF4 +#define SDP_INVALID_PDU 0xFFF5 +#define SDP_SECURITY_ERR 0xFFF6 +#define SDP_CONN_REJECTED 0xFFF7 +#define SDP_CANCEL 0xFFF8 + +/* Define the PSM that SDP uses */ +#define SDP_PSM 0x0001 + +/* Legacy #define to avoid code changes - SDP UUID is same as BT UUID */ +#define tSDP_UUID tBT_UUID + +/* Masks for attr_value field of tSDP_DISC_ATTR */ +#define SDP_DISC_ATTR_LEN_MASK 0x0FFF +#define SDP_DISC_ATTR_TYPE(len_type) (len_type >> 12) +#define SDP_DISC_ATTR_LEN(len_type) (len_type & SDP_DISC_ATTR_LEN_MASK) + +/* Maximum number of protocol list items (list_elem in tSDP_PROTOCOL_ELEM) */ +#define SDP_MAX_LIST_ELEMS 3 + + +/***************************************************************************** +** Type Definitions +*****************************************************************************/ + +/* Define a callback function for when discovery is complete. */ +typedef void (tSDP_DISC_CMPL_CB) (UINT16 result); +typedef void (tSDP_DISC_CMPL_CB2) (UINT16 result, void *user_data); + +typedef struct { + BD_ADDR peer_addr; + UINT16 peer_mtu; +} tSDP_DR_OPEN; + +typedef struct { + UINT8 *p_data; + UINT16 data_len; +} tSDP_DR_DATA; + +typedef union { + tSDP_DR_OPEN open; + tSDP_DR_DATA data; +} tSDP_DATA; + +/* Define a callback function for when discovery result is received. */ +typedef void (tSDP_DISC_RES_CB) (UINT16 event, tSDP_DATA *p_data); + +/* Define a structure to hold the discovered service information. */ +typedef struct { + union { + UINT8 u8; /* 8-bit integer */ + UINT16 u16; /* 16-bit integer */ + UINT32 u32; /* 32-bit integer */ + UINT8 array[4]; /* Variable length field */ + struct t_sdp_disc_attr *p_sub_attr; /* Addr of first sub-attr (list)*/ + } v; + +} tSDP_DISC_ATVAL; + +typedef struct t_sdp_disc_attr { + struct t_sdp_disc_attr *p_next_attr; /* Addr of next linked attr */ + UINT16 attr_id; /* Attribute ID */ + UINT16 attr_len_type; /* Length and type fields */ + tSDP_DISC_ATVAL attr_value; /* Variable length entry data */ +} tSDP_DISC_ATTR; + +typedef struct t_sdp_disc_rec { + tSDP_DISC_ATTR *p_first_attr; /* First attribute of record */ + struct t_sdp_disc_rec *p_next_rec; /* Addr of next linked record */ + UINT32 time_read; /* The time the record was read */ + BD_ADDR remote_bd_addr; /* Remote BD address */ +} tSDP_DISC_REC; + +typedef struct { + UINT32 mem_size; /* Memory size of the DB */ + UINT32 mem_free; /* Memory still available */ + tSDP_DISC_REC *p_first_rec; /* Addr of first record in DB */ + UINT16 num_uuid_filters; /* Number of UUIds to filter */ + tSDP_UUID uuid_filters[SDP_MAX_UUID_FILTERS]; /* UUIDs to filter */ + UINT16 num_attr_filters; /* Number of attribute filters */ + UINT16 attr_filters[SDP_MAX_ATTR_FILTERS]; /* Attributes to filter */ + UINT8 *p_free_mem; /* Pointer to free memory */ +#if (SDP_RAW_DATA_INCLUDED == TRUE) + UINT8 *raw_data; /* Received record from server. allocated/released by client */ + UINT32 raw_size; /* size of raw_data */ + UINT32 raw_used; /* length of raw_data used */ +#endif +} tSDP_DISCOVERY_DB; + +/* This structure is used to add protocol lists and find protocol elements */ +typedef struct { + UINT16 protocol_uuid; + UINT16 num_params; + UINT16 params[SDP_MAX_PROTOCOL_PARAMS]; +} tSDP_PROTOCOL_ELEM; + +typedef struct { + UINT16 num_elems; + tSDP_PROTOCOL_ELEM list_elem[SDP_MAX_LIST_ELEMS]; +} tSDP_PROTO_LIST_ELEM; + +/* Device Identification (DI) data structure +*/ +/* Used to set the DI record */ +typedef struct t_sdp_di_record { + UINT16 vendor; + UINT16 vendor_id_source; + UINT16 product; + UINT16 version; + BOOLEAN primary_record; + char client_executable_url[SDP_MAX_ATTR_LEN]; /* optional */ + char service_description[SDP_MAX_ATTR_LEN]; /* optional */ + char documentation_url[SDP_MAX_ATTR_LEN]; /* optional */ +} tSDP_DI_RECORD; + +/* Used to get the DI record */ +typedef struct t_sdp_di_get_record { + UINT16 spec_id; + tSDP_DI_RECORD rec; +} tSDP_DI_GET_RECORD; + + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif + +/* API into the SDP layer for service discovery. */ + +/******************************************************************************* +** +** Function SDP_InitDiscoveryDb +** +** Description This function is called to initialize a discovery database. +** +** Returns TRUE if successful, FALSE if one or more parameters are bad +** +*******************************************************************************/ +extern BOOLEAN SDP_InitDiscoveryDb (tSDP_DISCOVERY_DB *p_db, UINT32 len, + UINT16 num_uuid, + tSDP_UUID *p_uuid_list, + UINT16 num_attr, + UINT16 *p_attr_list); + +/******************************************************************************* +** +** Function SDP_CancelServiceSearch +** +** Description This function cancels an active query to an SDP server. +** +** Returns TRUE if discovery cancelled, FALSE if a matching activity is not found. +** +*******************************************************************************/ +extern BOOLEAN SDP_CancelServiceSearch (tSDP_DISCOVERY_DB *p_db); + +/******************************************************************************* +** +** Function SDP_ServiceSearchRequest +** +** Description This function queries an SDP server for information. +** +** Returns TRUE if discovery started, FALSE if failed. +** +*******************************************************************************/ +extern BOOLEAN SDP_ServiceSearchRequest (UINT8 *p_bd_addr, + tSDP_DISCOVERY_DB *p_db, + tSDP_DISC_CMPL_CB *p_cb); + + +/******************************************************************************* +** +** Function SDP_ServiceSearchAttributeRequest +** +** Description This function queries an SDP server for information. +** +** The difference between this API function and the function +** SDP_ServiceSearchRequest is that this one does a +** combined ServiceSearchAttributeRequest SDP function. +** +** Returns TRUE if discovery started, FALSE if failed. +** +*******************************************************************************/ +extern BOOLEAN SDP_ServiceSearchAttributeRequest (UINT8 *p_bd_addr, + tSDP_DISCOVERY_DB *p_db, + tSDP_DISC_CMPL_CB *p_cb); + +/******************************************************************************* +** +** Function SDP_ServiceSearchAttributeRequest2 +** +** Description This function queries an SDP server for information. +** +** The difference between this API function and the function +** SDP_ServiceSearchRequest is that this one does a +** combined ServiceSearchAttributeRequest SDP function with the +** user data piggyback +** +** Returns TRUE if discovery started, FALSE if failed. +** +*******************************************************************************/ +extern BOOLEAN SDP_ServiceSearchAttributeRequest2 (UINT8 *p_bd_addr, + tSDP_DISCOVERY_DB *p_db, + tSDP_DISC_CMPL_CB2 *p_cb, void *user_data); + +/* API of utilities to find data in the local discovery database */ + +/******************************************************************************* +** +** Function SDP_FindAttributeInDb +** +** Description This function queries an SDP database for a specific attribute. +** If the p_start_rec pointer is NULL, it looks from the beginning +** of the database, else it continues from the next record after +** p_start_rec. +** +** Returns Pointer to matching record, or NULL +** +*******************************************************************************/ +extern tSDP_DISC_REC *SDP_FindAttributeInDb (tSDP_DISCOVERY_DB *p_db, + UINT16 attr_id, + tSDP_DISC_REC *p_start_rec); + + +/******************************************************************************* +** +** Function SDP_FindAttributeInRec +** +** Description This function searches an SDP discovery record for a +** specific attribute. +** +** Returns Pointer to matching attribute entry, or NULL +** +*******************************************************************************/ +extern tSDP_DISC_ATTR *SDP_FindAttributeInRec (tSDP_DISC_REC *p_rec, + UINT16 attr_id); + + +/******************************************************************************* +** +** Function SDP_FindServiceInDb +** +** Description This function queries an SDP database for a specific service. +** If the p_start_rec pointer is NULL, it looks from the beginning +** of the database, else it continues from the next record after +** p_start_rec. +** +** Returns Pointer to record containing service class, or NULL +** +*******************************************************************************/ +extern tSDP_DISC_REC *SDP_FindServiceInDb (tSDP_DISCOVERY_DB *p_db, + UINT16 service_uuid, + tSDP_DISC_REC *p_start_rec); + + +/******************************************************************************* +** +** Function SDP_FindServiceUUIDInDb +** +** Description This function queries an SDP database for a specific service. +** If the p_start_rec pointer is NULL, it looks from the beginning +** of the database, else it continues from the next record after +** p_start_rec. +** +** NOTE the only difference between this function and the previous +** function "SDP_FindServiceInDb()" is that this function takes +** a tBT_UUID input. +** +** Returns Pointer to record containing service class, or NULL +** +*******************************************************************************/ +extern tSDP_DISC_REC *SDP_FindServiceUUIDInDb (tSDP_DISCOVERY_DB *p_db, + tBT_UUID *p_uuid, + tSDP_DISC_REC *p_start_rec); + +/******************************************************************************* +** +** Function SDP_FindServiceUUIDInRec_128bit +** +** Description This function is called to read the 128-bit service UUID within a record +** if there is any. +** +** Parameters: p_rec - pointer to a SDP record. +** p_uuid - output parameter to save the UUID found. +** +** Returns TRUE if found, otherwise FALSE. +** +*******************************************************************************/ +extern BOOLEAN SDP_FindServiceUUIDInRec_128bit(tSDP_DISC_REC *p_rec, tBT_UUID *p_uuid); + +/******************************************************************************* +** +** Function SDP_FindServiceInDb_128bit +** +** Description This function queries an SDP database for a specific service. +** If the p_start_rec pointer is NULL, it looks from the beginning +** of the database, else it continues from the next record after +** p_start_rec. +** +** Returns Pointer to record containing service class, or NULL +** +*******************************************************************************/ +extern tSDP_DISC_REC *SDP_FindServiceInDb_128bit(tSDP_DISCOVERY_DB *p_db, + tSDP_DISC_REC *p_start_rec); + +/******************************************************************************* +** +** Function SDP_FindProtocolListElemInRec +** +** Description This function looks at a specific discovery record for a +** protocol list element. +** +** Returns TRUE if found, FALSE if not +** If found, the passed protocol list element is filled in. +** +*******************************************************************************/ +extern BOOLEAN SDP_FindProtocolListElemInRec (tSDP_DISC_REC *p_rec, + UINT16 layer_uuid, + tSDP_PROTOCOL_ELEM *p_elem); + + +/******************************************************************************* +** +** Function SDP_FindAddProtoListsElemInRec +** +** Description This function looks at a specific discovery record for a +** protocol list element. +** +** Returns TRUE if found, FALSE if not +** If found, the passed protocol list element is filled in. +** +*******************************************************************************/ +extern BOOLEAN SDP_FindAddProtoListsElemInRec (tSDP_DISC_REC *p_rec, + UINT16 layer_uuid, + tSDP_PROTOCOL_ELEM *p_elem); + + +/******************************************************************************* +** +** Function SDP_FindProfileVersionInRec +** +** Description This function looks at a specific discovery record for the +** Profile list descriptor, and pulls out the version number. +** The version number consists of an 8-bit major version and +** an 8-bit minor version. +** +** Returns TRUE if found, FALSE if not +** If found, the major and minor version numbers that were passed +** in are filled in. +** +*******************************************************************************/ +extern BOOLEAN SDP_FindProfileVersionInRec (tSDP_DISC_REC *p_rec, + UINT16 profile_uuid, + UINT16 *p_version); + + +/* API into SDP for local service database updates */ + +/******************************************************************************* +** +** Function SDP_CreateRecord +** +** Description This function is called to create a record in the database. +** This would be through the SDP database maintenance API. The +** record is created empty, teh application should then call +** "add_attribute" to add the record's attributes. +** +** Returns Record handle if OK, else 0. +** +*******************************************************************************/ +extern UINT32 SDP_CreateRecord (void); + + +/******************************************************************************* +** +** Function SDP_DeleteRecord +** +** Description This function is called to add a record (or all records) +** from the database. This would be through the SDP database +** maintenance API. +** +** If a record handle of 0 is passed, all records are deleted. +** +** Returns TRUE if succeeded, else FALSE +** +*******************************************************************************/ +extern BOOLEAN SDP_DeleteRecord (UINT32 handle); + + +/******************************************************************************* +** +** Function SDP_ReadRecord +** +** Description This function is called to get the raw data of the record +** with the given handle from the database. +** +** Returns -1, if the record is not found. +** Otherwise, the offset (0 or 1) to start of data in p_data. +** +** The size of data copied into p_data is in *p_data_len. +** +*******************************************************************************/ +extern INT32 SDP_ReadRecord(UINT32 handle, UINT8 *p_data, INT32 *p_data_len); + +/******************************************************************************* +** +** Function SDP_AddAttribute +** +** Description This function is called to add an attribute to a record. +** This would be through the SDP database maintenance API. +** If the attribute already exists in the record, it is replaced +** with the new value. +** +** NOTE Attribute values must be passed as a Big Endian stream. +** +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +extern BOOLEAN SDP_AddAttribute (UINT32 handle, UINT16 attr_id, + UINT8 attr_type, UINT32 attr_len, + UINT8 *p_val); + + +/******************************************************************************* +** +** Function SDP_AddSequence +** +** Description This function is called to add a sequence to a record. +** This would be through the SDP database maintenance API. +** If the sequence already exists in the record, it is replaced +** with the new sequence. +** +** NOTE Element values must be passed as a Big Endian stream. +** +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +extern BOOLEAN SDP_AddSequence (UINT32 handle, UINT16 attr_id, + UINT16 num_elem, UINT8 type[], + UINT8 len[], UINT8 *p_val[]); + + +/******************************************************************************* +** +** Function SDP_AddUuidSequence +** +** Description This function is called to add a UUID sequence to a record. +** This would be through the SDP database maintenance API. +** If the sequence already exists in the record, it is replaced +** with the new sequence. +** +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +extern BOOLEAN SDP_AddUuidSequence (UINT32 handle, UINT16 attr_id, + UINT16 num_uuids, UINT16 *p_uuids); + + +/******************************************************************************* +** +** Function SDP_AddProtocolList +** +** Description This function is called to add a protocol descriptor list to +** a record. This would be through the SDP database maintenance API. +** If the protocol list already exists in the record, it is replaced +** with the new list. +** +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +extern BOOLEAN SDP_AddProtocolList (UINT32 handle, UINT16 num_elem, + tSDP_PROTOCOL_ELEM *p_elem_list); + + +/******************************************************************************* +** +** Function SDP_AddAdditionProtoLists +** +** Description This function is called to add a protocol descriptor list to +** a record. This would be through the SDP database maintenance API. +** If the protocol list already exists in the record, it is replaced +** with the new list. +** +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +extern BOOLEAN SDP_AddAdditionProtoLists (UINT32 handle, UINT16 num_elem, + tSDP_PROTO_LIST_ELEM *p_proto_list); + + +/******************************************************************************* +** +** Function SDP_AddProfileDescriptorList +** +** Description This function is called to add a profile descriptor list to +** a record. This would be through the SDP database maintenance API. +** If the version already exists in the record, it is replaced +** with the new one. +** +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +extern BOOLEAN SDP_AddProfileDescriptorList (UINT32 handle, + UINT16 profile_uuid, + UINT16 version); + + +/******************************************************************************* +** +** Function SDP_AddLanguageBaseAttrIDList +** +** Description This function is called to add a language base attr list to +** a record. This would be through the SDP database maintenance API. +** If the version already exists in the record, it is replaced +** with the new one. +** +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +extern BOOLEAN SDP_AddLanguageBaseAttrIDList (UINT32 handle, + UINT16 lang, UINT16 char_enc, + UINT16 base_id); + + +/******************************************************************************* +** +** Function SDP_AddServiceClassIdList +** +** Description This function is called to add a service list to a record. +** This would be through the SDP database maintenance API. +** If the service list already exists in the record, it is replaced +** with the new list. +** +** Returns TRUE if added OK, else FALSE +** +*******************************************************************************/ +extern BOOLEAN SDP_AddServiceClassIdList (UINT32 handle, + UINT16 num_services, + UINT16 *p_service_uuids); + + +/******************************************************************************* +** +** Function SDP_DeleteAttribute +** +** Description This function is called to delete an attribute from a record. +** This would be through the SDP database maintenance API. +** +** Returns TRUE if deleted OK, else FALSE if not found +** +*******************************************************************************/ +extern BOOLEAN SDP_DeleteAttribute (UINT32 handle, UINT16 attr_id); + + +/* Device Identification APIs */ + +/******************************************************************************* +** +** Function SDP_SetLocalDiRecord +** +** Description This function adds a DI record to the local SDP database. +** +** Returns Returns SDP_SUCCESS if record added successfully, else error +** +*******************************************************************************/ +extern UINT16 SDP_SetLocalDiRecord (tSDP_DI_RECORD *device_info, + UINT32 *p_handle); + +/******************************************************************************* +** +** Function SDP_DiDiscover +** +** Description This function queries a remote device for DI information. +** +** Returns SDP_SUCCESS if query started successfully, else error +** +*******************************************************************************/ +extern UINT16 SDP_DiDiscover (BD_ADDR remote_device, + tSDP_DISCOVERY_DB *p_db, UINT32 len, + tSDP_DISC_CMPL_CB *p_cb); + + +/******************************************************************************* +** +** Function SDP_GetNumDiRecords +** +** Description Searches specified database for DI records +** +** Returns number of DI records found +** +*******************************************************************************/ +extern UINT8 SDP_GetNumDiRecords (tSDP_DISCOVERY_DB *p_db); + + +/******************************************************************************* +** +** Function SDP_GetDiRecord +** +** Description This function retrieves a remote device's DI record from +** the specified database. +** +** Returns SDP_SUCCESS if record retrieved, else error +** +*******************************************************************************/ +extern UINT16 SDP_GetDiRecord (UINT8 getRecordIndex, + tSDP_DI_GET_RECORD *device_info, + tSDP_DISCOVERY_DB *p_db); + + +/******************************************************************************* +** +** Function SDP_SetTraceLevel +** +** Description This function sets the trace level for SDP. If called with +** a value of 0xFF, it simply reads the current trace level. +** +** Returns the new (current) trace level +** +*******************************************************************************/ +extern UINT8 SDP_SetTraceLevel (UINT8 new_level); + +/******************************************************************************* +** +** Function SDP_ConnOpen +** +** Description This function creates a connection to the SDP server on the +** given device. +** +** Returns 0, if failed to initiate connection. Otherwise, the handle. +** +*******************************************************************************/ +UINT32 SDP_ConnOpen (UINT8 *p_bd_addr, tSDP_DISC_RES_CB *p_rcb, + tSDP_DISC_CMPL_CB *p_cb); + +/******************************************************************************* +** +** Function SDP_WriteData +** +** Description This function sends data to the connected SDP server. +** +** Returns TRUE if data is sent, FALSE if failed. +** +*******************************************************************************/ +BOOLEAN SDP_WriteData (UINT32 handle, BT_HDR *p_msg); + +/******************************************************************************* +** +** Function SDP_ConnClose +** +** Description This function is called to close a SDP connection. +** +** Parameters: handle - Handle of the connection returned by SDP_ConnOpen +** +** Returns TRUE if connection is closed, FALSE if failed to find the handle. +** +*******************************************************************************/ +BOOLEAN SDP_ConnClose (UINT32 handle); + +/******************************************************************************* +** +** Function SDP_FindServiceUUIDInRec +** +** Description This function is called to read the service UUID within a record +** if there is any. +** +** Parameters: p_rec - pointer to a SDP record. +** +** Returns TRUE if found, otherwise FALSE. +** +*******************************************************************************/ +BOOLEAN SDP_FindServiceUUIDInRec(tSDP_DISC_REC *p_rec, tBT_UUID *p_uuid); + +#ifdef __cplusplus +} +#endif + +#endif /* SDP_API_H */ diff --git a/tools/sdk/include/bluedroid/sdpdefs.h b/tools/sdk/include/bluedroid/sdpdefs.h new file mode 100755 index 00000000..44d87e74 --- /dev/null +++ b/tools/sdk/include/bluedroid/sdpdefs.h @@ -0,0 +1,327 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This file contains the definitions for the SDP API + * + ******************************************************************************/ + +#ifndef SDP_DEFS_H +#define SDP_DEFS_H + +/* Define the service attribute IDs. +*/ +#define ATTR_ID_SERVICE_RECORD_HDL 0x0000 +#define ATTR_ID_SERVICE_CLASS_ID_LIST 0x0001 +#define ATTR_ID_SERVICE_RECORD_STATE 0x0002 +#define ATTR_ID_SERVICE_ID 0x0003 +#define ATTR_ID_PROTOCOL_DESC_LIST 0x0004 +#define ATTR_ID_BROWSE_GROUP_LIST 0x0005 +#define ATTR_ID_LANGUAGE_BASE_ATTR_ID_LIST 0x0006 +#define ATTR_ID_SERVICE_INFO_TIME_TO_LIVE 0x0007 +#define ATTR_ID_SERVICE_AVAILABILITY 0x0008 +#define ATTR_ID_BT_PROFILE_DESC_LIST 0x0009 +#define ATTR_ID_DOCUMENTATION_URL 0x000A +#define ATTR_ID_CLIENT_EXE_URL 0x000B +#define ATTR_ID_ICON_URL 0x000C +#define ATTR_ID_ADDITION_PROTO_DESC_LISTS 0x000D + +#define LANGUAGE_BASE_ID 0x0100 +#define ATTR_ID_SERVICE_NAME LANGUAGE_BASE_ID + 0x0000 +#define ATTR_ID_SERVICE_DESCRIPTION LANGUAGE_BASE_ID + 0x0001 +#define ATTR_ID_PROVIDER_NAME LANGUAGE_BASE_ID + 0x0002 + +/* Device Identification (DI) +*/ +#define ATTR_ID_SPECIFICATION_ID 0x0200 +#define ATTR_ID_VENDOR_ID 0x0201 +#define ATTR_ID_PRODUCT_ID 0x0202 +#define ATTR_ID_PRODUCT_VERSION 0x0203 +#define ATTR_ID_PRIMARY_RECORD 0x0204 +#define ATTR_ID_VENDOR_ID_SOURCE 0x0205 + +#define BLUETOOTH_DI_SPECIFICATION 0x0103 /* 1.3 */ +#define DI_VENDOR_ID_DEFAULT 0xFFFF +#define DI_VENDOR_ID_SOURCE_BTSIG 0x0001 +#define DI_VENDOR_ID_SOURCE_USBIF 0x0002 + + +#define ATTR_ID_IP_SUBNET 0x0200 /* PAN Profile (***) */ +#define ATTR_ID_VERSION_NUMBER_LIST 0x0200 +#define ATTR_ID_GOEP_L2CAP_PSM 0x0200 +#define ATTR_ID_GROUP_ID 0x0200 +#define ATTR_ID_SERVICE_DATABASE_STATE 0x0201 +#define ATTR_ID_SERVICE_VERSION 0x0300 +#define ATTR_ID_HCRP_1284ID 0x0300 + +#define ATTR_ID_SUPPORTED_DATA_STORES 0x0301 +#define ATTR_ID_NETWORK 0x0301 +#define ATTR_ID_EXTERNAL_NETWORK 0x0301 +#define ATTR_ID_FAX_CLASS_1_SUPPORT 0x0302 +#define ATTR_ID_REMOTE_AUDIO_VOLUME_CONTROL 0x0302 +#define ATTR_ID_DEVICE_NAME 0x0302 +#define ATTR_ID_SUPPORTED_FORMATS_LIST 0x0303 +#define ATTR_ID_FAX_CLASS_2_0_SUPPORT 0x0303 +#define ATTR_ID_FAX_CLASS_2_SUPPORT 0x0304 +#define ATTR_ID_FRIENDLY_NAME 0x0304 +#define ATTR_ID_AUDIO_FEEDBACK_SUPPORT 0x0305 +#define ATTR_ID_NETWORK_ADDRESS 0x0306 +#define ATTR_ID_DEVICE_LOCATION 0x0306 +#define ATTR_ID_WAP_GATEWAY 0x0307 +#define ATTR_ID_HOME_PAGE_URL 0x0308 +#define ATTR_ID_WAP_STACK_TYPE 0x0309 +#define ATTR_ID_IMG_SUPPORTED_CAPABILITIES 0x0310 /* Imaging Profile */ +#define ATTR_ID_SUPPORTED_FEATURES 0x0311 /* HFP, BIP */ +#define ATTR_ID_IMG_SUPPORTED_FUNCTIONS 0x0312 /* Imaging Profile */ +#define ATTR_ID_IMG_TOT_DATA_CAPABILITY 0x0313 /* Imaging Profile */ +#define ATTR_ID_SUPPORTED_REPOSITORIES 0x0314 /* Phone book access Profile */ +#define ATTR_ID_MAS_INSTANCE_ID 0x0315 /* MAP profile */ +#define ATTR_ID_SUPPORTED_MSG_TYPE 0x0316 /* MAP profile */ +#define ATTR_ID_MAP_SUPPORTED_FEATURES 0x0317 /* MAP profile */ +#define ATTR_ID_PBAP_SUPPORTED_FEATURES 0x0317 /* PBAP profile */ + + +/* These values are for the BPP profile */ +#define ATTR_ID_DOCUMENT_FORMATS_SUPPORTED 0x0350 +#define ATTR_ID_CHARACTER_REPERTOIRES_SUPPORTED 0x0352 +#define ATTR_ID_XHTML_IMAGE_FORMATS_SUPPORTED 0x0354 +#define ATTR_ID_COLOR_SUPPORTED 0x0356 +#define ATTR_ID_1284ID 0x0358 +#define ATTR_ID_PRINTER_NAME 0x035A +#define ATTR_ID_PRINTER_LOCATION 0x035C +#define ATTR_ID_DUPLEX_SUPPORTED 0x035E +#define ATTR_ID_MEDIA_TYPES_SUPPORTED 0x0360 +#define ATTR_ID_MAX_MEDIA_WIDTH 0x0362 +#define ATTR_ID_MAX_MEDIA_LENGTH 0x0364 +#define ATTR_ID_ENHANCED_LAYOUT_SUPPORTED 0x0366 +#define ATTR_ID_RUI_FORMATS_SUPPORTED 0x0368 +#define ATTR_ID_RUI_REF_PRINTING_SUPPORTED 0x0370 /* Boolean */ +#define ATTR_ID_RUI_DIRECT_PRINTING_SUPPORTED 0x0372 /* Boolean */ +#define ATTR_ID_REF_PRINTING_TOP_URL 0x0374 +#define ATTR_ID_DIRECT_PRINTING_TOP_URL 0x0376 +#define ATTR_ID_PRINTER_ADMIN_RUI_TOP_URL 0x0378 +#define ATTR_ID_BPP_DEVICE_NAME 0x037A + +/* These values are for the PAN profile */ +#define ATTR_ID_SECURITY_DESCRIPTION 0x030A +#define ATTR_ID_NET_ACCESS_TYPE 0x030B +#define ATTR_ID_MAX_NET_ACCESS_RATE 0x030C +#define ATTR_ID_IPV4_SUBNET 0x030D +#define ATTR_ID_IPV6_SUBNET 0x030E +#define ATTR_ID_PAN_SECURITY 0x0400 + +/* These values are for HID profile */ +#define ATTR_ID_HID_DEVICE_RELNUM 0x0200 +#define ATTR_ID_HID_PARSER_VERSION 0x0201 +#define ATTR_ID_HID_DEVICE_SUBCLASS 0x0202 +#define ATTR_ID_HID_COUNTRY_CODE 0x0203 +#define ATTR_ID_HID_VIRTUAL_CABLE 0x0204 +#define ATTR_ID_HID_RECONNECT_INITIATE 0x0205 +#define ATTR_ID_HID_DESCRIPTOR_LIST 0x0206 +#define ATTR_ID_HID_LANGUAGE_ID_BASE 0x0207 +#define ATTR_ID_HID_SDP_DISABLE 0x0208 +#define ATTR_ID_HID_BATTERY_POWER 0x0209 +#define ATTR_ID_HID_REMOTE_WAKE 0x020A +#define ATTR_ID_HID_PROFILE_VERSION 0x020B +#define ATTR_ID_HID_LINK_SUPERVISION_TO 0x020C +#define ATTR_ID_HID_NORMALLY_CONNECTABLE 0x020D +#define ATTR_ID_HID_BOOT_DEVICE 0x020E +#define ATTR_ID_HID_SSR_HOST_MAX_LAT 0x020F +#define ATTR_ID_HID_SSR_HOST_MIN_TOUT 0x0210 + +/* These values are for the HDP profile */ +#define ATTR_ID_HDP_SUP_FEAT_LIST 0x0200 /* Supported features list */ +#define ATTR_ID_HDP_DATA_EXCH_SPEC 0x0301 /* Data exchange specification */ +#define ATTR_ID_HDP_MCAP_SUP_PROC 0x0302 /* MCAP supported procedures */ + +/* Define common 16-bit protocol UUIDs +*/ +#define UUID_PROTOCOL_SDP 0x0001 +#define UUID_PROTOCOL_UDP 0x0002 +#define UUID_PROTOCOL_RFCOMM 0x0003 +#define UUID_PROTOCOL_TCP 0x0004 +#define UUID_PROTOCOL_TCS_BIN 0x0005 +#define UUID_PROTOCOL_TCS_AT 0x0006 +#define UUID_PROTOCOL_OBEX 0x0008 +#define UUID_PROTOCOL_IP 0x0009 +#define UUID_PROTOCOL_FTP 0x000A +#define UUID_PROTOCOL_HTTP 0x000C +#define UUID_PROTOCOL_WSP 0x000E +#define UUID_PROTOCOL_BNEP 0x000F +#define UUID_PROTOCOL_UPNP 0x0010 +#define UUID_PROTOCOL_HIDP 0x0011 +#define UUID_PROTOCOL_HCRP_CTRL 0x0012 +#define UUID_PROTOCOL_HCRP_DATA 0x0014 +#define UUID_PROTOCOL_HCRP_NOTIF 0x0016 +#define UUID_PROTOCOL_AVCTP 0x0017 +#define UUID_PROTOCOL_AVDTP 0x0019 +#define UUID_PROTOCOL_CMTP 0x001B +#define UUID_PROTOCOL_UDI 0x001D +#define UUID_PROTOCOL_MCAP_CTRL 0x001E +#define UUID_PROTOCOL_MCAP_DATA 0x001F +#define UUID_PROTOCOL_L2CAP 0x0100 +#define UUID_PROTOCOL_ATT 0x0007 + +/* Define common 16-bit service class UUIDs +*/ +#define UUID_SERVCLASS_SERVICE_DISCOVERY_SERVER 0X1000 +#define UUID_SERVCLASS_BROWSE_GROUP_DESCRIPTOR 0X1001 +#define UUID_SERVCLASS_PUBLIC_BROWSE_GROUP 0X1002 +#define UUID_SERVCLASS_SERIAL_PORT 0X1101 +#define UUID_SERVCLASS_LAN_ACCESS_USING_PPP 0X1102 +#define UUID_SERVCLASS_DIALUP_NETWORKING 0X1103 +#define UUID_SERVCLASS_IRMC_SYNC 0X1104 +#define UUID_SERVCLASS_OBEX_OBJECT_PUSH 0X1105 +#define UUID_SERVCLASS_OBEX_FILE_TRANSFER 0X1106 +#define UUID_SERVCLASS_IRMC_SYNC_COMMAND 0X1107 +#define UUID_SERVCLASS_HEADSET 0X1108 +#define UUID_SERVCLASS_CORDLESS_TELEPHONY 0X1109 +#define UUID_SERVCLASS_AUDIO_SOURCE 0X110A +#define UUID_SERVCLASS_AUDIO_SINK 0X110B +#define UUID_SERVCLASS_AV_REM_CTRL_TARGET 0X110C /* Audio/Video Control profile */ +#define UUID_SERVCLASS_ADV_AUDIO_DISTRIBUTION 0X110D /* Advanced Audio Distribution profile */ +#define UUID_SERVCLASS_AV_REMOTE_CONTROL 0X110E /* Audio/Video Control profile */ +#define UUID_SERVCLASS_AV_REM_CTRL_CONTROL 0X110F /* Audio/Video Control profile */ +#define UUID_SERVCLASS_INTERCOM 0X1110 +#define UUID_SERVCLASS_FAX 0X1111 +#define UUID_SERVCLASS_HEADSET_AUDIO_GATEWAY 0X1112 +#define UUID_SERVCLASS_WAP 0X1113 +#define UUID_SERVCLASS_WAP_CLIENT 0X1114 +#define UUID_SERVCLASS_PANU 0X1115 /* PAN profile */ +#define UUID_SERVCLASS_NAP 0X1116 /* PAN profile */ +#define UUID_SERVCLASS_GN 0X1117 /* PAN profile */ +#define UUID_SERVCLASS_DIRECT_PRINTING 0X1118 /* BPP profile */ +#define UUID_SERVCLASS_REFERENCE_PRINTING 0X1119 /* BPP profile */ +#define UUID_SERVCLASS_IMAGING 0X111A /* Imaging profile */ +#define UUID_SERVCLASS_IMAGING_RESPONDER 0X111B /* Imaging profile */ +#define UUID_SERVCLASS_IMAGING_AUTO_ARCHIVE 0X111C /* Imaging profile */ +#define UUID_SERVCLASS_IMAGING_REF_OBJECTS 0X111D /* Imaging profile */ +#define UUID_SERVCLASS_HF_HANDSFREE 0X111E /* Handsfree profile */ +#define UUID_SERVCLASS_AG_HANDSFREE 0X111F /* Handsfree profile */ +#define UUID_SERVCLASS_DIR_PRT_REF_OBJ_SERVICE 0X1120 /* BPP profile */ +#define UUID_SERVCLASS_REFLECTED_UI 0X1121 /* BPP profile */ +#define UUID_SERVCLASS_BASIC_PRINTING 0X1122 /* BPP profile */ +#define UUID_SERVCLASS_PRINTING_STATUS 0X1123 /* BPP profile */ +#define UUID_SERVCLASS_HUMAN_INTERFACE 0X1124 /* HID profile */ +#define UUID_SERVCLASS_CABLE_REPLACEMENT 0X1125 /* HCRP profile */ +#define UUID_SERVCLASS_HCRP_PRINT 0X1126 /* HCRP profile */ +#define UUID_SERVCLASS_HCRP_SCAN 0X1127 /* HCRP profile */ +#define UUID_SERVCLASS_COMMON_ISDN_ACCESS 0X1128 /* CAPI Message Transport Protocol*/ +#define UUID_SERVCLASS_VIDEO_CONFERENCING_GW 0X1129 /* Video Conferencing profile */ +#define UUID_SERVCLASS_UDI_MT 0X112A /* Unrestricted Digital Information profile */ +#define UUID_SERVCLASS_UDI_TA 0X112B /* Unrestricted Digital Information profile */ +#define UUID_SERVCLASS_VCP 0X112C /* Video Conferencing profile */ +#define UUID_SERVCLASS_SAP 0X112D /* SIM Access profile */ +#define UUID_SERVCLASS_PBAP_PCE 0X112E /* Phonebook Access - PCE */ +#define UUID_SERVCLASS_PBAP_PSE 0X112F /* Phonebook Access - PSE */ +#define UUID_SERVCLASS_PHONE_ACCESS 0x1130 +#define UUID_SERVCLASS_HEADSET_HS 0x1131 /* Headset - HS, from HSP v1.2 */ +#define UUID_SERVCLASS_PNP_INFORMATION 0X1200 /* Device Identification */ +#define UUID_SERVCLASS_GENERIC_NETWORKING 0X1201 +#define UUID_SERVCLASS_GENERIC_FILETRANSFER 0X1202 +#define UUID_SERVCLASS_GENERIC_AUDIO 0X1203 +#define UUID_SERVCLASS_GENERIC_TELEPHONY 0X1204 +#define UUID_SERVCLASS_UPNP_SERVICE 0X1205 /* UPNP_Service [ESDP] */ +#define UUID_SERVCLASS_UPNP_IP_SERVICE 0X1206 /* UPNP_IP_Service [ESDP] */ +#define UUID_SERVCLASS_ESDP_UPNP_IP_PAN 0X1300 /* UPNP_IP_PAN [ESDP] */ +#define UUID_SERVCLASS_ESDP_UPNP_IP_LAP 0X1301 /* UPNP_IP_LAP [ESDP] */ +#define UUID_SERVCLASS_ESDP_UPNP_IP_L2CAP 0X1302 /* UPNP_L2CAP [ESDP] */ +#define UUID_SERVCLASS_VIDEO_SOURCE 0X1303 /* Video Distribution Profile (VDP) */ +#define UUID_SERVCLASS_VIDEO_SINK 0X1304 /* Video Distribution Profile (VDP) */ +#define UUID_SERVCLASS_VIDEO_DISTRIBUTION 0X1305 /* Video Distribution Profile (VDP) */ +#define UUID_SERVCLASS_HDP_PROFILE 0X1400 /* Health Device profile (HDP) */ +#define UUID_SERVCLASS_HDP_SOURCE 0X1401 /* Health Device profile (HDP) */ +#define UUID_SERVCLASS_HDP_SINK 0X1402 /* Health Device profile (HDP) */ +#define UUID_SERVCLASS_MAP_PROFILE 0X1134 /* MAP profile UUID */ +#define UUID_SERVCLASS_MESSAGE_ACCESS 0X1132 /* Message Access Service UUID */ +#define UUID_SERVCLASS_MESSAGE_NOTIFICATION 0X1133 /* Message Notification Service UUID */ + +#define UUID_SERVCLASS_GAP_SERVER 0x1800 +#define UUID_SERVCLASS_GATT_SERVER 0x1801 +#define UUID_SERVCLASS_IMMEDIATE_ALERT 0x1802 /* immediate alert */ +#define UUID_SERVCLASS_LINKLOSS 0x1803 /* Link Loss Alert */ +#define UUID_SERVCLASS_TX_POWER 0x1804 /* TX power */ +#define UUID_SERVCLASS_CURRENT_TIME 0x1805 /* Link Loss Alert */ +#define UUID_SERVCLASS_DST_CHG 0x1806 /* DST Time change */ +#define UUID_SERVCLASS_REF_TIME_UPD 0x1807 /* reference time update */ +#define UUID_SERVCLASS_THERMOMETER 0x1809 /* Thermometer UUID */ +#define UUID_SERVCLASS_DEVICE_INFO 0x180A /* device info service */ +#define UUID_SERVCLASS_NWA 0x180B /* Network availability */ +#define UUID_SERVCLASS_HEART_RATE 0x180D /* Heart Rate service */ +#define UUID_SERVCLASS_PHALERT 0x180E /* phone alert service */ +#define UUID_SERVCLASS_BATTERY 0x180F /* battery service */ +#define UUID_SERVCLASS_BPM 0x1810 /* blood pressure service */ +#define UUID_SERVCLASS_ALERT_NOTIFICATION 0x1811 /* alert notification service */ +#define UUID_SERVCLASS_LE_HID 0x1812 /* HID over LE */ +#define UUID_SERVCLASS_SCAN_PARAM 0x1813 /* Scan Parameter service */ +#define UUID_SERVCLASS_GLUCOSE 0x1808 /* Glucose Meter Service */ +#define UUID_SERVCLASS_RSC 0x1814 /* RUNNERS SPEED AND CADENCE SERVICE */ +#define UUID_SERVCLASS_CSC 0x1816 /* Cycling SPEED AND CADENCE SERVICE */ + +#define UUID_SERVCLASS_TEST_SERVER 0x9000 /* Test Group UUID */ + +#if (BTM_WBS_INCLUDED == TRUE ) +#define UUID_CODEC_CVSD 0x0001 /* CVSD */ +#define UUID_CODEC_MSBC 0x0002 /* mSBC */ +#endif + +/* Define all the 'Descriptor Type' values. +*/ +#define NULL_DESC_TYPE 0 +#define UINT_DESC_TYPE 1 +#define TWO_COMP_INT_DESC_TYPE 2 +#define UUID_DESC_TYPE 3 +#define TEXT_STR_DESC_TYPE 4 +#define BOOLEAN_DESC_TYPE 5 +#define DATA_ELE_SEQ_DESC_TYPE 6 +#define DATA_ELE_ALT_DESC_TYPE 7 +#define URL_DESC_TYPE 8 + +/* Define all the "Descriptor Size" values. +*/ +#define SIZE_ONE_BYTE 0 +#define SIZE_TWO_BYTES 1 +#define SIZE_FOUR_BYTES 2 +#define SIZE_EIGHT_BYTES 3 +#define SIZE_SIXTEEN_BYTES 4 +#define SIZE_IN_NEXT_BYTE 5 +#define SIZE_IN_NEXT_WORD 6 +#define SIZE_IN_NEXT_LONG 7 + +/* Language Encoding Constants */ +#define LANG_ID_CODE_ENGLISH ((UINT16) 0x656e) /* "en" */ +#define LANG_ID_CHAR_ENCODE_UTF8 ((UINT16) 0x006a) /* UTF-8 */ + +/* Constants used for display purposes only. These define ovelapping attribute values */ +#define ATTR_ID_VERS_OR_GRP_OR_DRELNUM_OR_IPSUB_OR_SPECID 0x0200 +#define ATTR_ID_VEND_ID_OR_SERVICE_DB_STATE_OR_PARSE_VER 0x0201 +#define ATTR_ID_PROD_ID_OR_HID_DEV_SUBCLASS 0x0202 +#define ATTR_ID_PROD_VER_OR_HID_COUNTRY_CODE 0x0203 +#define ATTR_ID_PRIMARY_REC_OR_HID_VIRTUAL_CABLE 0x0204 +#define ATTR_ID_DI_VENDOR_ID_SOURCE_OR_HID_INIT_RECONNECT 0x0205 +#define ATTR_ID_SERV_VERS_OR_1284ID 0x0300 +#define ATTR_ID_DATA_STORES_OR_NETWORK 0x0301 +#define ATTR_ID_FAX_1_OR_AUD_VOL_OR_DEV_NAME 0x0302 +#define ATTR_ID_FORMATS_OR_FAX_2_0 0x0303 +#define ATTR_ID_FAX_CLASS_2_OR_FRIENDLY_NAME 0x0304 +#define ATTR_ID_NETADDRESS_OR_DEVLOCATION 0x0306 + +#endif + + diff --git a/tools/sdk/include/bluedroid/sdpint.h b/tools/sdk/include/bluedroid/sdpint.h new file mode 100644 index 00000000..9e935ea5 --- /dev/null +++ b/tools/sdk/include/bluedroid/sdpint.h @@ -0,0 +1,314 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This file contains internally used SDP definitions + * + ******************************************************************************/ + +#ifndef SDP_INT_H +#define SDP_INT_H + +#include "bt_target.h" +#include "sdp_api.h" +#include "l2c_api.h" + + +/* Continuation length - we use a 2-byte offset */ +#define SDP_CONTINUATION_LEN 2 +#define SDP_MAX_CONTINUATION_LEN 16 /* As per the spec */ + +/* Timeout definitions. */ +#define SDP_INACT_TIMEOUT 30 /* Inactivity timeout */ + + +/* Define the Out-Flow default values. */ +#define SDP_OFLOW_QOS_FLAG 0 +#define SDP_OFLOW_SERV_TYPE 0 +#define SDP_OFLOW_TOKEN_RATE 0 +#define SDP_OFLOW_TOKEN_BUCKET_SIZE 0 +#define SDP_OFLOW_PEAK_BANDWIDTH 0 +#define SDP_OFLOW_LATENCY 0 +#define SDP_OFLOW_DELAY_VARIATION 0 + +/* Define the In-Flow default values. */ +#define SDP_IFLOW_QOS_FLAG 0 +#define SDP_IFLOW_SERV_TYPE 0 +#define SDP_IFLOW_TOKEN_RATE 0 +#define SDP_IFLOW_TOKEN_BUCKET_SIZE 0 +#define SDP_IFLOW_PEAK_BANDWIDTH 0 +#define SDP_IFLOW_LATENCY 0 +#define SDP_IFLOW_DELAY_VARIATION 0 + +#define SDP_LINK_TO 0 + +/* Define the type of device notification. */ +/* (Inquiry Scan and Page Scan) */ +#define SDP_DEVICE_NOTI_LEN sizeof (BT_HDR) + \ + HCIC_PREAMBLE_SIZE + \ + HCIC_PARAM_SIZE_WRITE_PARAM1 + +#define SDP_DEVICE_NOTI_FLAG 0x03 + +/* Define the Protocol Data Unit (PDU) types. +*/ +#define SDP_PDU_ERROR_RESPONSE 0x01 +#define SDP_PDU_SERVICE_SEARCH_REQ 0x02 +#define SDP_PDU_SERVICE_SEARCH_RSP 0x03 +#define SDP_PDU_SERVICE_ATTR_REQ 0x04 +#define SDP_PDU_SERVICE_ATTR_RSP 0x05 +#define SDP_PDU_SERVICE_SEARCH_ATTR_REQ 0x06 +#define SDP_PDU_SERVICE_SEARCH_ATTR_RSP 0x07 + +/* Max UUIDs and attributes we support per sequence */ +#define MAX_UUIDS_PER_SEQ 8 +#define MAX_ATTR_PER_SEQ 8 + +/* Max length we support for any attribute */ +// btla-specific ++ +#ifdef SDP_MAX_ATTR_LEN +#define MAX_ATTR_LEN SDP_MAX_ATTR_LEN +#else +#define MAX_ATTR_LEN 256 +#endif +// btla-specific -- + +/* Internal UUID sequence representation */ +typedef struct { + UINT16 len; + UINT8 value[MAX_UUID_SIZE]; +} tUID_ENT; + +typedef struct { + UINT16 num_uids; + tUID_ENT uuid_entry[MAX_UUIDS_PER_SEQ]; +} tSDP_UUID_SEQ; + + +/* Internal attribute sequence definitions */ +typedef struct { + UINT16 start; + UINT16 end; +} tATT_ENT; + +typedef struct { + UINT16 num_attr; + tATT_ENT attr_entry[MAX_ATTR_PER_SEQ]; +} tSDP_ATTR_SEQ; + + +/* Define the attribute element of the SDP database record */ +typedef struct { + UINT32 len; /* Number of bytes in the entry */ + UINT8 *value_ptr; /* Points to attr_pad */ + UINT16 id; + UINT8 type; +} tSDP_ATTRIBUTE; + +/* An SDP record consists of a handle, and 1 or more attributes */ +typedef struct { + UINT32 record_handle; + UINT32 free_pad_ptr; + UINT16 num_attributes; + tSDP_ATTRIBUTE attribute[SDP_MAX_REC_ATTR]; + UINT8 attr_pad[SDP_MAX_PAD_LEN]; +} tSDP_RECORD; + + +/* Define the SDP database */ +typedef struct { + UINT32 di_primary_handle; /* Device ID Primary record or NULL if nonexistent */ + UINT16 num_records; + tSDP_RECORD record[SDP_MAX_RECORDS]; +} tSDP_DB; + +enum { + SDP_IS_SEARCH, + SDP_IS_ATTR_SEARCH, +}; + +#if SDP_SERVER_ENABLED == TRUE +/* Continuation information for the SDP server response */ +typedef struct { + UINT16 next_attr_index; /* attr index for next continuation response */ + UINT16 next_attr_start_id; /* attr id to start with for the attr index in next cont. response */ + tSDP_RECORD *prev_sdp_rec; /* last sdp record that was completely sent in the response */ + BOOLEAN last_attr_seq_desc_sent; /* whether attr seq length has been sent previously */ + UINT16 attr_offset; /* offset within the attr to keep trak of partial attributes in the responses */ +} tSDP_CONT_INFO; +#endif /* SDP_SERVER_ENABLED == TRUE */ + +/* Define the SDP Connection Control Block */ +typedef struct { +#define SDP_STATE_IDLE 0 +#define SDP_STATE_CONN_SETUP 1 +#define SDP_STATE_CFG_SETUP 2 +#define SDP_STATE_CONNECTED 3 + UINT8 con_state; + +#define SDP_FLAGS_IS_ORIG 0x01 +#define SDP_FLAGS_HIS_CFG_DONE 0x02 +#define SDP_FLAGS_MY_CFG_DONE 0x04 + UINT8 con_flags; + + BD_ADDR device_address; + TIMER_LIST_ENT timer_entry; + UINT16 rem_mtu_size; + UINT16 connection_id; + UINT16 list_len; /* length of the response in the GKI buffer */ + UINT8 *rsp_list; /* pointer to GKI buffer holding response */ + +#if SDP_CLIENT_ENABLED == TRUE + tSDP_DISCOVERY_DB *p_db; /* Database to save info into */ + tSDP_DISC_CMPL_CB *p_cb; /* Callback for discovery done */ + tSDP_DISC_CMPL_CB2 *p_cb2; /* Callback for discovery done piggy back with the user data */ + void *user_data; /* piggy back user data */ + UINT32 handles[SDP_MAX_DISC_SERVER_RECS]; /* Discovered server record handles */ + UINT16 num_handles; /* Number of server handles */ + UINT16 cur_handle; /* Current handle being processed */ + UINT16 transaction_id; + UINT16 disconnect_reason; /* Disconnect reason */ +#if (defined(SDP_BROWSE_PLUS) && SDP_BROWSE_PLUS == TRUE) + UINT16 cur_uuid_idx; +#endif + +#define SDP_DISC_WAIT_CONN 0 +#define SDP_DISC_WAIT_HANDLES 1 +#define SDP_DISC_WAIT_ATTR 2 +#define SDP_DISC_WAIT_SEARCH_ATTR 3 +#define SDP_DISC_WAIT_CANCEL 5 + + UINT8 disc_state; + UINT8 is_attr_search; +#endif /* SDP_CLIENT_ENABLED == TRUE */ + +#if SDP_SERVER_ENABLED == TRUE + UINT16 cont_offset; /* Continuation state data in the server response */ + tSDP_CONT_INFO cont_info; /* structure to hold continuation information for the server response */ +#endif /* SDP_SERVER_ENABLED == TRUE */ + +} tCONN_CB; + + +/* The main SDP control block */ +typedef struct { + tL2CAP_CFG_INFO l2cap_my_cfg; /* My L2CAP config */ + tCONN_CB ccb[SDP_MAX_CONNECTIONS]; +#if SDP_SERVER_ENABLED == TRUE + tSDP_DB server_db; +#endif + tL2CAP_APPL_INFO reg_info; /* L2CAP Registration info */ + UINT16 max_attr_list_size; /* Max attribute list size to use */ + UINT16 max_recs_per_search; /* Max records we want per seaarch */ + UINT8 trace_level; +} tSDP_CB; + +#ifdef __cplusplus +extern "C" { +#endif +/* Global SDP data */ +#if SDP_DYNAMIC_MEMORY == FALSE +extern tSDP_CB sdp_cb; +#else +extern tSDP_CB *sdp_cb_ptr; +#define sdp_cb (*sdp_cb_ptr) +#endif + +#ifdef __cplusplus +} +#endif + +/* Functions provided by sdp_main.c */ +extern void sdp_init (void); +extern void sdp_disconnect (tCONN_CB *p_ccb, UINT16 reason); + +#if (defined(SDP_DEBUG) && SDP_DEBUG == TRUE) +extern UINT16 sdp_set_max_attr_list_size (UINT16 max_size); +#endif + +/* Functions provided by sdp_conn.c +*/ +extern void sdp_conn_rcv_l2e_conn_ind (BT_HDR *p_msg); +extern void sdp_conn_rcv_l2e_conn_cfm (BT_HDR *p_msg); +extern void sdp_conn_rcv_l2e_disc (BT_HDR *p_msg); +extern void sdp_conn_rcv_l2e_config_ind (BT_HDR *p_msg); +extern void sdp_conn_rcv_l2e_config_cfm (BT_HDR *p_msg); +extern void sdp_conn_rcv_l2e_conn_failed (BT_HDR *p_msg); +extern void sdp_conn_rcv_l2e_connected (BT_HDR *p_msg); +extern void sdp_conn_rcv_l2e_conn_failed (BT_HDR *p_msg); +extern void sdp_conn_rcv_l2e_data (BT_HDR *p_msg); +extern void sdp_conn_timeout (tCONN_CB *p_ccb); + +extern tCONN_CB *sdp_conn_originate (UINT8 *p_bd_addr); + +/* Functions provided by sdp_utils.c +*/ +extern tCONN_CB *sdpu_find_ccb_by_cid (UINT16 cid); +extern tCONN_CB *sdpu_find_ccb_by_db (tSDP_DISCOVERY_DB *p_db); +extern tCONN_CB *sdpu_allocate_ccb (void); +extern void sdpu_release_ccb (tCONN_CB *p_ccb); + +extern UINT8 *sdpu_build_attrib_seq (UINT8 *p_out, UINT16 *p_attr, UINT16 num_attrs); +extern UINT8 *sdpu_build_attrib_entry (UINT8 *p_out, tSDP_ATTRIBUTE *p_attr); +extern void sdpu_build_n_send_error (tCONN_CB *p_ccb, UINT16 trans_num, UINT16 error_code, char *p_error_text); + +extern UINT8 *sdpu_extract_attr_seq (UINT8 *p, UINT16 param_len, tSDP_ATTR_SEQ *p_seq); +extern UINT8 *sdpu_extract_uid_seq (UINT8 *p, UINT16 param_len, tSDP_UUID_SEQ *p_seq); + +extern UINT8 *sdpu_get_len_from_type (UINT8 *p, UINT8 type, UINT32 *p_len); +extern BOOLEAN sdpu_is_base_uuid (UINT8 *p_uuid); +extern BOOLEAN sdpu_compare_uuid_arrays (UINT8 *p_uuid1, UINT32 len1, UINT8 *p_uuid2, UINT16 len2); +extern BOOLEAN sdpu_compare_bt_uuids (tBT_UUID *p_uuid1, tBT_UUID *p_uuid2); +extern BOOLEAN sdpu_compare_uuid_with_attr (tBT_UUID *p_btuuid, tSDP_DISC_ATTR *p_attr); + +extern void sdpu_sort_attr_list( UINT16 num_attr, tSDP_DISCOVERY_DB *p_db ); +extern UINT16 sdpu_get_list_len( tSDP_UUID_SEQ *uid_seq, tSDP_ATTR_SEQ *attr_seq ); +extern UINT16 sdpu_get_attrib_seq_len(tSDP_RECORD *p_rec, tSDP_ATTR_SEQ *attr_seq); +extern UINT16 sdpu_get_attrib_entry_len(tSDP_ATTRIBUTE *p_attr); +extern UINT8 *sdpu_build_partial_attrib_entry (UINT8 *p_out, tSDP_ATTRIBUTE *p_attr, UINT16 len, UINT16 *offset); +extern void sdpu_uuid16_to_uuid128(UINT16 uuid16, UINT8 *p_uuid128); + +/* Functions provided by sdp_db.c +*/ +extern tSDP_RECORD *sdp_db_service_search (tSDP_RECORD *p_rec, tSDP_UUID_SEQ *p_seq); +extern tSDP_RECORD *sdp_db_find_record (UINT32 handle); +extern tSDP_ATTRIBUTE *sdp_db_find_attr_in_rec (tSDP_RECORD *p_rec, UINT16 start_attr, UINT16 end_attr); + + +/* Functions provided by sdp_server.c +*/ +#if SDP_SERVER_ENABLED == TRUE +extern void sdp_server_handle_client_req (tCONN_CB *p_ccb, BT_HDR *p_msg); +#else +#define sdp_server_handle_client_req(p_ccb, p_msg) +#endif + +/* Functions provided by sdp_discovery.c +*/ +#if SDP_CLIENT_ENABLED == TRUE +extern void sdp_disc_connected (tCONN_CB *p_ccb); +extern void sdp_disc_server_rsp (tCONN_CB *p_ccb, BT_HDR *p_msg); +#else +#define sdp_disc_connected(p_ccb) +#define sdp_disc_server_rsp(p_ccb, p_msg) +#endif + + + +#endif diff --git a/tools/sdk/include/bluedroid/smp_api.h b/tools/sdk/include/bluedroid/smp_api.h new file mode 100644 index 00000000..cb043fdf --- /dev/null +++ b/tools/sdk/include/bluedroid/smp_api.h @@ -0,0 +1,484 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This file contains the SMP API function external definitions. + * + ******************************************************************************/ +#ifndef SMP_API_H +#define SMP_API_H + +#include "bt_target.h" + +#define SMP_PIN_CODE_LEN_MAX PIN_CODE_LEN +#define SMP_PIN_CODE_LEN_MIN 6 + +#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE +/* SMP command code */ +#define SMP_OPCODE_PAIRING_REQ 0x01 +#define SMP_OPCODE_PAIRING_RSP 0x02 +#define SMP_OPCODE_CONFIRM 0x03 +#define SMP_OPCODE_RAND 0x04 +#define SMP_OPCODE_PAIRING_FAILED 0x05 +#define SMP_OPCODE_ENCRYPT_INFO 0x06 +#define SMP_OPCODE_MASTER_ID 0x07 +#define SMP_OPCODE_IDENTITY_INFO 0x08 +#define SMP_OPCODE_ID_ADDR 0x09 +#define SMP_OPCODE_SIGN_INFO 0x0A +#define SMP_OPCODE_SEC_REQ 0x0B +#define SMP_OPCODE_PAIR_PUBLIC_KEY 0x0C +#define SMP_OPCODE_PAIR_DHKEY_CHECK 0x0D +#define SMP_OPCODE_PAIR_KEYPR_NOTIF 0x0E +#define SMP_OPCODE_MAX SMP_OPCODE_PAIR_KEYPR_NOTIF +#define SMP_OPCODE_MIN SMP_OPCODE_PAIRING_REQ +#define SMP_OPCODE_PAIR_COMMITM 0x0F +#endif + +/* SMP event type */ +#define SMP_IO_CAP_REQ_EVT 1 /* IO capability request event */ +#define SMP_SEC_REQUEST_EVT 2 /* SMP pairing request */ +#define SMP_PASSKEY_NOTIF_EVT 3 /* passkey notification event */ +#define SMP_PASSKEY_REQ_EVT 4 /* passkey request event */ +#define SMP_OOB_REQ_EVT 5 /* OOB request event */ +#define SMP_NC_REQ_EVT 6 /* Numeric Comparison request event */ +#define SMP_COMPLT_EVT 7 /* SMP complete event */ +#define SMP_PEER_KEYPR_NOT_EVT 8 /* Peer keypress notification received event */ +#define SMP_SC_OOB_REQ_EVT 9 /* SC OOB request event (both local and peer OOB data */ +/* can be expected in response) */ +#define SMP_SC_LOC_OOB_DATA_UP_EVT 10 /* SC OOB local data set is created */ +/* (as result of SMP_CrLocScOobData(...)) */ +#define SMP_BR_KEYS_REQ_EVT 12 /* SMP over BR keys request event */ +typedef UINT8 tSMP_EVT; + + +/* pairing failure reason code */ +#define SMP_PASSKEY_ENTRY_FAIL 0x01 +#define SMP_OOB_FAIL 0x02 +#define SMP_PAIR_AUTH_FAIL 0x03 +#define SMP_CONFIRM_VALUE_ERR 0x04 +#define SMP_PAIR_NOT_SUPPORT 0x05 +#define SMP_ENC_KEY_SIZE 0x06 +#define SMP_INVALID_CMD 0x07 +#define SMP_PAIR_FAIL_UNKNOWN 0x08 +#define SMP_REPEATED_ATTEMPTS 0x09 +#define SMP_INVALID_PARAMETERS 0x0A +#define SMP_DHKEY_CHK_FAIL 0x0B +#define SMP_NUMERIC_COMPAR_FAIL 0x0C +#define SMP_BR_PARING_IN_PROGR 0x0D +#define SMP_XTRANS_DERIVE_NOT_ALLOW 0x0E +#define SMP_MAX_FAIL_RSN_PER_SPEC SMP_XTRANS_DERIVE_NOT_ALLOW + +/* self defined error code */ +#define SMP_PAIR_INTERNAL_ERR (SMP_MAX_FAIL_RSN_PER_SPEC + 0x01) /* 0x0E */ + +/* 0x0F unknown IO capability, unable to decide association model */ +#define SMP_UNKNOWN_IO_CAP (SMP_MAX_FAIL_RSN_PER_SPEC + 0x02) /* 0x0F */ + +#define SMP_INIT_FAIL (SMP_MAX_FAIL_RSN_PER_SPEC + 0x03) /* 0x10 */ +#define SMP_CONFIRM_FAIL (SMP_MAX_FAIL_RSN_PER_SPEC + 0x04) /* 0x11 */ +#define SMP_BUSY (SMP_MAX_FAIL_RSN_PER_SPEC + 0x05) /* 0x12 */ +#define SMP_ENC_FAIL (SMP_MAX_FAIL_RSN_PER_SPEC + 0x06) /* 0x13 */ +#define SMP_STARTED (SMP_MAX_FAIL_RSN_PER_SPEC + 0x07) /* 0x14 */ +#define SMP_RSP_TIMEOUT (SMP_MAX_FAIL_RSN_PER_SPEC + 0x08) /* 0x15 */ +#define SMP_DIV_NOT_AVAIL (SMP_MAX_FAIL_RSN_PER_SPEC + 0x09) /* 0x16 */ + +/* 0x17 unspecified failed reason */ +#define SMP_FAIL (SMP_MAX_FAIL_RSN_PER_SPEC + 0x0A) /* 0x17 */ + +#define SMP_CONN_TOUT (SMP_MAX_FAIL_RSN_PER_SPEC + 0x0B) +#define SMP_SUCCESS 0 + +typedef UINT8 tSMP_STATUS; + + +/* Device IO capability */ +#define SMP_IO_CAP_OUT BTM_IO_CAP_OUT /* DisplayOnly */ +#define SMP_IO_CAP_IO BTM_IO_CAP_IO /* DisplayYesNo */ +#define SMP_IO_CAP_IN BTM_IO_CAP_IN /* KeyboardOnly */ +#define SMP_IO_CAP_NONE BTM_IO_CAP_NONE /* NoInputNoOutput */ +#define SMP_IO_CAP_KBDISP BTM_IO_CAP_KBDISP /* Keyboard Display */ +#define SMP_IO_CAP_MAX BTM_IO_CAP_MAX +typedef UINT8 tSMP_IO_CAP; + +#ifndef SMP_DEFAULT_IO_CAPS +#define SMP_DEFAULT_IO_CAPS SMP_IO_CAP_KBDISP +#endif + +/* OOB data present or not */ +enum { + SMP_OOB_NONE, + SMP_OOB_PRESENT, + SMP_OOB_UNKNOWN +}; +typedef UINT8 tSMP_OOB_FLAG; + +/* type of OOB data required from application */ +enum { + SMP_OOB_INVALID_TYPE, + SMP_OOB_PEER, + SMP_OOB_LOCAL, + SMP_OOB_BOTH +}; +typedef UINT8 tSMP_OOB_DATA_TYPE; + +#define SMP_AUTH_NO_BOND 0x00 +#define SMP_AUTH_GEN_BOND 0x01 //todo sdh change GEN_BOND to BOND + +/* SMP Authentication requirement */ +#define SMP_AUTH_YN_BIT (1 << 2) +#define SMP_SC_SUPPORT_BIT (1 << 3) +#define SMP_KP_SUPPORT_BIT (1 << 4) + +#define SMP_AUTH_MASK (SMP_AUTH_GEN_BOND|SMP_AUTH_YN_BIT|SMP_SC_SUPPORT_BIT|SMP_KP_SUPPORT_BIT) + +#define SMP_AUTH_BOND SMP_AUTH_GEN_BOND + +/* no MITM, No Bonding, encryption only */ +#define SMP_AUTH_NB_ENC_ONLY 0x00 //(SMP_AUTH_MASK | BTM_AUTH_SP_NO) + +/* MITM, No Bonding, Use IO Capability to determine authentication procedure */ +#define SMP_AUTH_NB_IOCAP (SMP_AUTH_NO_BOND | SMP_AUTH_YN_BIT) + +/* No MITM, General Bonding, Encryption only */ +#define SMP_AUTH_GB_ENC_ONLY (SMP_AUTH_GEN_BOND ) + +/* MITM, General Bonding, Use IO Capability to determine authentication procedure */ +#define SMP_AUTH_GB_IOCAP (SMP_AUTH_GEN_BOND | SMP_AUTH_YN_BIT) + +/* Secure Connections, no MITM, no Bonding */ +#define SMP_AUTH_SC_ENC_ONLY (SMP_SC_SUPPORT_BIT) + +/* Secure Connections, no MITM, Bonding */ +#define SMP_AUTH_SC_GB (SMP_SC_SUPPORT_BIT | SMP_AUTH_GEN_BOND) + +/* Secure Connections, MITM, no Bonding */ +#define SMP_AUTH_SC_MITM_NB (SMP_SC_SUPPORT_BIT | SMP_AUTH_YN_BIT | SMP_AUTH_NO_BOND) + +/* Secure Connections, MITM, Bonding */ +#define SMP_AUTH_SC_MITM_GB (SMP_SC_SUPPORT_BIT | SMP_AUTH_YN_BIT | SMP_AUTH_GEN_BOND) + +/* All AuthReq RFU bits are set to 1 - NOTE: reserved bit in Bonding_Flags is not set */ +#define SMP_AUTH_ALL_RFU_SET 0xF8 + +typedef UINT8 tSMP_AUTH_REQ; + +#define SMP_SEC_NONE 0 +#define SMP_SEC_UNAUTHENTICATE (1 << 0) +#define SMP_SEC_AUTHENTICATED (1 << 2) +typedef UINT8 tSMP_SEC_LEVEL; + +/* Maximum Encryption Key Size range */ +#define SMP_ENCR_KEY_SIZE_MIN 7 +#define SMP_ENCR_KEY_SIZE_MAX 16 + +/* SMP key types */ +#define SMP_SEC_KEY_TYPE_ENC (1 << 0) /* encryption key */ +#define SMP_SEC_KEY_TYPE_ID (1 << 1) /* identity key */ +#define SMP_SEC_KEY_TYPE_CSRK (1 << 2) /* slave CSRK */ +#define SMP_SEC_KEY_TYPE_LK (1 << 3) /* BR/EDR link key */ +typedef UINT8 tSMP_KEYS; + +#define SMP_BR_SEC_DEFAULT_KEY (SMP_SEC_KEY_TYPE_ENC | SMP_SEC_KEY_TYPE_ID | \ + SMP_SEC_KEY_TYPE_CSRK) + +/* default security key distribution value */ +#define SMP_SEC_DEFAULT_KEY (SMP_SEC_KEY_TYPE_ENC | SMP_SEC_KEY_TYPE_ID | \ + SMP_SEC_KEY_TYPE_CSRK | SMP_SEC_KEY_TYPE_LK) + +#define SMP_SC_KEY_STARTED 0 /* passkey entry started */ +#define SMP_SC_KEY_ENTERED 1 /* passkey digit entered */ +#define SMP_SC_KEY_ERASED 2 /* passkey digit erased */ +#define SMP_SC_KEY_CLEARED 3 /* passkey cleared */ +#define SMP_SC_KEY_COMPLT 4 /* passkey entry completed */ +#define SMP_SC_KEY_OUT_OF_RANGE 5 /* out of range */ +typedef UINT8 tSMP_SC_KEY_TYPE; + +/* data type for BTM_SP_IO_REQ_EVT */ +typedef struct { + tSMP_IO_CAP io_cap; /* local IO capabilities */ + tSMP_OOB_FLAG oob_data; /* OOB data present (locally) for the peer device */ + tSMP_AUTH_REQ auth_req; /* Authentication required (for local device) */ + UINT8 max_key_size; /* max encryption key size */ + tSMP_KEYS init_keys; /* initiator keys to be distributed */ + tSMP_KEYS resp_keys; /* responder keys */ +} tSMP_IO_REQ; + +typedef struct { + tSMP_STATUS reason; + tSMP_SEC_LEVEL sec_level; + BOOLEAN is_pair_cancel; + BOOLEAN smp_over_br; +} tSMP_CMPL; + +typedef struct { + BT_OCTET32 x; + BT_OCTET32 y; +} tSMP_PUBLIC_KEY; + +/* the data associated with the info sent to the peer via OOB interface */ +typedef struct { + BOOLEAN present; + BT_OCTET16 randomizer; + BT_OCTET16 commitment; + + tBLE_BD_ADDR addr_sent_to; + BT_OCTET32 private_key_used; /* is used to calculate: */ + /* publ_key_used = P-256(private_key_used, curve_p256.G) - send it to the */ + /* other side */ + /* dhkey = P-256(private_key_used, publ key rcvd from the other side) */ + tSMP_PUBLIC_KEY publ_key_used; /* P-256(private_key_used, curve_p256.G) */ +} tSMP_LOC_OOB_DATA; + +/* the data associated with the info received from the peer via OOB interface */ +typedef struct { + BOOLEAN present; + BT_OCTET16 randomizer; + BT_OCTET16 commitment; + tBLE_BD_ADDR addr_rcvd_from; +} tSMP_PEER_OOB_DATA; + +typedef struct { + tSMP_LOC_OOB_DATA loc_oob_data; + tSMP_PEER_OOB_DATA peer_oob_data; +} tSMP_SC_OOB_DATA; + + +typedef union { + UINT32 passkey; + tSMP_IO_REQ io_req; /* IO request */ + tSMP_CMPL cmplt; + tSMP_OOB_DATA_TYPE req_oob_type; + tSMP_LOC_OOB_DATA loc_oob_data; +} tSMP_EVT_DATA; + + +/* AES Encryption output */ +typedef struct { + UINT8 status; + UINT8 param_len; + UINT16 opcode; + UINT8 param_buf[BT_OCTET16_LEN]; +} tSMP_ENC; + +/* Security Manager events - Called by the stack when Security Manager related events occur.*/ +typedef UINT8 (tSMP_CALLBACK) (tSMP_EVT event, BD_ADDR bd_addr, tSMP_EVT_DATA *p_data); + +/* callback function for CMAC algorithm +*/ +typedef void (tCMAC_CMPL_CBACK)(UINT8 *p_mac, UINT16 tlen, UINT32 sign_counter); + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif +/* API of SMP */ + +/******************************************************************************* +** +** Function SMP_Init +** +** Description This function initializes the SMP unit. +** +** Returns void +** +*******************************************************************************/ +extern void SMP_Init(void); + +/******************************************************************************* +** +** Function SMP_SetTraceLevel +** +** Description This function sets the trace level for SMP. If called with +** a value of 0xFF, it simply returns the current trace level. +** +** Returns The new or current trace level +** +*******************************************************************************/ +extern UINT8 SMP_SetTraceLevel (UINT8 new_level); + +/******************************************************************************* +** +** Function SMP_Register +** +** Description This function register for the SMP service callback. +** +** Returns void +** +*******************************************************************************/ +extern BOOLEAN SMP_Register (tSMP_CALLBACK *p_cback); + +/******************************************************************************* +** +** Function SMP_Pair +** +** Description This function is called to start a SMP pairing. +** +** Returns SMP_STARTED if bond started, else otherwise exception. +** +*******************************************************************************/ +extern tSMP_STATUS SMP_Pair (BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function SMP_BR_PairWith +** +** Description This function is called to start a SMP pairing over BR/EDR. +** +** Returns SMP_STARTED if pairing started, otherwise reason for failure. +** +*******************************************************************************/ +extern tSMP_STATUS SMP_BR_PairWith (BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function SMP_PairCancel +** +** Description This function is called to cancel a SMP pairing. +** +** Returns TRUE - pairing cancelled +** +*******************************************************************************/ +extern BOOLEAN SMP_PairCancel (BD_ADDR bd_addr); + +/******************************************************************************* +** +** Function SMP_SecurityGrant +** +** Description This function is called to grant security process. +** +** Parameters bd_addr - peer device bd address. +** res - result of the operation SMP_SUCCESS if success. +** Otherwise, SMP_REPEATED_ATTEMPTS is too many attempts. +** +** Returns None +** +*******************************************************************************/ +extern void SMP_SecurityGrant(BD_ADDR bd_addr, UINT8 res); + +/******************************************************************************* +** +** Function SMP_PasskeyReply +** +** Description This function is called after Security Manager submitted +** Passkey request to the application. +** +** Parameters: bd_addr - Address of the device for which PIN was requested +** res - result of the operation SMP_SUCCESS if success +** passkey - numeric value in the range of +** BTM_MIN_PASSKEY_VAL(0) - BTM_MAX_PASSKEY_VAL(999999(0xF423F)). +** +*******************************************************************************/ +extern void SMP_PasskeyReply (BD_ADDR bd_addr, UINT8 res, UINT32 passkey); + +/******************************************************************************* +** +** Function SMP_ConfirmReply +** +** Description This function is called after Security Manager submitted +** numeric comparison request to the application. +** +** Parameters: bd_addr - Address of the device with which numeric +** comparison was requested +** res - comparison result SMP_SUCCESS if success +** +*******************************************************************************/ +extern void SMP_ConfirmReply (BD_ADDR bd_addr, UINT8 res); + +/******************************************************************************* +** +** Function SMP_OobDataReply +** +** Description This function is called to provide the OOB data for +** SMP in response to SMP_OOB_REQ_EVT +** +** Parameters: bd_addr - Address of the peer device +** res - result of the operation SMP_SUCCESS if success +** p_data - SM Randomizer C. +** +*******************************************************************************/ +extern void SMP_OobDataReply(BD_ADDR bd_addr, tSMP_STATUS res, UINT8 len, + UINT8 *p_data); + +/******************************************************************************* +** +** Function SMP_SecureConnectionOobDataReply +** +** Description This function is called to provide the SC OOB data for +** SMP in response to SMP_SC_OOB_REQ_EVT +** +** Parameters: p_data - pointer to the data +** +*******************************************************************************/ +extern void SMP_SecureConnectionOobDataReply(UINT8 *p_data); + +/******************************************************************************* +** +** Function SMP_Encrypt +** +** Description This function is called to encrypt the data with the specified +** key +** +** Parameters: key - Pointer to key key[0] conatins the MSB +** key_len - key length +** plain_text - Pointer to data to be encrypted +** plain_text[0] conatins the MSB +** pt_len - plain text length +** p_out - pointer to the encrypted outputs +** +** Returns Boolean - TRUE: encryption is successful +*******************************************************************************/ +extern BOOLEAN SMP_Encrypt (UINT8 *key, UINT8 key_len, + UINT8 *plain_text, UINT8 pt_len, + tSMP_ENC *p_out); + +/******************************************************************************* +** +** Function SMP_KeypressNotification +** +** Description This function is called to notify SM about Keypress Notification. +** +** Parameters: bd_addr - Address of the device to send keypress +** notification to +** value - keypress notification parameter value +** +*******************************************************************************/ +extern void SMP_KeypressNotification (BD_ADDR bd_addr, UINT8 value); + +/******************************************************************************* +** +** Function SMP_CreateLocalSecureConnectionsOobData +** +** Description This function is called to start creation of local SC OOB +** data set (tSMP_LOC_OOB_DATA). +** +** Parameters: bd_addr - Address of the device to send OOB data block +** to. +** +** Returns Boolean - TRUE: creation of local SC OOB data set started. +*******************************************************************************/ +extern BOOLEAN SMP_CreateLocalSecureConnectionsOobData ( + tBLE_BD_ADDR *addr_to_send_to); + +#ifdef __cplusplus +} +#endif +#endif /* SMP_API_H */ diff --git a/tools/sdk/include/bluedroid/smp_int.h b/tools/sdk/include/bluedroid/smp_int.h new file mode 100644 index 00000000..ad6e99ea --- /dev/null +++ b/tools/sdk/include/bluedroid/smp_int.h @@ -0,0 +1,535 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * This file contains internally used SMP definitions + * + ******************************************************************************/ +#ifndef SMP_INT_H +#define SMP_INT_H + +#if BLE_INCLUDED == TRUE + +#include "btu.h" +#include "btm_ble_api.h" +#include "btm_api.h" +#include "smp_api.h" + +#define SMP_MODEL_ENCRYPTION_ONLY 0 /* Legacy mode, Just Works model */ +#define SMP_MODEL_PASSKEY 1 /* Legacy mode, Passkey Entry model, this side inputs the key */ +#define SMP_MODEL_OOB 2 /* Legacy mode, OOB model */ +#define SMP_MODEL_KEY_NOTIF 3 /* Legacy mode, Passkey Entry model, this side displays the key */ +#define SMP_MODEL_SEC_CONN_JUSTWORKS 4 /* Secure Connections mode, Just Works model */ +#define SMP_MODEL_SEC_CONN_NUM_COMP 5 /* Secure Connections mode, Numeric Comparison model */ +#define SMP_MODEL_SEC_CONN_PASSKEY_ENT 6 /* Secure Connections mode, Passkey Entry model, */ +/* this side inputs the key */ +#define SMP_MODEL_SEC_CONN_PASSKEY_DISP 7 /* Secure Connections mode, Passkey Entry model, */ +/* this side displays the key */ +#define SMP_MODEL_SEC_CONN_OOB 8 /* Secure Connections mode, OOB model */ +#define SMP_MODEL_OUT_OF_RANGE 9 +typedef UINT8 tSMP_ASSO_MODEL; + + +#ifndef SMP_MAX_CONN +#define SMP_MAX_CONN 2 +#endif + +#define SMP_WAIT_FOR_RSP_TOUT 30 + +#define SMP_OPCODE_INIT 0x04 + +/* SMP events */ +#define SMP_PAIRING_REQ_EVT SMP_OPCODE_PAIRING_REQ +#define SMP_PAIRING_RSP_EVT SMP_OPCODE_PAIRING_RSP +#define SMP_CONFIRM_EVT SMP_OPCODE_CONFIRM +#define SMP_RAND_EVT SMP_OPCODE_RAND +#define SMP_PAIRING_FAILED_EVT SMP_OPCODE_PAIRING_FAILED +#define SMP_ENCRPTION_INFO_EVT SMP_OPCODE_ENCRYPT_INFO +#define SMP_MASTER_ID_EVT SMP_OPCODE_MASTER_ID +#define SMP_ID_INFO_EVT SMP_OPCODE_IDENTITY_INFO +#define SMP_ID_ADDR_EVT SMP_OPCODE_ID_ADDR +#define SMP_SIGN_INFO_EVT SMP_OPCODE_SIGN_INFO +#define SMP_SECURITY_REQ_EVT SMP_OPCODE_SEC_REQ + +#define SMP_PAIR_PUBLIC_KEY_EVT SMP_OPCODE_PAIR_PUBLIC_KEY +#define SMP_PAIR_KEYPRESS_NOTIFICATION_EVT SMP_OPCODE_PAIR_KEYPR_NOTIF + +#define SMP_PAIR_COMMITM_EVT SMP_OPCODE_PAIR_COMMITM + +#define SMP_SELF_DEF_EVT (SMP_PAIR_COMMITM_EVT + 1) +#define SMP_KEY_READY_EVT (SMP_SELF_DEF_EVT) +#define SMP_ENCRYPTED_EVT (SMP_SELF_DEF_EVT + 1) +#define SMP_L2CAP_CONN_EVT (SMP_SELF_DEF_EVT + 2) +#define SMP_L2CAP_DISCONN_EVT (SMP_SELF_DEF_EVT + 3) +#define SMP_IO_RSP_EVT (SMP_SELF_DEF_EVT + 4) +#define SMP_API_SEC_GRANT_EVT (SMP_SELF_DEF_EVT + 5) +#define SMP_TK_REQ_EVT (SMP_SELF_DEF_EVT + 6) +#define SMP_AUTH_CMPL_EVT (SMP_SELF_DEF_EVT + 7) +#define SMP_ENC_REQ_EVT (SMP_SELF_DEF_EVT + 8) +#define SMP_BOND_REQ_EVT (SMP_SELF_DEF_EVT + 9) +#define SMP_DISCARD_SEC_REQ_EVT (SMP_SELF_DEF_EVT + 10) + +#define SMP_PAIR_DHKEY_CHCK_EVT SMP_OPCODE_PAIR_DHKEY_CHECK + +#define SMP_PUBL_KEY_EXCH_REQ_EVT (SMP_SELF_DEF_EVT + 11) /* request to start public */ +/* key exchange */ + +#define SMP_LOC_PUBL_KEY_CRTD_EVT (SMP_SELF_DEF_EVT + 12) /* local public key created */ + +#define SMP_BOTH_PUBL_KEYS_RCVD_EVT (SMP_SELF_DEF_EVT + 13) /* both local and peer public */ +/* keys are saved in cb */ + +#define SMP_SC_DHKEY_CMPLT_EVT (SMP_SELF_DEF_EVT + 14) /* DHKey computation is completed,*/ +/* time to start SC phase1 */ + +#define SMP_HAVE_LOC_NONCE_EVT (SMP_SELF_DEF_EVT + 15) /* new local nonce is generated */ +/*and saved in p_cb->rand */ + +#define SMP_SC_PHASE1_CMPLT_EVT (SMP_SELF_DEF_EVT + 16) /* time to start SC phase2 */ + +#define SMP_SC_CALC_NC_EVT (SMP_SELF_DEF_EVT + 17) /* request to calculate number */ +/* for user check. Used only in the */ +/* numeric compare protocol */ + +/* Request to display the number for user check to the user.*/ +/* Used only in the numeric compare protocol */ +#define SMP_SC_DSPL_NC_EVT (SMP_SELF_DEF_EVT + 18) + +#define SMP_SC_NC_OK_EVT (SMP_SELF_DEF_EVT + 19) /* user confirms 'OK' numeric */ +/*comparison request */ + +/* both local and peer DHKey Checks are already present - it is used on slave to prevent race condition */ +#define SMP_SC_2_DHCK_CHKS_PRES_EVT (SMP_SELF_DEF_EVT + 20) + +/* same meaning as SMP_KEY_READY_EVT to separate between SC and legacy actions */ +#define SMP_SC_KEY_READY_EVT (SMP_SELF_DEF_EVT + 21) +#define SMP_KEYPRESS_NOTIFICATION_EVENT (SMP_SELF_DEF_EVT + 22) + +#define SMP_SC_OOB_DATA_EVT (SMP_SELF_DEF_EVT + 23) /* SC OOB data from some */ +/* repository is provided */ + +#define SMP_CR_LOC_SC_OOB_DATA_EVT (SMP_SELF_DEF_EVT + 24) +#define SMP_MAX_EVT SMP_CR_LOC_SC_OOB_DATA_EVT + +typedef UINT8 tSMP_EVENT; + +/* Assumption it's only using the low 8 bits, if bigger than that, need to expand it to 16 bits */ +#define SMP_SEC_KEY_MASK 0x00ff + +/* SMP pairing state */ +enum { + SMP_STATE_IDLE, + SMP_STATE_WAIT_APP_RSP, + SMP_STATE_SEC_REQ_PENDING, + SMP_STATE_PAIR_REQ_RSP, + SMP_STATE_WAIT_CONFIRM, + SMP_STATE_CONFIRM, + SMP_STATE_RAND, + SMP_STATE_PUBLIC_KEY_EXCH, + SMP_STATE_SEC_CONN_PHS1_START, + SMP_STATE_WAIT_COMMITMENT, + SMP_STATE_WAIT_NONCE, + SMP_STATE_SEC_CONN_PHS2_START, + SMP_STATE_WAIT_DHK_CHECK, + SMP_STATE_DHK_CHECK, + SMP_STATE_ENCRYPTION_PENDING, + SMP_STATE_BOND_PENDING, + SMP_STATE_CREATE_LOCAL_SEC_CONN_OOB_DATA, + SMP_STATE_MAX +}; +typedef UINT8 tSMP_STATE; + +/* SMP over BR/EDR events */ +#define SMP_BR_PAIRING_REQ_EVT SMP_OPCODE_PAIRING_REQ +#define SMP_BR_PAIRING_RSP_EVT SMP_OPCODE_PAIRING_RSP +#define SMP_BR_CONFIRM_EVT SMP_OPCODE_CONFIRM /* not expected over BR/EDR */ +#define SMP_BR_RAND_EVT SMP_OPCODE_RAND /* not expected over BR/EDR */ +#define SMP_BR_PAIRING_FAILED_EVT SMP_OPCODE_PAIRING_FAILED +#define SMP_BR_ENCRPTION_INFO_EVT SMP_OPCODE_ENCRYPT_INFO /* not expected over BR/EDR */ +#define SMP_BR_MASTER_ID_EVT SMP_OPCODE_MASTER_ID /* not expected over BR/EDR */ +#define SMP_BR_ID_INFO_EVT SMP_OPCODE_IDENTITY_INFO +#define SMP_BR_ID_ADDR_EVT SMP_OPCODE_ID_ADDR +#define SMP_BR_SIGN_INFO_EVT SMP_OPCODE_SIGN_INFO +#define SMP_BR_SECURITY_REQ_EVT SMP_OPCODE_SEC_REQ /* not expected over BR/EDR */ +#define SMP_BR_PAIR_PUBLIC_KEY_EVT SMP_OPCODE_PAIR_PUBLIC_KEY /* not expected over BR/EDR */ +#define SMP_BR_PAIR_DHKEY_CHCK_EVT SMP_OPCODE_PAIR_DHKEY_CHECK /* not expected over BR/EDR */ +#define SMP_BR_PAIR_KEYPR_NOTIF_EVT SMP_OPCODE_PAIR_KEYPR_NOTIF /* not expected over BR/EDR */ +#define SMP_BR_SELF_DEF_EVT SMP_BR_PAIR_KEYPR_NOTIF_EVT +#define SMP_BR_KEY_READY_EVT (SMP_BR_SELF_DEF_EVT + 1) +#define SMP_BR_ENCRYPTED_EVT (SMP_BR_SELF_DEF_EVT + 2) +#define SMP_BR_L2CAP_CONN_EVT (SMP_BR_SELF_DEF_EVT + 3) +#define SMP_BR_L2CAP_DISCONN_EVT (SMP_BR_SELF_DEF_EVT + 4) +#define SMP_BR_KEYS_RSP_EVT (SMP_BR_SELF_DEF_EVT + 5) +#define SMP_BR_API_SEC_GRANT_EVT (SMP_BR_SELF_DEF_EVT + 6) +#define SMP_BR_TK_REQ_EVT (SMP_BR_SELF_DEF_EVT + 7) +#define SMP_BR_AUTH_CMPL_EVT (SMP_BR_SELF_DEF_EVT + 8) +#define SMP_BR_ENC_REQ_EVT (SMP_BR_SELF_DEF_EVT + 9) +#define SMP_BR_BOND_REQ_EVT (SMP_BR_SELF_DEF_EVT + 10) +#define SMP_BR_DISCARD_SEC_REQ_EVT (SMP_BR_SELF_DEF_EVT + 11) +#define SMP_BR_MAX_EVT (SMP_BR_SELF_DEF_EVT + 12) +typedef UINT8 tSMP_BR_EVENT; + +/* SMP over BR/EDR pairing states */ +enum { + SMP_BR_STATE_IDLE = SMP_STATE_IDLE, + SMP_BR_STATE_WAIT_APP_RSP, + SMP_BR_STATE_PAIR_REQ_RSP, + SMP_BR_STATE_BOND_PENDING, + SMP_BR_STATE_MAX +}; +typedef UINT8 tSMP_BR_STATE; + +/* random and encrption activity state */ +enum { + SMP_GEN_COMPARE = 1, + SMP_GEN_CONFIRM, + + SMP_GEN_DIV_LTK, + SMP_GEN_DIV_CSRK, + SMP_GEN_RAND_V, + SMP_GEN_TK, + SMP_GEN_SRAND_MRAND, + SMP_GEN_SRAND_MRAND_CONT, + SMP_GENERATE_PRIVATE_KEY_0_7, + SMP_GENERATE_PRIVATE_KEY_8_15, + SMP_GENERATE_PRIVATE_KEY_16_23, + SMP_GENERATE_PRIVATE_KEY_24_31, + SMP_GEN_NONCE_0_7, + SMP_GEN_NONCE_8_15 +}; + +enum { + SMP_KEY_TYPE_TK, + SMP_KEY_TYPE_CFM, + SMP_KEY_TYPE_CMP, + SMP_KEY_TYPE_PEER_DHK_CHCK, + SMP_KEY_TYPE_STK, + SMP_KEY_TYPE_LTK +}; +typedef struct { + UINT8 key_type; + UINT8 *p_data; +} tSMP_KEY; + +typedef union { + UINT8 *p_data; /* UINT8 type data pointer */ + tSMP_KEY key; + UINT16 reason; + UINT32 passkey; + tSMP_OOB_DATA_TYPE req_oob_type; +} tSMP_INT_DATA; + +/* internal status mask */ +#define SMP_PAIR_FLAGS_WE_STARTED_DD (1) +#define SMP_PAIR_FLAGS_PEER_STARTED_DD (1 << 1) +#define SMP_PAIR_FLAGS_CMD_CONFIRM (1 << SMP_OPCODE_CONFIRM) /* 1 << 3 */ +#define SMP_PAIR_FLAG_ENC_AFTER_PAIR (1 << 4) +#define SMP_PAIR_FLAG_HAVE_PEER_DHK_CHK (1 << 5) /* used on slave to resolve race condition */ +#define SMP_PAIR_FLAG_HAVE_PEER_PUBL_KEY (1 << 6) /* used on slave to resolve race condition */ +#define SMP_PAIR_FLAG_HAVE_PEER_COMM (1 << 7) /* used to resolve race condition */ +#define SMP_PAIR_FLAG_HAVE_LOCAL_PUBL_KEY (1 << 8) /* used on slave to resolve race condition */ + +/* check if authentication requirement need MITM protection */ +#define SMP_NO_MITM_REQUIRED(x) (((x) & SMP_AUTH_YN_BIT) == 0) + +#define SMP_ENCRYT_KEY_SIZE 16 +#define SMP_ENCRYT_DATA_SIZE 16 +#define SMP_ECNCRPYT_STATUS HCI_SUCCESS + +typedef struct { + BD_ADDR bd_addr; + BT_HDR *p_copy; +} tSMP_REQ_Q_ENTRY; + +/* SMP control block */ +typedef struct { + tSMP_CALLBACK *p_callback; + TIMER_LIST_ENT rsp_timer_ent; + UINT8 trace_level; + BD_ADDR pairing_bda; + tSMP_STATE state; + BOOLEAN derive_lk; + BOOLEAN id_addr_rcvd; + tBLE_ADDR_TYPE id_addr_type; + BD_ADDR id_addr; + BOOLEAN smp_over_br; + tSMP_BR_STATE br_state; /* if SMP over BR/ERD has priority over SMP */ + UINT8 failure; + UINT8 status; + UINT8 role; + UINT16 flags; + UINT8 cb_evt; + tSMP_SEC_LEVEL sec_level; + BOOLEAN connect_initialized; + BT_OCTET16 confirm; + BT_OCTET16 rconfirm; + BT_OCTET16 rrand; /* for SC this is peer nonce */ + BT_OCTET16 rand; /* for SC this is local nonce */ + BT_OCTET32 private_key; + BT_OCTET32 dhkey; + BT_OCTET16 commitment; + BT_OCTET16 remote_commitment; + BT_OCTET16 local_random; /* local randomizer - passkey or OOB randomizer */ + BT_OCTET16 peer_random; /* peer randomizer - passkey or OOB randomizer */ + BT_OCTET16 dhkey_check; + BT_OCTET16 remote_dhkey_check; + tSMP_PUBLIC_KEY loc_publ_key; + tSMP_PUBLIC_KEY peer_publ_key; + tSMP_OOB_DATA_TYPE req_oob_type; + tSMP_SC_OOB_DATA sc_oob_data; + tSMP_IO_CAP peer_io_caps; + tSMP_IO_CAP local_io_capability; + tSMP_OOB_FLAG peer_oob_flag; + tSMP_OOB_FLAG loc_oob_flag; + tSMP_AUTH_REQ peer_auth_req; + tSMP_AUTH_REQ loc_auth_req; + BOOLEAN secure_connections_only_mode_required;/* TRUE if locally SM is required to operate */ + /* either in Secure Connections mode or not at all */ + tSMP_ASSO_MODEL selected_association_model; + BOOLEAN le_secure_connections_mode_is_used; + BOOLEAN le_sc_kp_notif_is_used; + tSMP_SC_KEY_TYPE local_keypress_notification; + tSMP_SC_KEY_TYPE peer_keypress_notification; + UINT8 round; /* authentication stage 1 round for passkey association model */ + UINT32 number_to_display; + BT_OCTET16 mac_key; + UINT8 peer_enc_size; + UINT8 loc_enc_size; + UINT8 peer_i_key; + UINT8 peer_r_key; + UINT8 local_i_key; + UINT8 local_r_key; + + BT_OCTET16 tk; + BT_OCTET16 ltk; + UINT16 div; + BT_OCTET16 csrk; /* storage for local CSRK */ + UINT16 ediv; + BT_OCTET8 enc_rand; + UINT8 rand_enc_proc_state; + UINT8 addr_type; + BD_ADDR local_bda; + BOOLEAN is_pair_cancel; + BOOLEAN discard_sec_req; + UINT8 rcvd_cmd_code; + UINT8 rcvd_cmd_len; + UINT16 total_tx_unacked; + BOOLEAN wait_for_authorization_complete; +} tSMP_CB; + +/* Server Action functions are of this type */ +typedef void (*tSMP_ACT)(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); + + +#ifdef __cplusplus +extern "C" +{ +#endif + +#if SMP_DYNAMIC_MEMORY == FALSE +extern tSMP_CB smp_cb; +#else +extern tSMP_CB *smp_cb_ptr; +#define smp_cb (*smp_cb_ptr) +#endif + +#ifdef __cplusplus +} +#endif + +/* Functions provided by att_main.c */ +extern void smp_init (void); + +/* smp main */ +extern void smp_sm_event(tSMP_CB *p_cb, tSMP_EVENT event, void *p_data); + +extern void smp_proc_sec_request(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_set_fail_nc (BOOLEAN enable); +extern void smp_set_fail_conf (BOOLEAN enable); +extern void smp_set_passk_entry_fail(BOOLEAN enable); +extern void smp_set_oob_fail(BOOLEAN enable); +extern void smp_set_peer_sc_notif(BOOLEAN enable); +extern void smp_aes_cmac_rfc4493_chk (UINT8 *key, UINT8 *msg, UINT8 msg_len, + UINT8 mac_len, UINT8 *mac); +extern void smp_f4_calc_chk (UINT8 *U, UINT8 *V, UINT8 *X, UINT8 *Z, UINT8 *mac); +extern void smp_g2_calc_chk (UINT8 *U, UINT8 *V, UINT8 *X, UINT8 *Y); +extern void smp_h6_calc_chk (UINT8 *key, UINT8 *key_id, UINT8 *mac); +extern void smp_f5_key_calc_chk (UINT8 *w, UINT8 *mac); +extern void smp_f5_mackey_or_ltk_calc_chk(UINT8 *t, UINT8 *counter, + UINT8 *key_id, UINT8 *n1, + UINT8 *n2, UINT8 *a1, UINT8 *a2, + UINT8 *length, UINT8 *mac); +extern void smp_f5_calc_chk (UINT8 *w, UINT8 *n1, UINT8 *n2, UINT8 *a1, UINT8 *a2, + UINT8 *mac_key, UINT8 *ltk); +extern void smp_f6_calc_chk (UINT8 *w, UINT8 *n1, UINT8 *n2, UINT8 *r, + UINT8 *iocap, UINT8 *a1, UINT8 *a2, UINT8 *mac); +/* smp_main */ +extern void smp_sm_event(tSMP_CB *p_cb, tSMP_EVENT event, void *p_data); +extern tSMP_STATE smp_get_state(void); +extern void smp_set_state(tSMP_STATE state); + +/* smp_br_main */ +extern void smp_br_state_machine_event(tSMP_CB *p_cb, tSMP_BR_EVENT event, void *p_data); +extern tSMP_BR_STATE smp_get_br_state(void); +extern void smp_set_br_state(tSMP_BR_STATE state); + + +/* smp_act.c */ +extern void smp_send_pair_req(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_confirm(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_pair_fail(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_rand(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_pair_public_key(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_commitment(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_dhkey_check(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_keypress_notification(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_pair_fail(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_confirm(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_rand(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_process_pairing_public_key(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_enc_info(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_master_id(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_id_info(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_id_addr(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_sec_grant(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_sec_req(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_sl_key(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_start_enc(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_enc_cmpl(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_discard(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_pairing_cmpl(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_decide_association_model(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_app_cback(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_compare(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_check_auth_req(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_process_io_response(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_id_info(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_enc_info(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_csrk_info(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_ltk_reply(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_pair_cmd(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_pair_terminate(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_idle_terminate(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_send_pair_rsp(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_key_distribution(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_proc_srk_info(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_generate_csrk(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_fast_conn_param(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_key_pick_key(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_both_have_public_keys(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_start_secure_connection_phase1(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_process_local_nonce(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_process_pairing_commitment(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_process_peer_nonce(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_process_dhkey_check(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_match_dhkey_checks(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_process_keypress_notification(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_move_to_secure_connections_phase2(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_phase_2_dhkey_checks_are_present(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_wait_for_both_public_keys(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_start_passkey_verification(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_process_secure_connection_oob_data(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_process_secure_connection_long_term_key(void); +extern void smp_set_local_oob_keys(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_set_local_oob_random_commitment(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_set_derive_link_key(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_derive_link_key_from_long_term_key(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_br_process_pairing_command(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_br_process_security_grant(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_br_process_slave_keys_response(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_br_send_pair_response(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_br_check_authorization_request(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_br_select_next_key(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_br_process_link_key(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_key_distribution_by_transport(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_br_pairing_complete(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); + +/* smp_l2c */ +extern void smp_l2cap_if_init (void); +extern void smp_data_ind (BD_ADDR bd_addr, BT_HDR *p_buf); + +/* smp_util.c */ +extern BOOLEAN smp_send_cmd(UINT8 cmd_code, tSMP_CB *p_cb); +extern void smp_cb_cleanup(tSMP_CB *p_cb); +extern void smp_reset_control_value(tSMP_CB *p_cb); +extern void smp_proc_pairing_cmpl(tSMP_CB *p_cb); +extern void smp_convert_string_to_tk(BT_OCTET16 tk, UINT32 passkey); +extern void smp_mask_enc_key(UINT8 loc_enc_size, UINT8 *p_data); +extern void smp_rsp_timeout(TIMER_LIST_ENT *p_tle); +extern void smp_xor_128(BT_OCTET16 a, BT_OCTET16 b); +extern BOOLEAN smp_encrypt_data (UINT8 *key, UINT8 key_len, + UINT8 *plain_text, UINT8 pt_len, + tSMP_ENC *p_out); +extern BOOLEAN smp_command_has_invalid_parameters(tSMP_CB *p_cb); +extern void smp_reject_unexpected_pairing_command(BD_ADDR bd_addr); +extern tSMP_ASSO_MODEL smp_select_association_model(tSMP_CB *p_cb); +extern void smp_reverse_array(UINT8 *arr, UINT8 len); +extern UINT8 smp_calculate_random_input(UINT8 *random, UINT8 round); +extern void smp_collect_local_io_capabilities(UINT8 *iocap, tSMP_CB *p_cb); +extern void smp_collect_peer_io_capabilities(UINT8 *iocap, tSMP_CB *p_cb); +extern void smp_collect_local_ble_address(UINT8 *le_addr, tSMP_CB *p_cb); +extern void smp_collect_peer_ble_address(UINT8 *le_addr, tSMP_CB *p_cb); +extern BOOLEAN smp_check_commitment(tSMP_CB *p_cb); +extern void smp_save_secure_connections_long_term_key(tSMP_CB *p_cb); +extern BOOLEAN smp_calculate_f5_mackey_and_long_term_key(tSMP_CB *p_cb); +extern void smp_remove_fixed_channel(tSMP_CB *p_cb); +extern BOOLEAN smp_request_oob_data(tSMP_CB *p_cb); + +/* smp_keys.c */ +extern void smp_generate_srand_mrand_confirm (tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_generate_compare (tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_generate_stk (tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_generate_ltk(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_generate_passkey (tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_generate_rand_cont(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_create_private_key(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_use_oob_private_key(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_compute_dhkey(tSMP_CB *p_cb); +extern void smp_calculate_local_commitment(tSMP_CB *p_cb); +extern void smp_calculate_peer_commitment(tSMP_CB *p_cb, BT_OCTET16 output_buf); +extern void smp_calculate_numeric_comparison_display_number(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_calculate_local_dhkey_check(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_calculate_peer_dhkey_check(tSMP_CB *p_cb, tSMP_INT_DATA *p_data); +extern void smp_start_nonce_generation(tSMP_CB *p_cb); +extern BOOLEAN smp_calculate_link_key_from_long_term_key(tSMP_CB *p_cb); +extern BOOLEAN smp_calculate_long_term_key_from_link_key(tSMP_CB *p_cb); +extern void smp_calculate_f4(UINT8 *u, UINT8 *v, UINT8 *x, UINT8 z, UINT8 *c); +extern UINT32 smp_calculate_g2(UINT8 *u, UINT8 *v, UINT8 *x, UINT8 *y); +extern BOOLEAN smp_calculate_f5(UINT8 *w, UINT8 *n1, UINT8 *n2, UINT8 *a1, UINT8 *a2, + UINT8 *mac_key, UINT8 *ltk); +extern BOOLEAN smp_calculate_f5_mackey_or_long_term_key(UINT8 *t, UINT8 *counter, + UINT8 *key_id, UINT8 *n1, UINT8 *n2, UINT8 *a1, + UINT8 *a2, UINT8 *length, UINT8 *mac); +extern BOOLEAN smp_calculate_f5_key(UINT8 *w, UINT8 *t); +extern BOOLEAN smp_calculate_f6(UINT8 *w, UINT8 *n1, UINT8 *n2, UINT8 *r, UINT8 *iocap, + UINT8 *a1, UINT8 *a2, UINT8 *f3); +extern BOOLEAN smp_calculate_h6(UINT8 *w, UINT8 *keyid, UINT8 *h2); +#if SMP_DEBUG == TRUE +extern void smp_debug_print_nbyte_little_endian (UINT8 *p, const UINT8 *key_name, + UINT8 len); +#endif + +/* smp_cmac.c */ +extern BOOLEAN aes_cipher_msg_auth_code(BT_OCTET16 key, UINT8 *input, UINT16 length, + UINT16 tlen, UINT8 *p_signature); +extern void print128(BT_OCTET16 x, const UINT8 *key_name); + +#endif + +#endif /* SMP_INT_H */ diff --git a/tools/sdk/include/bluedroid/srvc_api.h b/tools/sdk/include/bluedroid/srvc_api.h new file mode 100644 index 00000000..a7a46b8e --- /dev/null +++ b/tools/sdk/include/bluedroid/srvc_api.h @@ -0,0 +1,210 @@ +/****************************************************************************** + * + * Copyright (C) 1999-2013 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +#ifndef SRVC_DIS_API_H +#define SRVC_DIS_API_H + +#include "bt_target.h" +#include "gatt_api.h" +#include "gattdefs.h" + +#define DIS_SUCCESS GATT_SUCCESS +#define DIS_ILLEGAL_PARAM GATT_ILLEGAL_PARAMETER +#define DIS_NO_RESOURCES GATT_NO_RESOURCES +typedef UINT8 tDIS_STATUS; + + +/***************************************************************************** +** Data structure for DIS +*****************************************************************************/ + +#define DIS_ATTR_SYS_ID_BIT 0x0001 +#define DIS_ATTR_MODEL_NUM_BIT 0x0002 +#define DIS_ATTR_SERIAL_NUM_BIT 0x0004 +#define DIS_ATTR_FW_NUM_BIT 0x0008 +#define DIS_ATTR_HW_NUM_BIT 0x0010 +#define DIS_ATTR_SW_NUM_BIT 0x0020 +#define DIS_ATTR_MANU_NAME_BIT 0x0040 +#define DIS_ATTR_IEEE_DATA_BIT 0x0080 +#define DIS_ATTR_PNP_ID_BIT 0x0100 +typedef UINT16 tDIS_ATTR_MASK; + +#define DIS_ATTR_ALL_MASK 0xffff + +typedef tDIS_ATTR_MASK tDIS_ATTR_BIT ; + +typedef struct { + UINT16 len; + UINT8 *p_data; +} tDIS_STRING; + +typedef struct { + UINT16 vendor_id; + UINT16 product_id; + UINT16 product_version; + UINT8 vendor_id_src; + +} tDIS_PNP_ID; + +typedef union { + UINT64 system_id; + tDIS_PNP_ID pnp_id; + tDIS_STRING data_str; +} tDIS_ATTR; + +#define DIS_MAX_STRING_DATA 7 + +typedef struct { + UINT16 attr_mask; + UINT64 system_id; + tDIS_PNP_ID pnp_id; + UINT8 *data_string[DIS_MAX_STRING_DATA]; +} tDIS_VALUE; + + +typedef void (tDIS_READ_CBACK)(BD_ADDR addr, tDIS_VALUE *p_dis_value); + +/***************************************************************************** +** Data structure used by Battery Service +*****************************************************************************/ +typedef struct { + BD_ADDR remote_bda; + BOOLEAN need_rsp; + UINT16 clt_cfg; +} tBA_WRITE_DATA; + +#define BA_READ_CLT_CFG_REQ 1 +#define BA_READ_PRE_FMT_REQ 2 +#define BA_READ_RPT_REF_REQ 3 +#define BA_READ_LEVEL_REQ 4 +#define BA_WRITE_CLT_CFG_REQ 5 + +typedef void (tBA_CBACK)(UINT8 app_id, UINT8 event, tBA_WRITE_DATA *p_data); + +#define BA_LEVEL_NOTIFY 0x01 +#define BA_LEVEL_PRE_FMT 0x02 +#define BA_LEVEL_RPT_REF 0x04 +typedef UINT8 tBA_LEVEL_DESCR; + +typedef struct { + BOOLEAN is_pri; + tBA_LEVEL_DESCR ba_level_descr; + tGATT_TRANSPORT transport; + tBA_CBACK *p_cback; + +} tBA_REG_INFO; + +typedef union { + UINT8 ba_level; + UINT16 clt_cfg; + tGATT_CHAR_RPT_REF rpt_ref; + tGATT_CHAR_PRES pres_fmt; +} tBA_RSP_DATA; + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ +#ifdef __cplusplus +extern "C" +{ +#endif +/***************************************************************************** +** Service Engine API +*****************************************************************************/ +/******************************************************************************* +** +** Function srvc_eng_init +** +** Description Initializa the GATT Service engine, register a GATT application +** as for a central service management. +** +*******************************************************************************/ +extern tGATT_STATUS srvc_eng_init (void); + + +/***************************************************************************** +** DIS Server Function +*****************************************************************************/ + +/******************************************************************************* +** +** Function DIS_SrInit +** +** Description Initializa the Device Information Service Server. +** +*******************************************************************************/ +extern tDIS_STATUS DIS_SrInit (tDIS_ATTR_MASK dis_attr_mask); +/******************************************************************************* +** +** Function DIS_SrUpdate +** +** Description Update the DIS server attribute values +** +*******************************************************************************/ +extern tDIS_STATUS DIS_SrUpdate(tDIS_ATTR_BIT dis_attr_bit, tDIS_ATTR *p_info); +/***************************************************************************** +** DIS Client Function +*****************************************************************************/ +/******************************************************************************* +** +** Function DIS_ReadDISInfo +** +** Description Read remote device DIS information. +** +** Returns void +** +*******************************************************************************/ +extern BOOLEAN DIS_ReadDISInfo(BD_ADDR peer_bda, tDIS_READ_CBACK *p_cback, + tDIS_ATTR_MASK mask); + +/******************************************************************************* +** BATTERY SERVICE API +*******************************************************************************/ +/******************************************************************************* +** +** Function Battery_Instantiate +** +** Description Instantiate a Battery service +** +*******************************************************************************/ +extern UINT16 Battery_Instantiate (UINT8 app_id, tBA_REG_INFO *p_reg_info); + +/******************************************************************************* +** +** Function Battery_Rsp +** +** Description Respond to a battery service request +** +*******************************************************************************/ +extern void Battery_Rsp (UINT8 app_id, tGATT_STATUS st, UINT8 event, tBA_RSP_DATA *p_rsp); +/******************************************************************************* +** +** Function Battery_Notify +** +** Description Send battery level notification +** +*******************************************************************************/ +extern void Battery_Notify (UINT8 app_id, BD_ADDR remote_bda, UINT8 battery_level); + + +#ifdef __cplusplus + +} +#endif + +#endif diff --git a/tools/sdk/include/bluedroid/thread.h b/tools/sdk/include/bluedroid/thread.h new file mode 100644 index 00000000..61e9487e --- /dev/null +++ b/tools/sdk/include/bluedroid/thread.h @@ -0,0 +1,73 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __THREAD_H__ +#define __THREAD_H__ + +#include "freertos/xtensa_api.h" +#include "freertos/FreeRTOSConfig.h" +#include "freertos/FreeRTOS.h" +#include "freertos/queue.h" +#include "freertos/task.h" + +#include "bt_defs.h" + +#define portBASE_TYPE int + +struct bt_task_evt { + uint32_t sig; //task sig + void *par; //point to task param + void *cb; //point to function cb + void *arg; //point to function arg +}; +typedef struct bt_task_evt BtTaskEvt_t; + +typedef bt_status_t (* BtTaskCb_t)(void *arg); + +enum { + SIG_PRF_START_UP = 0xfc, + SIG_PRF_WORK = 0xfd, + SIG_BTU_START_UP = 0xfe, + SIG_BTU_WORK = 0xff, + SIG_BTIF_WORK = 0xff +}; + +#define HCI_HOST_TASK_STACK_SIZE 1500 +#define HCI_HOST_TASK_PRIO (configMAX_PRIORITIES - 2) +#define HCI_HOST_TASK_NAME "hciHostT" +#define HCI_HOST_QUEUE_NUM 40 + +#define HCI_H4_TASK_STACK_SIZE 1500 +#define HCI_H4_TASK_PRIO (configMAX_PRIORITIES - 3) +#define HCI_H4_TASK_NAME "hciH4T" +#define HCI_H4_QUEUE_NUM 60 + +#define BTU_TASK_STACK_SIZE 4096 +#define BTU_TASK_PRIO (configMAX_PRIORITIES - 4) +#define BTU_TASK_NAME "btuT" +#define BTU_QUEUE_NUM 50 + +#define BTC_TASK_STACK_SIZE CONFIG_BTC_TASK_STACK_SIZE //by menuconfig +#define BTC_TASK_NAME "btcT" +#define BTC_TASK_PRIO (configMAX_PRIORITIES - 5) +#define BTC_TASK_QUEUE_NUM 20 + +void btu_task_post(uint32_t sig); +void hci_host_task_post(void); +void hci_hal_h4_task_post(void); +void hci_drv_task_post(void); +void bt_alarm_task_post(void); + + +#endif /* __THREAD_H__ */ diff --git a/tools/sdk/include/bluedroid/utl.h b/tools/sdk/include/bluedroid/utl.h new file mode 100644 index 00000000..39dbe297 --- /dev/null +++ b/tools/sdk/include/bluedroid/utl.h @@ -0,0 +1,169 @@ +/****************************************************************************** + * + * Copyright (C) 2003-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * Basic utility functions. + * + ******************************************************************************/ +#ifndef UTL_H +#define UTL_H + +#include "bt_types.h" +// #include "bt_utils.h" + +/***************************************************************************** +** Constants +*****************************************************************************/ +/*** class of device settings ***/ +#define BTA_UTL_SET_COD_MAJOR_MINOR 0x01 +#define BTA_UTL_SET_COD_SERVICE_CLASS 0x02 /* only set the bits in the input */ +#define BTA_UTL_CLR_COD_SERVICE_CLASS 0x04 +#define BTA_UTL_SET_COD_ALL 0x08 /* take service class as the input (may clear some set bits!!) */ +#define BTA_UTL_INIT_COD 0x0a + +/***************************************************************************** +** Type Definitions +*****************************************************************************/ + +/** for utl_set_device_class() **/ +typedef struct { + UINT8 minor; + UINT8 major; + UINT16 service; +} tBTA_UTL_COD; + + +#ifdef __cplusplus +extern "C" +{ +#endif + +/***************************************************************************** +** External Function Declarations +*****************************************************************************/ + +/******************************************************************************* +** +** Function utl_str2int +** +** Description This utility function converts a character string to an +** integer. Acceptable values in string are 0-9. If invalid +** string or string value too large, -1 is returned. +** +** +** Returns Integer value or -1 on error. +** +*******************************************************************************/ +extern INT16 utl_str2int(const char *p_s); + +/******************************************************************************* +** +** Function utl_strucmp +** +** Description This utility function compares two strings in uppercase. +** String p_s must be uppercase. String p_t is converted to +** uppercase if lowercase. If p_s ends first, the substring +** match is counted as a match. +** +** +** Returns 0 if strings match, nonzero otherwise. +** +*******************************************************************************/ +extern int utl_strucmp(const char *p_s, const char *p_t); + +/******************************************************************************* +** +** Function utl_itoa +** +** Description This utility function converts a UINT16 to a string. The +** string is NULL-terminated. The length of the string is +** returned. +** +** +** Returns Length of string. +** +*******************************************************************************/ +extern UINT8 utl_itoa(UINT16 i, char *p_s); + +/******************************************************************************* +** +** Function utl_freebuf +** +** Description This function calls GKI_freebuf to free the buffer passed +** in, if buffer pointer is not NULL, and also initializes +** buffer pointer to NULL. +** +** +** Returns Nothing. +** +*******************************************************************************/ +extern void utl_freebuf(void **p); + +/******************************************************************************* +** +** Function utl_set_device_class +** +** Description This function updates the local Device Class. +** +** Parameters: +** p_cod - Pointer to the device class to set to +** +** cmd - the fields of the device class to update. +** BTA_UTL_SET_COD_MAJOR_MINOR, - overwrite major, minor class +** BTA_UTL_SET_COD_SERVICE_CLASS - set the bits in the input +** BTA_UTL_CLR_COD_SERVICE_CLASS - clear the bits in the input +** BTA_UTL_SET_COD_ALL - overwrite major, minor, set the bits in service class +** BTA_UTL_INIT_COD - overwrite major, minor, and service class +** +** Returns TRUE if successful, Otherwise FALSE +** +*******************************************************************************/ +extern BOOLEAN utl_set_device_class(tBTA_UTL_COD *p_cod, UINT8 cmd); + +/******************************************************************************* +** +** Function utl_isintstr +** +** Description This utility function checks if the given string is an +** integer string or not +** +** +** Returns TRUE if successful, Otherwise FALSE +** +*******************************************************************************/ +extern BOOLEAN utl_isintstr(const char *p_s); + +/******************************************************************************* +** +** Function utl_isdialstr +** +** Description This utility function checks if the given string contains +** only dial digits or not +** +** +** Returns TRUE if successful, Otherwise FALSE +** +*******************************************************************************/ +extern BOOLEAN utl_isdialstr(const char *p_s); + +#ifdef __cplusplus +} +#endif + +#endif /* UTL_H */ diff --git a/tools/sdk/include/bluedroid/version.h b/tools/sdk/include/bluedroid/version.h new file mode 100644 index 00000000..c63b03bd --- /dev/null +++ b/tools/sdk/include/bluedroid/version.h @@ -0,0 +1,31 @@ +/****************************************************************************** + * + * Copyright (C) 2014 Google, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ +#ifndef _VERSION_H_ +#define _VERSION_H_ + +#include + +typedef struct { + uint8_t hci_version; + uint16_t hci_revision; + uint8_t lmp_version; + uint16_t manufacturer; + uint16_t lmp_subversion; +} bt_version_t; + +#endif /*_VERSION_H_*/ diff --git a/tools/sdk/include/bluedroid/wx_airsync_prf.h b/tools/sdk/include/bluedroid/wx_airsync_prf.h new file mode 100644 index 00000000..f008ce64 --- /dev/null +++ b/tools/sdk/include/bluedroid/wx_airsync_prf.h @@ -0,0 +1,110 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "prf_defs.h" + +#if (WX_AIRSYNC_CFG) + +#include "bt_target.h" +#include "gatt_api.h" +#include "gattdefs.h" +#include "bt_app_api.h" + + +/// Maximum Transmission Unit +#define ATT_DEFAULT_MTU (23) + +#define BLE_WECHAT_MAX_DATA_LEN (ATT_DEFAULT_MTU - 3) + + +//define the key serivce uuid +#define ATT_SVC_AIRSYNC 0xFEE7 +//define the airsync Char uuid +#define ATT_CHAR_AIRSYNC_WIT 0xFEC7 +#define ATT_CHAR_AIRSYBC_NTF 0xFEC8 +#define ATT_CHAR_AIRSYNC_READ 0xFEC9 + + +typedef void (tAIRSYNC_CBACK)(UINT8 app_id, UINT8 event, UINT8 len, UINT8 *data); + + +/// WX AirSync Service Attributes Indexes +enum { + WX_IDX_SVC, + WX_IDX_AIRSYNC_WIT_CHAR, + WX_IDX_AIRSYNC_WIT_VAL, + WX_IDX_AIRSYNC_NTF_CHAR, + WX_IDX_AIRSYNC_NTF_VAL, + WX_IDX_AIRSYNC_READ_CHAR, + WX_IDX_AIRSYNC_READ_VAL, + WX_IDX_AIRSYNC_NTF_CFG, + + WX_IDX_NB, +}; + +typedef struct { + BD_ADDR remote_bda; + BOOLEAN need_rsp; + UINT16 clt_cfg; +} tAirSync_WRITE_DATA; + +typedef struct { + BOOLEAN in_use; + BOOLEAN congest; + UINT16 conn_id; + BOOLEAN connected; + BD_ADDR remote_bda; + UINT32 trans_id; + UINT8 cur_srvc_id; + +} tAirSync_CLCB; + + +typedef struct { + UINT8 app_id; + UINT16 airsync_wirt_hdl; + UINT16 airsync_ntf_hdl; + UINT16 airsync_read_hdl; + UINT16 airsync_cfg_hdl; + + tAIRSYNC_CBACK *p_cback; + +} tAirSync_INST; + + +/* service engine control block */ +typedef struct { + tAirSync_CLCB clcb; /* connection link*/ + tGATT_IF gatt_if; + BOOLEAN enabled; + BOOLEAN is_primery; + tAirSync_INST airsync_inst; + UINT8 inst_id; +} tAIRSYNC_CB_ENV; + +void AirSync_CreateService(void); + +tAirSync_CLCB *airsync_env_clcb_alloc (UINT16 conn_id, BD_ADDR remote_bda); + +UINT16 AirSync_env_find_conn_id_by_bd_adddr(BD_ADDR bda); + +BOOLEAN AirSync_env_clcb_dealloc(UINT16 conn_id); + +tGATT_STATUS AirSync_Init(tAIRSYNC_CBACK *call_back); + +void AirSync_msg_notify(UINT8 len, UINT8 *button_msg); + +extern tAIRSYNC_CB_ENV airsync_cb_env; + +#endif ///WX_AIRSYNC_CFG diff --git a/tools/sdk/include/config/sdkconfig.h b/tools/sdk/include/config/sdkconfig.h index edbb9499..2619565a 100644 --- a/tools/sdk/include/config/sdkconfig.h +++ b/tools/sdk/include/config/sdkconfig.h @@ -5,14 +5,17 @@ * */ #define CONFIG_ESP32_PHY_MAX_TX_POWER 20 +#define CONFIG_PHY_ENABLED 1 #define CONFIG_TRACEMEM_RESERVE_DRAM 0x0 #define CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE 1 #define CONFIG_ESPTOOLPY_FLASHSIZE_4MB 1 #define CONFIG_ESPTOOLPY_FLASHFREQ "80m" #define CONFIG_NEWLIB_STDOUT_ADDCR 1 +#define CONFIG_TASK_WDT_CHECK_IDLE_TASK 1 #define CONFIG_ESPTOOLPY_FLASHSIZE "4MB" #define CONFIG_ETHERNET 1 #define CONFIG_EMAC_L2_TO_L3_RX_BUF_MODE 1 +#define CONFIG_INT_WDT 1 #define CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL 1 #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_BT_RESERVE_DRAM 0x10000 @@ -22,6 +25,7 @@ #define CONFIG_EMAC_TASK_PRIORITY 20 #define CONFIG_ULP_COPROC_RESERVE_MEM 512 #define CONFIG_ESPTOOLPY_BAUD 921600 +#define CONFIG_INT_WDT_CHECK_CPU1 1 #define CONFIG_ESPTOOLPY_AFTER_RESET 1 #define CONFIG_TOOLPREFIX "xtensa-esp32-elf-" #define CONFIG_CONSOLE_UART_NUM 0 @@ -34,11 +38,15 @@ #define CONFIG_LOG_DEFAULT_LEVEL_ERROR 1 #define CONFIG_MBEDTLS_MPI_USE_INTERRUPT 1 #define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE 1 +#define CONFIG_TASK_WDT 1 #define CONFIG_MAIN_TASK_STACK_SIZE 4096 +#define CONFIG_TASK_WDT_TIMEOUT_S 5 +#define CONFIG_INT_WDT_TIMEOUT_MS 300 #define CONFIG_ESPTOOLPY_FLASHMODE "dio" #define CONFIG_BTC_TASK_STACK_SIZE 2048 #define CONFIG_ESPTOOLPY_BEFORE "default_reset" #define CONFIG_LOG_DEFAULT_LEVEL 1 +#define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER 20 #define CONFIG_ULP_COPROC_ENABLED 1 #define CONFIG_DMA_RX_BUF_NUM 10 #define CONFIG_ESPTOOLPY_FLASHMODE_DIO 1 @@ -76,6 +84,7 @@ #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" #define CONFIG_MBEDTLS_HAVE_TIME 1 #define CONFIG_FREERTOS_ISR_STACKSIZE 1536 +#define CONFIG_OPENSSL_ASSERT_DO_NOTHING 1 #define CONFIG_OPTIMIZATION_LEVEL_DEBUG 1 #define CONFIG_SYSTEM_EVENT_QUEUE_SIZE 32 #define CONFIG_ESP32_WIFI_RX_BUFFER_NUM 25 diff --git a/tools/sdk/include/esp32/esp_panic.h b/tools/sdk/include/esp32/esp_panic.h index aa83c6d3..e9668fac 100644 --- a/tools/sdk/include/esp32/esp_panic.h +++ b/tools/sdk/include/esp32/esp_panic.h @@ -1,6 +1,10 @@ #ifndef PANIC_H #define PANIC_H +#ifdef __cplusplus +extern "C" +{ +#endif #define PANIC_RSN_NONE 0 #define PANIC_RSN_DEBUGEXCEPTION 1 @@ -59,4 +63,8 @@ void esp_clear_watchpoint(int no); #endif +#ifdef __cplusplus +} +#endif + #endif diff --git a/tools/sdk/include/esp32/soc/ledc_struct.h b/tools/sdk/include/esp32/soc/ledc_struct.h index d119289a..c52f6707 100644 --- a/tools/sdk/include/esp32/soc/ledc_struct.h +++ b/tools/sdk/include/esp32/soc/ledc_struct.h @@ -122,6 +122,7 @@ typedef volatile struct { uint32_t lstimer1_ovf: 1; /*The interrupt status bit for low speed channel1 counter overflow event.*/ uint32_t lstimer2_ovf: 1; /*The interrupt status bit for low speed channel2 counter overflow event.*/ uint32_t lstimer3_ovf: 1; /*The interrupt status bit for low speed channel3 counter overflow event.*/ + uint32_t duty_chng_end_hsch0: 1; /*The interrupt enable bit for high speed channel 0 duty change done event.*/ uint32_t duty_chng_end_hsch1: 1; /*The interrupt status bit for high speed channel 1 duty change done event.*/ uint32_t duty_chng_end_hsch2: 1; /*The interrupt status bit for high speed channel 2 duty change done event.*/ uint32_t duty_chng_end_hsch3: 1; /*The interrupt status bit for high speed channel 3 duty change done event.*/ diff --git a/tools/sdk/include/lwip/lwipopts.h b/tools/sdk/include/lwip/lwipopts.h index 638c1f74..dc826494 100644 --- a/tools/sdk/include/lwip/lwipopts.h +++ b/tools/sdk/include/lwip/lwipopts.h @@ -206,6 +206,11 @@ #define DHCP_MAXRTX 0 +/** + * DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address. + */ +#define DHCP_DOES_ARP_CHECK CONFIG_LWIP_DHCP_DOES_ARP_CHECK + /* ------------------------------------ ---------- AUTOIP options ---------- diff --git a/tools/sdk/include/lwip/port/lwipopts.h b/tools/sdk/include/lwip/port/lwipopts.h index 638c1f74..dc826494 100644 --- a/tools/sdk/include/lwip/port/lwipopts.h +++ b/tools/sdk/include/lwip/port/lwipopts.h @@ -206,6 +206,11 @@ #define DHCP_MAXRTX 0 +/** + * DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address. + */ +#define DHCP_DOES_ARP_CHECK CONFIG_LWIP_DHCP_DOES_ARP_CHECK + /* ------------------------------------ ---------- AUTOIP options ---------- diff --git a/tools/sdk/include/mbedtls/mbedtls/bignum.h b/tools/sdk/include/mbedtls/mbedtls/bignum.h index 23cd5634..46f25076 100644 --- a/tools/sdk/include/mbedtls/mbedtls/bignum.h +++ b/tools/sdk/include/mbedtls/mbedtls/bignum.h @@ -1,78 +1,722 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -#ifndef __ESP_MBEDTLS_BIGNUM_H__ -#define __ESP_MBEDTLS_BIGNUM_H__ - -#include_next "mbedtls/bignum.h" - /** - * This is a wrapper for the main mbedtls/bignum.h. This wrapper - * provides a few additional ESP32-only functions. + * \file bignum.h * - * This is because we don't set MBEDTLS_BIGNUM_ALT in the same way we - * do for AES, SHA, etc. Because we still use most of the bignum.h - * implementation and just replace a few hardware accelerated - * functions (see MBEDTLS_MPI_EXP_MOD_ALT & MBEDTLS_MPI_MUL_MPI_ALT in - * esp_config.h). + * \brief Multi-precision integer library * - * @note Unlike the other hardware accelerator support functions in esp32/hwcrypto, there is no - * generic "hwcrypto/bignum.h" header for using these functions without mbedTLS. The reason for this - * is that all of the function implementations depend strongly upon the mbedTLS MPI implementation. + * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * This file is part of mbed TLS (https://tls.mbed.org) */ +#ifndef MBEDTLS_BIGNUM_H +#define MBEDTLS_BIGNUM_H -/** - * @brief Lock access to RSA Accelerator (MPI/bignum operations) - * - * RSA Accelerator hardware unit can only be used by one - * consumer at a time. - * - * @note This function is non-recursive (do not call it twice from the - * same task.) - * - * @note You do not need to call this if you are using the mbedTLS bignum.h - * API or esp_mpi_xxx functions. This function is only needed if you - * want to call ROM RSA functions or access the registers directly. - * - */ -void esp_mpi_acquire_hardware(void); - -/** - * @brief Unlock access to RSA Accelerator (MPI/bignum operations) - * - * Has to be called once for each call to esp_mpi_acquire_hardware(). - * - * @note You do not need to call this if you are using the mbedTLS bignum.h - * API or esp_mpi_xxx functions. This function is only needed if you - * want to call ROM RSA functions or access the registers directly. - */ -void esp_mpi_release_hardware(void); - -/* @brief MPI modular mupltiplication function - * - * Calculates Z = (X * Y) mod M using MPI hardware acceleration. - * - * This is not part of the standard mbedTLS bignum API. - * - * @note All of X, Y & Z should be less than 4096 bit long or an error is returned. - * - * @param Z Result bignum, should be pre-initialised with mbedtls_mpi_init(). - * @param X First multiplication argument. - * @param Y Second multiplication argument. - * @param M Modulus value for result. - * - * @return 0 on success, mbedTLS MPI error codes on failure. - */ -int esp_mpi_mul_mpi_mod(mbedtls_mpi *Z, const mbedtls_mpi *X, const mbedtls_mpi *Y, const mbedtls_mpi *M); - +#if !defined(MBEDTLS_CONFIG_FILE) +#include "config.h" +#else +#include MBEDTLS_CONFIG_FILE #endif + +#include +#include + +#if defined(MBEDTLS_FS_IO) +#include +#endif + +#define MBEDTLS_ERR_MPI_FILE_IO_ERROR -0x0002 /**< An error occurred while reading from or writing to a file. */ +#define MBEDTLS_ERR_MPI_BAD_INPUT_DATA -0x0004 /**< Bad input parameters to function. */ +#define MBEDTLS_ERR_MPI_INVALID_CHARACTER -0x0006 /**< There is an invalid character in the digit string. */ +#define MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL -0x0008 /**< The buffer is too small to write to. */ +#define MBEDTLS_ERR_MPI_NEGATIVE_VALUE -0x000A /**< The input arguments are negative or result in illegal output. */ +#define MBEDTLS_ERR_MPI_DIVISION_BY_ZERO -0x000C /**< The input argument for division is zero, which is not allowed. */ +#define MBEDTLS_ERR_MPI_NOT_ACCEPTABLE -0x000E /**< The input arguments are not acceptable. */ +#define MBEDTLS_ERR_MPI_ALLOC_FAILED -0x0010 /**< Memory allocation failed. */ + +#define MBEDTLS_MPI_CHK(f) do { if( ( ret = f ) != 0 ) goto cleanup; } while( 0 ) + +/* + * Maximum size MPIs are allowed to grow to in number of limbs. + */ +#define MBEDTLS_MPI_MAX_LIMBS 10000 + +#if !defined(MBEDTLS_MPI_WINDOW_SIZE) +/* + * Maximum window size used for modular exponentiation. Default: 6 + * Minimum value: 1. Maximum value: 6. + * + * Result is an array of ( 2 << MBEDTLS_MPI_WINDOW_SIZE ) MPIs used + * for the sliding window calculation. (So 64 by default) + * + * Reduction in size, reduces speed. + */ +#define MBEDTLS_MPI_WINDOW_SIZE 6 /**< Maximum windows size used. */ +#endif /* !MBEDTLS_MPI_WINDOW_SIZE */ + +#if !defined(MBEDTLS_MPI_MAX_SIZE) +/* + * Maximum size of MPIs allowed in bits and bytes for user-MPIs. + * ( Default: 512 bytes => 4096 bits, Maximum tested: 2048 bytes => 16384 bits ) + * + * Note: Calculations can results temporarily in larger MPIs. So the number + * of limbs required (MBEDTLS_MPI_MAX_LIMBS) is higher. + */ +#define MBEDTLS_MPI_MAX_SIZE 1024 /**< Maximum number of bytes for usable MPIs. */ +#endif /* !MBEDTLS_MPI_MAX_SIZE */ + +#define MBEDTLS_MPI_MAX_BITS ( 8 * MBEDTLS_MPI_MAX_SIZE ) /**< Maximum number of bits for usable MPIs. */ + +/* + * When reading from files with mbedtls_mpi_read_file() and writing to files with + * mbedtls_mpi_write_file() the buffer should have space + * for a (short) label, the MPI (in the provided radix), the newline + * characters and the '\0'. + * + * By default we assume at least a 10 char label, a minimum radix of 10 + * (decimal) and a maximum of 4096 bit numbers (1234 decimal chars). + * Autosized at compile time for at least a 10 char label, a minimum radix + * of 10 (decimal) for a number of MBEDTLS_MPI_MAX_BITS size. + * + * This used to be statically sized to 1250 for a maximum of 4096 bit + * numbers (1234 decimal chars). + * + * Calculate using the formula: + * MBEDTLS_MPI_RW_BUFFER_SIZE = ceil(MBEDTLS_MPI_MAX_BITS / ln(10) * ln(2)) + + * LabelSize + 6 + */ +#define MBEDTLS_MPI_MAX_BITS_SCALE100 ( 100 * MBEDTLS_MPI_MAX_BITS ) +#define MBEDTLS_LN_2_DIV_LN_10_SCALE100 332 +#define MBEDTLS_MPI_RW_BUFFER_SIZE ( ((MBEDTLS_MPI_MAX_BITS_SCALE100 + MBEDTLS_LN_2_DIV_LN_10_SCALE100 - 1) / MBEDTLS_LN_2_DIV_LN_10_SCALE100) + 10 + 6 ) + +#if !defined(MBEDTLS_BIGNUM_ALT) + +/* + * Define the base integer type, architecture-wise. + * + * 32-bit integers can be forced on 64-bit arches (eg. for testing purposes) + * by defining MBEDTLS_HAVE_INT32 and undefining MBEDTLS_HAVE_ASM + */ +#if ( ! defined(MBEDTLS_HAVE_INT32) && \ + defined(_MSC_VER) && defined(_M_AMD64) ) + #define MBEDTLS_HAVE_INT64 + typedef int64_t mbedtls_mpi_sint; + typedef uint64_t mbedtls_mpi_uint; +#else + #if ( ! defined(MBEDTLS_HAVE_INT32) && \ + defined(__GNUC__) && ( \ + defined(__amd64__) || defined(__x86_64__) || \ + defined(__ppc64__) || defined(__powerpc64__) || \ + defined(__ia64__) || defined(__alpha__) || \ + (defined(__sparc__) && defined(__arch64__)) || \ + defined(__s390x__) || defined(__mips64) ) ) + #define MBEDTLS_HAVE_INT64 + typedef int64_t mbedtls_mpi_sint; + typedef uint64_t mbedtls_mpi_uint; + /* mbedtls_t_udbl defined as 128-bit unsigned int */ + typedef unsigned int mbedtls_t_udbl __attribute__((mode(TI))); + #define MBEDTLS_HAVE_UDBL + #else + #define MBEDTLS_HAVE_INT32 + typedef int32_t mbedtls_mpi_sint; + typedef uint32_t mbedtls_mpi_uint; + typedef uint64_t mbedtls_t_udbl; + #define MBEDTLS_HAVE_UDBL + #endif /* !MBEDTLS_HAVE_INT32 && __GNUC__ && 64-bit platform */ +#endif /* !MBEDTLS_HAVE_INT32 && _MSC_VER && _M_AMD64 */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief MPI structure + */ +typedef struct +{ + int s; /*!< integer sign */ + size_t n; /*!< total # of limbs */ + mbedtls_mpi_uint *p; /*!< pointer to limbs */ +} +mbedtls_mpi; + +/** + * \brief Initialize one MPI (make internal references valid) + * This just makes it ready to be set or freed, + * but does not define a value for the MPI. + * + * \param X One MPI to initialize. + */ +void mbedtls_mpi_init( mbedtls_mpi *X ); + +/** + * \brief Unallocate one MPI + * + * \param X One MPI to unallocate. + */ +void mbedtls_mpi_free( mbedtls_mpi *X ); + +/** + * \brief Enlarge to the specified number of limbs + * + * \param X MPI to grow + * \param nblimbs The target number of limbs + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_grow( mbedtls_mpi *X, size_t nblimbs ); + +/** + * \brief Resize down, keeping at least the specified number of limbs + * + * \param X MPI to shrink + * \param nblimbs The minimum number of limbs to keep + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_shrink( mbedtls_mpi *X, size_t nblimbs ); + +/** + * \brief Copy the contents of Y into X + * + * \param X Destination MPI + * \param Y Source MPI + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_copy( mbedtls_mpi *X, const mbedtls_mpi *Y ); + +/** + * \brief Swap the contents of X and Y + * + * \param X First MPI value + * \param Y Second MPI value + */ +void mbedtls_mpi_swap( mbedtls_mpi *X, mbedtls_mpi *Y ); + +/** + * \brief Safe conditional assignement X = Y if assign is 1 + * + * \param X MPI to conditionally assign to + * \param Y Value to be assigned + * \param assign 1: perform the assignment, 0: keep X's original value + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, + * + * \note This function is equivalent to + * if( assign ) mbedtls_mpi_copy( X, Y ); + * except that it avoids leaking any information about whether + * the assignment was done or not (the above code may leak + * information through branch prediction and/or memory access + * patterns analysis). + */ +int mbedtls_mpi_safe_cond_assign( mbedtls_mpi *X, const mbedtls_mpi *Y, unsigned char assign ); + +/** + * \brief Safe conditional swap X <-> Y if swap is 1 + * + * \param X First mbedtls_mpi value + * \param Y Second mbedtls_mpi value + * \param assign 1: perform the swap, 0: keep X and Y's original values + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, + * + * \note This function is equivalent to + * if( assign ) mbedtls_mpi_swap( X, Y ); + * except that it avoids leaking any information about whether + * the assignment was done or not (the above code may leak + * information through branch prediction and/or memory access + * patterns analysis). + */ +int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, mbedtls_mpi *Y, unsigned char assign ); + +/** + * \brief Set value from integer + * + * \param X MPI to set + * \param z Value to use + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_lset( mbedtls_mpi *X, mbedtls_mpi_sint z ); + +/** + * \brief Get a specific bit from X + * + * \param X MPI to use + * \param pos Zero-based index of the bit in X + * + * \return Either a 0 or a 1 + */ +int mbedtls_mpi_get_bit( const mbedtls_mpi *X, size_t pos ); + +/** + * \brief Set a bit of X to a specific value of 0 or 1 + * + * \note Will grow X if necessary to set a bit to 1 in a not yet + * existing limb. Will not grow if bit should be set to 0 + * + * \param X MPI to use + * \param pos Zero-based index of the bit in X + * \param val The value to set the bit to (0 or 1) + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, + * MBEDTLS_ERR_MPI_BAD_INPUT_DATA if val is not 0 or 1 + */ +int mbedtls_mpi_set_bit( mbedtls_mpi *X, size_t pos, unsigned char val ); + +/** + * \brief Return the number of zero-bits before the least significant + * '1' bit + * + * Note: Thus also the zero-based index of the least significant '1' bit + * + * \param X MPI to use + */ +size_t mbedtls_mpi_lsb( const mbedtls_mpi *X ); + +/** + * \brief Return the number of bits up to and including the most + * significant '1' bit' + * + * Note: Thus also the one-based index of the most significant '1' bit + * + * \param X MPI to use + */ +size_t mbedtls_mpi_bitlen( const mbedtls_mpi *X ); + +/** + * \brief Return the total size in bytes + * + * \param X MPI to use + */ +size_t mbedtls_mpi_size( const mbedtls_mpi *X ); + +/** + * \brief Import from an ASCII string + * + * \param X Destination MPI + * \param radix Input numeric base + * \param s Null-terminated string buffer + * + * \return 0 if successful, or a MBEDTLS_ERR_MPI_XXX error code + */ +int mbedtls_mpi_read_string( mbedtls_mpi *X, int radix, const char *s ); + +/** + * \brief Export into an ASCII string + * + * \param X Source MPI + * \param radix Output numeric base + * \param buf Buffer to write the string to + * \param buflen Length of buf + * \param olen Length of the string written, including final NUL byte + * + * \return 0 if successful, or a MBEDTLS_ERR_MPI_XXX error code. + * *olen is always updated to reflect the amount + * of data that has (or would have) been written. + * + * \note Call this function with buflen = 0 to obtain the + * minimum required buffer size in *olen. + */ +int mbedtls_mpi_write_string( const mbedtls_mpi *X, int radix, + char *buf, size_t buflen, size_t *olen ); + +#if defined(MBEDTLS_FS_IO) +/** + * \brief Read X from an opened file + * + * \param X Destination MPI + * \param radix Input numeric base + * \param fin Input file handle + * + * \return 0 if successful, MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if + * the file read buffer is too small or a + * MBEDTLS_ERR_MPI_XXX error code + */ +int mbedtls_mpi_read_file( mbedtls_mpi *X, int radix, FILE *fin ); + +/** + * \brief Write X into an opened file, or stdout if fout is NULL + * + * \param p Prefix, can be NULL + * \param X Source MPI + * \param radix Output numeric base + * \param fout Output file handle (can be NULL) + * + * \return 0 if successful, or a MBEDTLS_ERR_MPI_XXX error code + * + * \note Set fout == NULL to print X on the console. + */ +int mbedtls_mpi_write_file( const char *p, const mbedtls_mpi *X, int radix, FILE *fout ); +#endif /* MBEDTLS_FS_IO */ + +/** + * \brief Import X from unsigned binary data, big endian + * + * \param X Destination MPI + * \param buf Input buffer + * \param buflen Input buffer size + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_read_binary( mbedtls_mpi *X, const unsigned char *buf, size_t buflen ); + +/** + * \brief Export X into unsigned binary data, big endian. + * Always fills the whole buffer, which will start with zeros + * if the number is smaller. + * + * \param X Source MPI + * \param buf Output buffer + * \param buflen Output buffer size + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if buf isn't large enough + */ +int mbedtls_mpi_write_binary( const mbedtls_mpi *X, unsigned char *buf, size_t buflen ); + +/** + * \brief Left-shift: X <<= count + * + * \param X MPI to shift + * \param count Amount to shift + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_shift_l( mbedtls_mpi *X, size_t count ); + +/** + * \brief Right-shift: X >>= count + * + * \param X MPI to shift + * \param count Amount to shift + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_shift_r( mbedtls_mpi *X, size_t count ); + +/** + * \brief Compare unsigned values + * + * \param X Left-hand MPI + * \param Y Right-hand MPI + * + * \return 1 if |X| is greater than |Y|, + * -1 if |X| is lesser than |Y| or + * 0 if |X| is equal to |Y| + */ +int mbedtls_mpi_cmp_abs( const mbedtls_mpi *X, const mbedtls_mpi *Y ); + +/** + * \brief Compare signed values + * + * \param X Left-hand MPI + * \param Y Right-hand MPI + * + * \return 1 if X is greater than Y, + * -1 if X is lesser than Y or + * 0 if X is equal to Y + */ +int mbedtls_mpi_cmp_mpi( const mbedtls_mpi *X, const mbedtls_mpi *Y ); + +/** + * \brief Compare signed values + * + * \param X Left-hand MPI + * \param z The integer value to compare to + * + * \return 1 if X is greater than z, + * -1 if X is lesser than z or + * 0 if X is equal to z + */ +int mbedtls_mpi_cmp_int( const mbedtls_mpi *X, mbedtls_mpi_sint z ); + +/** + * \brief Unsigned addition: X = |A| + |B| + * + * \param X Destination MPI + * \param A Left-hand MPI + * \param B Right-hand MPI + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ); + +/** + * \brief Unsigned subtraction: X = |A| - |B| + * + * \param X Destination MPI + * \param A Left-hand MPI + * \param B Right-hand MPI + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_NEGATIVE_VALUE if B is greater than A + */ +int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ); + +/** + * \brief Signed addition: X = A + B + * + * \param X Destination MPI + * \param A Left-hand MPI + * \param B Right-hand MPI + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_add_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ); + +/** + * \brief Signed subtraction: X = A - B + * + * \param X Destination MPI + * \param A Left-hand MPI + * \param B Right-hand MPI + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_sub_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ); + +/** + * \brief Signed addition: X = A + b + * + * \param X Destination MPI + * \param A Left-hand MPI + * \param b The integer value to add + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_add_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint b ); + +/** + * \brief Signed subtraction: X = A - b + * + * \param X Destination MPI + * \param A Left-hand MPI + * \param b The integer value to subtract + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_sub_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint b ); + +/** + * \brief Baseline multiplication: X = A * B + * + * \param X Destination MPI + * \param A Left-hand MPI + * \param B Right-hand MPI + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_mul_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ); + +/** + * \brief Baseline multiplication: X = A * b + * + * \param X Destination MPI + * \param A Left-hand MPI + * \param b The unsigned integer value to multiply with + * + * \note b is unsigned + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_mul_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_uint b ); + +/** + * \brief Division by mbedtls_mpi: A = Q * B + R + * + * \param Q Destination MPI for the quotient + * \param R Destination MPI for the rest value + * \param A Left-hand MPI + * \param B Right-hand MPI + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, + * MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if B == 0 + * + * \note Either Q or R can be NULL. + */ +int mbedtls_mpi_div_mpi( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, const mbedtls_mpi *B ); + +/** + * \brief Division by int: A = Q * b + R + * + * \param Q Destination MPI for the quotient + * \param R Destination MPI for the rest value + * \param A Left-hand MPI + * \param b Integer to divide by + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, + * MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if b == 0 + * + * \note Either Q or R can be NULL. + */ +int mbedtls_mpi_div_int( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, mbedtls_mpi_sint b ); + +/** + * \brief Modulo: R = A mod B + * + * \param R Destination MPI for the rest value + * \param A Left-hand MPI + * \param B Right-hand MPI + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, + * MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if B == 0, + * MBEDTLS_ERR_MPI_NEGATIVE_VALUE if B < 0 + */ +int mbedtls_mpi_mod_mpi( mbedtls_mpi *R, const mbedtls_mpi *A, const mbedtls_mpi *B ); + +/** + * \brief Modulo: r = A mod b + * + * \param r Destination mbedtls_mpi_uint + * \param A Left-hand MPI + * \param b Integer to divide by + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, + * MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if b == 0, + * MBEDTLS_ERR_MPI_NEGATIVE_VALUE if b < 0 + */ +int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, mbedtls_mpi_sint b ); + +/** + * \brief Sliding-window exponentiation: X = A^E mod N + * + * \param X Destination MPI + * \param A Left-hand MPI + * \param E Exponent MPI + * \param N Modular MPI + * \param _RR Speed-up MPI used for recalculations + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, + * MBEDTLS_ERR_MPI_BAD_INPUT_DATA if N is negative or even or + * if E is negative + * + * \note _RR is used to avoid re-computing R*R mod N across + * multiple calls, which speeds up things a bit. It can + * be set to NULL if the extra performance is unneeded. + */ +int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *E, const mbedtls_mpi *N, mbedtls_mpi *_RR ); + +/** + * \brief Fill an MPI X with size bytes of random + * + * \param X Destination MPI + * \param size Size in bytes + * \param f_rng RNG function + * \param p_rng RNG parameter + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_fill_random( mbedtls_mpi *X, size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ); + +/** + * \brief Greatest common divisor: G = gcd(A, B) + * + * \param G Destination MPI + * \param A Left-hand MPI + * \param B Right-hand MPI + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed + */ +int mbedtls_mpi_gcd( mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B ); + +/** + * \brief Modular inverse: X = A^-1 mod N + * + * \param X Destination MPI + * \param A Left-hand MPI + * \param N Right-hand MPI + * + * \return 0 if successful, + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, + * MBEDTLS_ERR_MPI_BAD_INPUT_DATA if N is negative or nil + MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if A has no inverse mod N + */ +int mbedtls_mpi_inv_mod( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *N ); + +/** + * \brief Miller-Rabin primality test + * + * \param X MPI to check + * \param f_rng RNG function + * \param p_rng RNG parameter + * + * \return 0 if successful (probably prime), + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, + * MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if X is not prime + */ +int mbedtls_mpi_is_prime( const mbedtls_mpi *X, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ); + +/** + * \brief Prime number generation + * + * \param X Destination MPI + * \param nbits Required size of X in bits + * ( 3 <= nbits <= MBEDTLS_MPI_MAX_BITS ) + * \param dh_flag If 1, then (X-1)/2 will be prime too + * \param f_rng RNG function + * \param p_rng RNG parameter + * + * \return 0 if successful (probably prime), + * MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed, + * MBEDTLS_ERR_MPI_BAD_INPUT_DATA if nbits is < 3 + */ +int mbedtls_mpi_gen_prime( mbedtls_mpi *X, size_t nbits, int dh_flag, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ); +#else /* MBEDTLS_BIGNUM_ALT */ +#include "bignum_alt.h" +#endif /* MBEDTLS_BIGNUM_ALT */ + +/** + * \brief Checkup routine + * + * \return 0 if successful, or 1 if the test failed + */ +int mbedtls_mpi_self_test( int verbose ); + +#ifdef __cplusplus +} +#endif + +#endif /* bignum.h */ diff --git a/tools/sdk/include/mbedtls/aes_alt.h b/tools/sdk/include/mbedtls_port/aes_alt.h similarity index 100% rename from tools/sdk/include/mbedtls/aes_alt.h rename to tools/sdk/include/mbedtls_port/aes_alt.h diff --git a/tools/sdk/include/mbedtls_port/mbedtls/bignum.h b/tools/sdk/include/mbedtls_port/mbedtls/bignum.h new file mode 100644 index 00000000..23cd5634 --- /dev/null +++ b/tools/sdk/include/mbedtls_port/mbedtls/bignum.h @@ -0,0 +1,78 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#ifndef __ESP_MBEDTLS_BIGNUM_H__ +#define __ESP_MBEDTLS_BIGNUM_H__ + +#include_next "mbedtls/bignum.h" + +/** + * This is a wrapper for the main mbedtls/bignum.h. This wrapper + * provides a few additional ESP32-only functions. + * + * This is because we don't set MBEDTLS_BIGNUM_ALT in the same way we + * do for AES, SHA, etc. Because we still use most of the bignum.h + * implementation and just replace a few hardware accelerated + * functions (see MBEDTLS_MPI_EXP_MOD_ALT & MBEDTLS_MPI_MUL_MPI_ALT in + * esp_config.h). + * + * @note Unlike the other hardware accelerator support functions in esp32/hwcrypto, there is no + * generic "hwcrypto/bignum.h" header for using these functions without mbedTLS. The reason for this + * is that all of the function implementations depend strongly upon the mbedTLS MPI implementation. + */ + +/** + * @brief Lock access to RSA Accelerator (MPI/bignum operations) + * + * RSA Accelerator hardware unit can only be used by one + * consumer at a time. + * + * @note This function is non-recursive (do not call it twice from the + * same task.) + * + * @note You do not need to call this if you are using the mbedTLS bignum.h + * API or esp_mpi_xxx functions. This function is only needed if you + * want to call ROM RSA functions or access the registers directly. + * + */ +void esp_mpi_acquire_hardware(void); + +/** + * @brief Unlock access to RSA Accelerator (MPI/bignum operations) + * + * Has to be called once for each call to esp_mpi_acquire_hardware(). + * + * @note You do not need to call this if you are using the mbedTLS bignum.h + * API or esp_mpi_xxx functions. This function is only needed if you + * want to call ROM RSA functions or access the registers directly. + */ +void esp_mpi_release_hardware(void); + +/* @brief MPI modular mupltiplication function + * + * Calculates Z = (X * Y) mod M using MPI hardware acceleration. + * + * This is not part of the standard mbedTLS bignum API. + * + * @note All of X, Y & Z should be less than 4096 bit long or an error is returned. + * + * @param Z Result bignum, should be pre-initialised with mbedtls_mpi_init(). + * @param X First multiplication argument. + * @param Y Second multiplication argument. + * @param M Modulus value for result. + * + * @return 0 on success, mbedTLS MPI error codes on failure. + */ +int esp_mpi_mul_mpi_mod(mbedtls_mpi *Z, const mbedtls_mpi *X, const mbedtls_mpi *Y, const mbedtls_mpi *M); + +#endif diff --git a/tools/sdk/include/mbedtls/mbedtls/esp_config.h b/tools/sdk/include/mbedtls_port/mbedtls/esp_config.h similarity index 100% rename from tools/sdk/include/mbedtls/mbedtls/esp_config.h rename to tools/sdk/include/mbedtls_port/mbedtls/esp_config.h diff --git a/tools/sdk/include/mbedtls/sha1_alt.h b/tools/sdk/include/mbedtls_port/sha1_alt.h similarity index 100% rename from tools/sdk/include/mbedtls/sha1_alt.h rename to tools/sdk/include/mbedtls_port/sha1_alt.h diff --git a/tools/sdk/include/mbedtls/sha256_alt.h b/tools/sdk/include/mbedtls_port/sha256_alt.h similarity index 100% rename from tools/sdk/include/mbedtls/sha256_alt.h rename to tools/sdk/include/mbedtls_port/sha256_alt.h diff --git a/tools/sdk/include/mbedtls/sha512_alt.h b/tools/sdk/include/mbedtls_port/sha512_alt.h similarity index 100% rename from tools/sdk/include/mbedtls/sha512_alt.h rename to tools/sdk/include/mbedtls_port/sha512_alt.h diff --git a/tools/sdk/include/openssl/internal/ssl_dbg.h b/tools/sdk/include/openssl/internal/ssl_dbg.h index b4c07546..12ba25f9 100644 --- a/tools/sdk/include/openssl/internal/ssl_dbg.h +++ b/tools/sdk/include/openssl/internal/ssl_dbg.h @@ -22,72 +22,170 @@ extern "C" { #endif -#ifndef SSL_DEBUG_ENBALE -#define SSL_DEBUG_ENBALE 0 -#endif - -#ifndef SSL_DEBUG_LEVEL -#define SSL_DEBUG_LEVEL 0 -#endif - -#ifndef SSL_ASSERT_ENABLE -#define SSL_ASSERT_ENABLE 0 -#endif - -#ifndef SSL_DEBUG_LOCATION_ENABLE -#define SSL_DEBUG_LOCATION_ENABLE 0 -#endif - -#if SSL_DEBUG_ENBALE - #if !defined(SSL_PRINT_LOG) || !defined(SSL_ERROR_LOG) || !defined(SSL_LOCAL_LOG) - #include "stdio.h" - extern int printf(const char *fmt, ...); - #ifndef SSL_PRINT_LOG - #define SSL_PRINT_LOG printf - #endif - #ifndef SSL_ERROR_LOG - #define SSL_ERROR_LOG printf - #endif - #ifndef SSL_LOCAL_LOG - #define SSL_LOCAL_LOG printf - #endif - #endif +#ifdef CONFIG_OPENSSL_DEBUG_LEVEL + #define SSL_DEBUG_LEVEL CONFIG_OPENSSL_DEBUG_LEVEL #else - #ifdef SSL_PRINT_LOG - #undef SSL_PRINT_LOG - #endif - #define SSL_PRINT_LOG(...) - - #ifdef SSL_ERROR_LOG - #undef SSL_ERROR_LOG - #endif - #define SSL_ERROR_LOG(...) - #ifdef SSL_LOCAL_LOG - #undef SSL_LOCAL_LOG - #endif - #define SSL_LOCAL_LOG(...) + #define SSL_DEBUG_LEVEL 0 #endif -#if SSL_DEBUG_LOCATION_ENABLE - #define SSL_DEBUG_LOCATION() SSL_LOCAL_LOG("%s %s line %d\n", __FILE__, __FUNCTION__, __LINE__) +#define SSL_DEBUG_ON (SSL_DEBUG_LEVEL + 1) +#define SSL_DEBUG_OFF (SSL_DEBUG_LEVEL - 1) + +#ifdef CONFIG_OPENSSL_DEBUG + #ifndef SSL_DEBUG_LOG + #error "SSL_DEBUG_LOG is not defined" + #endif + + #ifndef SSL_DEBUG_FL + #define SSL_DEBUG_FL "\n" + #endif + + #define SSL_SHOW_LOCATION() \ + SSL_DEBUG_LOG("SSL assert : %s %d\n", \ + __FILE__, __LINE__) + + #define SSL_DEBUG(level, fmt, ...) \ + { \ + if (level > SSL_DEBUG_LEVEL) { \ + SSL_DEBUG_LOG(fmt SSL_DEBUG_FL, ##__VA_ARGS__); \ + } \ + } +#else /* CONFIG_OPENSSL_DEBUG */ + #define SSL_SHOW_LOCATION() + + #define SSL_DEBUG(level, fmt, ...) +#endif /* CONFIG_OPENSSL_DEBUG */ + +/** + * OpenSSL assert function + * + * if select "CONFIG_OPENSSL_ASSERT_DEBUG", SSL_ASSERT* will show error file name and line + * if select "CONFIG_OPENSSL_ASSERT_EXIT", SSL_ASSERT* will just return error code. + * if select "CONFIG_OPENSSL_ASSERT_DEBUG_EXIT" SSL_ASSERT* will show error file name and line, + * then return error code. + * if select "CONFIG_OPENSSL_ASSERT_DEBUG_BLOCK", SSL_ASSERT* will show error file name and line, + * then block here with "while (1)" + * + * SSL_ASSERT1 may will return "-1", so function's return argument is integer. + * SSL_ASSERT2 may will return "NULL", so function's return argument is a point. + * SSL_ASSERT2 may will return nothing, so function's return argument is "void". + */ +#if defined(CONFIG_OPENSSL_ASSERT_DEBUG) + #define SSL_ASSERT1(s) \ + { \ + if (!(s)) { \ + SSL_SHOW_LOCATION(); \ + } \ + } + + #define SSL_ASSERT2(s) \ + { \ + if (!(s)) { \ + SSL_SHOW_LOCATION(); \ + } \ + } + + #define SSL_ASSERT3(s) \ + { \ + if (!(s)) { \ + SSL_SHOW_LOCATION(); \ + } \ + } +#elif defined(CONFIG_OPENSSL_ASSERT_EXIT) + #define SSL_ASSERT1(s) \ + { \ + if (!(s)) { \ + return -1; \ + } \ + } + + #define SSL_ASSERT2(s) \ + { \ + if (!(s)) { \ + return NULL; \ + } \ + } + + #define SSL_ASSERT3(s) \ + { \ + if (!(s)) { \ + return ; \ + } \ + } +#elif defined(CONFIG_OPENSSL_ASSERT_DEBUG_EXIT) + #define SSL_ASSERT1(s) \ + { \ + if (!(s)) { \ + SSL_SHOW_LOCATION(); \ + return -1; \ + } \ + } + + #define SSL_ASSERT2(s) \ + { \ + if (!(s)) { \ + SSL_SHOW_LOCATION(); \ + return NULL; \ + } \ + } + + #define SSL_ASSERT3(s) \ + { \ + if (!(s)) { \ + SSL_SHOW_LOCATION(); \ + return ; \ + } \ + } +#elif defined(CONFIG_OPENSSL_ASSERT_DEBUG_BLOCK) + #define SSL_ASSERT1(s) \ + { \ + if (!(s)) { \ + SSL_SHOW_LOCATION(); \ + while (1); \ + } \ + } + + #define SSL_ASSERT2(s) \ + { \ + if (!(s)) { \ + SSL_SHOW_LOCATION(); \ + while (1); \ + } \ + } + + #define SSL_ASSERT3(s) \ + { \ + if (!(s)) { \ + SSL_SHOW_LOCATION(); \ + while (1); \ + } \ + } #else - #define SSL_DEBUG_LOCATION() + #define SSL_ASSERT1(s) + #define SSL_ASSERT2(s) + #define SSL_ASSERT3(s) #endif -#if SSL_ASSERT_ENABLE - #define SSL_ASSERT(s) { if (!(s)) { SSL_DEBUG_LOCATION(); } } -#else - #define SSL_ASSERT(s) -#endif +#define SSL_PLATFORM_DEBUG_LEVEL SSL_DEBUG_OFF +#define SSL_PLATFORM_ERROR_LEVEL SSL_DEBUG_ON -#define SSL_ERR(err, go, fmt, ...) { SSL_DEBUG_LOCATION(); SSL_ERROR_LOG(fmt, ##__VA_ARGS__); ret = err; goto go; } +#define SSL_CERT_DEBUG_LEVEL SSL_DEBUG_OFF +#define SSL_CERT_ERROR_LEVEL SSL_DEBUG_ON -#define SSL_RET(go, fmt, ...) { SSL_DEBUG_LOCATION(); SSL_ERROR_LOG(fmt, ##__VA_ARGS__); goto go; } +#define SSL_PKEY_DEBUG_LEVEL SSL_DEBUG_OFF +#define SSL_PKEY_ERROR_LEVEL SSL_DEBUG_ON -#define SSL_DEBUG(level, fmt, ...) { if (level > SSL_DEBUG_LEVEL) {SSL_PRINT_LOG(fmt, ##__VA_ARGS__);} } +#define SSL_X509_DEBUG_LEVEL SSL_DEBUG_OFF +#define SSL_X509_ERROR_LEVEL SSL_DEBUG_ON + +#define SSL_LIB_DEBUG_LEVEL SSL_DEBUG_OFF +#define SSL_LIB_ERROR_LEVEL SSL_DEBUG_ON + +#define SSL_STACK_DEBUG_LEVEL SSL_DEBUG_OFF +#define SSL_STACK_ERROR_LEVEL SSL_DEBUG_ON #ifdef __cplusplus -} + } #endif #endif diff --git a/tools/sdk/include/openssl/platform/ssl_opt.h b/tools/sdk/include/openssl/platform/ssl_opt.h index 01d438eb..a9c55e8c 100644 --- a/tools/sdk/include/openssl/platform/ssl_opt.h +++ b/tools/sdk/include/openssl/platform/ssl_opt.h @@ -15,34 +15,6 @@ #ifndef _SSL_OPT_H_ #define _SSL_OPT_H_ -#ifdef __cplusplus - extern "C" { -#endif - -/** - * if not define "ESP32_IDF_PLATFORM", system will use esp8266 platform interface - */ -#define ESP32_IDF_PLATFORM - -/** - * openssl debug print function enable - */ -#define SSL_DEBUG_ENBALE 0 - -/** - * openssl debug print function level. function whose level is lower that "SSL_DEBUG_LEVEL" - * will not print message - */ -#define SSL_DEBUG_LEVEL 0 - -/** - * openssl assert function enable, it will check the input paramter and print the message - */ -#define SSL_ASSERT_ENABLE 0 - -/** - * openssl location function enable, it will print location of the positioning error - */ -#define SSL_DEBUG_LOCATION_ENABLE 0 +#include "sdkconfig.h" #endif diff --git a/tools/sdk/include/openssl/platform/ssl_pm.h b/tools/sdk/include/openssl/platform/ssl_pm.h index a516d574..cbbe3aa3 100644 --- a/tools/sdk/include/openssl/platform/ssl_pm.h +++ b/tools/sdk/include/openssl/platform/ssl_pm.h @@ -19,6 +19,7 @@ extern "C" { #endif +#include #include "ssl_types.h" #include "ssl_port.h" @@ -53,4 +54,8 @@ int pkey_pm_load(EVP_PKEY *pk, const unsigned char *buffer, int len); long ssl_pm_get_verify_result(const SSL *ssl); +#ifdef __cplusplus + } +#endif + #endif diff --git a/tools/sdk/include/openssl/platform/ssl_port.h b/tools/sdk/include/openssl/platform/ssl_port.h index 35c8dc18..492ea405 100644 --- a/tools/sdk/include/openssl/platform/ssl_port.h +++ b/tools/sdk/include/openssl/platform/ssl_port.h @@ -19,31 +19,27 @@ extern "C" { #endif -#include "platform/ssl_opt.h" - -#ifdef ESP32_IDF_PLATFORM - #include "esp_types.h" #include "esp_log.h" +#include "string.h" +#include "malloc.h" void *ssl_mem_zalloc(size_t size); -void *ssl_mem_malloc(size_t size); -void ssl_mem_free(void *p); -void* ssl_memcpy(void *to, const void *from, size_t size); -size_t ssl_strlen(const char *src); +#define ssl_mem_malloc malloc +#define ssl_mem_free free -void ssl_speed_up_enter(void); -void ssl_speed_up_exit(void); +#define ssl_memcpy memcpy +#define ssl_strlen strlen -#define SSL_PRINT_LOG(fmt, ...) ESP_LOGD("openssl", fmt, ##__VA_ARGS__) -#define SSL_ERROR_LOG(fmt, ...) ESP_LOGE("openssl", fmt, ##__VA_ARGS__) -#define SSL_LOCAL_LOG(fmt, ...) ESP_LOGD("openssl", fmt, ##__VA_ARGS__) +#define ssl_speed_up_enter() +#define ssl_speed_up_exit() -#elif defined(SSL_PLATFORM_USER_INCLUDE) - -SSL_PLATFORM_USER_INCLUDE +#define SSL_DEBUG_FL +#define SSL_DEBUG_LOG(fmt, ...) ESP_LOGI("openssl", fmt, ##__VA_ARGS__) +#ifdef __cplusplus + } #endif #endif diff --git a/tools/sdk/include/spi_flash/esp_partition.h b/tools/sdk/include/spi_flash/esp_partition.h index b149e102..28f8551d 100644 --- a/tools/sdk/include/spi_flash/esp_partition.h +++ b/tools/sdk/include/spi_flash/esp_partition.h @@ -191,6 +191,13 @@ esp_err_t esp_partition_read(const esp_partition_t* partition, * Before writing data to flash, corresponding region of flash needs to be erased. * This can be done using esp_partition_erase_range function. * + * Partitions marked with an encryption flag will automatically be + * written via the spi_flash_write_encrypted() function. If writing to + * an encrypted partition, all write offsets and lengths must be + * multiples of 16 bytes. See the spi_flash_write_encrypted() function + * for more details. Unencrypted partitions do not have this + * restriction. + * * @param partition Pointer to partition structure obtained using * esp_partition_find_first or esp_partition_get. * Must be non-NULL. diff --git a/tools/sdk/include/spi_flash/esp_spi_flash.h b/tools/sdk/include/spi_flash/esp_spi_flash.h index bf897e89..060d598e 100644 --- a/tools/sdk/include/spi_flash/esp_spi_flash.h +++ b/tools/sdk/include/spi_flash/esp_spi_flash.h @@ -31,6 +31,8 @@ extern "C" { #define SPI_FLASH_SEC_SIZE 4096 /**< SPI Flash sector size */ +#define SPI_FLASH_MMU_PAGE_SIZE 0x10000 /**< Flash cache MMU mapping page size */ + /** * @brief Initialize SPI flash access driver * @@ -92,14 +94,18 @@ esp_err_t spi_flash_write(size_t dest_addr, const void *src, size_t size); * * @note Flash encryption must be enabled for this function to work. * - * @note Address in flash, dest, has to be 32-byte aligned. + * @note Flash encryption must be enabled when calling this function. + * If flash encryption is disabled, the function returns + * ESP_ERR_INVALID_STATE. Use esp_flash_encryption_enabled() + * function to determine if flash encryption is enabled. * - * @note If source address is in DROM, this function will return - * ESP_ERR_INVALID_ARG. + * @note Both dest_addr and size must be multiples of 16 bytes. For + * absolute best performance, both dest_addr and size arguments should + * be multiples of 32 bytes. * - * @param dest_addr destination address in Flash. Must be a multiple of 32 bytes. + * @param dest_addr destination address in Flash. Must be a multiple of 16 bytes. * @param src pointer to the source buffer. - * @param size length of data, in bytes. Must be a multiple of 32 bytes. + * @param size length of data, in bytes. Must be a multiple of 16 bytes. * * @return esp_err_t */ @@ -116,6 +122,23 @@ esp_err_t spi_flash_write_encrypted(size_t dest_addr, const void *src, size_t si */ esp_err_t spi_flash_read(size_t src_addr, void *dest, size_t size); + +/** + * @brief Read data from Encrypted Flash. + * + * If flash encryption is enabled, this function will transparently decrypt data as it is read. + * If flash encryption is not enabled, this function behaves the same as spi_flash_read(). + * + * See esp_flash_encryption_enabled() for a function to check if flash encryption is enabled. + * + * @param src source address of the data in Flash. + * @param dest pointer to the destination buffer + * @param size length of data + * + * @return esp_err_t + */ +esp_err_t spi_flash_read_encrypted(size_t src, void *dest, size_t size); + /** * @brief Enumeration which specifies memory space requested in an mmap call */ @@ -140,7 +163,8 @@ typedef uint32_t spi_flash_mmap_handle_t; * page allocation, use spi_flash_mmap_dump function. * * @param src_addr Physical address in flash where requested region starts. - * This address *must* be aligned to 64kB boundary. + * This address *must* be aligned to 64kB boundary + * (SPI_FLASH_MMU_PAGE_SIZE). * @param size Size of region which has to be mapped. This size will be rounded * up to a 64k boundary. * @param memory Memory space where the region should be mapped @@ -181,16 +205,44 @@ typedef void (*spi_flash_guard_start_func_t)(void); * @brief SPI flash critical section exit function. */ typedef void (*spi_flash_guard_end_func_t)(void); +/** + * @brief SPI flash operation lock function. + */ +typedef void (*spi_flash_op_lock_func_t)(void); +/** + * @brief SPI flash operation unlock function. + */ +typedef void (*spi_flash_op_unlock_func_t)(void); /** - * Structure holding SPI flash access critical section management functions + * Structure holding SPI flash access critical sections management functions. + * + * Flash API uses two types of flash access management functions: + * 1) Functions which prepare/restore flash cache and interrupts before calling + * appropriate ROM functions (SPIWrite, SPIRead and SPIEraseBlock): + * - 'start' function should disables flash cache and non-IRAM interrupts and + * is invoked before the call to one of ROM function above. + * - 'end' function should restore state of flash cache and non-IRAM interrupts and + * is invoked after the call to one of ROM function above. + * 2) Functions which synchronizes access to internal data used by flash API. + * This functions are mostly intended to synchronize access to flash API internal data + * in multithreaded environment and use OS primitives: + * - 'op_lock' locks access to flash API internal data. + * - 'op_unlock' unlocks access to flash API internal data. + * Different versions of the guarding functions should be used depending on the context of + * execution (with or without functional OS). In normal conditions when flash API is called + * from task the functions use OS primitives. When there is no OS at all or when + * it is not guaranteed that OS is functional (accessing flash from exception handler) these + * functions cannot use OS primitives or even does not need them (multithreaded access is not possible). * * @note Structure and corresponding guard functions should not reside in flash. * For example structure can be placed in DRAM and functions in IRAM sections. */ typedef struct { - spi_flash_guard_start_func_t start; /**< critical section start func */ - spi_flash_guard_end_func_t end; /**< critical section end func */ + spi_flash_guard_start_func_t start; /**< critical section start func */ + spi_flash_guard_end_func_t end; /**< critical section end func */ + spi_flash_op_lock_func_t op_lock; /**< flash access API lock func */ + spi_flash_op_unlock_func_t op_unlock; /**< flash access API unlock func */ } spi_flash_guard_funcs_t; /** diff --git a/tools/sdk/ld/esp32.common.ld b/tools/sdk/ld/esp32.common.ld index 3e5d6b7d..ac04c07d 100644 --- a/tools/sdk/ld/esp32.common.ld +++ b/tools/sdk/ld/esp32.common.ld @@ -80,6 +80,7 @@ SECTIONS *(.iram1 .iram1.*) *libfreertos.a:(.literal .text .literal.* .text.*) *libesp32.a:panic.o(.literal .text .literal.* .text.*) + *libesp32.a:core_dump.o(.literal .text .literal.* .text.*) *libphy.a:(.literal .text .literal.* .text.*) *librtc.a:(.literal .text .literal.* .text.*) *libpp.a:(.literal .text .literal.* .text.*) diff --git a/tools/sdk/lib/libapp_update.a b/tools/sdk/lib/libapp_update.a index 9971677f98d512014adfcb6678fa2e2372f4b605..82c87a23f9a3e0d6827a63d7f96d7cbf4b4769de 100644 GIT binary patch delta 218 zcmaDco9V@DrU}yQX2urAmgXiCm5#!g8{d8BlAI{c$iTq)m6-uZ9s-h#49w~*3=C{j zHvi*p<EC3p2x%q;tga-if=Q_Rs delta 218 zcmaDco9V@DrU}yQCKkq~X6A+ym5#!g8{d8BlB^PEWMJU@%FF;H4*^L=24-~@1_rj; z&HuPtd32tstYKwf0Acpas!Ny{7(keviBT9)5(1HV&Z04<%~94+n;7-HZ^0IoM58Kz|W0b9nWE-)U*TiXveG0xWj08K_eG5`Po delta 253 zcmaEKjqTAjwh7YgCKkq~X6EJ_m6DmEY_rJ%8RDB4GdD6xR_$P5U|?%v29ets85kHD zm^pzITkU3Bwq;BfGsM|}G9b*hRQwK*0%5jNaYdjS5N68~KLZp2VYYDb3rq|QAk1bv zxxvI@`kYQina%l}W~xZmifulmm#qXAFfuj{> diff --git a/tools/sdk/lib/libbt.a b/tools/sdk/lib/libbt.a index 7715643328d3338c67fae972bdb69828e9acdae0..4323b5ed15fff8036b58847dd6201443e5e0033f 100644 GIT binary patch delta 500140 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%0De#zBr>RvHh z-`O;?o3U>aEZn&W>>DX~0`6$HV8bY5rX=yZyJl;)#eH|zY$NHx6W-n3kIZP6 z$T!HaWV5||tirGkQNuU^bd1J9t910=>?HeE#gOrK#q7*_G1Qr$oWm_v5qiVAz`DwL zP>0~`A%CvW+q1IXUQxXzl&*WrnV7f;&eJ1-^^u1mlUgFp0rHU&RIs}S+LgrzMZ;(e z;%Km>J0HXPfE;wLd;*AN&cUb+k(98qtPwQGL)mlL7G3X|!`Rw-{1%-#oT6LgSoeb2 z9Kme4)`LTVxO=cXe#g|bM@m{E>WBBz7>#1n>d0^@4c}w3eJ1;cq8n$-Wvh-`OFoto=O0+Ku(}( z?*`UFHq8=tz|)De55UgYTqL`b_D1GX`F@4=WtDqmM+f*BS{0T{I*pjF^H<0+AbEKC zkbH5z+(w#A^8$Rm4>xSogF;8$(U4gAs&^4MxbqIsEY0|hW@lYB6y$u=*qtm+C^ zl{stdY+*XGT{Z{s$25Fb$~CU^HS(L7v{@b%UXAUXd9CaLe!uk)dHXu%qR~4SmHI@? zF!Or3pHzg*&9baLaCimz|E8#pQ#AXxMEmkRdF5uFi-y&R!tIvm#H@2JkXsq4V!`3U zyp0juue^eNy17mIp&Py2F0YL?f~`;GHtvkJaT$`6ZQkWNOz5{_qi61vQ%G7jcge#Q z()UEANx;09`H=*FrY_wlw-SH4`Jl`%1g)gFxCc5_9tn2+oGz~pfj+ic(RAw=AVu=-;MI=A=w(O1_S1^^5cr;k4Bs4ZXM$h z@Vni5juCwQp`!)i=jFpBY?{Yq5hW>h&`VL_bGuUiUv@pp-y1StaiuN#8lU;9q&*N0 zvfUa2drf}ps(M|{u2A(xR23b!%#+cPy>B>>Q>+R3_v_xkPRn+XfgSJ29TmdwN_YS3 z&b#+`-uW#P`*HJqR)sGC?4*6m2hw(>KbGHDNPiM-nqFQqKaIM8US2Xki*{lkrO`8z z-he?Tc2J7@T<#`K$>vvb0mjyL9rAT$Ro_%rbvCMs-h(o~je4L`EOQy}^;aBbsi=7_N6uX`&^lCrO4fGU6iOp{LP$u8FFET1je6(@+VWfV0+MR4ZL*nI=D!@w-yPq^nkz4n?J>(ZW!TAL+zf&yg`Hsyvenr1yc$R97CRy@k%|L;R>q zQ`MjoGdf*eS)sf}Ou0?A)pWJvhK_VFI#=gmo>a)jC=5!wu`>i5ch3d2RsKN$Oh591u zOG8DkA0yl3s~r`p8b?(L`VinOVq4y!FLMAWaz2t?i?L6tR53+8w57ZmRAh zZPu)8d^S_Nfh1eo#{+5Ze7G4G(FK(1TBtT4pz&6!fQ;sTw2n5;DXfjU8W9mqb;Z$c zaH=a|#Iy!c-fOFF0b8;=>DtkgMkFC_uDzlQR;0bvG%Tg+2sIcm?T%`6MT?!HEwVso z7C3?D7Pu@duKJDRP}g5=CmjKEpi1fz(=jM&z(d_oGnffwjiH~8Yu9L*rN&{ru>hX+@cSC36K_trxIX6F+kAd72ak@nNn~%SmCjxkfc16S+GV zR#tdXR3Z0ZE%kuD#YNiJDSB9@Tm5Jwelfqbl5W-Y0l9>gWw`BL%I(s-UR$VH`#Xx= z_39|v&BO^}lM403)fzW^1vhM*p;Y9k5t#PII68e?rRYY;SVmjkYZTr17~j%rbgepq z4Jsb%0={0+#@%R5y|_`$!BT5PXl1!c(Y=Xrw+{GbbzUoszcH5xw<@|oFpkrxZdG(A zz~3D*Z&!4lH)>K2-md86ZgfGX%{vqw#Et!f0N<(T@N6us1$c*|Gq3Sx8sNJX9cPXA zr~`N

  • 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 z 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
  • 10g!<;Um&~l(D69gku}xfGzEDt4;Ay5Y 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[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

    YrRs3}E%oY=s&`p}qR0ab zDuPx)^s?0Gblv?KpJA@g^}}POIc)yPShY&EqQaJOUf$7OrSRr>sms{1hTEMX@X6z0 zzNx5-PP5Zyc3c{r7oY5h7L^|5p-ZPMs={hp@ao&IK|SeIGLi1H`ew;<<qXodNLE1*j2jE((-J*DP26aoY8o_y8<*3##Wm)_gY zu1!xV6;M&bBhp8I;+2NMccB>R?~j@*Bj3id<|=kt<{b!`S^hBSpb#ibykuE;qMXcef)@>5jp>Cyf2 zKq+OdGS%x?r^sNqcKk`rZ*O#tnl}FHoyO;krDVZcS!?>1dY6{vZHK_@IqPXJQR0pL zLurL7ZDNg6Dbdxy)K>d)C+}w?F_F>~I^)cf9GB@R4Q%Xa`9!NULCvFs`yuD|*|^Bm zeBtL8hstLUV+Cw1TG};!?^3kV^NpIIr6BbQXa(o>%Al&plKO*GuS1O%MeM{G`BbN6 zHiyB(QLEO}vp?=Os;W)m=kzVD8>Ye>Yo4^F)G|uM$+W_KnRB6`nW2k$8_J~~mpf0f zdH0#J8g_pu^n3P%>Vk6u??onW4f$uTum0|LgGn>RUHlW=y_P@E=qQ(~ zJe(p}7GX%p@Z{5E9v;m~ZB9wyK^TFy_EC^CSEy5R4qHBFdEuXOM4(R(;Q zoG=kTMW&e%x_?1PSBK-WBI^&M@A(9ebkTyxLUoBEMzZA2CC`Zef<9lxf2$M;ObyVO z_T@LQosF{8QPcdBvc!YS91ATyrZdRB99m7_A&Lr{uuOFZ^;rReO$tq8R{8JszK~w$ zi|P^}TFThe<6Zn<;|VGdDqTLPlBsr)m@#gEs-g2Lr?0SH6^w^y6DXQTUrRD-pA(Vp z4Y0Sir-?XWMBfV9*CO-v`=pXj=l{FuvC?B>idSC8L!#)_MRJ>`MT0>8yx}d4?x64Q zIyh$Zj2-Fis)A_KtcEq;SORyiO{(PkKV~&-W5JI9 zm@pYTFI_{XvcsR8jR4q^=ayzVQ0H*zAq==FQ_<{0O5!;5A(od;YPNHHl1Y0#(oBjL zI5Jw*tux3%j#;9~))k-72_$$nO#bTlNcGS2WcuSCFhj=j1DNF2$bu{&gwH};a6tks z%!EjO6?YU~i}(bhGin?DW>+v!l2I(|v(bn-8f zA{+MGVviHhml=m`r*H+ZFvGh$7~;xQ^47B^cd_o0Q1l^|c3rl76+5+#AIVG5ZJ&ry z%%JxtO5M%)NB#iY9U2&hTHXsB+0q|kz6jfkfgOKb=JNeW@zqRKyq_tz*`gedMs@^M zRatG^{AxPB6}l|6qK}Ajj<^AG7Tct677DQ$?ke~Dl955HXf>LmvdlZg9&t84ghZVi zvrY-uR?ni2##|N%B`9-U8^uC1e+M>2%!eNm$NrL0KIba-ZpU9|x%YA_j5~Gw;PZ{r z5>H1WePAJWN;N6C&UMxlpBng|l{EQ_zS(aHB)jGc%-T=^d1SRC_VO0fvtY+z)e{9ru4 zyW~m9h{zZIqum?w#5S>QSK$~WyV_P0LyzB*lS^#YBBs*vz;^BQ#6F^r{u z#DaC$IVv$Coxb0Jz*~UpnOs^M%j985Gv|tVteRXa%IxuKTd}LkXc&woenqB3QQ-cw zv=*M(LzsT_)=qGK&Z!}23R1t}8Cnsa(&Ls`8e0fkL3WV5cC-qZBX*5e#=`H6;kURh&F z#$wYd4b*5gs#$T7p=6;?O=iRI5#@I;#N9BhO zzA`lvyXwLHse`);R3w2Z{Z2U0PV6Jio>`ZHWG*G5AJuU*4vn6gz66094}G zS%ZmkHrL6eEvEtNSCKAdiCi7h`wLHWp*~Z8Zb`aW}_CiVCP6Elhdb zqtfrdxlJTa2J>dij=y?ITBiJHJJ}9wh*rIy`ju8cE1Ff+f9;F9(Wr^~gZ1?V-YRyC zJ;#2mpN8X>HCoAXvT;VSg-T&{C(bSHZ?+j5qF~ACm_0HirKVnJ2Yz5$TqOG!!D-*S z_^$M5d`AC1@{c#1nFdNGYQxbxZ#&?so@>U_Z|tbXHmnW>+kP0)LHA)5h1D_k0K_$3 zgrI~(=wwx>D_<#*yrihc&7u?hi@B&9RHfSFC1NcP)ol7mWcvWa?C|dV6m;O4%v-@x zv24~w_MoORu&PFK;;`lDZ%zyM#>?AE3~Q?Q zuhgw#t(8CGomZ^U&QZ@=b;l;dTyS$x z)$81Hl-Y{Ar;p|Gz~a_{JC5He_FAm{@!2aH+zh1{jiq~S+SA~ib2|ld%H4P`RF}#! zKYng-+d0!%1&{@jnV|_S^g30YOSI*pTnsGAXf=MsBy1;VL=qrYfLJ zEt|T_iE@&dS()GyISm1e_jY33(Z*!w{!d$;_rIPL-4JtU2hnWjO=FXDO0C>+Qxn*F z<>W@~UXl^5;Q@-_3DTHw%$O{~nD98WGTnw5dG`4xi$EHI2W@t)$v+^7_&*1Bfv!Ty zq@xxweVV?iF+A8lD^B@h1UeBdO9Qva^anPvfsFDd5-mNdgx}uGwCLmJSS8a^6n%s2 zv$}3dG0mAnfRuxzy6H+S^NA?t(5cQZ!?$%MO;fm`T7*!xG&fCKN<7X|rxe;{a@i59 zYM`k*cGQ7&V!H97J)TMKWf=PE~U@OD578=B|d&hv0qqPTnHC{CwWr7wDb*YJ>dz zmVQU3vqBjvWX-3pX7x1>emX^LI}SQrG0AKXO?neyxDX{AxrBg0=f+b5B~(1(#SC`z zyoNy^Cl=2VbF*MFq@4N{OQ|8C{*HK7w-m1;-#iUUKuq(eQFPL#Y=}HdhT2a*%ji6Z z?_cx_xtajh=_CP?u@|}G;l53``O!1Q=$|@<1*F-rP4vfPnI%MA^|gsZ=Uv`(({uul z6i$p%zG_EAS!79>Sq=5jcF@|+5RD!XUipUo>K!t~cp}w@Iu0Af7s*Y1MX=nJBa02# zEWTv0383^#jUWpgR^gAH6p2QnR@+8SB@J&hrtag))$zcx94S6&Vwgk&(JaqXej-*26&kGwkkYB8;*|Tj+LUY7jps6|o8n}B?h|oRlhf*Ok zWXulnR2q`OnPS2^B8lIi?k&FFboM->4$jS*oWBhLeueZrJLU`B%O)4gyW0K$W1-qi z(CaWgB!sg+$kCa&{N~F;Cgke}U}f%bh)d>ddXs)UMh@^b(+l!t6&`R8FXrzPdA>l> zvGPlcVEiXRaB0U#2gFK}1Imnr^fE%Gp`3`sSQkB_MRuV+h~fx+v2qL^%cOSR{KjNOq<0FlEVH`J|GYgLi0;W)x$Kn^uk z1hiGYAU>kc-D?+a;o#BY2q2J%I~(f4Y2J#!M7>-k4_I(@jS6TqXnTUDZL#BqVlz44 zNCXXKuo?h+_x>UQrpr~0QTcMe@1PSfrgZ|dwQ5!nDYmY|K`rd;(7<&fu1vr(5iU29 ziM6dQ>Vx@uXC5d9_cMi9ta8p2U?MJF8Ss59Z53b#3+o6c6!_K+z2&8&LoL?#E1nJ- zN;R(&)rZslua}r5c8We|h2swo7{g!{AXb&loddnHP`QY5u{?5svvpH%dJY`){_u=k z=5*Pz23OymK0{3j`+WGMUexuS0pM1aC*XyCPn;kSEEW%Yh^5WU+=2p~oC*N=SlD#H zfA02`-scWL6|)99il+K{7L&8zDGi{e!N@-7wE~X)&tksUR=nV$sxO*A&Xv|vRNeWi zF9If#1tRxAx(F0?=z+71Q`q*@BsN?ZYQZkV!uKLcR^WMWU=^J1TFWsixU4sj9IE@| z6dpJ+H~;~pceby=+Vlos0w3VuWI)AWun8FL%MuBgL{`>XZ18lI70QpCF9~s(+XM^` z9$oK>1&FJtV1kf>-#Tz+Y!@p_Kz;^oMsN@Od^do-pr;}DxUPUl29vu#O`pM+&COXL zmfNFv=qPC_LGbv_PB!SATqF}%yWYi%iV^VaMGh)evjN&@m3}<&7FOGs0bgVjgWzm> zf?ip~+MBMK#jcMQSD|!_`_6y_&B4KBg)Xzj7~pO+(oSfzkwj6bc0RW~d$IBVCW_JH za~-UdkKY+!0Re3Tung%7rZTzT9SH#(Jl*yH&Xlv6pqh;vcGwCveA-d!s}0(G#3r8a zc|a8h({#XUW+oEg^Zfh)6iXt}Es0u~B*pmaN{h%QiTcVb21TKvvti#)Mx$Of%9;Yk9 zpda|GZ-BkYyea@qU(h;MVO0Dn(#7L$ViBm>c76)zqp;5b{=K(%31WVIT8F+7@?nEc z+Bpp*a|ZV2GLyxPnJ~uhXGB$py=RQ7}-7p!4C_-=JK6_W@uJ z5zh^5oXti69Jqf>0qSD8jTL_@_{jssB+%mq09J141ezSA&>;hkKpzfYF^TkwpTJ&eTIuykA?B zfyXAQIVjvFGS@*2H3o@rB-a-YP?-VS5>SOtJHw1XV(m&wkXMU6FC5oK>nRk)?H^8f zF&%MnT(Nmn;y0)TUfwqNwH%>GtSu9}N^-EzqZ>asXfpd1WR=5P0Lurd&?Hy${QX@U z#1}7vqU&~`q6#h&4~qfTLLlw{{{oRbc($*tC#v9?JV9gtt(z}KVOfQ(C-|HF(i{NY zxaT{RM3+Z29F0=82N}j(hdU0~YWEj5$aFG$5^h0!l!WblC^`oOeRdWOvdv%-1}y7T zLD1No`cEExH3OZOFKKz0{d|0M0_4^P>Lj}kNP7B?AJT<6sip#r*MBOPzZlfq^-kpF zQ`L+m+G1FC)DF<@j)_k<5fx1;T3}B0rDGA|4;Y)Qa`e9? zbmOIbo@uKMJRSVnO90a;;3Uds(l%dE)hZCs8NgGM|MOw6XLaDSvuvGrZBXEQG1{&y zDU6X50(cpGaOtik6hH%k4C_qt5(2vrOsCd&d7_gctiS zDfZXg`TCB<-uc-hI-sY&u{zW3vCprn$ZhK;_8MUpCY{BNyK0lL$GwGpd!8k|;ttNy zr^CiPw|V=zPNk#n210@Dpo*3EKkvbJ@6N5{`6wZ<8X|BnEVT%daoa;+yU&9Q12%&% z530w{usT;Le+&=<+D$y_m95@Nwk8lHBN}{}y3mX*8+SyE#K`6~$qXNh+I2gmHKHt6 zEw&j6zH0dX@WRjm8saR8aUgc+@JjR=L3#H3UlGLOu9Z+atN0;eygIN7J(b_47On_Z zH8VX&7Y9K-nwb7JNO|AB9V_lLX!3g+o?U4PvU)#g98Vh`?fDr-{k%rOWH zB|n}T#vghb*ZSP@sV%{hA--D%LVrFMtM%uXLT|LPx}+|G1wOEp-@yqb$9{Mj2lnF^ z&xnF(J#2m>tb_eF6l)98npOqOoT^5e7PE4iRsUFt4DP4zm0G+ob6V|NX?9z^h~s;d zbft~?IEI80Nta5Dg7Vo_=3zC_`B>4Fa%xn{*`MO!AJgY}KjXG;CDt99D}Pt4$x-Y=!UFd1Y-C97;d)-lUNZRz2c|TpLO6$ej{|c7 zcfzT!gz>6UyP`$1^8aSxwFn}SK30T2sjvC9XS7tCswW&QhD*|%XQrm;FrD`OrHWI# znzIk*Yi67y7qnwjGC>u(2j_JBR$uoEASQ~9F%O@1Rti+ycC7Zya7EHqCYdGd8)%Vd zJC?6hsdS_M=8B~k|IX%OlFm4)Lwq;tqpiX)2QfNL zU;$g3OHSNPVyfVMRI}+`<%Jq{QWGN%}ieoYbz@n5gVlB zJDWHgAEeYVo48#}u4!~*?omRn>2zb>{%<4||CM0CEUX`WN9Mco95od?R~lRdG^{U) zgG!pp0^z=GX18En{4P|L6noD=M+Wj{uLU63EUfS&xLBQ>i2@JlB5z^1x^?ZT!29uk z;J~BBQP!ZJc$}z!{y?|S(5dT?b2ugCCoEL97xx=`u|;hI2vn_dP6n*5po-#NyMr&EU+ZejUC8Op~+ zx`~X!`^XQOjoowA0gULG!3Z$#pdz{G{N(}P&finOKn%7jl#YM53~2s*X&riDrQ3~|f__IP7@Rq>V+b;B@>hk^)vnb;y$HA+ zjsZoHDjPwO99w(9YSn7@@PH?Vnz1NUG2L-yPEJCQ0kHz`=0LIz?g7AvHPJn=d-Gur z%f!3zz*|hDZq^GNMOeTBo!hgr2|#&o{fR3!yJ&^CWfk^s1k`knLc*?qav>VVcka{ zRw-GGRL>Oj1=D2kRlyPPECRa;dy<#ogeoW4){R*>KWpy~XgzK11+-7;St4a}JVC5L z&&5vWz=AYwDj=iAR26V?^=~57H!0G0m}L=;f1gd<2996>n|oI9KyPB5H)ITd3v++a zsM~fB$ZwpF99(jj@fX^OH`^TQg3#^}^TKPMpG*uAJP!m{wTNH?B4do1p%%IVz5qsR zD}!L$AN<@u7iKu;2!eQ5mCv9ZRG54KNoV|?Br`uWp&2Or&WQxYjtz}4L7!@M&zC8PN13q6XDzRqzkF-ScOi;MTCf zn)N1vdhVE1*z(80QI6@@{8$kSMwvN98g28PHc{$K;*}DD&CW|Hh z&_JSD6Mt|s{CX9DN0_7u%o0#sfd}SK@*m zc_l{x-wpC_p>Hn8FadIW=d-YEGZqSshB-ZGOSxXo$Zr=HtDzIElsN`CthO!PRoAy3 zlgjsx_WEbB4l~<<1ubcv0r5w4Hof!X0@`kNkPAcMat18oDf$PYpvxbqi)ZJAuJ(K1 znyR{A{n~?qy(t~F7M;kR(+niP{2;MPH&m(2d^eK|zYgvo__Pdpe zu^O-RnKW+GbQ`*&(H4Ge*|&potUIoa<%t=et1 zI3Kmyyw^=pr88?{;U8P$NvPOJ?fbWL0w15R+)BXvGv8(V|GlKW8ykwMyucriY`>el zJ~aG2I3AJO6v1NrgAW(Jaljtes^18UWiR7U z>)4AF;$%9F8da-9PXl|-psL7%zkU4U3#MC(8>9IE+f{eOa63)!sKg$nTeo9Qgv3@3 zh{u)(oh$9PU@K3ugN};@hR(0Qz;2(uJ>2$*oL5YN@DMWsV|LY_nUoqR%@pS_iAi9= z0my?H1TUjL7BP+QYWYvu%W60pSX9wyXiS?W=?3u)?x+w$)5qs92cy3i5rGaxBzW0h zd8qfypi?Wn4wN{s4z0(79^T)z+JC-v77AtLW=PSH5;#1y3Y)R>D`qxe{r<~u{O8m7 z6WPntXT%fu!D+=Nt=F~$9=*eq_RLQndCPYYr zhDvtJu6+QtmG6z?)h%HB@K9xZl1mw)kmrxgzL7z%i zfyn?a#&5mh?)6Oer=A$q^z_xGOy#zW)m-X)YTx+NKX-Sve@iBHRV19`-lI-0y>eaU zv%7}(ENeJgHf6zL_H1si-}y8Kh%UkVAD+HCs*WG(_TujD?(XjH?oiwcrMMS&cXxO9 zQrumNQ{3ITzy%(^?|bk4GqaP~IXTIiS!-63b2iHl;T`K5^m6OSAhLsZXQSs#+u!wu zpL7M3vI2p>+nnEAr-qIs##fbf9D)<8d4eV%OgHTe8sCB8xw?5Q@znpm(=RJONl}hU zNFg$W;EXEh?|P!j?*+2m<ZEGmfRwD0-ZvOu5|h?-;as)-WRl!Sx%jHUIL z51cxFL^DeCr+ak*im&17{9S~4Kz@FVg`0kLON56uPU;HLRyo*~{32WhS56ai1HEo?Me@1PPzA99{fhP zoDvP}NTP9XSENc3NtFq{S`YoO>h7Lo#A8_>)OjLi-~>PmDTg;csKB6>^TQkT^#mCg zp=d5TVBf9#cN*%3qw!s=E;K1z|HA6{*(pjs6HmP@2=@=!IuqC3zg29U?#$*9hUz>` zq@y2T-L}Ibb`YBRih9*6nehJ0g2ZnUGt@mizIsPPt8rvrl!n-rjwN;xw!L*ea8 z+{>eSrU`fRouSBbqXD1opAkb6Yzg1MTcU83ANjBef|q~d=AgI^Pqe=Rk3vy4*1VFU zYw}nRZt+}|uBi3f6}gv(-P_fd5M5gnu0m`Q?S{k{y}=YnbCf&2ZPWl=Y+i0UP5FmE=#mqW0R0Xf*goz@Nj!s4H@&r_ydV0imZN^e0^? zFAo8;9}I6-X?Iu1PyZTU8{f~mXvyNaO|k6>~_udz^*(T zmm~MOey5u8bULeh#i9hv$u9R+p(w1@ar*aB)AJH*p2O1H>Y!dZYtUt4)aY!AYV|Nl;R{L&kC8Wfb z`?}R(^DEN}VQ9Umw? zK>bR#f`WmlaOGE2IMg zFgD8=rwBCp3l^P#QJ=4?<;|RiD|UcrVG95Oq#xG@Airrz>s!j z>08VZMT2bt#$xLSiB@mh6yie4`xS>Slg>Ty=-a@68@x*+5Q!G-|7@9qgXI5|M(_#f z6YiZC*Fin`AYdW{2bTd!BM6D@0Jm*+DN#?}378%r0>OIc2lz-G`+qj08b6*Z!oj52 z+`K6s`GVf?Q_rP(XT=?IK*9)}vNvyx2WJ1Sn-ijszACSLAHT{oWB)y$x&4AxTK~Z< z;D2!BKX~=|1?wFAvO_lyH~d##5*fo`OPw5oF{N)@f}*5+wIGd&nV4)cf{(e8al)Ge^pWQ54OB0CAV z66vV_#L9)y71nsdj2N}sXPKC(75LAuv_Fz3waWoQ{L=Pka zPbThsZC!5|icESqWw0nxaOBK`j4?2xN}#HAdp1RdgGHP>K47}XR=joJb`AKnt865O z347>A625m&${L${AuoCQ_&GJ6G5aR=iMx%eUXeaCQ1l}ae(;PVi!cQnR=n3fW>=CED=F; ziunGMA+HBFUL2|YPO#62)>nn|a@LwE$rNPCnKRPhQ7o%(ik3ZMj#Dj{h3`Q54F^3{ zYaV(P?~@A2ECP#I==*_VF7(Uv2R!X%Q~?W8f@cB}8;%lWbg6N&Q&|L1$}tg(gI zV)lCv=F1Ph_T0gpT|X_%nu0mzcjapn6b)v#fJ2v!;BE_G zf$QyLX>*L`ER=$^mM(urJ?moMuj5i-=ql@=QsM4WEB-yJ^XNrG+WAFsu-$%Jx z>6&LnT5x{9iNcW;D&@0A(!`xnXuk(W>wl;77c=mBW*6M{e}_}i>ZaWsgbn|9vxYUm z=1~#|Wvi7#+bzPafO$2Dz_S>@;;2Nk=ElIMBAjBph2Q!_lJYZd9K*Pa$UF zm4t-lSf%>?$K+3c8X%a)%0jH43~K++rL;>}N0@2xe}Qi7boaq=JGx~QEkGQ8aE7ZH z9U&)uA~4}htI`d$Re2|Ue({o#SSzhE3f;XTZA*b5^US!uyPOw}yw4JfheRWs&l(EQ z@5@*e?`r ztDI$$`AM(f!3(dNJVgK+8PNl0cE0yY2Tk6=qunNZqpI)#G^ofN*+$ZiQby+i0~$3{ zub01(B~bkWm6W+9kvm9Q>fs8(hTQ)mQ>c8$&Z`p!kDwaeB<;H}bi&7&cSlo;Z4LDX zqE7~$DcDyz(|B~!7emPS(X!<)&{D_DEm<{xs)xbUZ`}cXS9fo5h2y&;qv_&H_9bNl zIE6`O%moe8U@Y;Hq~MduO9f@|2GYntCNL{sFLK@mNw)NPqn!OO`gn~nCW%#>Q=K9d zJBV~?cdysi<}PP%7iTzvo&Xn=Q?VAg#%M^&*dJD4Z~E*dV(n;&{Dv3^8R$68LP*yL zl7?7b&C{v8WfY-u&!+Z$pR!|I-}Vqp0dSa_srEQ!tqxL%Z=WZ|QcLWvbc&IPcce@5?# zbM7eT5iDg)hR9sdsGm>%9;5?H(|4aAWI&EuOB}*~skNFl5-Or~Prs?<s%2>o9e}*HrwcNGSGU zxciRu@FYx<`{fko+K+CV)ssz<3q_ zmB0G>JPPHvyzRZz`7m+Y)jA5!nx zn^iJM|e46=8(J}T4jd7gzI(`p(!X3!0?a@t0@xat~GUMS|UP&o2OAH<68D$VC=TL0Lh&Y{c-q~3EykSHZU5PKP!L5k`VEA zmOIm-}K4;Vv^ow z1j}fv-UPnl6-;T{e>2XW8`OJE(ot8&{t6OS!$P!)70@{ss0l9k|KXA^N$1fU!nd_J zcudBErvl1+gf$~7kdKrm<6Fikyq8Zu4t^m0;0pP{prZ%Ywz?fKRQ=??sEHG^T6RVe z*v`es+EMmh=Q5jYYx&b*jGM1Zud1Lv6tbxZ_fS*)hm46}3Im*a1}_{pM{C5=oiH$#pLUA{n-B+Gyy`*_!3-Vs`GrO7<@j zk2yK|BgP<*t6sTem(s8w$3UDS6^A}*n6%6cX7|J{e4iP)LC+Hhyeo|)VN?d)QmDt) z3&M=~78d8P-e^T^LJdEt%q#>Ao@ksRwhPsR)gH_pdE;NV>av7hAQ-%!IC6wcQ(n>B z{soyQ)p=`8K)iTe1KmzujXh@8jP{I9{kvvfZIOenl;Hk#c&)00>eCpLOH#y&z;AeIsVnltKeJ-pD>T9Qj%$mGfgsENyKZJLyt{j2E+bs*FnxgnI_HS z5sJmlUJ&_m4NQ%mid?RB2{P_;vxXAssSzvY8g>X+fTJq358=^aiMm!0pTT|q|^vB9n9k(XlE5m@1s`{|0>#8JGy**_k zWZITkhqj*%cx0>uu1gG$rS{Q~18@RgS(CY48RMl77Q%{t0FeZ11O%wB%9%ohBsXln zgiMa)iQ?D9%zDxQ`5)5Qn*~Za~hG( z{C?{?=ocJ8gcg;Cp(SY!+tv3VJfauXd|rszl~h(W8ey+k!L4d@*m86cG%MokR*7cz zxk#H;MPmuVZy*c2h(CaUE67BN#ikP60|^gOOOPxcOKJ|~Yh|_L^rez_9ds_2g!L_? zH8xAPzcTL=1l}Z!!&{o>q0=G;wlF2u|W%i!T9KG+`nE8v3`z~GXzRb;p z#dY@|pL_TITE6c7Z^nfAlSaD0R-mBdJ4xhh=h>&GuWx%KuGcs=Kahf>z#p-Bmtr7({QYO zW%N!FcB_dIz1K36?|^^JfE+Gbv~UpdHV0ogwCR8ioykI8oP$wkQ?ihNtlMB8fgTMW z4`K0VYlKf@=EHW}od4<4FEF<2U6dKJJIxn@HVAWKS!^-peMc~|#2c)OrJR0KiMpVb z<8k`%*r@lsKz3G`73QSgc}Aw?*Unn3CUBh=T;e)$?l|(@zW18WQqz zaJ>)){T}RZ!!&6UpG`9m*393;aHwjVNoASiX!WvMB%(PwOTW^ZN5^_@o>6iqxz3rn zEu8mic%rFgEMa=1`l#i-2mP+|2_GeF@&o*V0a=ZOl^LIxuGW#CKzmF;Vm=lt;+~^) z?wIF7CiUB&U$eLBHf!|;>E9NWbdM^i9|~7fR&yd7IVv$|Y&7C@pH;H-I|v?0{wpZo zRTS{latZnkTotM|!*6Q%4yI5Ca#Y;Tnq(@+8`P z@Fz89$#>DN@hfQNjC#Cr|6x_UEgB`RXI@1u{Wz^l?&AB0q|Q_DyY+9HYkTZ^iY#Zs z^8iHRNeD{8y`=TdH*cb3%aEa6YHR;Aoba789LS4JAHtl{8&^71PInUr(W#EBP%Ga9 zQ*2&_X@nR5L-YK!e}N9z<4X@pCy@ipi8E&cGs^Lc^^I%*=5;QAxwZ&i!>vgTjlqPr zQJ9u7ElGkyI!<}2TItB+%5vwKXdcz;g5SQa2w#4tFBm0uLH)z3hB*216Z*@~_@b-! z#TpKiQI6Z*r%(um5I$Hh9n5pc7lNP@* zU)&J*>HegQ7(5lM#5T&>39j+ri3`T{6WxZ+}isK{Rg`14o5AGk_)iYcFa?x_Y)#SEUtn= zqc6{FdeX9+WCw}5?0LG+1TI&zfR+8+K)&^lPlDd$!~x{cJWu-Bx+H4M=J|zPxGRdD z_1L0z2!;JfQgnWph!sc)fy^X#^miLmWBfn}s+T#~GSvv*R_SZHZ+G2_B$0r;Of{0v zs{6}C_OHlOs-GROw^EdGU8XmIq@^xW?rr3vN2_m+RvP?=4RotbGH4Bv`|8uVH;}D5 z${Ua^A%BidMWc4O3%F$|inKw+A{rc&f2E-)%zL<3!yDw)6i^=Cu!MerQ+r0=sx|uw zeU67S26=*OSZMZ7iRxAsMHaG&jCG*1SB)KK!qVfyPAeiMZjtP-Sgb-nR?7D0yh7+$ z7{*w?GAA&%>_5WwJibfrju&hw%B*Dj3vc)?yl7w`LvSd!SWFbI9O9+xD28|hylhGc`$QtcixPJ$6PFs|VdKEez{f@Kl1|0N2$uKNprG8*;>6Tu<*-s@*pvP` z2l6j6gjzbxdi$r4pJ{20!_5HHFDQa6Akxa4x!|mD!)fOqUDng@-hXD!?=#!ejbIGD zMki6@c%7U}PC2MuR6NT6vBcQ-}L)z#-+lDLq2H(sq>iWvz$JQ%miB5$LFr#ui-Q*>XrAs9dbkZL#!>Tg~sPF5r%MDA>h>p3D zVdNh-1nRz`(OJqzwR6?r7c|i;q-b$;(At$dUgTwYuMWXVq@UzB`4;ndo2RvB2 z17FjGq#q>TmlocmrJKCA5jOcQl?pD6t3dvvZ>c z)|)ii;Tnz(_C_=NwIj*bUEEE66lv48d*h$*%`t&#f7+Wd%zk0%Qw1XfMt+2rM`F=3@}XCAF?b%q>JYo z8s~Dta3x(~Q#eYj#shwwd);+e3mDeGz=vLQRArloW$~=zfOI{10$;Hh_`?n9v_CwF z^K`ZEWz7UInNC|qp%@bv8i9!C9OOOKZ$5X%_C?s#-*Qb9+i4SAJy z!{+Y~9`OQ_sWl$ka0A&HxzmME8(`LSR)@8>;re{=9~unS_d)zC7;?uHzkqNnF9rKAJ%6u!#|@8z z<3_Q4rj)VeO301k5OfT6CgTE?F{Sp`3J9O}3N`tW6?(Mf!#D_#OmCW=B%Y~^n?tn& zp3KeHzUkBvkzxxUxi=|zaAtSh3e(DXS;5!|$^MZl4a!?8;8o0*iEO!WGilK42_812 zHWYt}Yhp0ylPeFfTLaJIhXTpNCmu_~G!9{%n`_STL0T-oA3p^`eT)3t(WL{WcT zh0fJvZKhYJyLRzFGxhe`-qcO!Z`quxdY}jP0!hd4Jur_JmjCQ`2V~nCF0PaP>MKOS z$4qbiXX)naYkQlC6Z?T65Q^7JfwHeMe#jdRa=Ir*Nx1Q!8u=)j$`upZn0dbCKm;V9DHH)?v(_1XL2fGK{phc89_;G=cAc3Z6aw-!2_V00bw=C3 zW3TyHzkum<5w;|TpD~+hZnQm~gCAH`O^iVt;|OS5 zZb0~G{wQI$kSH`a$b|?y$KFKWYwYLz8%);&YU7}}L`h-(yRdri(e`I#ET%&NdFKlm zT)2xjT)0c7n2SHLz;`uI8N<_2E^>CDw-%>?8+P{Y>l<~{py?wwFRHLAoH5{V(qOFa zce-#q^aoM@i$~xPibpPB3&&n3pr~>nw*G`k74h@uGk5E#UrU0oc>2$6@NVU9lv)#p zm*3E=q)0d0C;lRqq@WhV0K)4cRG+8Cfw0gMQZ$LO!zX~;1hn=ouCTUEa2Sr7)WNfEM_={Wv!+`W!km)<@QbWf<( z##+i!7i!DpB?#g)@T5uONEuzK0O(^(?p8InPMKKsO3i|O)_C)+pJG>yV51jH-F84y z)3=;(KRF3L-TmMs$T<}gcG(aY_~vX37f_GV91o7F5~rT`BjOhhNZTGTYa=zb73Fz* zrwT_nu_9X&NSL^4hE51oZhdG8w+W_3oLCcpv-)q~wv*7@GvSO+WK+DzaUEjDj>AZg?@C2;P0hoFj?^HW3%}eK17$gVRLq9K%7tm|{QQ?s9?|jH>QpN4rH@ z9xBF)>UlKE6X>Q&8;~0ly1vx`{;2Liq8WtOJ1X>dl{Pq!P!-hJ)NCLt^RR&sO$sKV zm3b7}l%Ybi@z2Yw4iRTX^-vleV0i!4Bwow>FU??7c2_&Vjltwlaav5zqrriO_uoaI zao{f$$1c5Qw-_vkRlYw^H962V8#69dd<_l){gqau+GwpMw_4goA` zrdLPJBkd&<<9*nxM)rkmuWq{DtWKk7|^KA^?dBOxe6zgJtDWit3Tv zD2`scFu69rv$KndnWpdLq4C%{VNHa?sutv$p=7qDfM64!-l=&P1r#7HpgA?^W)G5i z&~LP|w*UBf-gjsG_R1MG*Kq+Q^Lvriw>z$A?SwYngnkr{Z?4y|)YuITD5K2uuZ+ z5}#I|Y!bbAIQ8aa&VNGg`90sShNGE7`$XWb6!wkKOA_PSXLI;Yz!{}1NWX#lxX*V~ zAoBt}^V1w`MI|!6C}P3$n7R5a{vYx>1={LUGW3nly2@{?ye9QN3)Ux@AK){6#NaxN zVit$`lRHgMO=;5R=AH8?uN?OucKqtA6qxQIf-_op{9r2|l3SlU^D}OKe-dD>XZn3y zZe|F(Sw_uWKgd6y-t-hHS^hR;2lnx9+2HjWLnW>WwT!qn%q>tVHI(jE$eUFkw?6-U ztTHz`SDL0s6Xv?0Ki1;=A*^tq`dB@D_&vHxfG?!w&(>CjQM|H(z?L)T`Odo463MfH zjvbd|*Z7swB>z)hk`aF8Dr05)?ZOwoN1kiS2+9I68_t8@3*I>Z3MNaKhJhs z$bQz9%8T~n_>a<{cdy+%@_MuL`ky^SFMAp$&txput}``;;qk^IMl;3_Yjj+chu&H9 z#l)uy`CHy*Ppgl+RWQ%jIts)|4Rp6o>bX97JnlyRX#Z%f)DH?P+N+Mx{CHG`{bPP$ z@Ek7>Z-jaXY{BWTSwi`1J)GUR{aHp>+0tt^d+YmwZ9r`QufcRxx_bIF+nsilIhoP_ z@i?$l1GDY!d6&k5LtG!~7qT!3Kg*Pp-27fdFf>dK3X?FQPtD$~uuM9M+^Vrx{#%}# zkB0l-O+K^dHX}UivwUKI_iet%N@{lsQ6G3)5^=Ixljabj` zv@mJj^1Ap3qYFe^jIk&E3y2#Y1`$l8Hpgxjh&orhj*=E*sn9L;62Cl6Qo2byXY{5Wgz_zBJSWC60pHLfN zA8NrsY9PFZjebfp&K+*QWbqbc&oTDIwpNyK`Kw8ZbVEBN7-Ee-v6f@2jmOeGBhm`r zH)6rJFS+zqVE4A4R_b;~u7Ot5@KJc#IFX~H<2(Eo9>42zR+Vgv57bu3uROhe;Q?FC zlp3_+Z}vm1$?)Lxk$*8_#@<%2O#NxMNWPP>!8a3>cnX*V{E{@l*;QZuPt9t;mMQ!SkL7!z1>VR2%MPbs>J+1Ut2sJXy z?i1zUN=`tD+}?ud!b_)K%uG&eA0fy z6haxPAq!Gch(vKjP%+v%3L0k?6H_Pjz|5=>x(7W{C}3bGyQ-!f%LUj37m8>{Vn^^= zsTN8lJr0iuuGlE|ELw7e*rIJ`LnL)>Fn3IhID8dUZjhcpXw$R@69pa`jcOfnfB@BG z@AnoufCpibn-PFAtcB5sy$?{jB^gFJV1}{}0)3ia_wE<*evCSS=sjfk(zbR_h~l;c zBxA{G@%!Mx!PQGEbjcyr&=9maze~>Rsv$n1H`@J;_#+d8&t@Yz9DsKCmh(@@;hA^n z;L)r5^W_~mPe5Qc^H?zdKIb?kH#c|J4e6RR>9R|XGHAd-ThcuxPyH!!2)nK?^>=g#KxYBQ z!;%Dn#(!?BMf{LP>UV*yB7Q_6#>KbitRVbwW0~C*NKjUc@#2jgwcqq`JrvLl-Y+-K zIQsUS5yX$v`(-v2=!WNK6luJ&v+^C(h1ToPUoUXO0MYBdSNj9T@5f+$E$|V_@5e~J z%8ea{-=Fv_qLQ5?9B$R!@A}(8k(J$|I<;1=T;4%-#7ZaljwE&a$9A_H3B?PMZ!r%0 z$j|&&y4-tl`%+&LLwoFBlBJNvWtU9Od|X63%n>^)j;K8~mCe=Xj6ArGHal&^P|GcW zdijUkgIay2oH>U*o)kj{<&PDq%q+i=D9`zTm%lnL7owyeCkbe2ShKYX-{bNDwIi&e zWm-kl-x!b`6d+U~rO8P4T11)m7gg7d^qWZ;yA zC@5#&m9#);IsR?YDrPREas%)6f+><%X0&A>%`2IXgefY6LQ|SYAkUMeIDhO=D#7}f z6CAe~-Lb6&EIFs%5_QGmcKgRDR2s>H_mJh(i^s&o4>z^xNOo%$e2@iG3?cZFfU{*g z?pg%@(GaFA;6|ia!CoqSJJWXwp7^h&ED*A&^OHXq;p^^ zS}(bf?DqDaxTfSCie#J#>&P1`0&;Kb#b*h38OR(WsTSrY~p zjZJ+JoVN}4+gtN&qC?XmE=ua zorX~UchH6Oc|qtmR`I9qTmbx9Xu8ColqXY6TMK%Oi4C znjyLplxbyfM*OBPwl($@CbYv=zQIQtUB%;8uTWte^h&3F8&4Ul=E0w^!oIjwYB&#P z^p-RTke9Js72xfZzRjdX5LL$hDg6V=?cyiS^MJp#tqKf*uEQM&3u1ztHnkBpF3~n_ zc8_)}2k(SXbnUdMf0z!ma`?7F=vvc!NVhI|CWTOg+013~U=X%~?HZALulni@ZqB7a zUC_PSdn=A0ev;mq;riwqJ3>FAu>U?(QqVd{Z(Yd}%#Nn`BTg^M%nH39%Y=?^v>hPLr1fkUYZlPK0wD z0)?iAN+qKW=N$V#+m9`EqGPUc^)+b?Qo5yQ6{$x1xvkT<+2;yTOLg#=kS%BfdzE&s z+4biR(yiX$LYM>{ty4mogYG4pZ;&ck2(o${lJV_oc_UN6_yr_rOG~${A6KFtbON!7 zO)vdbH7la3Rate5B-(x0^=p8od-}sfL)M5!`4uI6Psatf4xA!7P7_J<@K}e2d1k}6 zKufF`=eS`xnHD8Syy8PXVi9Od*>p~T5~Zw1SW5q&W%M9xKqcgCT@K>O9^Tx=3;-H$ zM+`cJh7IPo5fogdR9s4cX1ObJ-9#ujr~mo~EcsB22>B8$y(xxA{OStoCFCJz4PsW< z6w2H;aSGONOGm)92$~9iODuPBRXB(i7H3a}_tM7O3kC3kf9IWZ zjj!?}7~l)m z1KsdNYXEo)cTkXC=>WI^QK^uQpS`?!%AMgW^3n1L7Ml3)g1#f`3frNzw!js~g zK=yeC7zR`VngRTB?RT7Fw~RaL6Ur(CzFXoUs|+k-tOLF-ey*>e^V^x z4<3RzCDjtr^KvIl67HkSBQasuY)-qpet*WFio-iExINy0NESme4@%EpdnXX+#^hEG zdrRaMR;1LQ7F?T?ggzvik~jmi5_8!z6LS(XlVa_wNU2ah4QccH$5f^y^Y_`EG4Aha zjt_RDzKv5isU$?NVUdVmVvd8|=>RMz* zYnx+R9pfAw9UWka&Ny9SVjdO&)fNNsEpf+D0)SCX@b?Ik`|1_)EK@UMGnqL|6AE%u zG84GAnb!S7ARPwVpSO*6Y>@H0j^EgMc`Ar=TzoMzB ztgz*!WP zQn*t4MRtA5FSoV-_{|JPGkaQ|I6GBcGy`#gXOB$IIH`@&NG>bsfjR;NA<2EZ2GurZ z;XJZIiKXa-7-G1}j%(UeJc3nbP5s+DR(^tsUUqVvIF%jB8NoeYB+BCIWRKF_S&1Mu zMJL4|fdd{3#m`CpRpo&$*;xjy3>I#u2vvAgbc`|yHIm>~>0xy&p`$Tz*W4UBCc=bL zOb8M~5i^!$N_k)sC8}7IlaI|fB_}VR7a4^SmFm#qu*|xQ7rR7)D}Zo6C_?@2&iM}3 zXJB!Rd1?ytkoqW)nJg@)CE6LjFn648N)g-gShNZi?39r3VM*J}+sc$!Gw3!FDw0=N zNQ9)uC?zBRl3adVYHv5*bRjCRY(hLmjQI z0T0Wmha$J^iHnt=mXv{5B$1sQUq#)YHAZc&8w1;(SJ9ARgJvs(7W{^UODF~$FfY2v zE+h*cq}rW_7&I$b8TjQyY?l9XGr}k2nVcdNne@cW40_i=5*JOho08(X7}}poj)T&w zA^L#0l&%vc9qo%U8N7wCDZ8BdX*_ zNb37;(WK2jp+6Cn|* zp9>x2O<+nB<1^4g93#ac^X123yf`Q4w&NsxDY$y2%W?AwtQNQcb8tiCM}b z$ymxgmRnerN%W>u%F|C}OD5vbYh!C7&he>5S4tLC-=0>6TKwiGKFjA!VV$}t$+57w zS1+QIT`o!K4tlsfm7D8UUsRY;DLDqa2sxvv7WHayE`)S z%nUR0+~40mUS2+LFHn$>(9kg9p;D5*k4phy#{NP!s+xZj$Rxs%39tzWaCn>#zA|@@ zP*TScr03*hWu>JhCZ?w5=4NN-8|(7gs;kZatz0ah&CxS7)YsSM_Hp-m>GrxmX3=l) zyiKB-Ow-b;HSF|$TyGTtHTb=UArbI6Y;{{sK3%r93V19pEv;Pt`~7pfKR6tjh|l?A z^>&{|Ifviv>7vsGhuN^};k-UJcBSrLhtvI0u7Jn&R`2JHsm9{|s7n6F?dbin|HsST zaJ5doaj)0n^77W!{O#`GXnejf+xRxkoi(@!87OP#8Q*V8Wr*aIRVhm`E2KWOzMljFf{8CFcH{e30^?Q4o*ZufEhG1?#+I%F~AQD z2=&#r01F}j0Ypk@GYr@XGA2C}hKk_5i;&7Y88Sn)rfH0zsK8}J_5|x=0T*WvHg)s7O!(TRVL=yu^yvEfJFl3a)d4YWY)u4Gc126-55dJ>^ z4CtZG1UX`dNca{&1UTLVGh7zD3^{p?g|iqy&S!cekw!r;!Bdm)U_Q7LE}`CVL^4BU zMj&-?j~S9;2AD$BAz`oxYr3MwiSYshkpTn!vln@);+@v_ksPb59TR;}#ABef3Vgs% zSQrruP(U~ry>Rq_7lSMCF7B2#Er0HbU+k{~Hzup{CC+ZSmLOq3T$C6Ro^K{wtk z%Ewql%4^Zv*I)Y$au+ymi;C{u(G1 z4LUn)@P2}Ik+W_Hm}7!ISYN0k0c?AJGdy!hu(9Mr?T+~C|7E}K;E4GG9LWgxvI9u~ zhOq6sjuqydUUNFDkEmo%oi7&_3rI3Q_jY(}x}!FM7QYvTxKoCVxix_Gd$X5RJr-B$ z+#e6$_7tYR?(qjKl$?x$d)0pLFup>Lss}q2Cu9=lVMw3U+{}KGdmSYQDYuojrx@() z%}p-OG)IRxn95m#r8ZTo!%Nfu1{WtcMz=D>@G$m!%a-fvR*Z!FlomGn>UfOAApg|o z`vcGs1E-)BGqSqE%F^26>WIZkf121>*pst!akMwIG_^IhHhVa_I!hP1&X4T=Ng>IK z5Z{O|GWVE^Bl4r9O?E&^z5tUo=`XDeh+o1=q6wam(`BB|uA0+Mio};3% z+gk!Ayp+G&oG2)uEj~*2!dmvOkVThYzD6lANc{r&Y4Bemb2O>Y6xA31gK0Wtc9HQU zROPm}H1p0YtJ9tzNoTCLB{#%3$dwyzE6mnD}GAE8E*rKf{+ z?P@kXf9nnx9!ysRWH->>|8F-d6LY?i|I0XTwy^2x`(H}5_pS!$=YKZ5?D_v+hu+ks zu`=e#a#=THJa893xL0Qtg|)|%MzC-&PREKP^B%pju4&z_6kf)PPoq`vq+pCEWQdiF zeX%D`yo;!l1C@@<;qD_Gg+t4nudHn*L{yqXO5i?ld=C~L`pb386lv_tVzhS_TLNIO zRT^`5qPA@DkNoq>G|LowL*fOqdVo`Dbc-yz6!B#&!ddpd(0~;%XCpQ)X$PthrmH_Q zwuziwpFz^uC0~QX_klLzPU8gD~?0cPT1s~1h-_=cI9 zofNwTLSs3SBIi-FFiRZMx(KS@6C>F4(^EX%1P{L`PXO3ZYho;+G+n}r-NT#^aeAl2 z1U#)tlYB>}v7NulQu6TBy)hzAL-;=cc0h^0Pz`|H<6(980Uq$M1^{srgaK3oGy;ep z@vusO+{Zku_zB9kB&j>zEiS!^M0lKG;HtwbnB+ zZCQMw5UbnA!*pcu?tl+I$isAH@P>eII?TiLWbhc^i;wa!eHlClrGJFbokUrcTa_?$ z9P9M0N^;9iyq8|4$g^>z5EE@-;;;B5^FPt!0S9pv$T-8c5#{I)t}Yo)P3O82$X>(j zE^AbdodxuAL^8Jmt`5>&Kq=d1z$G|xu?o`mQF(6h0Xs6|cBh9DxexKG_e*73xsAvx zgRJ)#3wqAm74PSDuTw-f3EP!0v}vsaxTu{@E|8xOsy!ZnIJpOSG<)1Z=4}DR2CI>L zS6LWUx0P~qFbn1PM`m|^k?d1sXz?$z?Sz>4BZnr7do&@RBtI{<)9crug1*beAIWrx zo*yybu)|W_ig(cKmq?Cou|qxEhcDG1CZiX`gHP&3lDBG*0nyI|7wN4npDx3be9~?y zyjsIm@N~;%@`mcCByY;K(!Akq38W(lE3PH%1O3p4_DAwRuTNcyKKrtLiHcbFl#r3@IG!kUe zU{K`v+`M^lo)Fg$3XcmA;&z7aw}h!+lCi>ch{Gn|HAItf(0u_(i#nwae<7ww-sh6> zk)9m_2z?_M7Y8|P0EJu-N|%NUzqGq#7Fn{$vCKdZSn~D(Y*y3ADuGQ=10Uw_YOddzVJhRo*^kG zx}Q(-)j(xI%7gBe$#hUXD<=7(`_73(I_Uldd5_Knc`}j67rMVckw_oCIbTEaMfY`Z zFB!+*o=BvR?sxbT_sCAKPn47wlW}e$5g*;3BJt?8=>Zat?(0ZiT)5vt-YdX;HF?j2 z`<3K9df#3-k0;#T28U$+qp!0B(ZhxpXmL-xmvV8q;Ou$OJ!DOP3>#luaVX5t%f?A$%?+zBl-TH#2dZL^d11 zRj=UTIEie!WW4U_puJK%#$T_?$i~PaY>TSrwrm);RME#R&Dr!kAiFr_L*SNE#+lc% z>9!IF{JE5|z^QEcc1f#85T|ju%(#=}&!LVx0T;ZIN8>+VhW~9D{?oH%$_Ayoik^Sj zHiIvx%}|!pX2k8I*Nagyc^#HbJR?%;;Gk@2y<|zsp3JKx-BbJMZIQQ39wg&sE_FNv zaiW`~dNABiw=WTdqxIQilT*h3s|S44C&SpH!H}-AG!oZc4l?{YGKAgo;qQqvi2A*N zlE#`0`ZxyBEd!jGfqXpni9Kz5NV>>jr>IPB;7@Jza4kJzX2{HwCh3_HcccQg>V3Z39MhdDqCK ztD8u)y^=JP6N!0;A5b4jea1*2^iwT^e?j8c$>8rN5cQ5KGyf35yX|1l`2u$hplfmK7btFzAx6Ki{-1kQcY4NX*l$NJNzB-bo z_y{4>R?0gVM00K=(HC!%!5&S{p*{Wpl1t>4|blH-R5_KT@XwN#7CP&6Nz|~P?tUF4tLvbTz#wG&#*cl&3 z3WPn{mFN-lInuVH^t=xmDeMkQ`raQ7{8!4;ra8xdoyd$3efNP}S5T64>>GI;^ z%aPJHPtq6JjO;n);f$0srvv$Fs;AF0-ycCA-!=VAAKzUZ(RY3tMi6o?rqJy{>F!bJ z?hjFZc39E%>V1qpzS%gU=iFG+k8~Ts+eVO~A&5=W)j1N!q@)*zWT4c^BgcrmZ3K4^ zDn~b&c@MJOsd?)^LYgiL&}^XFn753~va<0hvQg8$C?hY*gZqe{d2j$+-Datc$2HK$ zA%^mFRz%ksr-L%iI7j&;U}c}SS)8gfI6OBL%~VLY?X1+@jhGf4kwO2E~-93uV=Y& z^s#HQ9A0s9cnyl9kBOB}(%VJ6ZOPAdWAJrBtKg82$P>@`}{bDrr%482|MI7QfI6S$~cn_`IiO&MM=sy}dP z^*i@8VPpQ_;`9A6LRz~b+y3Csp}zF@GMbckp%v8kQ8Ci_Ye`?i>t$}Z4&pYFvUT@y zK7GFjy?vUnIh8K2-9I|0A=9ymj}upeOnHkZgV& zefRUaz}wn;(m3TZ&-rK`qMRag+7SBOM8R3Q%)=nOibO>3;q}S8sgaA--6Z&rAbB(y z^iEfKfs5r{r01!>#KyPv)KTRx5ch(79Sr!7bYK5Rx`F?ZZqR?Ei~Nstga0F)WSswR ze~To~R3|@gtJP{P__MC5>o^BR(OmqscO9^oQ_R zNnJbEyZoXCu-gWDIQ4y5$6z$pr@zB%9ZYXynq+w2A1r;Y5nZH*%^f7fhD++$b#||E z1@GWu347>ree;EMmAmP5Z1$JY$>J81nQq+LyZ*%6K!4ll;ncQj&mejmjgP-b+_#cQ zn|n{c5yBF-(8F_?|Ba41e_=C7`do+V$AOFVXJr&F=_ki(4RinAz8n)QKpQB^(W>9H_70`5zoc+JVyUYt^@kD z=Uj(>|DJOl4uBI=WL)zrT}Bj6t^Xn<^Aawt{_CQ2f1=cXnKYDTbk*69h)-?5TKm!4 z5R1$7G@d~Cezr`XJeP}!%H@}F!h9+I(0`;`D6z3xW}kM16-()|DGI9ue02$g0W=i% zH_r9%0Os(oH1k(0q%$sL|g^;|5di^O*lFfB7U`@#?Q~0Gy+SbXRug}qWTr7HqG!BbR*6Asqr)z}pgz3^a@$CP`5AXZKh1m2kqRv#p zeK7#C<6LkP!ihBpgTVC;C+3eGz!ilP@0|GHwuTXF2=0S>F^pJeZ~)wmVZ<7RW#G;V zBX+g#weKn$${X^tp3g@Fz@?wzclp=xrB2OgerjzDA!HJrLTrjGdvx zn1%XIs*Qq^%x^piCGt`(nZrfTZ%jCiHno8CpB{V!-1?`ZD;;}q4MXGx94gIOGxiMJTA27yl;4@^gSr9tLyYO+dY(C&KBSor%B7%@CLn{QMe?n z=37em8l+|5qU{u`eTj8Hl5a~CYzP`5S*BD_CF2!S;$d=dYI4$3mxB{iXfcw93yDMd z&?e(~%E5V2aFXzO^%vvhRv&X@F&0YVI|k3;LA_kzD*ZE8Gr+T*1^31Xacwna1P)I09v<& z)@Y%%Txh)*S`U^BfYzg-b#Z77oIe0sV`d0|*0M1G(E2lcueL8-2f&iCVH+9$GBi(Q z|K)Q!eXR$Pte29dm7NQhT{n!+g@Y^&X*}ATmFzqgYVQnL#5|UyeM56%2YjXN7K@yd z-r*}<2f`-jq}zOmH7C^hHN0JRpwGGOxJ9(rb+^$5{ZOxE_J5GgCtk;WiFFlRO5P>> zB4tsE{U=~ugL{~keqz*}ZrUARh*wZfyki030o-umC8_czgAbXmi_ zq&h~j&c8>O)!U1(C45iGFKAO@p)g`e1J2Y_!B%>FejgRaFPy%|)et8dAQ#2Gz@e>E zUdbc?AJ+gc3&gLUgH_gXutso$4|6bV5BT?Tumreo+{eM10CEq33lO{?@BobfqQhj` z2Y}`X2P+1D>tQ;-P&7}<=zV?k|I1(4{~@oh{ttOg{6FMXKmy)`Lz^6D2K{I?2di5T zHn0WCcRQ4I4F{{<1m(X2Y~n}20bqcyLt&f2MgT+*w-NbkAuilk?*yBK_^mtW_JPme z{Vp><;3UMpg*x#qSuaLut6-V#pRX5Kb>HS30K3a0!2N{*$U*O#Oppth9_j%Y0ieJq0d2Fdpz3X-`c=-UUmK)*8{XF@Q~R5 zZ3k(3Jjogw2cn+LC1u6uW*rC}%C(X*~@t9r?^ASHe@6%a*{H73_@}V6P_4F{> zPawbqXn(}sendU{OgLgs-K&gz&|@;;AE1i^PlhbeEElw)#881}WDSN6!-!$Ruw>XW z>>17s4~8Ej0Q&EKi~)=&MhqjKkqA$!sf-Lp7W95I8KsPJMg?Ozql&SXQN!2_PonjV zy^Ldw0n<6Pc;Z9A+VN8gnMIjJbfhn7N8s!`#H&#oW!@&pgaL&OFb&#JtSB#(ck~ zWRGQMu_v_zM<_ImbKb}hS}eUN>YeSv+2eT)5&{gnNh{f_;C{gKV%2so-7 zJ&pm#l4H$rEaj}_)Nr$sb_ z+qt#edhRjqdF}=7W$qR34emYeGwxgN2QE)RML|tLN5MqFT)|$!Ss_3nM4_L;0EI|} z7=_^qBNb8Cwb?2mw1)A|rdXl4RIy5NmEt-M`@Z;xzYlqrAn)mRx9mSI;eC~>4MT_r3Xrnl%6ZS zQ~IF9Q&v(|Q?^ugR(4SiQ68y0Ryk2QOF3V8vT~_%x$y`H^A5=c9d{+6f z@>As&<=4vX${&=ODr^;16%7>=6;l;^6-Si-l^~TUmEkJsDn%+KDrG8jR4P;!sMM%z zSJ|&}ROPJ7d6i2l*Hmt(+*5g~@=WEe%14zh6@gGkXe2ZhS__?p9zs9iKw+#fUN~Bq zA)F{I6wVON5iSxg7p@lW7VZ}w6rL1b5#A8q6TTF_622GmRFza!RCQD>Rc%#WRKryJ zsYa?ssm7?rtBzDnRn1VHsk&Tsy=sl>X4P8NdeyzEhgGkrUQ@lJ`dsyu>Ic=2s%%UZ zGr>$TOUxeg!2+-#YzUT)O2h<4LuEO4Mzl0nr@nYnh~0jn(>+$nmL*i zH48NtXs*&+r@3Bpx8{D$qnZ~qZ)iT&e5T3OQqoe>($O-}vedHGve)v`3eXDC3ey^( zHC8J{D^)8)YlhZLtx~N;T8p)+v{q~F)jF(oT4k9L4|gm#qnaP4&MEbScaLhYs6Rod&cw`%Xw-m867`=s_|?Q7b1wC`y@(tfJl zqWx04UHiSZKu1-_T*q3+O(#TWv`&)FWSwa`3v`z2tkzklvq`63=b+9po%1>ubZ+Q8 z(s{1)R_C2gmkv)?L)S>xL)S~!Pd7|=fNrGjaNShhiMo?@XXwtR!>krF%#Bq3%=N7TtHcA9c0#4D?*|-1H*!2IvjZ8>v^MSE9F6uS#!~ zUX9*Xz3qCt_4ewW)w`^BPw%DPM?JPaS6@wEN8eQ6T;EaOS>HoHNIz14h<>_$hW<4D z8Txbd%k`J)Z`R+gU#q`c|DgVP{mc3{^l#}u)_<%2LBC6%YhZ3*Y2a+&V&G-qXAol0 z&mhWRxIw%@ia~}!zQIg`QiH_?YYjFV95Xm=aK+%3!5xEF2JHp{Lk&YcLu*5OLq|h5 z!vMnw!-0lThQkf>4ND9w3>O%#GORJ&WVqLGzu|eqM}}_=-x~^y42(>T%#A#Ze2jvO zLW~9)#Tbn?N-|0}nrKvLG|gy+(Hx_4qvb}cjMf=#GTLlZZ?xa&w9zf2dq$6p-Wk0& zVjA;|m5eovb&M^I?Twv{1B?e4M;b>NXBkg4E;n9eyxe%bajo%TP#kI4X&fhI#tQcVg?rkRwPEHnx#B_jZlxe)_NYk;V`KB{W%S@M>R++9h-DO&Dy4Uo$ z=~>fTrVmV?nm#vuZTimigDKlgV5VwjU}kD&X=ZQcV&-Eu&@9R<$t=|@->lGVrdgTU z9J9q{Yt7b~)tK!!J8E{%?2*}1vzKP=W^8kTxstiHxvjagxtqC%d4%~8^BD7Z^Ca^O z^HTFg=F81Do7bA}Ha}*5+Wfrv4f6-)kIi41zcqhv&b3go(6P|7u(b%V2(bvWh_o1M zk!q1)QDia0Vx~oz#cGT77P~C=S{$}GZE?ZklEp2HI~ETt9$LJ!Xt(%a!L;OAYFO%7 zT3fnU23Uq!4z!H2%(pDDTwuA>vdVI;k!8E(drPjBl9j5J zmX)=Yt(AwBpH-06K&u$5c&ikvbgLYzX;vjxrB;iqR$HyJsVnk`s|QxE ztlnAaSnFAPSbJGVTE|!qw;pSqVVz~2Z#~(1ruA~`)z)jRH(T$ruD3pDecbxA^%d*K z)~~GDHar^@8x0!+8xtE-8yA}Zn;@G3HbZPi+KjeIv`Muov?;NvvRP+y*ygCsahn@9 zcWmz2JhXXf({97I<=U#*n%bJ%2HEzr9c`Opn{Jz9TWDKqJI8jB?P}ZgwwrCY+a9w$ zX?w%=mhEHP=e93x-`X{^Z&_2q3xP7{PmVJ)>H2VeiRragwYwS1K zZ?!*af64xteT)5D`}g)A?FA014mu9z4$cl94n7Vc4zUjL4(Se)9ZDSLI4pHo=TPfV z@37zDg2QEpdk&8r9y>gDc;(RLz;iTmG;#EE409ad80nbknBq9mvD|U3<9f%fj`fav z9Zx%+b-d>I(2?oHcH%jyIO#c=I9WP5I=MM{Ir%sRImJ4Sbjooma+>K>=CstQ%4w}r zjngKl-A?6ufD6W3YbtmLfbZ0&689O4||JkUAPd5CkYbB=SN^9<(_ z=ThfQ&fA^qoliPncD~|#&-sD#Gv}Ai@0{N|GsP-mbFr=1OYA2eE{+$E6sL+Oii^ZE z#AV{e;^pER@mBFc@iFmP@dfb}@h$N~@l)|D@dxooG22DpqUU1jV(sGS;^PwL65%q? zWwcA8OR7tjOTNoYm&GotT-Ld4b=mE5(&enn4VQZ^FJ0PQx?BXVTCO^-My|H59PIF!0y2^E(>t@$l*Lv6euIF7ZxL$U>;`-e6rR!VQ_pUrQOE-Hr zXEzVG5VwAABi+WjrMhLf<+~NR&2%euTklrmR_k`q?YP?ow`*=KZm-=wx-s2V-8J0x z+zs5l+#}qFyT`gGxu?5lxtF+CxG#3Ea$oDd$$gjmVfXXy*W4euzjp6(7kKD+7nd%yQ-@AKZ5y>EEm@_yj`$osK(mp9YL z$j98r(#O`v*(bm!#3#~cq)&!Vkpm{=eNmkvtO;>e!qi$ zC;cw?UGcl+_sH+D-#fo9Kc>HmznZ^}zlp!CzlVRAf0TcW|49E7{|x_${$>8<{#E{) z{rCDG^FQl<#s7i-L;u(Q?f&cll>of}g8-8N(*VZ+w*aqzpn$M|oPhj*!hoWHX#r&c zivy|x)&^`3*cGrh;Bdh4fb#*D1KtL30|kMqfog$9f#!j>fzE+$fgyphfk}ZWfs+GE z0_Oy-4?GxnH1Js9$-vWr=L2sA-V1yb_$=^MU{|10kV=qOkY7+hP)JaG(Ac1qpwytE zpcz3GL5qWGgN_AV3c42bAn18eOVI0}k3j~(roooM_Q5W}LBV0c5y7K_6N6KOvx4UY zFAlB=-Wt3+cz^KG;CsOjgIj{zgWm@WLX<+(LbO6mL)=0z%UYKf_Ntk7rb(mY2SC~&&R9I|SdRRr+g0Q7w zo5Hq+?F!o)b~Nm4*yXTCVb8)^!d`~G4tpOa2v-W%2{#Y74fhKV3XcdM7(OICCOkeo zB|Im*G<;F``tVKR+rw+akA@!$KOcT8{9gF`@DJhK2(<`}2>S?^h>(Z@5it?NBN8Jf zN6d(r8L=p$CZaZCSH$6nvk|g$b@KK(lHD8PdYjC?0Cw~_D0jP_bCfoA^f@TqcQWh7 z?4J)h0$chX3-@L6Fv^y$he5W49whsO;d5WM^!<-Se@oNA_h7N@IiH@eg8m+N<=@16 z(qwSa+JI9weScpkf^>sd(7!3eY>9Vf6%_s)+n)Po$?iR%Nxr|7-8bvHP0xL^>TG)2 zLbVOu7A)H7dMvh~m-iGKVh<*2*`hLQg#1Y8(qz&YWh323>Rda09TB4!eNp#}>Mv)% z1$V$j15c{HEC44aaoykj1Fnf88@_KG;2J2j3^}wM3T^kkCLQ#Ay|AXsuA8jVV~)9z z+;@Pw@757(y4}s{kj^`!_bJuZ()BnU9nx>TP*|LG-}be}x~F~3vhKMaqQIK|Jt|&L ztb5u>xV6mt-}f@_qGV)RmY_oW1{a?{ww8VuBB4WjGKj0B`knutKL5_J7WUZ=v{^yE zs-)%nL`JsjR&wfaRnPYXNN3SibUjM+(_Q}m5NX@|L#)#~VAb>8x$L)Cvfs$g`iCyx zGArR1w{_GyHw);hDfvG45B)peWI6e6kdtqT{ZQXg!~ty`#FczMh<^)V)pMUBiA_$R+h4iI?z^C?^MS z@%`T{>2_Iw_*T*16J;XYN;a)ePeyqoagsiL6yTysoa8;xFeEeJByC{RNBVcrO%{FY zQH*4y)B$|o8cVca5B*zmKEhSe`-L_OqJNa|PxwUtruL#m-}WTwv*qr?f$_3Lp^P=Ao4Spq9@rrYRdGzEYj}RSkU94z6$LVBN>;l$@Ovb$#|0d z@Vlh%C(&BDf-lhfD2twTMIw_V-P>LCwa@)6==-lozWJc_3k+p^EGGsR`O$v1mDKSf zWj|XgUX1X-TSo>j0=x)xtS5uV051l-z6_p$@&))yGWZwfkT<}qv+4NTfKOP}vrR9S zgXWj&wL#-srbeJ>`l-BYBD-QVb$)9uCIyyu=E4k+F4>HFA;$aK5+FlQ;#>Xov2 z-*zZF-s8*RkJ4&2qxUBXz>C_}JTas5x^E`^R=;~3X(rv1L$a3sluWu8W%97cjJ{?Q z#|vPrF0*&V9%!E$DSH{%u<1JPZ`yOcC}TVREyT0& z&IFzL_Wj}m&CPR~HF7R}m@~&}&Y<-g7Y-b_dtmFhEHx&R!{l>Wf~Y9dsL<>mR6IRz zd)EGyx%$T+H~bjS8Paw2YR=W)jviEg_wMbx4+`zVqN4XjuZrKS$jMosGxpct#ETby zySVdJP}b0)!-sC;ZR|)$Sesz|v7z6QBflIepOoUUdi6J}cU-dfTDXw4kTah-ucl^S z%|xw{SCy5;$_f6unbW4dp4K(*?^zxm*FE+=now+HRAAJc?)$E(X>(IdzX$cVZcV%O z_l|ng6DOQcjCr|gjg!*>r>qsD!Uhg>88~k03foVg9)7AZeKa~YHYD~t?VUHYw1#PI z39&mmdGhhe>-PQC?B#XeYg0@1lBZAWpHBPc)(`8}eYI}>9dnJ=)@QBPbUvDY{k6x} z6J{}!O-c7iZ+VTW||{*@BXy= zQPj-n>gq$)>H4G3XJqWon0fc6W?7k2*{JP0ca9$Y^=L_cs{iQG>7%c@A6kTA!B}y$ zsIslCz3nag9q+;gr3=~(6%PUfI|5&xnSPDS)#Tc!DLSU6mZX~e@#~Z)Pxe2_kGWB0 zZN0|Y^6+3*NQhpDYutDF6&2bQ4r`S*Z{Gal<{`|Ozh}&NKI8JTe|}oNJbU^54_*Uq z-|lyN;kw#yK76?Fp+ek}``2IV{xY9<{L=L4FQ=bf+;MpP__Fajk1tMq@F3>Fj|(?X z)6p5Fb6}v;u73TP{a9ZujQHV)&>v>qH`V{;7u8>kPnTbJbll@uxN1b)v14bBEiOuO z;_(c5-Uh;;+S-M+O!Iy_MvN#N@u%~iy3$h5(#*XEuiV@&x|MZ}-T+zi(%0|xjE$je>gcjr#n zo!Q^-8vEwWt2ZZ&-n%@0y#4XO{`azdd_vhKgq}H>i(&F{`HLb=g&)@8%((TMpe~cb&8wuhAF;LmGCqGFLzb#Oph+R?Ps8;z>^`f2)&dG5dL-1*&3 zJ%^C}d-nXf=lqz$8N-G}4*Onj%dbn9PFninsozX9v$W!;;?Z~Cxqg>ir}xLrn=@~I+Pd4uz#!A$_GHhKd-wje z_xQ-k1-o|5-lb+6_Va`ZdnZhOc-<&EdUW(5mFhnuA_NiYgXYD)ecST(g6;=zvA99J zwl$&l)vML7>^X0q`aFx3f}KD8^ya7c z!9@fA_~Y0gN%2?8ghFp&uBYL*CMMHOI+6mPjT^UooLBp);n%NEzW!IuUf(TSzTaZ& z8dx=J^t^i8cWM%mL9vm#^U3P;@^mV+CFQR-K=3d zwHovCZshIX{N%Kc&l8^;5At3N8ss==MB+;AF=JB3{Ni_H*_0_Cr#vfbUFYrHLfzM_`FhQ=o0fcI<0;0i{-9FlRB5~?(DqPS#SR| ziUW^+B2B)N@x18a z!;ug7&8kWN_S>i5-df$c)xx6EB4AH{JwLw}ey49u`m}xfitR1|1Hb?ESCd}@uavZ^ zsfDY}9d5R2(ISOK%H{0R!GkRaf1R<0vw!~|`>zbiAK%ha(V~=ap~>IB)&JwgDaT7n z0!yYJGx@k|*@R`+KY0YVw|{7FQGRQ9@ZfI;*Qe&_YG@47SUJ|J!oi`=VaA%cA=j>D zT)TPTF!$NB!_P8CU7Mesy(v5P!hN4pr@T&Ozg@nK%~odXswxx<%*>gOW@ zm<_BSU*EqUdw*xeraUDj2cTf6$H{^L7ZVA~uzm8<+c6sqWR(jMl6Ux7qXPQO%=~ zp$`vfYsYEV4R-j^*SFdC($#|Y^z?)2IgM8p1Of{|e@FF@+}sDbn`@hH?c4YJzB|Jv z<}@~@HvYQ*sPW5}OJDkZd-mqVi#ivb?v?!>8mbj)7dtC$<;oE&_ndHa*tl`q#sR|N zFKuk9ZAQH-j38#UdVznlFJzdxO_1(Dhwu-x}Gs=#R#@a3fa#NpJhg58yvHbRj zzow6WpwsV%UmTC|YDbj1$s23n<4aM`afpZvi|ZwfNeSy-H!Ek)9LY19WDMk>OdkV< z%cOx5QJGkjs_fwbrp9J5TY|7Ppx~BM<>gMO$ z^DM*zJ{|b&#qqBW?$%wfMOY`U{CoN_QA^nRxs0|h#gE^0Vd^|R`{iBd?oLU<)Lv#- zT)L6}e)4+bqW)^s#8>^+;i;K%e)pcMHZJnk>q_z=`7Z6~ME8EHZk+ABAF+2`&B5)9 zCM>HsEh{jksF^U~m zRipCY*X-lhzB!?0=I&a2Q*D%y=~1twxqI8qKMXQ^_{XKN!s-#ce#zlCN>-IIzICUw z)85c@pfynAfo;U7QFZ~TsVUi#{7AlQt?^hgp+;}RR3k?Dgw*_v-%Y)=BfsnOzfaUW zcJ=*}jo(@C;=K9yz-LcZF63rB?r_x8HCmJXsU$?5t;t^$tubfBnQwd+%yYW3)~@W_ z%WE&}UTvH6i`mZ=T(5<@&l!Pu@^+1DS!tP&o!k)@j`FH#nZO=G3H+lSbJfA@{GZU=2<`7QZi?o z?mLNILrJ|h{xFweYj_}L#l=(|AJ;88p4S3d(-ND zWx;=KxSKa}RlU~R1AEFBFMKU{^o^d+kQd)Bou)ms;i%v4V?2-ihjRlQ++V+nFu9%) z9mHUqDO;$ppTl{6>4(4zKvYuaJ6DIq~%9c&4t8?Sv`c`!#Sz%^SPNVTQq-mG8m_#I6oc)7f=Y z$2xGlL)Bk-tH!ih1)q*S$PB9GC3^Vh&fbuBB6#l4%O$^59jPRUhJJLkZqq_wmSXJT6aaI(m*Y66%T8@s()tRzipo` zn%#VOa8!onlQk+y$s3=pRQB=Rpq+Ln=C2Kho;?~cCG^d2lhZFhKVROESDT*GpZ#@8 z!4;$QeJ`e_+8?mv2fTSxH*3c8+@F5aqNY7|_hyUx#UZo%-+tiIGBK%s)%V`Vj{NG~ zZ$wP72{w7+s!vN7oOV|+ESAmBsr0mPkKgL2oZ2^PYrL^tY!df-r+=FtGxdNIJ|nol zYz__BdGUO|gw5B-S!Ucw*PdZJxrA|MgwgsbUfOXBezmXo`mcp%i*#3bZ&fu*%J*^` zIN<)i30ddfSIzrnQva=Cb=1VCj%#!|7Zkee@8B02X~UH9bDl(!Jv%7vtudL8Cw_Yp zS`R2UG}ILqEnHTd(BWz@Vqb{j{BUKc)!fRpO0xNC-ow=92x8d3 z_!X~OY2UQ&!uNk@|1bGUoVh*CH8%6`ryDA(S}oQD{S|j`U^RRG)aF6+OPw9OcM0yy zvCbVLI&XS-%nw$!6a4SLc^eyB{pZIy2gJ`tGA*Cn`%`#UlvUlyyi-@=x^D0A-?G~h z%x82}JUK+=3mh+RZjKL|d|k7_+w@4BC`mS7Gx7_x7kzS{xKFWc((Lui3a=g8(DlFM z%QBYxkDYk@u-$DJ*f%#v*C<;uS=U$2(YbR-YkO8;YTC|)x`&rszRVc4?E4L8?(~mo z{3GFT$FSY!qsKlUq0RfFe36f`!V#n4_O)g?emR$)RAiUTTD42}@ypD&GJLB>w}jOH z$er#VX8P68lp&IQi6r%DttWr>GtSZp)4QYl73gh z@W>zk)Na=KVbxLiLW$t-lvoQR)3a043KNGE+H&%y1ns^z z-R{`9$79A9Px`r5R6+C2P5GhY5XVRRuiwhma_!9o{quZQjTrMRWBB_Mtt+>zdAe(k zMZ<;%O>he7I{JyI!rEZ;W=s7^UlUzKPZ+265lcQ{49VC}FF^ zkl$XHjNbdQp!4LQvRi_IHHv$im+X0zytZ-4?6BHPU%i{_^3{&YHVM-=IgFfrdBi!Nk-J(n8XPw)dGK;-DQaU8tHK%;gG%r9TFswn2Qi60 zx}{RT-Rkbr`G?=!Hd(oDvh`M8sXzSbSp3D+$KLOJH0H0)n&L)Vz55O+afh?!jh;4P z)9o>_wxxf3aNT^V<#@35zQq&DBYppxsPL(H?8$-QL1Yd5nPHKqps}|mZMZVNo+wyG zF3Ec-rW}KZ&SOXZ7k{{gRE$A0~-C+ul8h{Pr+o>HPN|E{pEJ%sBDg z>=+%lldb+ye@SZ*^T0pa54V5+i}t>Hsh%YAU@@1TIB4En@yDb&-)QN?_`U6Li|A1) zXG%YQqaiyPhE+dz4m&!vB4tO%x{~YHYfq>A6T$d;#on}q@A7TFN=`3NJ6Um1<3i_m z4D%mthP$LKn-PEiygJ8xh}YE9A6zLiww-%#z4O{Hg=Vqv9H*&Fo*&h-d?j)pT)nDp zRlRwWwP2$}_#yIjD+ig&*z?H!+K2d-itVx1132R&N4#Ut{r{M|6S$bZ|9{}KRntE0 z`=&iGUIL?J1X5VBT;5JD895V9vl$R5g;B?_TP{oki~pP4>=_o5ogKm+R9REjcZpp4)!f zR2BYRwkg%JWp714t9Bz)ciozVEcMSjc1&Y1g1vu#{MFn2w$0zS=tIwc^UrtLk4Aiy zD;oXgkV)=BR&0KQozCu?hu>C(F5F^mJw4sqY;U~tq;i!r33g74_a{D>V7;~d{h54f zR+FDPC?w*^&sB8$bbix6+im2_>HqOx8;db^3>?>OSbf@4n`W~eQ!|6!ya=1KPd;X{ z-0}QOUq%df`};*F?fNe+`EmE#bB%9Bxu?fGD;fHTKiz-#Uq1|ER=&Pf>mOfIzb}05 z_QT&q?W_O$_HDNd&DQ_rpG`~5J2NGwsq$1dKOR-IMqhA zRJUFaBTaT)oIF1BN3)y)H|wWbp4*DA*sBF zvoqZv`ClE6pEdv7DgIjR@G&9_>&)7>e9ikk-#~vI{qK)g(1x*V{=A$13V-?M?W}fV zLD|(6RnMM`9&)yuXnVAObA11=zITv<+FXe_g* z=1NOo`fDHkZ;aPxUfh0WBH^OGvg*whL&nzG{xiEb98i|H*FE5zJY%<+jp;m}5Aio` zC)`#~psn|yw04EV%b9}Te*eq;7yVF~%k_Km@k0aMit!!qKR8YOQEkjv*}G4R_VceW zHonsj7@BOiC z4LA1M5O{1D^z$)-??!Oj_4AI~*S1*|v}wkY?R);W?PI^pTCQ=gr1`A#M2YiilV=~{ z6qtkzy5v1Nd$#-YHOw^z>)76v_dhjx*dCnR#c-q6(J5KtZuQd><~i-|F@2lK_&4v2 zLvNRVtg-xV!ETw@2c5qUHX&tPvZ% zTI0=5Cq5f=E6U=Tgpz-kvdTQE0~@A2G%s2Etyhyz&I9(;luaoI1}u+U?j5w;dr{Q< zsJVN*7y~9e>R*?0Bz5b^mgeWhl8Fs^jZ4^~Gt6!O@#W{!_wr1){5S2xlJe7#D7ZSR zL^@2%8@UXV8 z%)Hq~AKSIhx|YZq8O2OP_im#8q(RTOeuu6I`+Vf0ONZCi*|2^+NX9Z5YD?F=o1dC8 za%y$>w*^kio=C1J-ly<%0h96b$KbQCE@W-bKDd9r?zqC}bLU^)w{=ZaW;VnXPLyvP z5^*r}>C7h$XZ_~|jGA@7=u$Pq_<7o=H$PAKJgjH&j+x~TJ1P8jf0>g$ zj~&_b{Pn(j-X{cUNK0SrTQ)T%k`=avarM-;<)#&P-FwDZ99bGNPW5?R{#Ts=s)ra4 zjxW@(Vh0toKX22FSzMyLXJmJ&L;f*qnAbOS^Om^4$u_Tf^5a1X^UJ0t(@ySBZiKeq zU*^~Y-dYSVrP7KIX?H{)(WsBb&jQ8@#)nF2IpP12r2C7Hi~jbzI{(cNwJ@2px}IFx zD`vLlNApkC4ayrQWon$C_C?Bl>x{aC{wB;vqZZb_*2w=R&mS9f(KM@U%f}V(ws=>a z<9UC7wM+0(lkg(Gb=(P+!ipI`H1B+zec-9^|EYofBHsmbg1HO+?omp+_aEB+FWx)b z>laOP?jyHjsNGQgosT$MJTCkf`^;oa35~P0QZz5`}S4{21)-hqOl_Xc@|y0v>?3oUZ7no?1yoc| z-1c7(kS-}nrBoV}4r!250qKqfrCDlWLApUeL8LpSq+#jqrB)gwcF84{X4!9jzxO?7 z&$)MI=g!QTUp&w6-iZN=i5%(j4kb+W{u8O{Z4cCm7-&(_D30!Z8|KvCpZPu~vk@7i zjzMGU^DxzvD?tU`Iq&adEp(Soeyu9ZdT6!qDT)%YZpM z-R~Zg0LE()(fw{-u!BG~WZYZdW5zc+4Gri>U@$}(gWv7N3O$gCSbA}#Dtq*52Z{X9 zDPgNG%ROxyu%Azg>(%e2&y04&yzaSYyyo@s{v&nGNjrmNLQZEIas|G;AHz&_h!_!v z6vYq^Xs%_Y|5jk{Ew)e}nQXyzZbU9K!$mJD)Gd})&%6UEKYIw8f5(WofY4EeHOnOp zACd9IS3(QBwUgz#jH46ZIGN^I`^ktdJ_&u8m#y8=@252SxH^=+X1KD=0_P|DX;7($ z0j{Tu_v2rzT|oF3tWqq_ZfJ(fH^ph8UIdA6A7Nw%Opmj=Ps!k3OKS<}-sbat=vB~G zui7lgtNRzAXX1?ZL}B!*-LLF)LcXT_3*!$IAvmb-+ut=v!P_V4Y;Z zHzaVAv;xkyb5>?O4eh-JR^kGRUYwg=ILE=L7m<)~Vm$x%M z6PM|F``(=+PETy0t`%&Vu52(?#YCLvj9*F4}oT|mNqED{Qx#<#wHZk+z!#|U9UfY{>_Vn*%I5GO6&23AN znpV$O%Z^22yle(O1IQjN(RbcQ{o#Q{iuRsX!MUb;YGqun!Z z6)jf1YG7u!9Ft9)9^-`$EGgMyF21XVwpRiBoUp?$ORxNb$dDhZmET6RV{8V$4S)I? zyK8&wxJiBH)^IoJ^9!u_!MK`p4$Pa8>IELMKMy_mMW9`MFI#K^{~0R3>Tmyp{JKn5 zv|Qi4vt+sENn{GAaICR0UHTbd9Ppb#(i?AeC$C(YrY_-fN9|Xq-{;Lf-m(?a)BZ$S z!%SK9GUy? zq&TgyaqBW2B=BMuNY0Mdi&k;kd`=Jw^Z$E$$?PWV(~tPlAn_UBk$G5B^6lWy->7BU zIRLBbgkZoy>8}0Hf`-4#;uov|HRuscD~LzVOVq$A7F4tGVTC7g#;0_zeOE;I?@=6Q z>{@1Bpv?03j;d37Zr^Mtxg+Ex`|f_VNl;Kw_deZV#*3#`(uhC*>9mb$>%Y&~c?INK zokB+gf(GW2i2ITB!;+1Q77XPDD(&M=HakaQI|V7*P}Dh6evmS~38DJ$Ei#ecc`xqU`T(R$BY z00zgNnVL9U+ZkO^)S=;TkMS)2I3wPa>f>TQkY%J5Pn@qxo)YL`qg-N;UFG>RIXkn1 z%RB#;p5Z&;C)btL^IN7455F9NjQ$bj+nM}pc_VZAa<7!+LIflsA?@}1kho z|M$T+o-66C{tDF{#(r=Xt&7+5=WF$rx__oB#SDrVHd$NWW)bQI*4>ykDcZYguY9ih zUj7N)XIKQ1efs=dyr3-5&V2rJ=j4vMzM@Kru)Tf4TcpSF$qIH+65S2_yfkp?+AXSy zvt`Dsz`kVGK2V<}%e(3Kw*jvc+LX|cwzQjmZ@NwI86?eDFk_Y8U%QtFssW#8#??=1 z<19LHKZ)AShUBtMsz2?v;PThc5Kq@8UcML?VH^5nx#A$BGCP)QS~VXL-^SvL7vT4- z!N$=!v4EV>$D78r_3FjpD&;te<+Fd_OO_813-6=mCv7gO8C*aSq%nJwr)6}~jY&(f z;W_J}1);n52&aV_*-P`Fy}qM0h_1<$RnQ_!TJL`4eq0#5KfRow<7MX(D|fchR?W~5 z&$VtbkCva*8@Xj*-|0vD_||4wz;~k!#|!rY)T{FesJfUgJsl2zgy11(;#S(H^zR8~ zjr?2d$vO7#m;Pp(fdf-ZL@nPabOE;~6ZhusSm;rE6==V}!!O~wAM1l&Z*L^&)qv~L z-_O-IF9i8P7VllNBoD~_oK0VUvP~O30R~BjkSS}yZddNZggH$ioG|abzBBU*WtxWxX#`Kl{SzKiYb7m|{1wXqzOoVLP!F9Gb?ByL9cwhOsW8Xgu$ zZdEW`+-kD;$9ugyTYCix*!xk>BBJ2ZW^fqaQPTY8E{@0oc#@Vh|LCK%|FVhu9iO7r@ggFPHtdOX{ij3W4eh_XQX4|}^Cl;Ju@+8BAKEq*Ee6+ET8+dVzK7*Z z$(f`{$zC)G><>Mf|31vjM|o&h@#piq2VxRKx1(R~!3OF48PrAMk}v&_q{%L4A|rEP z+b=t+rS>eHXQo~o+rt15Vhw)p#hgM(keT7$<@rbGhYS}C6P@Vh(x?Euy`rRFiMu8Z z)B!!|#B{TtDs(PZv-)U?7@b@1h4WDMULF#YF9+J?U^r^Yst>m#&s~49I0^Zp2b0@$ z&6^w71nQ8q{vUqj5XrSNxl-AFYCX=mtmq^a@j$KSA_YivAx%n}!d3J|-`IuvIo!-U znqU>tEHZ1_-mAcZ4yThOPsK`C!}HH^C{vKrI`8L;rMkO3d#&x>6b9W`9y5{D#fCA6 zS4dJ&^~8n7A8#&lMtg0D^+5++sEF#)~WMt?BJxl&|+hHMfY3&87-{D6UnoVC<(Rxt4PQA6Cq_Bh&U z?YH512dW)ED1Exqw2pvh6?FWn#Z~w32#v?lFI2lQ$6&=dt3}s_{&ZXe!{>c}9chUz zHAlsp*EnWPWty2JO9l7SV{9v)E|eoJzO|QUyLy^j0wbJnDy{YP zFD`>`=?Z_nGpkV%vn-HrTXRCVMZ1Vq{ZObhzCXs}H3&J;^)5eLXWp|=?I;hRspzZ+ zjP>>L8?zUg=`m2k$E*uLadxgR18D}u(a*OzgPQbC_a3w?o_$0HHgkW9Kbr9C&FBo% zc_9wpS}z&3kY3s)QM3tGx(nl*WC@c_&OtN})t#g6I`9Tf_^Xjn!Gm2RP?2`)+&TF8hrZ2v!`{l$c%*264co! z<9(!CYe<~C`6aP~5fs;&v-|RctYhc8{|K*@vEbKLv@|lzb(}Wg-SM{f|7K0xd z`7SpDlV`vqPf>|xFpIl`eD5)D@9_8c-FyWWOnaxA-S(Bb;_z1@gHFcLJ0)Q~%!kAV zL6zx^sN_oz4KxHP8edAdMhpEa4bXRm`hRB@Fh9IuxVDt7JfFNt4{RH(FE?S05zj0MSjrh-KgXg2pI8d7V$jHpz;oc;3@Z170tB06pj=cN;*Q9$Hc@dtaV&%dgcQu$e!V?mBu03CTH) zkXh1ejJRZTh2c*0e1C~Mz;u<@F!b56>b5PcUxw8Jd@4Bi%;D@$g9%PC`Q;Eu+9Xy? zj<3rc`3D^Rn`1Nr4sOYhnYOd)U1oVC{SP z6jJ<7x=j>tv$T*8lMj+2Uv!QXmW_19{G8Zb^FzMRU#jkyuU)4D7yoF;F|P{fNG{dS zuHoW&RkU)MX&4k_R)WcakeA=?h#8b(2JDuC1Xc z10v(gQ2wCp^?`!R@1o@ohn9xchB%=&(d+;g+4#Oe5<4{;P>fV1g%^x@<0DhEi9 zR&SdVbS|MR;ApF~Gv(Kq_DTi0#!((urj6jFkW<2&a6EYL*>$Z9UjOW2deJ`Zx&s>&g6ruFB zHt+4-*2mt`P@i4{71hsIuoB09M$)KP$L+>m$2pCmfdYp(74iUxa$+5%4S%7sv*l&b zxEE}9&gj95r=RCCcUY>*wSAt~Ijb9jstQMTx3|aby+YZb_C;+k0lRK0%}y_QqaEL6 z`^{f{daq(RcE6cEscG?_$y2F=v;MvCw2jT54;WBWc+qCc4y8=Q^~lD;;8ny6oCgl^fyZ9w-Bs` zWu&Rcc1kY(Fxs8V{Df$NO>=I24h_m|v5hP8nYz}7B=aSFZ+5clgLg{baI}8&JGXFV zMVn7UJiTwV@HN$I-Zcqjd!DV-+jrcK3$|yWsX`s3-lo0m zM#KW#&YnS4J5^GfaDx8)aM@c(=lIK?uV)Y*-HjV|3o0v-E*d-w=jRuub{`ik8jJ2! z_q67E@@8@#A1y+B&=)~~Hq1urPTmS_mCw#MzEY97o0n(im#GJ2K1Wd9U{-@G&MG2_ zyXEax_X>3JeJ@?Z^T~!*(PsCRn0%hV9X}uI1xnYB=a=W&t#j3DH4Y1TtrPu4b&F3+ zxIdABw(hx?v^wEU$U%gvl`I<)qjAzR{wi7 zViKus8p{A4_bAQq@-z*ch~_Syo77>m}IRK$2PL|_;-YsN(OF;cRkP`=}Vq(uciKHf% zYUh{Us#oS|7$dBuA~j~{_z-$BL;Vu=pEgdo$+nA0vT&>A5=A;dJ35zxB$x1uhX!bt zaQ4#*<^rx|>yKJ4#-28lF#Ls9%6;uwm0#7bKUckzzB?)X?zje@Uj3}SBg+2*Y#;=& zK!#-bxAB1e#E=`0Nn4hSe%(Hq2WS6wwF)uK=Jpwm_$5btyCz$jwEno=+TKeJ&=zm* zm!aXzGfG7u**Bi~H4U_#s&z5@g4Y?JJoauxEk`D9o)~D6yE@2f2eq2<|aa48k zV&^09-NC(UERlDcxm+r2dTKa9=F>{EnA{JEv>=lGHa9n6UF;F?{$J=M6;6#c_4VA! zrpM-83Ob)0&VrBuV5Fy}c z_k7{)Y=W_y)ycN3`b*)2-_0Lj{T{*-ISVbIKFS%px1YITS*A-Ioz_0f6p7|ENO20Y zL}g3>Zdd}FK%4PW*$=L#cla7)gXeaw*?-Re%orwpVoT8?s-1_iZu}j+`TYCZ0rI`f z97Em$(dLl&KMbAYOx%;oAKnl0-|#- z)$P(E$>*eh2?B1sn9)&aE(o;^crDV4b%{^lF7zg4cA1~sJ346OMaCRDLwPy%4{i+d zDB*+1&!rEdLx11w_kSe)Mf#K)a+HQ_^48u;eZoqS@x;v}V2f-!)5LRN^@y_80kYqG z4dR4Q%Q3GF^Eorr2k(m<+$A+|c}^rO?bx_nGFt5!B0j9?A+HDUvjG~&pyVrIH&2^SGOslB zkK+dQ?a69N>pU$)rVXj0SCW&%(J2(?Eig4^Y5F9sl&-|B@N{_nDfJ3h91jC1D15h2 zQA|V91Tg0xt@?d;{4J+AZ`r?TL9-oM|g&G4&*y!S4?ayxi6oPv$C2rI=bJ; z4$NY9H%}~9J7jP4tWshxF7Fujh6O@4*JQ=6xY)tYZkYhRn8B&V4w(xe|Ec8$U@r9LlJr~KQ3ZVi_Jd4I%3s(7(ov%2)#?y@8pUlw zK52xf1HR>zmGEdp7IdUL-m+h=Vs-y`sY-`BXZ*2Tal@MJ%;nY*`C$AL5MVQn={l=_ z9~3bFFvxl0Qjk>r$)M1(A~`S$j2;g?$3Fq=krc1YT%(R1dsuWc7{q=S=NPA(Wr0l7 zpuY9{LH^P)>v#q&t?NyTdvja9@Z6)~r=@g?XzAJ5n(PN&r<`)ETJO=%X7_7Z@Xj^f zCC*XJ2`H|Zo4oUhyrHR+o{!HpCpouemWLSWC-~6p>7RyxBxW@Xx5T&}p7WMkgo5~W z-X%tWUd*<{gtQXO&gANrZ5}q{bujGVy$u0{#xS`O&r*L^J_nZimp&014MdfvNr5_BUZ!sP|WGb%T%Q0W)q$(d_cydN%u;Iuh*ZK`pct9X8pi;UK*u2 zoQHEd@8ECHFBXEhz1{EC8@)B0bEV3C zMH%Kjd;a{JkEL`r5P6mffzm;;$8$}JD}fXjL8X8Q0teX1*VO)Qa_B$LiE z;FS^rY$fDRyIZI@9NoAepIn{ZuFP-zws#d(vp7tB;(cR%+A|2No8({kuz|?1wk>7r zK)y5o^&tt)!?PlJt9LFd1?P~?IE1g=rUHiNzmBK*L}Q*W2hRPT|9qE6s537EEsGid zQ?GJ!Jj$*r1<4SyDoauZ&YW9)PNl8pHDLYyx^A>8bD_f39)H=a_UuZpc-AQEJt+CC z${ zO7m*fJRn7OF!RT6&|=GiTy}8K-ltCcC zT)^MYT2;ZwsrYPrc28o{IgM|3@55q6nNw?q-u6y-*-J_WAJpT{6MKXC1=$v1|Jt(g zo0Ex=*SvG88fkQkR~h~1YNm|#ZGR8myNvWxGw8>C6)6tq;VaTHzrPteg7lOZW0zt~ zFbhm}iUgG^%67WMAB7HBk?*fs9Hv+L%5LQXOgne|g`Yhhq-~#0($#4)qFjb&jm$6; zXEKSwrB7Lw3JdPgb4)L?Heb9{Ok7!BmAbOaJvzY8_qfF?<5{+&fjM4cK{`>K6&eyfX+JFcr$Mm_=z?b`oh}51v>$7gJ6Q5C5L36O$A1F=DeB{1$3bU~bq$GzlR;5)= zftR8S{@ytC>+?;Xeu3ce98Sc)e$D4f-}826T`SA~$b4vp*Zwq2B%AQV185|j`RQ_C zHf4*~MKDs)_Col4UZ!fzGej(4=&#JAiN*4I1c%ZVM-iWe+m3pv>c!;ij_I5x*|lXm zB{PGPgU2*lD`JWqtl!nJFhArdhM)%wwry6N{xda1y>4PEO z0cJ8|p1OrAXmbML$%JL;m6L*HqNXGH>}<2-v&(OKX(&nArnRJI4XZ?zEB?Co(it1? z3~RQxH#RIXbvU?mD&IM<(6z1~WZrv4R!GuZHz#DAmpdNb<}%JWHCEC4gYJjEy-9bz zfo5!{YKplcAVI~2Sv{e|<)XKVSL6XVhyMKz@olV(b`|sxZj#a~ONo2kmV?JfFmiQA zn^#;VYtnOj;@iI26BU(qHhKaPBW>habypugt&r;W60$>f^qW_JkfrAaIZOgV!#6#- z?2=&V$a2=i7E}A;_PZDWoNFQ5emfR4{}C^HZv|Z%W4qw+ongDd@qVnNNqc2PF3Ewn zSZel{VGH)$$b(hd#KKknjuuoHz|RSUg#9uu5xM?|4$LHOy{VVPZgf*pn`yHTGoCcH zDXIKj=;np#KQqT$?Cfm2nqMa7!Kov#_Hs{KOz064xLMK9S<9~JbctACCb|b&)gO#e#K~e&X}Hk z5azhNKtg|@N;)lHj}_gr@`;Tc>I6~lSErT3#yZhQCvxc3!!=o4zgyUnXW&U&CuVp} zw;q$5R~njxod_oR2iXWWXu`NQ!V`~5ded^O*M$6fO%Lu-;*0mgA=#la_}&aV)=RxR zljOJ6vh^Ep2?K+)&gfvT)rhKQ?)$yI`(_;pRPprh|HRx}b~~p%Yd;m~sRXYGh z^O4t0lY1h^lH|WTgAzI)R8xy#ZoN)?gP7&6p5^E$-|a|#Aio>;a-K9ek(?0dpx%9c z4Z~m-H9w%*K+c^QnfvNaxK@=b#wZIExh)1X%r?bTtbsjQUN4Vakhdvd%H(f);hN+> zr1vLX-Yj;xglI0gUI{Is;}1$7Vbo`^t6qhSctuUceJS_dC^2+&(U{X7G$tV0iufir z2R9{+%RXTiaBnMnn7|i3i(OfG((0h zkb}ME@2XWVYr0w&s+&sMe|M$uDZ}92!RQ97Q)_=g-}Y=0bNVnVa?hv^+)#suCkVXx zjBbqxUvXjIvOmz|Im?XMr%#$?6;0(PMxp3e7_ZwqJI#44)YU%)g)GGn2&@mh6!r^z zYdI2RW|4G?gdy{A2KBZr*5q_(Qgvx~>4Fcd1aO^kH-?Fp)#U}Nds+xU5eJ=3LC*VM zmi`QhV1y$gg}M#ha(LTWt1Kr{ZZ2VK_sI{ME^S2oZmdJj3+pgGNTfg~vBptTc=u@d zx27nTPb1Y`&Q-+s;`nUKxL$ADKwLm^NDA=p$_rn~W zCg-)FmJa5cs$aa_a5G!5RZX_7+7WA2VnEKXIx{eLH#u8yEoS>>=W8dY3k>7y zCVj_N8;@ByVWT_c<_BFtDo^#g#h-=`I0Ck?vmMtZOG%wBO~mvwj)e#?WM6m<>QyYa zG(O!kJ2Cr_{|^1dy{3O?$;dXq?8MHI8+z!_#5c@{mm0pb9JqFo*Ra-vZteuGEe0ym z!Qit;*HvUDmYLqgu__p~q#rECDpE75OVA0DDep!R;#X(hK?l!*Z`l$y#UcacSO+=W zrFF7umRV(R28sUS9xrD{jXvB2eRI>ygZDV`@>p49gpQ`ThsO#071vI&8=}{okgLn- z8*cfHJ6gDg>=TxN`&b!~UdAqegqRtH@)<^ad%Y0im0U+_QltH0-kx|~eI(1xuWme| zS^7nWLVCR!;M80&mG7y!;YHYSt#r&?r>YZl4P;x3ckA_V=hh8f*v<;m86j}w+)QuuV^EY*D%3r0`L<%2&Acy9>?EM_} zCw%DmNHL4p&Mu0RgN}-Lquc9vOkGC~bR((AkO@j&0{A#dZx;htAaqB-mnaJ6Fz zQ(4uR$)p|6aIw@}&!NSqRRUZ}NX!~m4&{>H{jn*3dwSA_}MP-{mWt2H=H6Zc! zQPbD)XH{xkr_Y@=JltO=1GU9el3n6BAl&M$LdifIj@<#ZX>iixDxGP8?)dbnKdb=F z%qHguF6Y-mA5u7}85W(U>)8|yV^=d*vxoEXMETqtr z*{5E4NjDx5gJy-(k}5)-ZdsMsk} z$bF(m!i#L8#d)c_T4~7kPr5IQZ7*og+=% zmK`sPeb}WJdvFvDsl4z~OLZS<^ynsV8%H-g@Z~d#C^gwfxlB;3WIr{2P_XiZLrJ;H zAwy~3E@po8@vpQO#;$D;YGzFq-Fow42S}y26pyihM!k8e1B4d}GRi-%!xn8YsV*#i z&iV3fY>aSzer4%%?w2F6G5H03A1G*Ol$AN(zcDbV%rA&7gG zk(l5mes)3#L;ep-F8&`I>7z7b9C#uxx;2djQ@X!zqz`t@3AyRnPD%CBh`5cDn7+n^ zjdy()aXTb2l?kn~poM#grwvMwtNzz+!L=$tjZBNa9PPWc`->Jn2~79x|XLbzF=yXAwVW#Q+fNn=&kiY4>vi9<{YMF9ies$A=+QM zmPFxN#3;k*EV=@JfdQ&2d{@o{HtqdpDtA)?W(P;Hyu^_D&M7kX1EJ>5`pGG6MSs#m zQL1JOD&ISf$8J?oo}8H#>!vjDPvQoHRnbe_>hR{Q_}dp_b8N zFsgbcrF!P#c%j63`hw!2$j7BP&eGa+AXe=e;Y^va8>UQfDrZkJuw>!X#VZftjNZqz zhV@;=cw~H~Qz0+;N}(Z=d_QJF@c4kmcp4oE#!F`py62agWVX8F_z2^}4wW)A{(PzL zq7~)fQzNXVqB7BJ{^sDf(ZB?4_}h~l<^btQ&aB}O;C=B(Bc>-gxu%epx9pKdc@LQ4 z=wS*cFJV*Si)Gnjx7!~*hc-k_iNiDv(KQ@SxW)A~9PGTqL>fIZ)5Sq;B6tfNhJ z3ga}fDyyiO)iSK3PHiRDkO?cw?n#!(nF-Ha8f%QU9HIJ_WEhaZnX}1cOKIEvsLm4K zs3w%RFNBvPgtwXP4T&H=F^++tI7M^nQ?g)XdRqo{?1s8ep5Z2i56Syd;6*)CBFraw zA6%+1%eF^B8pWkVoKFf3Mkt`zZYXfoxTBu-J+dYd3jU!m#^4w@D0P)dj)0pginm3 zh-3})g6T?I4Ig)OE98uc?CSb)fuBu&>!nOnCh($Vo;3o#iv$#8ZHmihg-Xs0(uige z2P+d_<@R(DFyhPp5iH#dCBuGs4Vdusl>nV{rx|td2iI>Uq z*OU-GQp0mhLiZ1ww74Yyp_HjGl#^OU7|KnJE1dK!McdX|jf+W`lAT&#_&qx{S9;Bm zQnu#ouu`bzt6`;B%|Et1?9_O|LeHpegoU1BPYtj{hznY!5MoDRNGVg3V<=36E7|s$ zGS{^2vtAe!aO_2LB`L$3>Xsr(9zGc48%IaGkpCqz)O{pE5>-@I+LW zH0c01v(&SwngOb@hnHpC&AKu|-I}I?DGnLC#4aTQ&A}b(_%|Vp2x1pYHp7x&OG@1C zXAvPw3`A8Tk4*v3n)Div|IriTy81V3Tfrv%(I-^PHw~n2nvN<< z-xfq^9%b;q84xcvUBdBjCLU_wW8?M}I6so6jpXEwj$`MIwsLi|6-v*4rlH4?)BAAr z^ht;<=3*g$&k!$6T@E)RB1rK;Dyh{5z}5p{WSLHJV?zBBVd`j`}}K$$mup z;QgDN7#92;-1kc4%9l8!sY%-}HUM!V(3NiWZ?#!~nTrSP@4LMXzqk;pJGhm0 z)~V5p;=iFm+14mUv4CEHcnu#bv7)&^&wsG?ct{dZQB27-n`4x{Rp)4dj_`BhU>ybx~?D2QwS>mcl2SUZYnR2`LaBcm- zlE=g~w_iJ$gNCpYnXb0MgqT4c?4snsEEs2GvACJzsOeLH*_Q6MK@jmHxn_og}z zO~gz77rN1G8=4f?H<$%ltnPZomMwlCl#eDFBNiq?6CWB_E^bMpRDcXMi_vw`vNz1h;VjyA=ts#}|D@jkugdEE}3RWOlEBOz0Tawm?t(5cx!n9^Y5I-Dg^5D4MizMZ0 zJpTtLhgUK|HAF*K32P?=ZI9BYx{13_*{DxW-qXNx@KVW66k$qh|D`@WL0+K+YaXe+ zAt1*k4%6&GPxqf+1z&&NpCX-F=~m+^VAM*x9z?1xcGr!3WiwrUoCXhhofuh5KS@Wt zh!wG}yWeLNoh8Rpgc%eWnxv_SOfV<<_>i!F(>f7r4S2g(L71XYPDOj*v2V@up)s-} z0u`!=eV>7I|1R-$JeGt_I0aBlP<5y>q0>usfb@9b4;j0=-)Y9yA~wcP6a&5Doy5%v z9ZkewcN}3m+~paK?SuC|sF&$}`Sd+-S*7|vp762#nxCbjDj zLVY`}n(vir9t|l3un4DJhzZiEk+2Mk162i+m7BADfl`9WhE6#&2zyIYHKrq&F(^AB z6dlg1qN6B4z!SnNzZRTLoJtn0x)z!Jke1ZwZ4NRoGPp&N>R2j?8|xqHpN>um<<@idi9sBbRbcB^(QwOKlX)~4kj6jI9tXem?Tg@F!>O%i#W36U_kg!nRTgouitn= znY-1zr(x`fR7;Mw8o8X3L-K)e+x)a#v4n_=$ODzm@P8s+m~jvIZ}iJS|1DT;iIkTp zIsBeUhJFmUjvPX}LO4cJ$BHIy6{W}Z_-`pM+@(ZJ8XJM{o}HyPXBQo3QhHF_w&2`= z4O6!$T7^Lp^y*{@BA@T)p9RDnMEALYN z66fp-)Bcq>jy-`y0uq;`Z=0`s_UU!AMd*|tR+ta6VWCh4OVR+NRYE4$$O2eMQfA-b zi9*l=6%V2nItW!I&WET&)~G8hOAf#kJM?$A+C=_fUP)-u z-9LtmXr!uo(4hH1l=SL^H+27m@fi^(c;ITuQG}RAP+D@>VI|vP$pM36&8$n!CD$Z> zDLCm{!KD%mpS>k|l{E|7S7IzqD=OBKg9ec@^}9>$D0edVmRQAu4$QJ* zA(-rsIKk=&$0Zb&i*>ZpZ`R_l5OPWZ7F)pzR~69$?3A|ZWc!XN!D^-&OM!*T zV!PE=XW%)AbW0A_sm&?sZneFsl&Rh>wLPfr6r@W{HXo_fM8JL>7D!>n8n-0^dLT&` zSNH&p1L}PwI7ElqM_hKRb>z#v5x`-;j=0B>VT>!JgpkQF#1#^vrTz^85@G%O_?(P> zm>kH0?S#5WEA78d=m4oviyLm0Y8OOjfC zbs<*b&%!&%R!HNNp2(1{5XLFt%iyk%#3|7(0R$w;j#DB@-F>78oYI0~ha3p~^^YW= zru_2(!AXdMOGO<5cA+;u$~q6(cf(|HWJu!rD8R2;$?2mhZbsrHmq+Hi6Xqw z1Ud^cM7;oUNa9vnJzvHLQ-b*Z5JySe2%|g%sfbap>%m=Wk_9EXfGutF!m7AwO7KekvR9((P-T%5SR;0w$nrok>X5ENS}p2~E_3*YSO z2p8L{lQBVczgKr>|#s|f$N@I>K@ zA-KOj#g;a}mM%gwLFnW9vatE4g2`6(Isf<@gZ8Zi2zye}qs7U8$|CI`r+SIaRlk+M zx`}9RY|Ys5Qh^3)FA>D`#a?&ck?i868U;o2q7z8J2=5NY@gy_}TWCR?rYO7fc$HSt;@MDm9uIqp7g!$Oy zGkSGF8G)&SF16z6GaQ+(PQ)Bx*>nhVOYN_YsP;Ea1iypBuz#2_#u29{Y<8J1-dmF5 z+WCo0c|t#Tm$QjLb#l`}wiSA&CJO+;MG8I8YA6~n_RE+;b?z8dG+~(!kekL#NN6>7FNIue#Ope}qgX7EV=ksqF~iA&H0c(n7Zt zc0}-U_Fv=yLha;f1@VwlWx0S5yEpmne)=fA8rva-;&t?MFO+W`-&gu&7Cw|<&6}ZT zKp8B!(W&vaK5b?H!OTIn@_2ZqD# z=&*zrFF9;!Gtz}zrH*JawhW6a=2a-PI zwk*Sf`{-0km%`J1r~%L+l9YL|n>_VA#HsJXB7C$hILRr$I`N-7{(#tL$J%4E-p$RU zECQ8e6;?4UD`j8M#9nX36>r}(P7P|Ij0KZ{H_hs|SjG8x(;RL7K&38T)+L`VG|8zX zF{2*yCCPUELQZ*-^OA5uevlL!CHM|$OSIoDl!%F^9a_FJ-gDm2UR@Tg3M9Qvr2+bR^g2;S$vfWcv zx6I7=Y*H1E$4D_88R9q&au~JxC2`yq{Y4}_ibF7Yv)O|1pT%AyK2M>$)QF~Zp^z>$ z?Ofy=p9ky`(VKIDKoP-YU4$PtTH^>u0I(#0qXZi3=#RyH`OfgwWjdBlHURb<5XLUG zm??|A&i}B;Zk~u8BM%m|6xK3^@qpTo0~2snJSfe`WT@k|s9GgKRP@7kDD8h3U@*l8 zRqR%af%@lS&Bs*PN8u93GxA$5xqK5YdrQPoxC>!1=?mqYFI8Chk6?+Lc);G0AWICX zC69Cc%7}m>&Mi5%5rhZ!gSaOOEddJ}iCZNQAbW{SW?8 z1C@c;igba_D0@|L0XBUE*T2T+5TgGY&(6D4=p^QKcgQeMr~l378cdPQ`jiW zJdYrkI~0rRk@>2@SX9r6#WM9%d>LA-bKK&)A^Jy`eGrUO@m*@4piOzBUy|BYC-V;% z7#FEeAD|yO>j)-Gq7+bX1(QLj(fXBtu%1=`2u%u52#Ufw-%|!O9(G98aj~JJuVAtO zBK{wvvVa<$xl2F5!g`{BFqVaCe^m)!;Y`Ga!qZ`$YlYb0PUV!@j5-TfIY z46z}0R1s6I{*V1SddVi-oJ3_h#6=2|V?jsPUB^Ii`ZuJ#qo#LT>`TAm58iGN2&>?D z3Wf->e;)V`BH`af{C~rHYXlk_tR+PikpH7QNtT4!Ic<4jQg4>tG$W1>4VE0q2o}V5 zOO6i+^MCAT8X@~HC>2I@VBaZl)FA@@A(aOr7*T75QHQlasgBK_$v9a+0j@}lOLI_yo6;PtTK#d3~_z` z$)shgT5@DfojC;U6QW72qs+eqvc~m2f>2;(9W4Z+#A;YH;f*p1C`hG?vPLNhQi-5G zpdJZQd7?ak7XM(K2uLTGJb}1`I(Mn@LV0%mu$YMliAk`*!a4#A9jGrC!G;B$#hdi> z(WD?g&{O(oK9GzIvP-QsUu^1xD6WtZ#QraNFqQGoU|I`AXxGK@Ri<&XLXWT)>a187 z#YSf9ME+2$VE=xZP{dLnl!AeZD}oHpTquS$IvVPp1Zr}dCuME@m|h4ds)T$cFIodPvjdDSg_{h1RnLl4=!XK+_1DT1 zNAPogq5F`3=LwWWqQBh!H1`S%CO85(7MQ(14g~H8B9Eg&K>GuL)B!o~JCBb3RVHR2 zWKGU`yK_mfd5=-8AL^+l^q-q2wg`yjk^hQ}LjN6kVpZ%y+79`KGvooguPq+a>|h`l z^sznhUv7c5p2s*q0EpvAasYim!0{NU4Ho+K-ao5|+~Em>fVwSefZBm-ad(vOEA>PD z+e5zI10F705SXk3%Esu8CCoWE0X={Zr6~iC1xy}t|J_G6Lpb0GDD40A^%tPunMlZd zK>eR0kn;V$`!djqS3s0bqH_D$<({$#*$w{z$l`JBZ)lGAT!)9p>w8jrjV&x zlbBUr0wHm)VoE+lA^r|oc-eMUFc2yX3{koe+1^v#T^Ryq+NG3B;{;c9)?P%FcUp)I zCp*bHYB&d3W$>Nwt(}SDiDE*^_EthI%o5I67g&FNEh96BL|97CgxrA7mx$E=D=Vd; zU<}L?n&8_luDT~xOD-j;W21lJxkmn9a++?|q;9gRtsX@D3zt@!maf7EVsxOaqDw(V zeuJ0q>a9wz7p-0>E1lO{gU;TqvY2PhRl|H&2Cq`L@@k%4_XOn}HgEZiHbEbX{BTfS zzF4}JLsYuhEG)OVt@XuSZ)JLnNz$)g(?aMFSwi6`=%-zC-e59Ic;nipHaKVb!p4?` z`aGBv#ETOsWWRsT6Tz;7m8OH@TUHjL6|WXhqBqf1auMuPSU}=^*R!|2S?6#V9U`O3 zm>2sQ=_+#e_-PIrLVGLO3&!b+nekwYk%;e@Ym%1h`Ru@5%U*Us0h)9bT!?Yy!!fKf zhu=0L5zd=LUHZh(HYC(yDfJ`eoGUmF<4B^2DVn2%0{@5=F(e!P;17L|EQ!G-m$wVC z(p^+b#Ruo+bSUabG*|f;Hyr{l6fVw>3r{UENfHW&7Ge_V5b_LNkBo4Wvi%5dMUe?PY&NzDiGr;>W${lHifk#Zm)iRbcR=!RicM zV0~VBO;*YhG=L7QoD-^ zmxVOX!N^$>18wr47X=u%%#S1QWd`)rBh4#(BZR`2wXn0%aG;&=qnC3rtiY8De3MvX$(lEx||x#C){cUgI+n--@&o$4xnlTalb5zmLq z+H50kQC|gbZO4&?w}o`Ux6snWEfHN%zfap~2<2hFhnDQu{j{{VmfDbiiV%D_nrQHw ze|iM7`h%zbBvw5lh2~=BfzdjZgLdnMzB+0lY02s`=fmv*PWIp}#x)uNIf`FWzJYb! zmSa$WXIQ%CqN5hB+rL!lYhkP@;rGwqlR}e=CW)n0Rx3R)<>6U*XmLM(jNVl{EiNE? z^zptaEeH|*H2J6zM6XXS)g-X*w@`4Yi+y&_Nix#JYh6sg^AyoT%WB%t31kwG`4J3-b>2f|! zOEE&>f;w1(Bf2iC_SZ+L{5a1ps*fqe^V&Q(r7kKLEo=bY?M!Vk{4M5w`7MYK=u4`0 zog;Q_>|!`)U>ef(9agK0D!T$RmVOR+5o0vM^yr^6s6^jJBP$=0uck%cHX~KSIm7>T zK@cEX0JMK_8c^%>`K4m7ATVs`qHjx(J~WXZf1IBn-Udbqh0nYEcX^o@y&T<2i>pT7 zcE^%+$x$r@?#>#GYJfgmQ=NYxZQ#evMuT6^eCzU{g_a^OXuLza^!acR(aUinJb}qb z^FrU(GrXh#C_L?jE6s3c`<;}0LITYT`0Rq8_9%qf5|xWK88IKnx<1;cpiQ9#mjh5J zomW+c@#_r;f6hZocgyrYMEH5$U0T9zNz5PZ%7gm~RXX905RGo2g~ken*G3~=ABj^% zeoRGvMFMX0QS&IMcRrjmQ$O(gKW~(Q94Yp~Uo&*+^W#K%mv71Q7I_xRG5i`q#EOmm zu`0ds#EQP{jPcRtT;!{cw6_YqslbU)Bq+oC5qa)+41^DtTSQZ?WT|@uf3f^kD7*&g z`uyK98i{%v2w-w45>bjFBUUuf#)_+hACp^}9$oO_q6G7UU$1^bvcLU@rGIE|@q3p6 zBif>Gt1rKVbDHR2!Td`cD5V<-nNdbmGN@yXv(^3WYZ#;pG_a_M}}% zZZ3wm7py+h!qfV83ofV!^tYKxZV5(|4oYFEO)Ag}2ohRCipKS@P0>)ST5%xheDrbw zraN4N*W?}6krqWWmH*M)#l)OzpMdt+UTZ_er9LqkuZfm_PA-Oq2%ZdzLH_-rLp#X^9qm8G9h6{yP>bKg>!GyxUAOnDoXXuKdgGT*B$%nl} z|C-NI<*54KC>qz5(fv1uvXQWV^z*U|Q|-XsMdeNR50iq0>zE^eFV2zF}2v02SE#5yw zwk*Sd(t_0(x^#P?J*WI#R9w+ur@2I-aGj&+e`F`5i{(}i2&S&%j`*Lm-~-C}aG#O! z)R7-Gj^M&;Kwm!Ug^vCdwIuG3M*KZh?4mL&#muX>0MtMcef!@IfaNkd7(xCe0IhA_ zpl+faAYF5`?ZV=k{NY*oXbmaN<@`%m?)@EFHXSU$503!{H9T4tKlw}lu0_kY33;mu zFzdM)Y2{n2m2D=#v2S|84t>0qAZ^TpUO3v_nSH$gT^Dr z6lTbHu$7X55mocNfdQ2N=wvzf;F4Sb4D`$2=;aEG3S9X>epQ+da2_J!0Qv~jghw*G z5;IR6Ko)_Tx~k;E5&lCVrd~ll+=niVV>Nd(OE=1Qu!2q3qdO;j4{6+;(@ zSMF`A25{sLF8)V{)4Vv1=t=-n9z`SG92o;N#vKifM?!$MQ=z-%{GTg!Ma zBC25ZBNf_PAs|?(z!=j(!Is1T)uqz?^K5Y*TqP~^U#wG#3DAJbn~{QZ|1k&Ezep`H z`t~dG8VD$~j=-V^$_!l@Nt(DuB&Q{@s~)zJ_BLaz1t3|lwv2DYxm_0(n-&(T^*{Pg zlDpuIM*Jrf4u64-K&ArrF?O5t1QP)_3Iiwb081P(WWC_v=ytLQ`0&{n2;kcjNvv$R zY;;1mxylSbZ|if|1&O0JCIX99onfU7KH{2%JhcyU;oNu4eq*J4)Ixhp{14i^d)1;5 zVO8SqFk8{)I#|vwwj8vY6x@k_iQ6fxOPUt?&s)6tBYgOREsmjtXO^T4C||poREtWQ z>!fdwEF10`)BfVGdeVteVeZhp7XY7W=*c9xrkP3VV7upmH-}%(Hbd0Q#Pl3yl#|WAhru75csAOLVI3c9Z$hX zkCii@dX5$S)8~|D*Zp22B#6c7uSF37yt)b=j@$I5v}bgC~1S=PsF2XUVeg z*lw$f=wR>6X`X$u)@k*ERBmhqOvB28I|){Fo*hS7s*o%%pb-S-#%LJvA{65sQb{zk z)!Bf*uVzVuf2}w3q3e*sQEYvs>PbYfoaa$4h!SpvhLAGR;504QNWnA)!&NSpab5o5 zbwqpQQ?zC52K-geEGRkx)}(iUmSGjl#-#_f1xZDRJqmk7&F* zS7t3L@y+PYUsuJ2AQZNz!1`m)3C$@Cr?dR)g)y!JY^x|xjq(5;r($?3RlQRcG_0I? zf7)UgPnuz7KZHHxfPTFrfl)#3o*~t`T!N`WHohTfT|B{1Vd);@opt5}8+jKzMuK(f zmEWAeivi@v%mW`dQbWlJj~@)^aj1m;B624kc+3F}DZ@J!9cbjZ^{>w!3v9`rC75 zr49ssAh<*Dp1sTXbWXvl9np)uDhNzN8t}yiykO{xHeN9PN(&zD{)!qNj&g+z568Z; z_pcapCzxpE#~mEw%GwFw2VK-C#Bje%KiUGHbj>bfQ`^`1c)fKD)DU?nt&JqMRO8EL(#(jif+VUQ}imq4eQL6B|EKL zMlOtSmIB+_r4Pa$cMyTFwpOm>=kIbxV)Ux`MptChar`O{$0D*D+?r; zZ@rRuRYCp1V%B~MCkpx$SE>nK3KbEu_%kKleJtneRjjZq38ya0TMA=Wj9>`LW56S) zg|LNZhPWF{>!fJePin}#kK!Eu#JZ2rnt!_eloVe;T)RfjK&;oWR1ApeMMXcV$RgxiX zAg2I}etcv68M=e?v_voro-o?iusXXm@zuJy)&L4Gki8(#UZIE&9)-cBI_9 zI;|22Va0Ru1+Z_PWd_utcgGvAYB2PM!pYeJbSLBfOibq#fwx1ITi7C#)0~A5J~Q)7 zL1!eHw|$jlSR09xngxo0`PmG92N$6~YP<;+EbFl4Bk(d;1Bml(xRXW4bQ1T+4YmwXCY zi_L)lsyRV(?6`6GA;qbF&X2oowA%~v2*PHu@r=+fLuxFnGLr`t>vb2)wHc#AkB-jKAZHD|JSEaerSoWB9W%?l18i-murk@M zc1iK;)wbw#lD;D1?lJ+}o?QH`h57DKL#xq_$N0K|$4K+sL>yNDb*TeJtwNOX5y5-r+Yp*pSTu#tU+?=24LZlKaY69N+4) zoubsH@Y!AnqJ(7xrix|2F?Ia|VO7D5?dKlJ4QGCHuVkKLrV*f~udAV)z`}K4)mNK9 zsX#P7--W;WhVDk@uOW1Qf^iTZ8{?jYuQj?ilKtGza{SH;th!#F5O`lXH7u)#Ob{8w zDcYj7^}TUtg}&HEj4A289o`Etk2Y`-dBX zn`QP?TX&0)+MV!cNDcP*ST^j_byCsf{w=?GLE;*0`PV@(`W9b~US{iKCl1ediFw28 z1Y15fjl&0B-^zjZPReb~dH%{i*$3SeA5ynzUPJ{eT|`$Q!rQpv)4kc$zKb%hF*n~| zwU)0svj3GWd=+@$iUoJfxBr@V>|=5Em9B+hJcgv-X9tGODTVk1%KMe3^0ncyk$ZK? z+?AvG`M}-|Z7sehXOwq(q>Vo<_bmWyetCt@in<8!VBCEED?@PV{AG*RnQT?N#VFp5 z<7P{0@lzTPiA}ax!=H?ER5JL!%;U#7W7UKqg|S{^1P8~H&30ja)MCQz_}eOh2-mkv zj3-YvUvyuDii@?bJlPPSFek~zwj@OB`*!*wnWgpyXSL(Ly?G~XZ#CcD~7e1P(ymVG4C-S=SO{?HHfVgP4-*+b*$ZvmTbCwg@AuXqU z`4XLEU`642o;;+V?&qwrRiAd~oZ&_7m}4k9(tIuGHF85?Dn7#GF!cv3^ ziJgl+Lzh-SODbYSO_|LrJQmJ2pF?pix;s&0I)<|ceA3r%l1mnIuS>>s{pMXv%2+@8h)LG*(GteI(EwKFAl}Xnfndy9i{Jaql>BR z`@P7n=F9a4>3p#4d(o}+w=Ol}J5cGZ%FZ}EU` zb%zl2NtHxk#QM>GQF0|XUj}D7v>cWSuEe?<+R*AI8lgDxi~%6xbKIMB_Ri1SN6Qk1*) z%MRS}U#WnXoyo3rhcH3bP)t(lS#N%90fH! zUT-%qKTZhHVLN`#2jVSxYMtYL{q+zg{{^fiDR(Yr+w2-}fXZpPXSe|=VZol2N)t0) zPU>8&DI}*V9Nr|BiV~+`=u4js@audzw@rpAPEkl==u2D%8cG94rZ4Ztxmu^rj5X#2 z&|mDz^+g_9Iqk^x`xI-=Af|3S2V{fQ{7li;DDBHNgtlSnS2*s=kS-@2E4zq_{Iv!y zHaWY{eSzjo)(sKI#b?Lj;<}81})7%V>{d;!Dfc$8@K#!W*(3Ve*tmZpkRcY%;%X z!IFj5tY&e%CRB^g)HPo+KDKnok2CS+c`~Hcc;g;QCv6h(mho?8u@mv}6Er=zR3`E_ z0oE)zkwI3Wwm)39NWVm`vmro=08t#^;5r>tcbn%PG=L7eEc&W{lRi`&+d4E*xs>l- zwfruP!P*LSVr`QUuTbHz?usaPZwD0zqAqkaFBFomZ-O=DE>!rouB(R5a0WKP%50b- zzKiSPA%a^In?UxHbzf+1O)KJbJ#b}&Eg%JZO%n#2zCvo zD`#izl+X}_UB)~zFIO!|D+|ycNI~zuz1!CE6^?ij zK|xAK%1@iZ6Hfc3{bsPpC3l%y%lBdS$$ADPD7H(5C-8F@5pOHJD}c8(qsxjGSbh?q zU3v{D0%Dp^QsuRy4ftWd+~VbeQRo=yLq|RV%bx8FVhRvzM~L#4MO0X z|3tUw=M;#6c~*)(6WES@SIvftolKN8If|Sb6-tn2-mb}+pZUa7c0n!DQxWAm!|nyz zp3TppNBugN3M+;XXNOAfuu4haSkI_MT8tcJ1+-b;f6G0~UND(u^^?xG#7NcyycHMO zmWTTw?M2vF*+0z!Sra?(TpQGxq=qOfw(A*G6sdInPAfQJ4bt)qIa2u5-vrq%N84t~ zMO8*4)SC}Aug;A`PrO7HSa+T`jA#|nYdkugUpZ{~F=E?x8MrSf_eHJ;Txj)0MXVI5 ziYW`|DnE#$_~|9~x)~3Q=V+7P{P%;i=YQLt)y#2W^B?T=ImmWr!o}jaVXEShPoGe7 zby_CeGi~Oh3i9Z&a%YJB4AqE&NAYZgT!8m(qX}UQSsGHbzN~kGbY{)6obcj>2V`3GF4d=gH{^A6)#$KyNS#WD!~D-w=s39h$xWq|nN zzP)cx*eA>!TV{A7*0OaRPtlkYsPjnsMd|%shg{!Hr`(oFfqhWkvrYAAqJj@GN5>zU zK3dl5^sN)KT&9lE({B>B3qg+-kl668lZ$h*#osP}3K$DMj?cf6$vVgUS79u+cD6=H zL7MTy9q(1P;j?!sFXtBHH!@7PQ9B;|;+d(Xo@;(F;%0|6aM8s0CGX$-0;7pR$-RCx zl^?UJok9o6Ii~)Zh?tf|b76jzSh_hH_z}Kp_kHs?=>r=;J8EP**tbT2d#R;z@9!9TgrSL4`U{l1G|qu8CP{)JW1=P@6#H)PFW01HGAgje^8&QYP=;DmGPmarcv$%czPfu zV#bV1Ks%+qLjS>1=SIJAV+{`=lvvaJ2jnZ8hhn#%y=i;7)^1z=vD#mFo5H{K*BKHg z_Ms2<^Yln0_4_18R$PDnpx9yZRY1O~$RhjqPMm#8U!9puPqSj!`xojJqsS2hW#Tx- z=C53-hW{P*%bLpfC;s;Q!+PeZbXSwmMDBOjHFbG!n;wfs^YvcscY315K^~2^@1269((21HlG!j&pFxI z13QYLIHfSni0!{oVl!Z)*76Z6xQNyMz|i-mjji{cMT^pIZ`+#%2<6(~Q6be@8^b}5 zp`+5awnBc?_*H<;%{LdJCqgJL<&W=6IqIw|%_r?rQlyXB&P=m> zY$BD{W{iM+iaRuH|XOxd*YK^0@RnV}gUZE8wNx3X9+{XH^; z*=~_Uc+afE;?&Obj29lEqS|syDZz$5&jjg5E5oPl2g2EkArd9(3)&sBmqozqAf_)u z%?9ClCNCR@-W`%8&*$&oIXI!0A@&=s^tGWI6R2F!mGD{GAkpCWLpi#;35XoLc|LEb zG0}8R*nTHQbAVX@Yxa)&{XNpumg^q`mG9vXU3ZjEQrcptha3FEF5gU#Oc!QDUrN;} zY*MsFn~E>*Qf%@szHWbG+1X&8P#G9@spl$WzSDeJQ~qL^+f;JIsHw`NvAXr_C$k36 z#Y9ost@3c?f<^l=#insvXJEnJrgW~rL95lUp-ga!>w19G@BegiE&~z^{Xh3;R{Tii zm1aLFBPf-drvEk$hv!A$;LNV~wzgK4J>sS?i+49WquR%@COk0|$F!a|ozDxwZyD2C zUpQCbq^6%0SBmRr)Cv5gssHnNiJ)rv@Y08buFSoH?V^@rM_ZPhEm7T$b7{y0Cm$75H@_MF~68XMh&@;Gh{3xm_2JOXA@zE9C&6EfZYRY1ZflJY%fC%u|k?VLec; zYOpErYGH$5%+w71{~RnjJ;DgaC?3d&8=x0}!q%MOwd-cnT)gPm$QJ&K)c9=S)cC4E zIlAZ(L}l!c{p-!+5)LO^(8;CJoxYPHiMSTAsHyz0;6U{{UKct&@?fbL_<7&*NARp_ zA!m<%9JTOS|1S^G*WV)4gYmjX>}3kSrhU2~SV5)>YMZUoc?vMmR}=(9d>7BL{hoF> z_Y2TskhZ*~~z2t%u z8q^%J*Q1DgsjeFm;HL@vT4aW|fNYjab-iQ$m|60}L)o_d<4kWaGqdwU)B1}qW3J20hhb2J{EkTf1WzO*r> ztk97B|4(X<9-G=Np3P4FXI>ez^n8OcJ}U6_gheSLKNtIna*jJYUpkJP%Fvr^(lNh_ zvd972TUj=*L`9buwe7|bN~=Yc*k=E&RcAddGDK7PpMcCY<_X?N{MdNmzzV#&t7VwipR}GrQfh-Fp;(vi`ixveEyp= zK_vE9wajksc<;BKqd$Y}PuS!~jXnn)IVjTWl$O7&dnfB`e-|7inc7~q+$*pfCYLp-RyM`+io`*a z#q2M*2CFh+civbd!aQ55lLzOSloB1p(@(GR+rlr(h)Q~2kn5dn%vdfm%Q@)vWic8# zpzl+)Mm%Pv&JgBT4-43h+N3~f9# zwyzy5iAY5w%73puJws+tTOVx<>{Byf?`z|p1q;&1Ju_n(C*D@>-u*pus*<6n8u_Pe z_V`1AcZq!H*6!?M$^c=Vw=au{l(g?A(0>oerSsuGvg8j9$=7=Z%U6|PW$jTE{4p}m z#`-oT>BRe5IEWI7dCAnY81{CGU_?LZPd=|_QseK>6vj#M>9jSG-oB0(RK=?N zrq(!Ptj@V8e^@eGn5?|ns;W0{f4`xYk>>Lm7V-DVZdhw-Qtyw9)Ss;RW@8ijpCQWm zJH433HZZeLR=Ut6op-+5&&1P2hx)T?MT^-9>Fy@wL}Q zLF~FM7wB`-I-7k%Z3DfOW39%zORRh@3XGl!+Wg%$b^>=1S|qlA3IyeTy{x@AZab+O zV#|BODx0l8QG!LyH8B+Xfb=d3-DBdMFdNu{&l^fqQUr{L1QL zn}y3~%qlG~IE#90dfI}ipQr(3;&mzF%XWf7nf0!N?puj24$Bx53V?$shh_RhaUK)u z#*$CX`<tG`F|Poxo%D zaXXXc1UId9Iq(3liz`n@1+c5lwO_^3T%|GDmA|6`JiEVU<1(nNuBy^5JKwbNIqcH; z@a$~L1mPmEy;n{UwAjs5KUD~)ui2S{i!7V&{e2&?9>`p#91vh3aqL`0+>quhNxz#s z_faOJd24OZR_5w#sNO4ovtsY^=Y(F+4ETJ_1S)uV1s{(#G;}BKowXdY7THo@df?Nr z$rq%g6jk<>_q1~JkokLnI*n)U@JqGrq$v-@2JfPp#^E>2de?3~Qj8Q11W)*EzA2k> zPWplHWTqwJ?Am^#eOK&X4c!q@+I}$9z|KxbSc^+)j3)UUE#`&goVdf?Lp(#fl)Oj4aJ^%Pnp+>^d#H9!3w*0A0Z_upv zrPzkBRDT%Hj<|u(XP)CmIXyiIUsbW#qKu@*?hoRjW4u}vMLOW%twq(BWr4Rd(_h)N z)ifV$6HzEjlhMI`1vDf&uqV&4Qy`T!$GG22YNa{|lr+WYE1y#4AzF3k%HB^$&lLYO zoA|-OP`_^@)VN>KuL>2bW2Vb_8sj63DmA?7Np^lG9ztuIJU1HO5TQY=tbLVjCQWVr zJgSJ=)nHZj*wyi>E0XW)&C2ay&PQ`$Spyb4=n8XU5nd?5^?Y|f1b1|Qe@MwscC@`Zq3^!8YMKBk*IlD@v_tZ_K zJ@86gHQV!*h#P;VO1XMH#hpJZaW*Uj=a`;$5+=LKd2c`O0^e*D+ukt=w)}&Ncs|f$ zD?=AK@@=mP(n!SL%mJ0$y;#(<#L0c1>uCzeWf6vg@=wMrwPsB&IH>yJ)UrLWXs3uD0iWuG^YkYCMsI^UN*FC{G!uOk!t9JGC$1g26 zW$rUyxB`Sv1HyRCZ8m<+-Uyq&aXKHUVeoX0({vZ-8-EGIOC_{boadK)>eV7syA%B4 zKXRp$SD~+Zil=iL>43$rZ51zUTG7&)oBpf7k~225LgEbeM3A(p4DyoT1%+G;SFI;gbgO-|W7FgGh*vK< zIRz}Y7pB^CzPN2~XBoJKy{^%T`5UT>Fmn7rJ*uDXd6C#H@pP;(e{qrHzv4bIP+Zb+ z@Ir)n@#^b}alC%*So#tQH;U7ZNrS8JsvbOceB$CSjS`0wgUgXao0KJBJn!P>*@yW1 z>Rxz;;n}~*0$__`Ji1cJY8wx3A~~Srd|}nQ9k1F(ldAs6&s^NKa;x4Xb^j*B%!JYm zFGS2~kgbKSZ%5b|vXM!#TmCwxn%a{st6B2xqpedJqjmq>`~yiHZyYm+P56tqSE|># zxVNKa_|oN%Ps!BGr#0`PqU1z}<9Emp=ZV#-^NK~^8e7+bmHwO_eh|rZDKG#{g_26% zcoYVj29P(OX0E!3Fv>6Fn46VaPW0y=5&m`(yCK(g1&4`8`PE7-cSNzLv53DHKGAi` zV~tCs{7VKSbee=(?(-$MQk;Lc?$}D3!7E(S2cZ^<6-%v3 z{j)~pO1VXAb)D5er{=xdE&&8|8B&qeQzv^=omb&pk-6RX4>&3EsC~j@TnhRQ{bWu} z5usUXuIwZ5C>q3}p%$+ki=SxXAafDF+Lg%-;V(0BP7`$1tmg%by6(Hw2AQl=vc7!+ zGV01%GbSyIr}015QIfAcMee5vWLdH;YFqCoZ%B?`aa~`+yg>kA5e$s%UrG zMsh<63$K^ypJ?0E+#||Q@Jw_toDk4lq-6?RyCM0y7tPw!Z_lfD?%ZdUAs%CX=1J-^ zarl_=N66xczK4UY(CaxT`vXrPWBBfpKfe%#y@QUe zh>1OW<3&-ObCye)q#?ASO+*;q7xtCgsjTT+RdxLfdmB)Lw)(rWqQ|Mx4SsfgyDuDc zCQ7@_W~4NWjyeiytf|luGoLzU)O^nS#I$KBLI`!xNrnKa@nxjWbZnp4!$#tR1}h^^uxZ$eWIzZr)s!#UUa_{SUS)gNq3&otv%nFv)xh? z9ZNgzn=pTJv-?MuNbpXx)Sa9C9TM&c-*n`NO3Tl4&G-D`lDrTHb$ZxKSawoT0ol3g zPTzwAe;cti7xj~_s2#8LRr$*KQ_sNU$;ltzq&)v*CdsMRj2+Tlwb^HOR{1B18;`jE zo~g1$PbPm*`&sRAp=0dio6xDw>9@ddT|r)z=V|`&9n;~+_g6AAXu*M1y>fYR-y1Qp zsEHv1>Tmnx57s-Y@^~AZ`wsGC+~(R`7-@zJ%%ZPqC1iIbxt;@zuwdKT!qK)r|Lw5w z#3sfB+l=ZEQOSGsYY8f6nkk!Pa33KtqRPGn2Qxg@PI++*Gx&%=FDmI>I%rQ8H&-TH z);GR=!RVz)9~h916pj3uwsl-?aAIHbYw^dyU$Oi9P3MhLk0R?pQT#psc`PRqi{X+w zk?x{<1{IpW8_U?$yzYx^6b76|@a_Lu53dn?-0g6lE$8-Esm=WLyUkcp=kKi&h*uS@ zQNI*ZB#xY)R^gbV`}RpjicaD(Gwa3@Uc6=NL>{~eU~?R?vYJJ$xa_WRu+jgu`40}M z&O6F+PBYV&fa-r-^elTzHfiH6c^Rw$Z-L8MucAF4Fh6NiUu?=0%j#|p6GH^AZ(T32 zz|&MbZu$hdPgqjcWawMoo$`Y_F*#&(A8-*}iyJ3C*-iXUT_erI_MT0;#~!(cLLJNf z8y87?2jomx&%QA7J2gBWflx_%?f<6*)=+t^Z}^#fQ{IM>%jj9jO4@ zK%UaBv+=4D>5+GSX?qKNrSNhQVJ`PI@qi|k(@ZXebpUc0 zQ2w->OM8CkJOhu@TROw1$#--(b5Kq7Bq*1dZ2X0A#LbKsnUA@al=6A@~-@#%7B|F5Ph z>8n>wuuGowNa)Cqa`9Ag88Yrh>%S;=Gc)zqlmtf~( zUVJFy7f+*5%o{&1yq;wliQ^mbvh#(M8_IQGJAC$eZZ;)xK2Ft-V=S8N8Q2l)>FGxv z&puf!7Y-0R31--6PE}5$V0AK846$=zKOJS5e2amM)Z6M^#~wO2VdmKE)N9=!U?a!{^Q&)Vs0pgGm5BAK zG&mh2nXVt3Jse%kxz0Q%tZm?%4|FkrQS81}`ml?GGtNcNU1J^Y?A5f5{(Uq(=Z$zi zJ@-&Cy1nn_&4P6w+qJqE07nWNj-AmNVtPm1vIqI$8R=7=LA;Xf-y=;A-#^_G_L@-;fMdRy>hU z_s&z+E%KIp@-~g~$P*zS1E)9c9SBS`Dlj@mz%C!mqAdEWgNYc2&!yki+)ySd-K;8^ zk{t+ELD!!v+ehS0kiIIQi+;mTo2MVNWuRZ0ydX%5>T8axn_#G`MFH|4E4}= zQ&#gDwY^G6BP|@Hzff8q+&2n2_Njxs)Ahd=lTA72s@~Pjxq9v62(q5lPRePMkPrN?AG+%T~7*@ec2L$;_r>o5EBo08G<#1lD> zRqh7(NnDHNRqgJ#lwR<8N0Q#sf6uwlUTT@`0|%)nncAPHETgqz{k2;d;c>5(J`wDd zN%q4nx6?llWphN6%vv@5shj!I?&ZPc$yVF%>?A=7+4H}75D7CaN_Y3Ynw?g>cJzxm z&J9HV61F=P^Qh9bWH zV|>_D?xVsmFpGCFuHXL1x;Y|BUo*z~c_R#TF9duvJ|<)S;7=^7^OD?LGtG7HqASbF zX!7%Q4CUu2^~hD{wyG8|Gh2t`<(fm~?4gTHCj>Sn=&vig#=*kXmecO<3JZ?mr4aMb zU>!5Npo1~_!H8=qpZ<-%w>Q#fD`2j}79f!x zsmH4z{NYTF*{wrIO?VeBS8w#grz76y&~a)`S8%B;g)fwTxpavhb5s|1Fcrbk*!Pf2 zcxBu%WqGg;BTiW|n*IbW#!a5odF+F6sLm2nG_Mm(EXs(T9q;PTTXie0(qwg$PWbY8a=;n-*d&Xh?RL*nNrGLF|FN; zoJ}~xD|+PrXaM@MdHP)BfSK&Xo{4WLh~P~t2}S|5_a*6yCLn*up7vbjq2s64=#wf( zLF1tGN5yp$t2GY9dx-a+^gAiegB+qc?8nK9M{MN7eY=8d8pd$6=&L*L-gorY&sv&L zU`##}hSX$bwHp^74^ss^DztJ_kReiFdzi^VJ~!#hM7h?O8d>J?z1}{(J%`mPo%9Ex zs#FMG?(Wc+$hNnI$|Za{`gc)@;X<5wO3eZ`gNwy>t_%l}Z>`kvo!grpu#H~bG-+~r zkeSVk7u~gW&hBD;nC|~R{=e>k{-wteVy$FGbuHjeFMjaGM5-$_IEbgTHf?D*sDH5y zxaOpZAZsQX^SM6KvOgP)`oQ?kjUi?G#c>=be{%f67$>1(lXqs-0iF2wEFBG*69E|( zeAqRCQ7jW@T`hdZO`zvkFs9ap13YCiN4GCKn0s+#D93d}JruCXDv-i_viT$3lg)81 zoKVfG^gG`oqx!Wv`3cL^k?TaEO99Ez9uGrhd~_#>$B?r zP?~2fdA?)pBr?Y~4}=|Ju2f%|?3?{b^_d1aR@=Km3f*9FNstojR0 zGM=42{*4ujT%%S`FVrn?vU7G?beAd7d(usfrSBZ*>m}mw0-Trr4**j@tiRgC{jp)N zozaMhqoIpaBTI9;Hq&{<&X2pvggPjFeXlFBm4=&o0;AG}`YoF4Z2E$^PF5n+A>!|p z$4s3)%q);u%rqMA#{j~N%xSWEV?0KKRMRjxWpqbd{ASDHWt| zNDKyMn7KtW5JFbgL7ck8@?dG#xn*EyNQ>JJrQ2~jzfkN%+-dpO`oRRHu4!5W=}L-q z)p#wM9oZL@$$EbNWIT`cxTUNy3i$I*<6`v+=vot3dQz@Icvmkk#45#F4%;f%D^-it zw$|!?x#i{t2=t|nsIm7fP8sz9yr3mXQY){Tgw6X>odeo9`tsLomBh<8!QH} z)M0vV4)^1HXD5N5kw&T6s&?9?_4V2o&RMM2DxJ-GWqYGaHLtaUjr!Jlr!4Q76nh<< z&DGdmrN(mct!kUEJ@YJyTbaDXt7UsD$17f0wPJ-|u+tVj5u|fmeHYm{ah@F^w1QqS z>DX@vnO3pZv2E$a1HIO|cKDnzy4Tbl*M8kO?$sUlQodHX)Tr`JMag4iqaEG916G>B z6La=nuJ?Aktgj~d7^`iytLxRKk72ZTnEP~?@!w?P#N<`WZCAD{#$gwTKO)G+*Q;CA zW@)4LqH1NX9`ZOBU#-_Ss->+=d8@T{r`2wvmz3)p8}xi;1$m!0S1%j)>SZynoYk$) zbd<~KVb!heO{#LcDtum>?&`4M6FeR`P!$&it7lh)J(MBBaj=IP4Y)M+v~wKz-@=Ta z3>NiXVzJq99CZ&mhCY)1d4)Ow&EK67ElE?8luN_OhKthOLtR`RDDmoMV}o9}vsJHN zZt&ES!+CzlVr~wSzQS!Q-AJaL4BjrSZs3`{9FAIvsfYWj?IAk1?%e2E&W+ zk$ySMkIP*yj#+1SoGk~~4*N)uo=YDh{|yXQu5Yf^w#;Yq%ILA7m=~wf;XOx314hE? zRu1#~tX9unOSJ-T{PUwZ&RtekJdKMJv(DjZdrxkT$UG~b=8u!L+E#^zYsJLz>Zb3y zQEXmk4!3so7z_N3-%x%$vInZL>%odq-P3O+l?KO;! zA(}$3xm9qzNxcf=!Cdc6M%OxBCTTMm&xsTt!~?$fFq$MRaZ#$y@TFEBH0sSLm31VX zY(^xC#8_PO$k)KToq7COcb~@Z(8Fw_J4`s|PCSpf zdwa9N*nc+1`PoX>HMh6y^+p}Wv#omI(|ok7N`eeA8|OU>6v^~-2Tdh$`Dm%WR*-9g zAlC$e*91YX%0@1W-8(DS5G*V0$jDT4a*%m>YfdIQR+l{97*L)|^O-R~J*t-zmuBRb znm!2m#d3Jpw;M=BpaGW4@*%qCo#pMEB+|-qO}_4Q()Z=}Vl&}Chl|>UWX+_Dyx863 z%l&$zSVW-AL1*hLUtpf05_}N`4pYXMi|;1(sMlZ)*ErE4p}vV`%;NF}rVRV-a;-)H zH=5}KB7YQ5qk7E+u|!54mk@4kccl&D)X1S1re#_vE1UHCkNp5nMCZ*rF|_)Iy-*$7 zSos<6WOL2zJ2-h+zaQ$sz9-2f9Io80t-bYWI^SsXUCqy%>2CUdwj-(0wEZsDh?>iq z=kvKR&1}Xi1RVUrdT<=`2{K-NvBXQkB>SCQC_XoiJRTVo=v{{Qz00EwB`#ilIy@M= z(b&U@HpI4>J&#uKR&AZA9^v7oZ!f?tZ!P6;H@jpW>~MQcbGEd#i`%Ki!)({_G5f6r zYgWs(hF=ZE_aFzb{a-L9(kiv}D%2PhlW{25`sHn!$T2!ily0y}wcNbYXe%g~etCNz zzUZY~yMwYvoB4U*zRr)Yd38a&!V)Z3Mwe~0;+aXo;bMwA-`809V-jU%?}!|bWhR`*6LMhvt#`a`M{I4I zXv|fg@0D(E`Cc6b={^xRGSj#@IHu8sA!_DYd)%K9)4Oqn{b7@whSI@!sh_2p%>)#e z(lGU4&{zQ% z$5mtm@<}@}hMw4iAZ0YyZ?7wn4@vsy1RX#S`s$+3j zjkR~wXWeXE(+=_TOI`Pewr(YKuKNsw+N>l}Qp`JG`Of^>r=Q?sK4@ z@(eP8vKaAwlf7cthZe>j^V+Lhomo2D!SBSpAFipg9rJz~$1gJ$^g9?Q#hsy~QEfWu z)ydRc4`%(2|44)Px%|%6S<*c)n0|xKaMXcEP1!rirr9_(p)Q(12BT+<{rG?utByHK zHjncbj&8{0(!6+40Ljz$+GTyMIB+jKk7eVd{$Wh-OSC{VnFJ@KWpQe}Oq?p?$8k+O zerc=1%zSgJw1K&)Bi*aWW#Jb5QWvsqgX?@7_aJnqUkJshQ`+~jLNdMH!>mcyJHz5W z&ku4<)1h3iZqRCuwQt6bJF*zd2)sCd)M>|*V{zf|Whx5tX(M;j>Q=J^;ZCEuwXSnI zZ#oS}qAE0D&pxU#q!Yf-q6vNYXb4~AOe0Tr_5v?Wcb#k!+bG3dju1heVxmEZYPB}1 zr7Im&qO*FX&Gu* zU7$1Mn1*>im6zQc&=ER_4>E~aUe_8TJPb=9xT_LA~8 zwOg4sJ=_rdSzI1!U=No`*VE-OhwRz;7}n(?`pNRhJ{RfQ*T!L+9p?8tg@5Cui7~VV zJ>!uYzWy5nOz)_cI(WNukDjiixzFqQit9e^v0MvyL&nerM#8e2IREOWlCcB6(GdEd zieclW_L}(QU~MKOz{%8Dl#~n>IrVJC4uS=r(X7M5jT*yu+!HgC9V=HI_>Gh2^)hKE z47yAn{c0*`Sy*T`&APdn(>oeK^<$LnM21#CJLGj)a%0kxWj+n!+Q=^<&xhNu&n!bW zP5PT)6LHuap72IdO*TBu=d>z7zbksE==TY{e7v zk}9H?iO@Du23*gEreP#*xH!Isl))QQOt^D-a2}w=czi#nv!sDJ{7dw^cBNCUHrprM zJ6|RX9&+WB>qNzDwHb10718Wv0dU~zYp)@th^J9^U-WS3+W=cO5A%)VY?`*JjVDoR z-&?o)%Wbj22G%qqNU9DQ#u(lHq%<>EpODTY2G7o>VYciTk;Q_04`?9z0+bGSjO*p2 z1=hY7OJr))yxi0miBSi;D16un>6TAB;ThIC#G{Hlis4|S1)=M zJSp8&a6$RR4tC%$?|OBJOcf^aL3%=)+dNv>b@RXl$^3WabSuP~zu(EX=F^-EOUuO& z&5Y}2#+Qwf&P$Tt_o)N%&aysZz1m*V!R6x3>ZN+Q)UMTu(7#Zxm5G`~8T?{)&h_rE zn&B#&^1wN-nUQ@Ey!q)+NgkLf@!N=0g%UfsG>-KaM*(*W{jjIo5^ z=DiNSCzEC@5KNk9^<`&+MQPdZl1@jvq`$Foo=o~zKW8o z^0-l^og}SfsBHgn3)8XdBN_(!JgL3B{a6<8dED7W&ZX&^@8NQ7rKf?7uW7wa+@!Ij zbhFxOmDa09B5HB%TIPMqnRBn*>n=#M9~))46;I-&N@bb*Ju#9-*9bUGQ7iZL z?zb2`b!T$Ba^!WTO$`QZW1m(x-^iogMfp6dM{f6evzW_czJZN(y zEt>4vGaVA93yBH^$F0_ds@E9CUH_}P@5%35JRxnjILIpn%SU#S`M9f11|5!_V^;9+ zd4*mAzZ?UaIi&ls;8XMhPpngSMD0&^z&dU;o5DcEh%Aj9Gy}8#tu-o=kHeT!&@8jB zmW3D%T%4uUEY){dM$S)hBj-19(2~%<@$WJ8WqqT<#rpF4Q86LRX?~)YH_jB7DOVM` zTMbp*V!U|f>|(sQlE;(cC{wQJzWQ3BMjy6uvEh#w!90X`!EWc;R%xw6oy_b9z*ffM zkX`b7c{T9kmF)({ab&1$J&rowbdpWGcRU%PXC{Yn$NSKo^|kR_Uf1#Gvffy};$W`K zXcyDu^~+nBCs!7a#Nr6b-4>%*QAeo7R6o+j(U_TdbP($UGkB7AM#GMoA~JY1b|-Mm!QkCS}{lOb+MoshnuiD3Y1e%gkt3hhvrPU) z&!V*av-I0<*3rioe0jZ}_kB;OC#Nm=UOp~_$|%#nz4XlY^l;(&7vIy1Gik-a4NV-m zyw{xw7Utc%@w`H@%stbiT;|f|2G+v#6XxEv;wFE{_4;PDc||9#&FzhLt+8=M#yJcd zAP-{kFT@Ijsi}ukswr|u2wd7+ic4dl=-)k;=B4D*)@s#_3LhGh#kv0xMoTc!rX+JfADFmd0gLdLGDF3FpyY~Im!o-`+;Rtq&&>3Ng2#nmGUv0Q88a- z%EyculKK)^r2XWjSt&Z}bSa4_dR;x?^D_LGVj2ERu?+uZ^r7w}W=nM>+V##_b)&i& z+}A3#pu+*7&o!J`iLG>O8HJ-^|2Smrd0&2Hv=U~+jB2a54-b|4co?Q5HbaXcIFXLyE+6<2ILvrqqBxG~WKlsbpB(8mUqmp(j%#-`9I~~) z@bw3AJdXN_%22`?pIf7Hkz{QA^Wc2kDW11;%ufVt1Yyx`NHvTAe6hzIb^B}Naq*9mqeI6oj9C*zp)yKE!%N23Gk0Kj(P`v*d{*qndn z_6gBf+NEY2vtg^X!7~Evb=0j5U#m--V1uZ})$O&lYE#4)Yc*JHNFraWP@}Srk<%)- z8@3o9<2%art*s6{8L51&_xj~SW0w1`+E${mSo*7RHOJ;_nv+s;8~ylcgA!;*LH z*=)ku)6Q(y#*OWe#`$-%bP+n6wWi|C@~F=h6G!`ZlCh0Tdw1-2Ry_6Yas5m&-Tsj4 zsNdg#X`+I_R;htN$EztVWAdCJD3u#+)2=vcHuRj)_+x&g4%D3ONj7fJp%(M2dEApP zdp<3!Xwl6D^oF5$Sv9-a3)8TPo2Xx0u`tT)%gZ^H;kA8qb{r}h_M_q64E8V3qe&)g zG7_4jwN3t%PsS6)06AldCP3d`f#$<;hQ@V+*3nxTo@D^=0)0U+0%atjKIU+D&{J^>{WJkJ8wa$>YV%SCwfplYhYr zTYoRww{!kq7Unf?ld*9zK2Cg0$7=@j1nU-8e~i|D3_BE}-aqLL{XK+aY?mH~4XF<$ za-5;vH?ZT<+2&c_GV1Rl?>8q(Mdt0|&NdJ7{|VebhS?DV-xr<_7U$zev3M|^9(%Ka ztCx7FG7F4XU$eGlHV3?U#*X&v+~d|NhsQ@mkfhF!3cTEecG}>xe^r;$pRfdDnuWEi zy{XKkiFPScUn)#qZ#M3W)(rqwW5oW%RQJGi)Qf&xFPUU2tmc|*bhkT+W8XG(XNdWa zcN~m+pPYR`(V84MeWGdVlNX%6Zmny#f!6XN?&zxvbc>SkG1o47@L^~bj{+R8u-I@ zb*ojY^F9sXrAnpQxm4PyRmAS1eZkY2zErGrTH9jRU)pGMyiwn%m9Nl}-)Pjf)>}SC zCkZA<_40#x7;WM{`(9^Ye>U zh|vHWv5nnx!OP8!iYaro)S@QHRtR`$yM3Wf1lbkbOx$V~W5t?Mxm;}_|KS3^7@WUV zt3V5fI9_IiTbJRvgndi&Ix`_OGFX(d|4hN~`SSS`^X$#R z=>VE2XyH4eUFh9f#y^MwP=@sfQf^o6TY0!&2kXP6bjDJLGqSx1Wj zNB`Oev8(;0Mg56;;8wG`*4e7_H{YtaYvrm-s}(Pu_zjX`I#;h+u{BpOo6ob~r&dB^ z+3~y1ok(^8@NjN0;Ym@2xh@P|mBt>MY8&2_;rvsBxF z{{q)%ME!?yb;_l!`c|z>18_mQB)+K1z6tzs;QNB?%E_15>mI-+g=R$f-OKoZ@-XXT zj&-mZ7OzpV4)$o3bGN#<+$O%0!_fiLJYB5G83$zBHI}wWx$qfW%i35`Ty@PP1I1}+ zF}js*Emxe)h76p+jI%I5@2>mMit)nX-Ot>EX~)vWMxAxBv;)oI)TuWc?RnhuzXNj| zEVfR604FaULx$iqIDGG)+7j7xXJ4AdojoaBaOU+wa9Sl1ZyB8q`lhoXZ1=rI*7$)S zlASjZ_`7@O-VH}#?hc`c#fz=AlSUV_Sx^_;1VTISqs-E>Ir@v0zH>BWcQEg7kTFXy zisRnUbDk*vCB*6Nvyksxp=rWf%qAJ-Xh}=w3hbq$3@=z| z)t&wKg8tFlpMyjnT_=k9RFef2;>3kO$K92dfw!YouIT1MPnOvxDG-&?S zJTsWYfiTnf_7Wnxan@heL@#X!<0UU{CqBj2PiV6}-?(0} zwPuw*Si832Jzs{ji=(@Ds6X0<&f$LCUQ_l2X1}iY+WU5n^Da39>mf)6U+QE0P-0y5{2^JUQYWsrjy^pBzRGzl z;`AwJ=`^qNs4JS&XVkMM_&ktt)=%nWA{;S$=j3yrjJ=T4^CQg3+WM?e%{Q!hL&j z%eR6M=ig@ah4!9SyAEBr_T`Rt*N%#N=F)jC%war7<*+?AW#Mm=$#0!QSM|IDwWMX7at8{aYvrYE*;Gibj0dcInxUsHPII2YCL?T-2rbR?c+C8?+z2j+Rz0SF z-GT4czEa=aGv8ERiyaAzGil+ur8sk+u6erY;IFR2Tk&~*_BO16M^o`D5bnggu*rta zvGFwE^#4cQbZmT+&CD5_8K2lQ-b=GGVpojS)3<5fLrt2qbrpH6c^{ezx2rVqi$SFE zVSJ(8ZgjA9x@^vPrqMR+QKNNan>UN89S>vX)n#hu=J3+Q;!8<{45kK>jETgTUzp>Y zrFQv(N@-}wF(&haImlKp84N1T2{Krvm5EoX8`X7nhpXjb3QT%Nhm)&GNTuc?H!*{lalllU!4M4mV$=QGdFK#`gX2o#g9bJlUP|AHfY0 z%=?w-#atk_x{;ye^4N+qF0k7Yoq*|29c{l8FXRKv-0BPZJldNb@T5`J&tTraeZ~i2 z&Tj*sqiqdFRO>?9Pxf|o3oENabE02B-(!O38_Ll&mODZYJ_?gOb` z2ads)15Uj0m58iA2jfF4d;Sh27BlskMT5uD;BH^l`Kxp^Kh9{91=smL$~MYEC#o!$ z(tGFj2;Er;vGQnHtY;7E@o|G@u>HCFhyFP~@!^>Jm^4h*=SNmY$Gxd>3Bw;%+`a@L zzaVLxW}Do@4QG|g9K-%D&E_!m``n;r`BkA{(`BwUs=ra)TF1-e)6IL& z;ePpobNSUvjgELZ6w6!0;R?an;UeCw-MdvORYiV8ac)25YoXwI2RAA!#>lcl<{~U^M)iQS)%;oZFN!^po>NfZC{>(&E zk|n&VEjUe`ljvzW700Bq0@<~HN+beK(-qEG;>_xM^1-R7;##M{5*MeF7UT2Oj#KD$ zn$n>vNCiQVO_Yb{%u4pJg=x;!N42%=)73NiD1-}0^A5Ux=KNXr*r}6~LrayW(O?{M zjdAvz9_Tlrhfb8A2j*VZ(27KEK=_oA<7RwEXZ?U1wZ4FE53T=jFN4(^qjXbaE2p++ zNQu9n(DO9{+i-eyG#3=AEJfk=Lm^ogXOCIT><;UhPdaDtxlf+Acj|=3&yhVh#KYM4 zk&R1QyVbTXkUP|0<}vkKkjGP+!m(KAarx%55tC2j@3R0Oq^ ztP-28%lXvMO*uSsHo8eOHu5Ge@9TUN`?&D+l4S1}J3c&3erqcEIL<6WU(9$(aErbqa3tUrs&20rM`W6E63wOP4Y zh319%ZWdR;sTGbf{=&I#;^U@^_?X{4fN!?eJGD(VPm$N9xfA$$RkX^tsS8yvOJC%u}>1!B|?Pr5HOIhl^hp9!f0_*N<-FEC*`2xIUpJWtGb1?PjTbMaL1& zwM^&mK|&l(8Z5xOlacjHJ{@(u0b};qP5bM>Z!38cKnKi!1(w|C8i_QhHukHN~#hRGbp+MtTrld(Ezf*m@C%%jh8NK^OaW`nT6L?k zafMYJW#53Bq!qa91+rCW-VwDpoaX#NIlrOiEN6R6Wx$(0D(e~_9%K%VM%>D~70k#` zMT83dJEEQksdEMDe1$l2o@Xsdhr^|T{?hzKNT(FM*Ed~R&Twe1Q9nb7FlRsCEdutar z*Nuzk8m3%q#e4jX$I#-k7W|-=$~Fz^~?JaQM`P_X{cl$tr1rTW8H@0QzWpxa@C^?kItW7Hs8nT zvf(v7`$gB*&gKv@48jS{V2gYWnl{v}u{`ef)X-jD0oHDCZ+AHyI305%f64m|=f0fv zEskSBY}`y@IiG`89%;{dpM)9q!mqxZm!5588Y$*j^u5W9spC<&O!LR!>hgR7`FDD`r&WT-;ns=TS+sxzUZSr{bO|F~1d~&+$j3=g_c&}@Plhfz# z9jZ?zK0AGTV*?#<1BRgLLp+Zgw=519de3=959ZT6UoJKcetGz$U5A-#-vA8p&Gofq z-nOntTpW9VmptG&AJ423WW;?(gV^!OW9B(HgeLd8dED0A;;NQg#7i;9YhnrdpJVw>9Zob(*jRMDo2nks6ls8M63N^MlM={cM>ZPS+X z_CC*dtv$1cU{4O?KlgJl$(m=cAA9Zf0@ zF0bH&5ol>KMIY>yJ8xx}I7_kvI3w);Cx**%i@9G*9Oc8&;%J+>f2f&H?9EXP<7*@G zI31tek{9-c+PCm!YnC*y^TUfyZ9#JfEbHhyJGOL53ke*V zS4*pH1o0VZ!a~8-);(eKVyW16EK@U%)kkVEiabZhGX%nJg2*p6Nhr^_%{>n`=X`4{ z|H~??&s`;tY{7;P{I&k7$~qj>5`I49zV>oHaUM@&9`hw?5J$RX_{NHwi>-cv{yZuWNs#hyZb zmRCgMd26U^OLM4ET3eD~l)vc1_-D-Ux!;9R1o>>*{lT-m=WK3zrntuK&D{xp#z6L0 z#gU@C>h#X0uvkZzSBYjO80#eSS+pjnSyxtV!874M9fw4C9EXHoyd|FFcwq74Gixh0 z#Sj6{bFxR6EC8P4Sy}v|#If;UAU+<9kF(-qGS;oHkh(RA8Z4}cJ32`+NFf&UTjWgn z967`D%jH5`VULBWJIk<`kTLzdMmTqeaJfa7E|+?9>>kfKdUW|5eRytp%IE00h)=L$ zC&ChOyYzD}|16(J-$>lK9P^_J3b-NMJCBMofZED{N=Sm`bBu4-$5#^2SzTMZk6+rv1I>BZ`YvfzB0 ztcU#*V9y#tZ=dyV2lE;$f7_2LZYo#&w$FNt9LGf-R z(rC_^v0rZ6L?2oF;hrtHx)fnN800$fGv}G`EGN9oL(&WBgYDr4%BOt`*UuBNOwGDI z5w~?3ES=Goj-(?>b@sOCOtdV$6+Bxu32D{JECx9OSB$FGD9NO@RZu2o&{5 z?BVAX*sGuC3FLbM%NLfvya|S3yk!?s&UUzX9>&7*5xX`T!dQ+EM;BZk(E54EV-+$H z=Z}oyHJC2$YBkq-lh0q2(X!SU-}jp*xYct0Y#w#ta`ElFjzD9yBfNahd+pojd2QwS z!scphBTEwfLoAtx87OcreLXinSAosgyj-RE9Kw6%!vuNHBW%v{K32s%i^mrVREzz( z!vE#Xq@PyEz|*FW8>`DJ*2(a7af3qe*Uj-;>DJ10Yh}8%GTmC4u4Y}Cao+joUMR0J25QGMPka7+>BLcHY< zZ)F$8UR-@1Ufj~&$#dj*)0^(7#+-h;IOW1?+&C6Q5ntvhdY<~{h`2pnyyr6M;`6_I zZtT0~eZk+otgfmSUy1zfwvMIyPugytbo1iceCf_Tt!j!=f1&sMRf!1;&s}+X!g~u7uhd- zE(3Wash_jy4El{EnU6XCicfqbmrt^Kx|xrqR>{qOMs!) zLdRt-ycWVgNzc1tfGD~u!IodlPMq8m?&ZzE!Y--wV?RxD^Ul2LF6U4eICn4h=zKxz zdDJ2u3t!K(%#+Fi-@?c3ynGt$Y>C&aCEB~+pGeu1>U{Fgqi%X8T!IyI1th*kyLsvs;t~J3Es5{`OVL(r1)@c{45NlW)}R z3sb7)Q550(0`j+DT2lFR26rTpkGK#(f-j^za-K-oUKJCKSYX6mUKdwy-k8*U zR&2iWD^;5?=PN-{A21+RGpd&9}}FY@5qSCd(5 zWW$2VyiW{=>kykOt}Tt-!IX*}>ORVnbskPFC_7w!dc!Jbdj{bmwL~6ORGp z^fkejV0$>Kbal6Hz2#&)%4AtXd4%k&5?-UfH!txRr$ z9$tJu@rz~&h~bx7&*`J=reSZ5C zJ4^W@`?(p#+9uW!l#J}HnqP=7+ha{#KyHYqj9DAD6?$+;r zZkgk?B3j(Q)l}x@vmvqaxaUxu!HV$*^cQDt(xYfI_L{IV5HCX=@6MjvZo$Oj@_Q9A z)yUF+-PB77cs>U==i;mqx8E>teslUEhQGBIiWW9y1hThui#sc=hK%KRo5OR;BDhBE zW082EF<~7%6Us}-lvd+KGPfsEO4DzydP-a&hN`4jpki`3z-w3SMkG}136C|uA~uy zXT@spl6@H0m7Ypi?JOnZi=-@Mo)AJ?z0iG`c@lKGTaxxFn^?1sxc1*=2# zO2cMPK_NqmZ}1eX;&U|(%7*37&)cDax0~8EXt> zO>*nZ_~B(?{vg9OuwkEgC*Z}{e;cZ%=!h~W-qfkKvUv>F1j|7`{!)2)WWd|g+1^U{ zSrZh8-xK(MFwpLA?vC!P#_0prdF0I<2ncw43kwQLV|SKPe08lz%HM2lS-onN^qMpX zZ$)_}4Rz}-H_I1}e*$$Zjl^x=ZK_*eA+MHG%u63}@{ssV;@t?fN`>Vz&%`*sGo+oB zsL&U(?k{H)Kkv>y@z7XaQCn71=@)nWg}P!#lawU&{CGLoUz+^^W(-eO$d)zi5(H)8OC+w7HwH1CnjJae#FPDYw-SYv6yB=T)G_od6d*egg~ zC^GUq0bZ$Do-XB2PoyY*M^lBgA5kRta-a5!veEKRJax=IyfsL{V$jMW0aq0%rgaJm ziak>>>72n<(iYmy_l!Jwki_uU)*6`otEj7}spSH!=lhFd>Q#|}adcbrN+VBN+FMR# zWSb&$(il7F+2Hf1$XS8S2!zdjTTyD+o<$XAAd8HGUS(xrVtk#je_>#r4=EI7ZCPR( zvoGr}^cJq-9dEKj&2XU4xt0jt$GJX}(6~%j(&(wY#e)Y|z*;NC7dwIAKvF?yV07_<_`oUS3OpnTMc=W7{nq z9Z)b=nBNY`<`>0^q+8pRZS0!Omdw7ydFVs2HWYEP71oC0vK5K;08;sj41?j9CA?U| zZV4k2#(86+y}^pIB>1kSzrk}8N*e#>dP`d+d9KIu#f9;u=FUJvN5GsRR21(#f2MpS zHf!Jxl4zH>jE7Glo0VEu`sIA1EgB6M`FuNe?C_dOZddnKpFEJ_Yi+*5+ZOEzEnL1? z){Epsb+YSMVtofWi8VYn1W+5dVG^;1L;o|)H6?Ry19kwD*I$?nquoi%QzG_oGBRC` zosyX&=S82`eP#)Fo5k-vH}&(xd(kQ}uBa)mu01{O@+8+4%+bt(+qb17!Y;1XnfIN^ z`vT+lpGl*w@)9cC9kp5B6vZ~8%x4;Hu#sEyF1t%NZ4mbu#r7yhL>@weFULCzuYXJT z0(CvJ-tDaOmu;+7#1%_o!bjA(5(8p6YqFWgdSYGyk7l?MyX1+-&WY#1q*$68ep))y zH1d4m-f*x(!T8*APg=~+2UfUGwk*8=WAh6V0}MGZhA>`}#QF(b9Iq@#M3iDaC}FI+ zkk9mDIMV5W#c^Ac>3oXy*qE7MSC1&`_i*VO#?5K!RQ&B4J3#m7`2gzR?Lov*; z?xvbp7~k(zS5arg&#|nnjQh+ZC+6{VN^>|I zGM`0xJpnH7+R}2PrlM?f4G;UNSpK^8>0(SH?{dS1PwkysDb#ab2)bHejc3KGfYBCO z;|T=}`Yj|dPdJep^c-n!uRW4z7!1p#MO*;c0BhOSm$<4OWhn9ll&`L@s5iA6ErHz zQ5Fg}Kba6A?%*`6BJi{_@|}FRXqR4y)z=?4w`+~ZdojD6iGx;Cj!jZu zq})5(p{ofq^^F@#{eI$cwR8M2`CH!A(cIqY7Z(Ev`J51x{Jdbeqd6@1D)QxxeB!d4 z&usfQ!LkO|-@Hea?e+1TE~`%*9_i``5>tzCkF&q5RHW~T$hCJ;tKxapvcJ4NBG&i_ zP5gWkHG;F6@$UsF0gk99gbS?{+F*Au1XApb&jEW|dqN@U@97lAo=Quxa^BU^E^LyQ zmKq5GEHBza!L7l|2(<#;%{w~9m=|G2JkYY5v!1U+vhW*Yy}To-g>7qcjW)GzvRrXT zX=S*vsnxK=&~S{+io#}7t>wA7wY5Fejznc7B(|a+@i4;-ESpoevN?4ldP?v!1F!~c zmTi<2-jHg_h-_(kWlq;9p0kNl7Nrv)J)vTwzwYvj(xpvt;0)n|xs(OGDJ{i2?AEbC zFCK4zkDnc>ky*?{jVxU} zkJ!5OoUAB5RxR@_3ZpDdaey?`Qk%O&#J$8biJI7R9Zwt?U&uNGUt&xB!F3bgCO#{g zDY<#|?dJ+TfbBR(Si)j!KaqG?T;9aPtYX<>pBc?sy{WE}#wdI=oo&*$ zw*)(RD~rNK$fwAp+s)D(_Lt3SL!Ti! zwKTiPK%^HR@`#Q`*Nfs9TplxFnPt7Nn)$574<07?Np)BJvv@BM6q8q*q>fN7{e}#n z;X^`vMQ37sOHGy7cSa1OR@(Gp-c1A`!Y!0wiN_wC4!J)9%AF;EcaE9gG1IUqAEnjEVK-nZz!CHAm z7s7(1%!KHv*0+&{wIYnr5D@d)rMT0KZy*;o#J7B1-2a@Am&_-2SGjn%RzA0c+EF9q zC!dq%TbTM2^w1sb=-M9SU5R31sRn+716aQB-Wg$WlB%%T@{A?t@``d?=()MJ^x}#y zpj?!4TaVmBE_BMWP1Q7#E)|y^wRg6)Q_%&@ZKRR0Fqe)y*-0Xr^bu1pYecvaBODo1 zDe{qC!;(|7`Y4a=Mfr;@rj#x+_sB@)qQ0=8z?_e)NZ5HmI9Oe)Y_6#!Toii zrC~qLr_yi4HX_u-b~_lD_lkX^DDms&_vQpAe0y#jaI(k~k!8XYl?zao4SXqHo+9hf zeWi#BZi%y2A^CQ0#uBx{m))cy;vAiMJk-zsz;hotLOF75k|YVqm19Fv ziTxm{gd{1qb*yvOEw>_)J68ym``RV*|qHMZ@<4k=J|Nd%xwN&%b$c-<*#Y?Q(0^P)jJeJ~+ScoX z;o)$v&=_Jxi+8|sTcXk1s3T;U-PU6C@xLTL23%U~_q`jB8)I2Tw1=#UY%cRA84V^s z-H)tsY$(cJXm2^Kl%KV_hCSxl|5Emk)BN+t9ucj-W45N|F{gWv)7zfLOv-hpa=!Ch zIeX&r#Nfw$FhybhYspP`GWig5cP-sr@{SkHRL4bo=3<6#Fsc16#7Po3{^ymR_T8{w zdvpBK#^+}B3;Gj}KiriZUEHx~_II^5HeeZ9tA!A}@n;fOP=Hi?r8KT^XHKNV86i#M zG@^oA9tHjEb?WF$Z@ZWxK62Nv;Lo9o$|c*hzY4xdKSbOr*;IOl+216H3WgFlpka%zIu40?${a;j?W@(X*qjt{q@m|~jX|}$U=X3HiWLfyw zBO|YG{f3;GTyZ^|+QWqZ8cLCpEo*V(IMVvuwds0)px&&OdMXC`*COF_qQ?zS;4_1l zL77kQoG!g(3;D88)m5y8NIvY^AHN2n1}r=|jIT6JzP%B>F}xdiHRlok>6P1gsPkX6 z*xV~8ST*b8UX%VZEPjx5mpec6wq);~&P*Rs&suD^Q+XiQ=U+TzSK{Jfn6kgn*u9CB za|@t~FVTh$5*!;)bp_{hC|HC>bfVmIPGQ01H3nRq3CIogpuC259a|S+;FN|%H`q|yRDhZrGpDIz)uaA*IHkL0?~jS z-Yi<6*+hD|XnY-I4Fbp)xIdqs9vdyf-dP-So=?TLH811m*V%3NjYdodyev!BL^kvu zhBbaAdgHJQkl(tNoDGig(ooKmcYtm z+LfUj^AeKsT41H84?SLdYzUSg_OD8TC_a-NdLm(MAyHW{q)8UWDcJlZ2;d8m(k%;TUoL``~CzdHs`jwwFMqbo^ z39{Y1&eO`I_(;-$8FJI^$ykv~(Z>4#w*qkOe_1d2k3C-jPnyuYz2o~WwR2Y|nRh-Y zc3Hi@$CO@cp6~1N;w1>usddmzRUk44hSfG$We*HCi*GkI>HT_;(_B_pts(YtN3VTA zuh3vvpjK!0sf`%w>&Vnk`qp!OI6ZDzoF5D#q|lyG)lIqjs?>RP>C2zZZ?+HPC=2a= zEn8}Y;n7)-2`;WXV z5Z!?dRrqO=R3wVfb)bv9<9g+voUo~~eEHDIZhn`0j8KcRZ?soN!^Vv(Y}Qv_o37NG z%eVsHSOnTTtDjJ^gY0{RK7+1(i*L1>jlA&dne1(AE2DpG=SvON*KZbJ!LY~|gFk{ZL5nrBIka9iZUZ=zY{g%1ma+;R;e&UwH1(u$zj5bihOl??g+A z%1278bg5@tr+}yNlNEoZ@sXQFdk!BJ1C~z?Z-w00=s$nS!GfXc@&0ouSl7eX{jL!U zO^)#)NuK=^x|dR zk6&esL?ZsMc)M(%OUwI&vpWDU^Ka#np7o83UhhSpzmdAQ?ELX)E$W#!_q4aYzf8p2 z+;@YHQ)c##7PmrUbd&(^UI@P4_=Wfa^~_M2|G7*_tM%y*vhz{NbZ+#XCT0L_uACHp z4i0UfSu*9vk8&PD!DY83B{S8XQdzevSQFonZt(9F|J1V4i}O`b8&-OrJpk;Ui#i(e zivPOtDqj5YsbQMx^XGWfd~BRt`I<7{y*CCvjh`{_GoG0IG;??TfGu8<vhWuliRIiGXQHvj66c2>`83-Ek{t$oZpG@X^0~a@`{H(Me zL4Awo_f#{ZfMTGLhk~D$Dt{&izKO#e9i-h|+xzTcS!n&Mag}vj)#jd{&s~M9MuRA+ z;pZ6+@#)I%`5X+cxG78i*1PN%bHW$Hy(ZT=+(LR|(3t^fzVnCc!_>)qc#2mjw^qd) zrG{>SlP`0sB?#il-bzfTtHG~N2?`r;SY2ZJcr10;gevMTne_Dexjai=ZSnVTUGMqG zmom$vRfvz&AKJ@))x`QooY(H`iAm*tq(pY;8|OO#zf_y??WzF z`p8vSFKK>nW=bQC4;}r^pF)bYzefBP65hiqbwT+LJD1b46XYX~+es%yMr&~5wo!^^ z)u>o^#Mtqk3)bZIe26BWyjRQs6XDe?|Uu>fJ59|$_X$T+(h2v5ryJh^ch z)8{`M_RmHqaJaxn;&-42--gQrPFomvR2tRnvc|!wZOp%ouyOMCPIFPwO@k&Z#q#fzBZkUN#rD1b(#q6)TE= zo(8t#^$j83G3a#D0R1dsKcd^#u^9L@8>^3n`$t7z9WGg9_ILWzD&6>Oo_82}UTW0% zk580!88ygstFZlQkg-8UF5d6_*Nj;Y$7}5N%AYoF_&2)L$Nzeyo_p<|V%3y!_>y4V zyv@&KePbL4udP7?AATy()a4x0VUk%Y1Z_=IuWEw{M0$_TGp-2^*;00 zk}TK3H)yrVAA++&w5y`B&7VRQ*U8=*z5MW2KF`2PAJ9dz@w~qBM9)slr-<$}yWif| zbDIY#B7QJ)9~K42SZJAsJX-);+WWV`dV5l;D6^ekLUD8dMlxd0#V`q3n&YOPeS#)j zQ^Ad7B8-hf`{M2EzHDwMpPHR#n%xHW><>@+WICy)O>^8BxoG{|e0xI~#19qmFwekS zx)Bad9uq{g?}&cO!*H4uVp-iX5qMe~G7a4}xDZ3?!?|MJff16Td%>>mOUMaPFjr z|LuR`e;h~Ik=t%`32MzWd)T3BaxDPDJq0nRtm%>d&Bk=qa2{qNv%$PC8zSqAKYcAF zbzd}qEBIE~am8RP{#eTh^R}DW?tXW37ItGwIyH8NzW;vEA17^nP@8!57Br?A?9EK5Sroq`|5e^PO(#g|iJ`4nU#2Y5NHU3{v?e82FWlZl ze0G!{+Iuujj~BM9>>IboFF!7r<`VbmgZZ%B+uBg!YS@iEZ(ZJQ%ePNpVa5+K-Y=5| zs$t7m%=A)`_NvF?O|aP^taxrJa=pV!89y<5UC{3=lbI)-W8%dV_=Ol}Ou$3em!*gw zf2I-nW--|>S+NHH7QS1p7s|>P=(srZ?33Rr#snO=eEhQKHjHAl{qlDsoFcRzEbusc z1U27OCKcn;Xi==2huP4dBT3(J;(2)B_u}!hrnB>NGBwtNn%|GdN$-ybF0W>_sK%VO zJSEuP5LZ==8$b%S+@6=lzBO^9NMCT-vcbbaMmoz=?U>zPhaUIlPTr3x>~F1K+p3kB z=bz|#9$cxz+PrmepAf`4OF!L3>oI&tS$VNL`{6$7?2!yWt0?TZ_(?+1(QJg7g=w(o z61i~g;ZqmyI`?|$j{~y-p+S~}$V$f=RWQ$r=3D-ozHhZ(p3Q@y`MonWp-H97anqeH zD{8*Ab=NynQ0hG&a;y66UclVul^?5(Jg8H#(=_xQ9wHu2tZK~jsUEHct_z2ze6?JB zvmTkaPQ=JORYRQL|L;dL>&W=k3#>%2Z{kTK{H1 zwCeqL)uwv^S55!qA(0=iH6v1cKK6}8ch;LoUQB6HwCx!^OznChR@s~%>6 z?B3-jkt*5}6_(XraTo+Pg>Rk5MSokiiP!kri6}(~dAy7XQ69H71EcCmI5wC9+USm! zQL&d%!vnqMh}Z}yhb8B1edW8>FP$ilVhQZXq>vrT&3}&;gmF%4u^|69)iH9`F?UiveYpkwGS_keL?+m5JnNREn?9elOsjE z*;wCa{P{F~@iDj><3d>C0@K2?bg?e<9-BWc-UCCywvsbXZa>970aGyV9ZqXZ7hGl3 z9=Itq-kbwL%Q_4&EtoWLwp)?vHAw2Ba3dc$kbc9rpSqnddTHcwsqq$A1Y^Q~`|0Pv z#6<>hV6Qc(GV?W4qhjlXAy$I^<7gXT#B189Bi_`PrSRM4(BruG}o<4I$*u4&H8AkY8#(0!2deV*YgW+k{kJbg3&;Y}3i z1PuBeSd!atFS8Km!jaZT*@Sr6`0U9qT*$l8C2L_l#Bd_mJozii|NXo9#53;=Y}h={PWOQK;nV4PyO@C~R5rGfdX%lTe`Lz}xSW^T!|PJCIFv zp7+bXtzFV$tFJd#R*9DC?^^qM=X6IX(=lGI&RpQrp%@{Xc%vRW zVV}AntF2&n_1EOzKoN&lw?D9w7s?+nhil*y^jzvgnu+PJ?rk*B8bJ2z=4toy?eT|j zO=DAP`U*<+a-*p#`&QT4`;Wxwhqr#JPLHb>ndILYIlKh_6cVk}f9&V-@j==f+q1Z# zw}#cE59dp`ABu8>e#N~UkNCa$F>Ti%(ava3|#EYdVk;1pfc_V{a&YAU@bJPGn6&qLkLV?o_ ztFN?V+xAGMFZ{UG-&kz7vAleI|Fg8zu0Pj%qVRGi3M{p=QD_sm&Gol+ySxrMwNHs3 z8hOY87DDr1LdTuSjca^gj3qIRUur7pAt^koTiaNC2egI)r6r09VX_|8nX}};mvT^p zXWQc!owE9eefxAdFRj_GXiv&3KJZQ+)q8Gz#pCzwuQ-(pduBr;@~#Ae1$6sbq=AOQ zQS2k3DwV5=BmCB1F2~f|J(TAYD)d#W=KB$y+TDFjciw3DZ8BH;Q)zZV!UAiwG{$cy z@cKy;-O%`@pZa`Qc7960%w)cfpT*ZrrlMmyHkd@SbYlDc*fiFx6ysM@RA+eA?)gL7 zTj!*^(f0!HrP7Q+zhC4(5K{ZcDUFNL%5|cEpA-ZIbx(`!Ia#LCOmM{5&i;rBm01G^ zzmDno{#!<-dUf666~E$c+TDaeAdcxjS{$5ZzL5PNG{@vzzg9MZ4Auvs8h)=?}@@iON>a*Mt{~Ti!dn+NqY^@Gli_=MkGkrC)ve z$+G}zP@|?Tzv@TOg*es3^@cTkxH*+4GgzV){$uYa>hcLkwh!PySGB*e!b0^BC#2%G zmn{G1w#rrg%oBM+A6x3*=0lb@zjSR{C2yp98m>@+10%}x9N_$ zOV|8OZdGE=)Poi8cd{|r^cU34|EDPYT&K2MZ}B$+PsSsW>ZyH=Et8cmW@VeiZ-}Z?f%fE40hjxnM|ZY+Km8S$ z?>FIpA>K0g<1V9iM7=fU98(P8YxT+F*VW(g#M%Qnk2;6F>SlbJasExGwM3NbBb z3TE>qvf`24rr*NH*G!vAWp>HEs~1f?je(NHYem2hGbPY>Gv|AAO}37U{yRm2sO~)j zQ^a#$m#qlcVCLw(0RLve9f6%(O3el9F=?$7;FH>h2U`Nx%?+Kqm|28D{}%1mhx@XE zafpmlSF9sw zG7(+*Xu`4gtGB?l8E<)AZ~#C%1z}SxdI}n!%K+3~0FF-(@Gn2!|B;UITawPSO}B@PSz)cQDsC8lZ4o zpO_bF>C7gV;v{E4i6>W@ql}b~JTflp9~cN0->rQ;6{zO8oj;`KCSTWE5>{=|8uM@G z-RoHC%A}PiH(LJdp1XBWjux}9eYpJc&h06FwFjQ6oWPedE6-j^43f+i??!_9)YI%? zU%e9TPs*UF|76}}Egje}bcq+^O+_|-;{$+QdjgAe(_-V$zZ)`W%w0 zQ>s6k_YT>lmgZiCd|8}yR&B+}XG%c3ijzKz7H=qlWjJqC&KC>ao%L=_eA8;2OJV~j z$Tk5VZS@V!AbkU>aJ1rvBGuMDagbNYBCv1c7p#y<%`hJkg=`yRj*~O5IKui$)020k z9RtToXUxC94U?|=Pq>kypm}8Oe(y+*W(!^{E2#D(6y{NH@BnO9~X`g5n0Lj-sh(|!<_ zKK}qMW$>4e;IS8jT_F7%oIu+AMeSSJh%r3yv&2*K#d9+~WbWrd$vm^;W4)vJ~uy9u0zPvpv8 zY8~mg#Yyud~lc%JKRJu9KFEo%8Zg$&&()A7~-$B+g{Mp z#al&;_He)-P#=f!excoHx9o*Qp!vcOr@7eqv-qdM>Rx}aGeSG|w1n+LNZb)Wc-r^X z(@%&VlbR#+)nH7h0eKW6v?Yxp_uA@FuY<3T{JrP!#5jp+G4WMLMZ4|y1LG?DP0I-* zVUwbw4W(z}kPyK(u=T_O`}3m@x zcj*S)dt=-+zxZ(o-y&%LE*=E%4BSdKN1y& zj$?qF@ahkSBT$mXNY2Ze62~`!luZt%vYfVC^AqO0-_~Uvf6i*3_@S_UVZfo3_TQaY z)AwVzoD75q+;`-n{t{N>K!^~%fwmo`=1}kp+RY+7bJ|QWU0PrOEsRQx5GL>CTyMJz zTCxpc%Q--tbJvRGD)~v}a@>{B{I{254tod-G*NW<8+e_@b%qyXtqFX1!JWuO6Ct5R z$X+eLp9t+%*h63dBVEzIjNMn@7EPJFV17Rt-&G)hSxqXTMo@`j6ajp<*CuEaHp1S1 zqg@-uNcH;%V?_F0rZNZNFVZ+jm@yi&)_#^c%h}=6tiNc(n1Ja`S;EfCKu|tyWE&Vs z1`Ra8pF{a@e`))kD4U5$$>f|@6UACkmXMuf)48Izgei~TI#2i zvOH(|>B{q*e7WxjPMPqFbr{|@!-Y~5Q<6&xf=y?ZhbH0oRudmsljKUog|gMzL_Ih@ zLa@PSV`04HYI%zG{D^8G|DJQE7Dv->aUG6;-{R*AgG?9^uBK4|O+zq#Z#%gV;81Zc zGjhR%%0sZvJQK$+sqSl{n_c7WQaXG?>}Ks24mC$3UD1#{0V@T4sio=e-y?SA`Yj#L z4>U*fE6y!X4kMUaXT33os8jjPE>(&ZUHhy)&wYViAJI{FTF*gp-#L}XFA7rVcuuoI z*H@g?x7k}wi?&%=QQbr9>!cAZ$axcrCLX0q!Q}x&4~L*(hE#FF8_fs!Ct)4Tfa~gb zTppX%C-m(wALgp-FP`FW(jO_v`~S(PKfrg!7xQ{Gexf0D@i$J~uls#NXEXEi2Yo{8 zgrTmeKk`s$w`NA@E8fQoQhC}JNSe%uK9r=N5G)$4{Td6KAXuFQGP}$8#iLc2d)SZp z#iVthQteDM)_ZkIC`2w=;((Wbm!^j2wi0c3<{)!mF*v@UkcA|)+cAK}_Kz$EmW(h2 z=O>{rw(m4RnX5Je_{7j>9LUb26HC0f723Al*2O3LJ5v95>={bBfoN=uNJl#zxXXOF zu&7Ue6zYU2BgP0gPbxE_>qycMKz|@EEYg^9*M+Y)grCyX1gVNC>-Y|LNGgrhd+!F7 zdvokFQFJuhzRx|xF>y{HPp)TQAWy#s!!ep~zrwsZs^rV)x2f*ONLZhRFnVvzdNKO# z3b&p58lpJR2&q`2g&{kxJdw4~QhevLjnA)#0aJgtQ0C(Ikmll?<0Tr!Q0@RoJnb?8 ztxj+rt+mI@{!UI`Xj_B9mVnh-leu)@4jrL=}j&mp!Iq1;W7O$2MUW~y!Yu(%A6 zDO)oU#@gg9cEaV26{h?TR4&4nFzHq(R%~qKJ|wXPLPwipo~GfFJVI`Uzh0ltGK;U?k}6M5!6e?E@ZuJ+#Dob~*0*$<~K$Y`T^Y#i<;#xx;#Hnum{ zTs-DJxBQV{?n}8#`rx~Nm#nhz?IG;_LdjU}T#1e@!T|&egZAf~F;l(=lLQF1$DyFn zoH_m6JlnsJ;4o;P+bJ{Ui#3shEZr;&4fLhTZ07F%0*xxn^~e zX0-RYu|HtdUz5f_^mg)L)#-^pZ2$J?=po)E1w}ynB&h6^FRiCi1f%21Bzmv;Nu#`T zK7f3{Un3no;JXc21hiLGhtcMp9DpI|ZxVow`VOGMbJi!J!4uSn^jaJTvGAbKo;4-z zGju4#lkVD5=t31neSWNdR~_?d1S)ngu68I_Q;wUh3cFZ(EWJ(GHYg2^P&p-GS=#k-@THx*E5I&2C0 zgt#i~|A5gaq$}X`(U}T6`si@?<8-t=d=>G4M(&2iP>;k((xf!^&2+RC+#11*I+&vI z2lZPrB0AEEMtC{fX@$^q_?#@d97noHN_P+9JR5+VTlPg^W${9`xQiruxLVG$u6ihE zz}Kn^`(+Be^yJJLkT#-v2?zL64o?Bx*C7`JLnJn=0;EVG?kh}$dfX^mvJ5;JaNp)6 zO6NZ9^atP^Z?Mn*K;~{^vu$T+JL1@oq;6z% z%fVhCfV8zh(ZSCNky!D_`ki2O`3Q|0U0$^njF+^XI!$(mPvP`!P7jc55~pb`yjsU| zNVeRAY!VA8(S2J8tqGSxoU`3eIAip~E}Wi6H!AD|oTri}rrK?Pqe_pdjFgf(rMp>9 z+8uwqr$#)kTg%)1)SO}@iEo=l32c=O|86TCHeqz1%6Po#vpsnYe?R*hv&2t(_WE+R zO{5AZ4uHTrUWnC$4Fco)xQpxQMW}UMBYn#T}`w|2#pKa~Y=zIGT zn~%ia~lR?a`LorI0rFN!cjrt?gw<8*TD4L=kEljbaEc3lI6|gwpgplL|KHZe`N8 zs0d^W$Zw*GZ+bc{Yvx&gUDMjCa+=m`gM8f(XV0}b)g0}Z4Avf%n-Xvjx0x((*H?q{EF;Z~ z7Z3?AOO%MDR$?_dp+!7mEC{oOM7<=-mk4J02v;DF~+O-5R5mw zwnNpF;QwV}JJt0Zw8?DDGQ43)r4)BP+VcfuXM^6-(N$7@KY7?A(_carf z5EF2ZOr8QJ(IjMK4V!rmFd+V&js%ksI5_kAeORM~KptXoN&xNL=r6!=G-!PKls<5f zguhac7Hx}LL|TUOHX2ujVZoHDFdi>U1Sh#yd*5f&)@{0+gR)YCi1mf!kVQy&US!8j znGMXyC}`L-Vj-Ii$_m{T(`#62+;Q9lI3?o7L__n!IPV&;+F&!_7oS3-kvrD}~j>~dr+VC&SE0$SxmRCU8$_o0(dos3B zSw4vfF6gcn=?*5*Yh)l9FicIC1Z6F!OCqwNq=~F91%05$`l@!bmn?mDvZv6qkWEJU zZ%gA{H}=y~Mupm`0#2qs_eq8%Cu1jxA%3`hcw-Q1iSE zW6r&V^wAL$iZnXG%U8^AHB0bp)Zbf-v@IseM!lB-;z#*lMWV$#j+2;@vO_)bR*p;R z_<@&NJZIqBqHIvj^mrx&ecX(QYykyEh3se><{V8ClrNa7z(~t#wx#DXMj{&}6vE(H zKF@V5RtD+L2@4|`=Kp^8Wtg`q?hf_^@cE^r>|Z765AU8&?$Iz;$OC{A;pc*HZQ#!* z4`{HRo62fcIEMhU3iD`q{ZP0M9QfFFI-GT+aLyh4TuMvIQC44Cs^^#ye`5m!3RTmX z0J0!4VyCir=?y$6pKVR-ev6c&n!c1&39+QDAZrv9YN)}@CG%4U$O6S+C>IH-DUpO@ zG0g*?^+B;HiB#o2kErc-4|)W5ydq&BD>!60OE*gDSyD$^RaRXGN6@Vjsv^eEWZ#b9 zY=X4w&B&6D&R4(;>hNmyYEZTC*EjHo$RBkegNJsOzqAGNPBWam#=D9;{+L`!bVl zf9B=zvq4b+6R=-YlnFJcsmKb=sCVQFlB;s(3Q|_M%c?b0F3Kda{xvDocKuQ!L(*Yd zLKi}RFWXU6|8zY&h?SB8ITNYzLUt;n1^lCPbTtl-f#JtPq5<7c)V8qJBX6{p-2zz2 z@Meq%I=>lDhbHfqIJRgcq^j}Av8`uG^?vjzW@0pVDFvio1pz=WA9(|UE|ahl(8~d} zf%uQ3q0PjPcpnH8vbwqaf;%K#iyOLo+wU@A*@k=3{;e60zYC#&+ANpW{Bq&Z-o8Y$mRxKdjhV8l zb*sv`@Hx9+MnH!hg?lDuAtYPe{>W~x3c*n)a=qvS$ zM!dQb4X)8w)RvTi-ReEsNA~gMi}pZPng@=igvk#aNgBgpsQ@P4MbkpdC2k-qw4q#> zJh9aEslNG;K^*%F5RPbc1x77;j%cxHc>w}B{kC+@E@CPJnW4>rICIaID~&4>L7d)L zEWHZD17y(x&uFu>&bN|fNB?NzWH-y*D6)87;%-W^CUzARHoW*hEV1P>w>A;!)~+Y7 z7Kg?v50K-`M@@?kAt1*+Z-qd9!tSsizxSq&3TG=)TO-!rn@GCREr1;}#fuYvf2#r$ zlit2w=J_Aogd-*PZUb1T&F2l>DwRgr$Y|>w4P!ppI;OFMQPw1>UQ5VyQd{&=9Uv6Y1QKIL zcpo+tL=QkNtja@R>}N~b0gAeSyF6mdOTry&x-#8p-O=i?zzg1QBY4872?6(~e%@nm zQRU=i%uR4$3mxg^k0=qT3(xbiKUPAQd#)&rRwi8MRb=G@>Ufz3y{_lDbMevn6k6Yl@ zJg63}P6|UNWEkqwx(Nknfo@Cz2Y5>T;KpXRI^hO>ah7%i-#&YK1HU93bdlmt(Bafl zWlUmBN?0)rt$H|J&}O-ck!oWKUz1p_PKkEkEB<7df`1h;j>^)bFCXZcyN%_l-efM8znf^gag@*u+F z)QNnpB))z_w9!BfwkrFZsB)>S_7)N?E<5JHjRoo6L9T2vt>7222v1d3lRWfZ~~gy@Bgpgmy}vax25~RzN#+ zG`Dg$np!y$1Rys-38!cP*^abF4#nxaZ8tMa99g5-DBGbpdmRfR)BMp2PTzed{i=?B zZm{s#L*TyR`Z6IVT1lZi>7V-yQ77L2bt}ydFQpyfVNs=j&q4tzyvn4Fvx}D@6!F?4 zpVtH9_dn^JYP$)QKvx2VOEyzNGRVEeEA>a(D5l(THaMG35fRE8^u+yCf|O!I(~fr} zFk(`Q9nqA#!A^jZ2|`RTTA#eBgO?2U1CT0o&TUQx5<{!DT~FI&j+%ne1pyrYvIC}d z@a7Z@LZ>*j3mOcrVas&fXSoiHnyXb4)hMWa5lO~+4efM93adJoQCk~Cyky)=l5)C0UifL z44>A$ItlDR(*pJtN$?yX7qrZgTOYn%%^QZ;nc&rPAD5AcSe%h@kIMN0XcPfI*f_cS zg5r5`?WgSuErD1zN+4v3 zm(srA3*4ODK>)nB<^LZobjg}tHkj!{NBI?+H*UW*PYw6^e+X^OQ^uifMl;k}ga~V{ zv*&g8tPw)q>+;C+_YQ9_ohKjM4AiwnuA*3j{d*AHO$QPr)y+Olg6n8Xz0m#^vaMd% z5=nLsNBLXAM1zK#cNfrB$awegkwDNA8x@<~!V7K-#OU;L&_{U%L?30i*#0q!?F8-G z%o{Xe73po_t}|W~sElO-5KLg_&&C2tR%i%v*m03%?Rm>O{jSOy?*dN1^hScznUVu$9LwA(ZT6-f0EvJKuG_b0Gj zt#y^C2gFM>2pudoZ`kyD;n1zg8_3Q7fgIRw*s?|pv-LZ~MQR;y_s%S5H?n~zH2rxo ze<3Rpy$-lp?c@PuII(m8w}EL(2ZkmTMj^ftTXk(_3;H*3*!Td2EDO9}g>)c>*tC+h z^DL_<5`(#cpdbPAccO4R?5g^)@n{kRr=|-;TBDek{6yg#aI`$_Iw=Bjz&ct~kIzH{ zkW6ZCvR16=n&~rC*S|5)JAv zzo6B&)*`xk9YQ>mT~Ojg5jN9KCkL{{x2OYKN_p7g?xiZLkn2i-@)sF7YQK zBljaA$>;*+Q!FFmAPUErdvKus0Z8nzMtdR4pm+_1k!V`TfR7NV5He?tuC~cR!M_gp z3z3Q-2LX8dDtc3`L{c^yhb(~T>G<)|V|}eHL1ZxD5WERK*qvm8w^pd?xsXe!LYW=o4432$gdcxFMo*;kcuIg;@sEn3hY`x%gsGd7N69=oh{ z*USIZhpg1zSp%P^U*Zj=$qxV+b6=;aq$<*?;~lOpZ~WcT49Oj!J9D*ItAg3^esg$n zj?-eZhg(1SyWLmNmki%QYU`w|N!2$Ae!;HLni` z6+K1qz%%doXp$cEe_m*>H|xHTlXfRSljPYSy3j6Te!R#7O}pc#NqX5|xzIjhrdJ>C zUNpJHqm%mg^46ZLe|4$cJzIOO*?U$= zfLSq{K)1ha59=6Kb~QY2A$3f5)S;iMO91twuaISm+%KF-No%pgKd%6ofsbS*m{E`V z0L-l=x5SyXOWtvXfeHtaoX{`-z*(fn{gV}FHd#Y=7TP0?AUV>*{@x0-vaEjnD{|{& z<2}SBO4eogB})1$Uf8Q`vej5lX=MEmYqNA@Y(UBT#n^!2VPqH-l-g5JHwh=6QS+Bt7=QV24X%UpR(x_Qt zPXEs6q(o^8Eqh+h0&DpsyHVuGIQt^`(Kg>7l=fGmzS(Kxqm0QmY83I?`hNL-U?UH29<-8) z>4W8rO+@gcQ+)Ud7CXHsqzcMXteX(x%u|5Dj~iebLaLdQ`GW z5x%|&OA%C$ghl3io_nnv-m8}zI4G;z|C2bEn6>{|zyvniEfR^ll|iJfK(&0^*L9iq zg(@>d$6%GEqGO240<|B&*U|K5gVn-pUWcoNQD2XVh5{<1L_^go%S3gBDyJT$um8n; zs+a1M5gGuklvh$E(4_;uQk(56!Azv0xHUi@ix5%nC~0SuyA2{Vp!<($1}WO+ZcR}O zK{ai=hrIUsx_GW}y}y|O-085x3V`fWC0D8|Qz*%Dl`V2tfUk`zL(V*gqUgQ$L3=fX z2Ff$l5sIXSxV20B&NH9rTISZtGL@ybM+=;P1HkQp?%%=}CSRR*I%g23ERCh%m}K|FqPO=zd(cAEXQ z=+`e%A!6Vmc8&FW(;O$;ZyO(auUu}HAYtcW+MEAWJhV4^FSSY#mYtd;yq90m%X+#F zwmFB10i&S{a~{KH z$W$5xzL#he+{@7Lm7kYM*%dk#HMy_m!)YLhT!e3ETK7cAPmupI%`*F`(DJLUK8R(7GL`c)1$Yw!0NnCqi=_)d?M4M|L70(qJlN+kvLb zq#tw1wo$6p=MS0YCvT$@eEo#*k3{DpPZ(Wsw+BZ)Ff}VuX96I0@TblTk^aC6H=%Wg znlIMhWJV7lp@5Gso7PaOdZR((s5jdT8rPVsKmH$v+K1NPyc>H=5v+XpGHAiDU zw=IYN4{n>76V3|alfldn3@wHywlV%%u9UCeM#i4o#+>NMq*CV>Dyp+CzGo zIiI*+rus+x@ZWs?-nZP*;|>sNA1uFn0m1X(o7~@h30X{0Cmrm+r$Cok@4os&M>VM^q`U%8kKH$W|A85!t_6F%^ogC*$ zMXiAnc5?ei^6IO{7Y|-p2}Zu2b}{XB*n7u(V38Sn-^59PFP?sgI$ykHZ7^T2q3eyX z{laOXc0W+uLq)go%U6YkK3ed_18e`WV~XqI(W{Fl%(+*7KDc68yX6+&QQNVUoIB6n zZWA_mf8bfXnC7GtrW6fUv3q2s`{?@=-De7NtnwbiK~is;l`BFLNgT z2l1aMhdyBRnEy<+Jya3XDkx35+kX8|;?ENf_%KS6#7}e=4oI$xK#MLS3X@v;j;{En zp4OiyfAdX7D`&xk2p3%Q&Icq2ZinUMPxH4;?C`F&>!dsF ze@r$(^N(Z*_gvj&2okP&0_4>0jj$XCt=$M{@g?uKV!s^t&NS)+Wx6}&z1h0k=a+fn z!)wEtQFdCpZ7uQBsL&I>ic+RS;a3)H>q<3xVG3XdM>Rk(G#6p8-akuvExKoG{DV!AwJ&TC|w`;Vp{HCoMrQ*$@0rzWnzuXdEof zOtyi(72OOx`Qys5`r9kfMPFwl-i;0}cO!LL;4sz|&9s3hMILC#+&a)G8U8+!?4%%c zGHV$Zw9B$^g}7%_pa0r7Sd_rp>?%rNIxVe|iMQMfWXsB`qC`laZKXB@m(iy7COc+s zH0gSLLi2}-sb0-JD(0d*^P;bFx&gHv`F33gM;GeewMFUX-p%m*aG?$?1h}B+P!&?A z%V1u>Sa!r%{FVKK?e#qSn2;@1hU|%YMkfKr_YxQJzqA>*gBfpgod0l_WAotr=50Ym zP1`mHBWA)Nl5sOrP;uj1NaHGFrSPTEX4|%~{{ve4Vx;u?#qopgn)97k7qHRHgji?!2um|alr{NfJ;f{e@@{HyPy(cd7;y1Unck;CY zxPRbG-)Rf>HV1+&?H$b_19lW6^g(e~puyJ$T8ok!p%*z~M|-plIfuKuwzmg@0hyuK zq}Lmq`ow=%U`r(HH<@|^`TPEx0zBA%B2)L1Km2#XKS}=eijkxzAQk0(FgNDvqZu~#&op+cO#k%enIU_kE zLy|a9Rb5@x)!o%i&N)Y6h8c1ma?Tkg3Mx@R5Ri;Sl_-cPIf#g4iAt92eY*$U?tAyW z=RD87f8PC^InDsHR(I9+z3=a>uI?2b9hLZf;#;&!d~)DlGZ&6`42mQ!u2bSC6uueo zw2A*9@dbMSYsUYl-w$U#EvEXv_s{>!5=k4>>c73pznAY{ulJAINt?EOAG~60-#)>| zb*2rT;TZh--^Ct&>=jP4TU2a(@V<#3Q9m%T2H(8In~y*XKB6P|-R^z6#m4sz3qSZQ z$lw|Ne^)Gi?9sPR&%S-qM*i{qpzt|2W71_R{#WeH^dD*<`+x5tVYgExjYR#H@qhbo zo1yMk;Opq!jQ_odj{P_O_qSGbkMIA_!Nq6=V-^f%FtBm|8qG3k%Xg3Z>tikdn$wux z9r^~J{~XmVW?=Bi?tgc2O!qj{TGy`l!?ZDd`}7DZ7UkV_VB(m@p>`YLJ!)4n!++Ya zT6y}fw?fhMMh|rDA2Sd-@zs7^^fD*$-GbK(2s_$n8b z`17vO=`yXx*Sa@9cf|LN@D)`s@#jqV{^ckz%$uLL;``P3T9hyG{RZ6se^*cc|9}5{ z9%qtBu3*0YM!|pmdB8K|Km2(bd=q@eL^JYMWN7l>NymwQ@A?C}b&cwm_z-tph?XIR z{{FxxU8r%RD$!PD0XqR+(=8?;x?87qy?Z3|Xx}HgU5{>dOhUIZ{b(V)R8*83esp&5Aol;}?-_}| zhu=(yhlF?PGw{vN_>(uEbQ2#}4-M9-Ydn$E_ zVT}Jeka?$ z>Gl6Qoxe?>Zo{bRak|i8+FnS}PKs!Y#M5Zb3>B@+*w|>xh$HPq9EppO*3f?r$p7*R zJchMr7~E(R10Bsdr_r%7s$F!PP;oql$B202zj%dsMkwW`jHV_R(cEZfM#q@#ab>P5L?EI8m6(%*lt`f zt{G`~ZeEOgyfTmF9e6K3oqxg)^DF!TPi5vY3!7z4WyYCZ%--fmbG&)iOe$)Kx}vG* zEP9DiVuE;Id?3CRN5vU&RooIv)|WlxRJm8)b{;qx+(vFox2N0Ro$4-k54lI&AKi#f zr8DYxG}B6#(@k`19jE*1!Fr6It(WRmdV}7rkLhdrj((_joa;z=uzy`2kY%H6?K4h!e2KEKp&91ZG*khK|$Zq5{3K%7g zx<*suU89RJ%ot-#FlHKCja|k8+vSM1&`;G_zeCb|CDdz zU-P~E2cFg}Bua}pvW4oY8aOSTIH$YQ-x=?G>@0CsI$t^?-1+VSH=XXH58=GacrU$_ z{s})Y>Q(@!coI#^(aQ8DeL!=tVyppc#m2EYte`;*VN^A08x7IxosFKxDC2!&ma)kA z)YxF`F!J%5d?&xnvtTBRn}+F{mCfpAQ?s8r#++>~GCwmnnFq`lOs;HW% zmMUI#R{hmTHCfG2i_|f7QQcI3s1$Z4JGUKWm$6&f{q3>#KKrehGLxSibucc?qrUF@!Px4V1Yv+h0jg_~aI)KS{hwRC;m zR`=3l^$h)?UaU9iOFE;M)hp^X^ICfoy!X7>-fC}yx5xX@`^9_UW%Kj+1^p)eNdF7} zv>&VwEk*6jB+JN3l8IKKwdlL_HOvUm2x%1Adf8n~ls*%$=qwx{2Xp zjQB>Rl{MvPd0gI?*{r74DC?~C#LA&;)fQ)cU*)kY*)etxd#ZiPzGFYP^Ek>W?^MCL zHgnoJ1Dw&$Bxk;J9UbzPTg4sa&UQa?ef^QXtRL&=y1RG8JLUZvEX>r4M2chn8FguI zI)tvI>*)!4j^<-gtOzU4jNEROXed&y6jcg*|d3o{}zi+rM_V8Rgnt;tYOw@YpONdns2SPHd#BYL)IDVnsv{5W+hQ+RAv>WN-0-0Q*Bgt zHCRnibJeG6jru};rM_1`s$1%bN^WPdO?#64!0zpg#VABWCtA5NZWqk=Fn5|e*Inpt zaF4oo-GZ7!Ct5%q*6FMI5B*a2^|as0AK<_5f9UV>&-yD@jAM()_d#rBtAk>eA-49dw~TMs+fsO+TWa(KYl-x(6EZ z6TL=n(U&v{%gXYj+bDBb6V?|U_aQrtsz?t-C;~0$4;@%+tTr|q`;EiKdE=3hgBRsM z0q*ijye{;#GxT&kU&_}(0dDXoJcZfZ>~2ms&zRTDWFoC7C+dqf;uG;TD(WYZN@kbk zWG^{VPM3@2dbwL3lb7TJ`BX-%%$R{jR*col8i|pos=TU?ZX2o=sI_XF+N-WA)2?7w zx7*sI?Fp#674~L(hrQpvX8&&gX=it&QwOy-(3#-Obrv`)oVCsY=a_TFx#K)^o}%Y6 zpy!xd&K-!+|JY5dbLpbGqVAxl>G@FP?fQoPU8nG}dE6`S)$(G!WPWj&$p zLAXmpYLSi@`MzX08Bb=ArDQePNWLL=p==o47QFtBa+9K#D(D`1lAf!V=so(Z zzOJ)+r99=;^9FkJy=~rc?A zlJ#U8`HtLxM?WD+XbxHcm025A8Bcp*ygsC#&{gp4ujmi-61_oxr%72s#+hQVtTXGu z2C|WC7W;^mGh&Pm#@F!iv^)zh&l~aPd?=sBXY&nwH$TR2al>3_erm2W(~5>+ogEb# z74;G|mE0esz9xlDNg(nr$?D6 NSmULAXY7RPO@!hWoqw5>A>$7tkd%)dG}JO*ho- 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