LCOV - code coverage report
Current view: top level - zephyr/bluetooth - hci_vs.h Coverage Total Hit
Test: new.info Lines: 0.0 % 320 0
Test Date: 2025-09-25 19:22:35

            Line data    Source code
       1            0 : /* hci_vs.h - Bluetooth Host Control Interface Vendor Specific definitions */
       2              : 
       3              : /*
       4              :  * Copyright (c) 2017-2018 Nordic Semiconductor ASA
       5              :  * Copyright (c) 2015-2016 Intel Corporation
       6              :  *
       7              :  * SPDX-License-Identifier: Apache-2.0
       8              :  */
       9              : #ifndef ZEPHYR_INCLUDE_BLUETOOTH_HCI_VS_H_
      10              : #define ZEPHYR_INCLUDE_BLUETOOTH_HCI_VS_H_
      11              : 
      12              : #include <stdint.h>
      13              : 
      14              : #include <zephyr/bluetooth/addr.h>
      15              : #include <zephyr/bluetooth/hci.h>
      16              : #include <zephyr/bluetooth/hci_types.h>
      17              : #include <zephyr/net_buf.h>
      18              : 
      19              : #ifdef __cplusplus
      20              : extern "C" {
      21              : #endif
      22              : 
      23            0 : #define BT_VS_CMD_BIT_VERSION                       0
      24            0 : #define BT_VS_CMD_BIT_SUP_CMD                       1
      25            0 : #define BT_VS_CMD_BIT_SUP_FEAT                      2
      26            0 : #define BT_VS_CMD_BIT_SET_EVT_MASK                  3
      27            0 : #define BT_VS_CMD_BIT_RESET                         4
      28            0 : #define BT_VS_CMD_BIT_WRITE_BDADDR                  5
      29            0 : #define BT_VS_CMD_BIT_SET_TRACE_ENABLE              6
      30            0 : #define BT_VS_CMD_BIT_READ_BUILD_INFO               7
      31            0 : #define BT_VS_CMD_BIT_READ_STATIC_ADDRS             8
      32            0 : #define BT_VS_CMD_BIT_READ_KEY_ROOTS                9
      33            0 : #define BT_VS_CMD_BIT_READ_CHIP_TEMP               10
      34            0 : #define BT_VS_CMD_BIT_READ_HOST_STACK_CMD          11
      35            0 : #define BT_VS_CMD_BIT_SET_SCAN_REP_ENABLE          12
      36            0 : #define BT_VS_CMD_BIT_WRITE_TX_POWER               13
      37            0 : #define BT_VS_CMD_BIT_READ_TX_POWER                14
      38              : 
      39            0 : #define BT_VS_CMD_SUP_FEAT(cmd)                 BT_LE_FEAT_TEST(cmd, \
      40              :                                                 BT_VS_CMD_BIT_SUP_FEAT)
      41            0 : #define BT_VS_CMD_READ_STATIC_ADDRS(cmd)        BT_LE_FEAT_TEST(cmd, \
      42              :                                                 BT_VS_CMD_BIT_READ_STATIC_ADDRS)
      43            0 : #define BT_VS_CMD_READ_KEY_ROOTS(cmd)           BT_LE_FEAT_TEST(cmd, \
      44              :                                                 BT_VS_CMD_BIT_READ_KEY_ROOTS)
      45              : 
      46            0 : #define BT_HCI_VS_HW_PLAT_INTEL                 0x0001
      47            0 : #define BT_HCI_VS_HW_PLAT_NORDIC                0x0002
      48            0 : #define BT_HCI_VS_HW_PLAT_NXP                   0x0003
      49              : 
      50            0 : #define BT_HCI_VS_HW_VAR_NORDIC_NRF51X          0x0001
      51            0 : #define BT_HCI_VS_HW_VAR_NORDIC_NRF52X          0x0002
      52            0 : #define BT_HCI_VS_HW_VAR_NORDIC_NRF53X          0x0003
      53            0 : #define BT_HCI_VS_HW_VAR_NORDIC_NRF54HX         0x0004
      54            0 : #define BT_HCI_VS_HW_VAR_NORDIC_NRF54LX         0x0005
      55              : 
      56            0 : #define BT_HCI_VS_FW_VAR_STANDARD_CTLR          0x0001
      57            0 : #define BT_HCI_VS_FW_VAR_VS_CTLR                0x0002
      58            0 : #define BT_HCI_VS_FW_VAR_FW_LOADER              0x0003
      59            0 : #define BT_HCI_VS_FW_VAR_RESCUE_IMG             0x0004
      60            0 : #define BT_HCI_OP_VS_READ_VERSION_INFO          BT_OP(BT_OGF_VS, 0x0001)
      61            0 : struct bt_hci_rp_vs_read_version_info {
      62            0 :         uint8_t  status;
      63            0 :         uint16_t hw_platform;
      64            0 :         uint16_t hw_variant;
      65            0 :         uint8_t  fw_variant;
      66            0 :         uint8_t  fw_version;
      67            0 :         uint16_t fw_revision;
      68            0 :         uint32_t fw_build;
      69              : } __packed;
      70              : 
      71            0 : #define BT_HCI_OP_VS_READ_SUPPORTED_COMMANDS    BT_OP(BT_OGF_VS, 0x0002)
      72            0 : struct bt_hci_rp_vs_read_supported_commands {
      73            0 :         uint8_t  status;
      74            0 :         uint8_t  commands[64];
      75              : } __packed;
      76              : 
      77            0 : #define BT_HCI_OP_VS_READ_SUPPORTED_FEATURES    BT_OP(BT_OGF_VS, 0x0003)
      78            0 : struct bt_hci_rp_vs_read_supported_features {
      79            0 :         uint8_t  status;
      80            0 :         uint8_t  features[8];
      81              : } __packed;
      82              : 
      83            0 : #define BT_HCI_OP_VS_SET_EVENT_MASK             BT_OP(BT_OGF_VS, 0x0004)
      84            0 : struct bt_hci_cp_vs_set_event_mask {
      85            0 :         uint8_t  event_mask[8];
      86              : } __packed;
      87              : 
      88            0 : #define BT_HCI_VS_RESET_SOFT                    0x00
      89            0 : #define BT_HCI_VS_RESET_HARD                    0x01
      90            0 : #define BT_HCI_OP_VS_RESET                      BT_OP(BT_OGF_VS, 0x0005)
      91            0 : struct bt_hci_cp_vs_reset {
      92            0 :         uint8_t  type;
      93              : } __packed;
      94              : 
      95            0 : #define BT_HCI_OP_VS_WRITE_BD_ADDR              BT_OP(BT_OGF_VS, 0x0006)
      96            0 : struct bt_hci_cp_vs_write_bd_addr {
      97            0 :         bt_addr_t bdaddr;
      98              : } __packed;
      99              : 
     100            0 : #define BT_HCI_VS_TRACE_DISABLED                0x00
     101            0 : #define BT_HCI_VS_TRACE_ENABLED                 0x01
     102              : 
     103            0 : #define BT_HCI_VS_TRACE_HCI_EVTS                0x00
     104            0 : #define BT_HCI_VS_TRACE_VDC                     0x01
     105            0 : #define BT_HCI_OP_VS_SET_TRACE_ENABLE           BT_OP(BT_OGF_VS, 0x0007)
     106            0 : struct bt_hci_cp_vs_set_trace_enable {
     107            0 :         uint8_t  enable;
     108            0 :         uint8_t  type;
     109              : } __packed;
     110              : 
     111            0 : #define BT_HCI_OP_VS_READ_BUILD_INFO            BT_OP(BT_OGF_VS, 0x0008)
     112            0 : struct bt_hci_rp_vs_read_build_info {
     113            0 :         uint8_t  status;
     114            0 :         uint8_t  info[0];
     115              : } __packed;
     116              : 
     117            0 : struct bt_hci_vs_static_addr {
     118            0 :         bt_addr_t bdaddr;
     119            0 :         uint8_t      ir[16];
     120              : } __packed;
     121              : 
     122            0 : #define BT_HCI_OP_VS_READ_STATIC_ADDRS          BT_OP(BT_OGF_VS, 0x0009)
     123            0 : struct bt_hci_rp_vs_read_static_addrs {
     124            0 :         uint8_t   status;
     125            0 :         uint8_t   num_addrs;
     126            0 :         struct bt_hci_vs_static_addr a[0];
     127              : } __packed;
     128              : 
     129            0 : #define BT_HCI_OP_VS_READ_KEY_HIERARCHY_ROOTS   BT_OP(BT_OGF_VS, 0x000a)
     130            0 : struct bt_hci_rp_vs_read_key_hierarchy_roots {
     131            0 :         uint8_t  status;
     132            0 :         uint8_t  ir[16];
     133            0 :         uint8_t  er[16];
     134              : } __packed;
     135              : 
     136            0 : #define BT_HCI_OP_VS_READ_CHIP_TEMP             BT_OP(BT_OGF_VS, 0x000b)
     137            0 : struct bt_hci_rp_vs_read_chip_temp {
     138            0 :         uint8_t  status;
     139            0 :         int8_t  temps;
     140              : } __packed;
     141              : 
     142            0 : struct bt_hci_vs_cmd {
     143            0 :         uint16_t vendor_id;
     144            0 :         uint16_t opcode_base;
     145              : } __packed;
     146              : 
     147            0 : #define BT_HCI_VS_VID_ANDROID                   0x0001
     148            0 : #define BT_HCI_VS_VID_MICROSOFT                 0x0002
     149            0 : #define BT_HCI_OP_VS_READ_HOST_STACK_CMDS       BT_OP(BT_OGF_VS, 0x000c)
     150            0 : struct bt_hci_rp_vs_read_host_stack_cmds {
     151            0 :         uint8_t   status;
     152            0 :         uint8_t   num_cmds;
     153            0 :         struct bt_hci_vs_cmd c[0];
     154              : } __packed;
     155              : 
     156            0 : #define BT_HCI_VS_SCAN_REQ_REPORTS_DISABLED     0x00
     157            0 : #define BT_HCI_VS_SCAN_REQ_REPORTS_ENABLED      0x01
     158            0 : #define BT_HCI_OP_VS_SET_SCAN_REQ_REPORTS       BT_OP(BT_OGF_VS, 0x000d)
     159            0 : struct bt_hci_cp_vs_set_scan_req_reports {
     160            0 :         uint8_t  enable;
     161              : } __packed;
     162              : 
     163            0 : #define BT_HCI_VS_LL_HANDLE_TYPE_ADV       0x00
     164            0 : #define BT_HCI_VS_LL_HANDLE_TYPE_SCAN      0x01
     165            0 : #define BT_HCI_VS_LL_HANDLE_TYPE_CONN      0x02
     166            0 : #define BT_HCI_VS_LL_TX_POWER_LEVEL_NO_PREF     0x7F
     167            0 : #define BT_HCI_OP_VS_WRITE_TX_POWER_LEVEL       BT_OP(BT_OGF_VS, 0x000e)
     168            0 : struct bt_hci_cp_vs_write_tx_power_level {
     169            0 :         uint8_t  handle_type;
     170            0 :         uint16_t handle;
     171            0 :         int8_t  tx_power_level;
     172              : } __packed;
     173              : 
     174            0 : struct bt_hci_rp_vs_write_tx_power_level {
     175            0 :         uint8_t  status;
     176            0 :         uint8_t  handle_type;
     177            0 :         uint16_t handle;
     178            0 :         int8_t  selected_tx_power;
     179              : } __packed;
     180              : 
     181            0 : #define BT_HCI_OP_VS_READ_TX_POWER_LEVEL        BT_OP(BT_OGF_VS, 0x000f)
     182            0 : struct bt_hci_cp_vs_read_tx_power_level {
     183            0 :         uint8_t  handle_type;
     184            0 :         uint16_t handle;
     185              : } __packed;
     186              : 
     187            0 : struct bt_hci_rp_vs_read_tx_power_level {
     188            0 :         uint8_t  status;
     189            0 :         uint8_t  handle_type;
     190            0 :         uint16_t handle;
     191            0 :         int8_t  tx_power_level;
     192              : } __packed;
     193              : 
     194            0 : #define BT_HCI_OP_VS_READ_USB_TRANSPORT_MODE    BT_OP(BT_OGF_VS, 0x0010)
     195              : 
     196            0 : struct bt_hci_rp_vs_read_usb_transport_mode {
     197            0 :         uint8_t  status;
     198            0 :         uint8_t  num_supported_modes;
     199            0 :         uint8_t  supported_mode[0];
     200              : } __packed;
     201              : 
     202            0 : #define BT_HCI_VS_USB_H2_MODE                  0x00
     203            0 : #define BT_HCI_VS_USB_H4_MODE                  0x01
     204              : 
     205            0 : #define BT_HCI_OP_VS_SET_USB_TRANSPORT_MODE    BT_OP(BT_OGF_VS, 0x0011)
     206              : 
     207            0 : struct bt_hci_cp_vs_set_usb_transport_mode {
     208            0 :         uint8_t  mode;
     209              : } __packed;
     210              : 
     211            0 : #define BT_HCI_OP_VS_SET_MIN_NUM_USED_CHANS    BT_OP(BT_OGF_VS, 0x0012)
     212              : 
     213            0 : struct bt_hci_cp_vs_set_min_num_used_chans {
     214            0 :         uint16_t handle;
     215            0 :         uint8_t  phys;
     216            0 :         uint8_t  min_used_chans;
     217              : } __packed;
     218              : 
     219              : /* Events */
     220              : 
     221            0 : struct bt_hci_evt_vs {
     222            0 :         uint8_t  subevent;
     223              : } __packed;
     224              : 
     225            0 : #define BT_HCI_EVT_VS_FATAL_ERROR              0x02
     226              : 
     227            0 : #define BT_HCI_EVT_VS_ERROR_DATA_TYPE_STACK_FRAME   0x01
     228            0 : #define BT_HCI_EVT_VS_ERROR_DATA_TYPE_CTRL_ASSERT   0x02
     229            0 : #define BT_HCI_EVT_VS_ERROR_DATA_TYPE_TRACE         0x03
     230            0 : struct bt_hci_vs_fata_error_cpu_data_cortex_m {
     231            0 :         uint32_t a1;
     232            0 :         uint32_t a2;
     233            0 :         uint32_t a3;
     234            0 :         uint32_t a4;
     235            0 :         uint32_t ip;
     236            0 :         uint32_t lr;
     237            0 :         uint32_t xpsr;
     238              : } __packed;
     239            0 : #define BT_HCI_EVT_VS_ERROR_CPU_TYPE_CORTEX_M  0x01
     240            0 : struct bt_hci_vs_fatal_error_stack_frame {
     241            0 :         uint32_t reason;
     242            0 :         uint8_t cpu_type;
     243            0 :         uint8_t cpu_data[0];
     244              : } __packed;
     245              : 
     246            0 : struct bt_hci_evt_vs_fatal_error_trace_data {
     247            0 :         uint64_t pc;
     248            0 :         uint8_t err_info[0];
     249              : } __packed;
     250              : 
     251            0 : struct bt_hci_evt_vs_fatal_error {
     252            0 :         uint8_t type;
     253            0 :         uint8_t data[0];
     254              : } __packed;
     255              : 
     256            0 : #define BT_HCI_VS_TRACE_LMP_TX                 0x01
     257            0 : #define BT_HCI_VS_TRACE_LMP_RX                 0x02
     258            0 : #define BT_HCI_VS_TRACE_LLCP_TX                0x03
     259            0 : #define BT_HCI_VS_TRACE_LLCP_RX                0x04
     260            0 : #define BT_HCI_VS_TRACE_LE_CONN_IND            0x05
     261            0 : #define BT_HCI_EVT_VS_TRACE_INFO               0x03
     262            0 : struct bt_hci_evt_vs_trace_info {
     263            0 :         uint8_t  type;
     264            0 :         uint8_t  data[0];
     265              : } __packed;
     266              : 
     267            0 : #define BT_HCI_EVT_VS_SCAN_REQ_RX              0x04
     268            0 : struct bt_hci_evt_vs_scan_req_rx {
     269            0 :         bt_addr_le_t addr;
     270            0 :         int8_t         rssi;
     271              : } __packed;
     272              : 
     273            0 : struct bt_hci_le_iq_sample16 {
     274            0 :         int16_t i;
     275            0 :         int16_t q;
     276              : } __packed;
     277              : 
     278            0 : #define BT_HCI_EVT_VS_LE_CONNECTIONLESS_IQ_REPORT 0x5
     279            0 : #define BT_HCI_VS_LE_CTE_REPORT_NO_VALID_SAMPLE   0x8000
     280            0 : struct bt_hci_evt_vs_le_connectionless_iq_report {
     281            0 :         uint16_t sync_handle;
     282            0 :         uint8_t chan_idx;
     283            0 :         int16_t rssi;
     284            0 :         uint8_t rssi_ant_id;
     285            0 :         uint8_t cte_type;
     286            0 :         uint8_t slot_durations;
     287            0 :         uint8_t packet_status;
     288            0 :         uint16_t per_evt_counter;
     289            0 :         uint8_t sample_count;
     290            0 :         struct bt_hci_le_iq_sample16 sample[0];
     291              : } __packed;
     292              : 
     293            0 : #define BT_HCI_EVT_VS_LE_CONNECTION_IQ_REPORT 0x6
     294            0 : struct bt_hci_evt_vs_le_connection_iq_report {
     295            0 :         uint16_t conn_handle;
     296            0 :         uint8_t rx_phy;
     297            0 :         uint8_t data_chan_idx;
     298            0 :         int16_t rssi;
     299            0 :         uint8_t rssi_ant_id;
     300            0 :         uint8_t cte_type;
     301            0 :         uint8_t slot_durations;
     302            0 :         uint8_t packet_status;
     303            0 :         uint16_t conn_evt_counter;
     304            0 :         uint8_t sample_count;
     305            0 :         struct bt_hci_le_iq_sample16 sample[0];
     306              : } __packed;
     307              : 
     308              : /* Event mask bits */
     309              : 
     310            0 : #define BT_EVT_MASK_VS_FATAL_ERROR             BT_EVT_BIT(1)
     311            0 : #define BT_EVT_MASK_VS_TRACE_INFO              BT_EVT_BIT(2)
     312            0 : #define BT_EVT_MASK_VS_SCAN_REQ_RX             BT_EVT_BIT(3)
     313            0 : #define BT_EVT_MASK_VS_LE_CONNECTIONLESS_IQ_REPORT BT_EVT_BIT(4)
     314            0 : #define BT_EVT_MASK_VS_LE_CONNECTION_IQ_REPORT     BT_EVT_BIT(5)
     315              : 
     316            0 : #define DEFAULT_VS_EVT_MASK                                                                        \
     317              :         BT_EVT_MASK_VS_FATAL_ERROR | BT_EVT_MASK_VS_TRACE_INFO | BT_EVT_MASK_VS_SCAN_REQ_RX |      \
     318              :                 BT_EVT_MASK_VS_LE_CONNECTIONLESS_IQ_REPORT |                                       \
     319              :                 BT_EVT_MASK_VS_LE_CONNECTION_IQ_REPORT
     320              : 
     321              : /* Mesh HCI commands */
     322            0 : #define BT_HCI_MESH_REVISION                   0x01
     323              : 
     324            0 : #define BT_HCI_OP_VS_MESH                      BT_OP(BT_OGF_VS, 0x0042)
     325            0 : #define BT_HCI_MESH_EVT_PREFIX                 0xF0
     326              : 
     327            0 : struct bt_hci_cp_mesh {
     328            0 :         uint8_t         opcode;
     329              : } __packed;
     330              : 
     331            0 : #define BT_HCI_OC_MESH_GET_OPTS                0x00
     332            0 : struct bt_hci_rp_mesh_get_opts {
     333            0 :         uint8_t      status;
     334            0 :         uint8_t      opcode;
     335            0 :         uint8_t      revision;
     336            0 :         uint8_t      ch_map;
     337            0 :         int8_t      min_tx_power;
     338            0 :         int8_t      max_tx_power;
     339            0 :         uint8_t      max_scan_filter;
     340            0 :         uint8_t      max_filter_pattern;
     341            0 :         uint8_t      max_adv_slot;
     342            0 :         uint8_t      max_tx_window;
     343            0 :         uint8_t      evt_prefix_len;
     344            0 :         uint8_t      evt_prefix;
     345              : } __packed;
     346              : 
     347            0 : #define BT_HCI_MESH_PATTERN_LEN_MAX            0x0f
     348              : 
     349            0 : #define BT_HCI_OC_MESH_SET_SCAN_FILTER         0x01
     350            0 : struct bt_hci_mesh_pattern {
     351            0 :         uint8_t pattern_len;
     352            0 :         uint8_t pattern[0];
     353              : } __packed;
     354              : 
     355            0 : struct bt_hci_cp_mesh_set_scan_filter {
     356            0 :         uint8_t      scan_filter;
     357            0 :         uint8_t      filter_dup;
     358            0 :         uint8_t      num_patterns;
     359            0 :         struct    bt_hci_mesh_pattern patterns[0];
     360              : } __packed;
     361            0 : struct bt_hci_rp_mesh_set_scan_filter {
     362            0 :         uint8_t      status;
     363            0 :         uint8_t      opcode;
     364            0 :         uint8_t      scan_filter;
     365              : } __packed;
     366              : 
     367            0 : #define BT_HCI_OC_MESH_ADVERTISE               0x02
     368            0 : struct bt_hci_cp_mesh_advertise {
     369            0 :         uint8_t      adv_slot;
     370            0 :         uint8_t      own_addr_type;
     371            0 :         bt_addr_t random_addr;
     372            0 :         uint8_t      ch_map;
     373            0 :         int8_t      tx_power;
     374            0 :         uint8_t      min_tx_delay;
     375            0 :         uint8_t      max_tx_delay;
     376            0 :         uint8_t      retx_count;
     377            0 :         uint8_t      retx_interval;
     378            0 :         uint8_t      scan_delay;
     379            0 :         uint16_t     scan_duration;
     380            0 :         uint8_t      scan_filter;
     381            0 :         uint8_t      data_len;
     382            0 :         uint8_t      data[31];
     383              : } __packed;
     384            0 : struct bt_hci_rp_mesh_advertise {
     385            0 :         uint8_t      status;
     386            0 :         uint8_t      opcode;
     387            0 :         uint8_t      adv_slot;
     388              : } __packed;
     389              : 
     390            0 : #define BT_HCI_OC_MESH_ADVERTISE_TIMED         0x03
     391            0 : struct bt_hci_cp_mesh_advertise_timed {
     392            0 :         uint8_t      adv_slot;
     393            0 :         uint8_t      own_addr_type;
     394            0 :         bt_addr_t random_addr;
     395            0 :         uint8_t      ch_map;
     396            0 :         int8_t      tx_power;
     397            0 :         uint8_t      retx_count;
     398            0 :         uint8_t      retx_interval;
     399            0 :         uint32_t     instant;
     400            0 :         uint16_t     tx_delay;
     401            0 :         uint16_t     tx_window;
     402            0 :         uint8_t      data_len;
     403            0 :         uint8_t      data[31];
     404              : } __packed;
     405            0 : struct bt_hci_rp_mesh_advertise_timed {
     406            0 :         uint8_t      status;
     407            0 :         uint8_t      opcode;
     408            0 :         uint8_t      adv_slot;
     409              : } __packed;
     410              : 
     411            0 : #define BT_HCI_OC_MESH_ADVERTISE_CANCEL        0x04
     412            0 : struct bt_hci_cp_mesh_advertise_cancel {
     413            0 :         uint8_t      adv_slot;
     414              : } __packed;
     415            0 : struct bt_hci_rp_mesh_advertise_cancel {
     416            0 :         uint8_t      status;
     417            0 :         uint8_t      opcode;
     418            0 :         uint8_t      adv_slot;
     419              : } __packed;
     420              : 
     421            0 : #define BT_HCI_OC_MESH_SET_SCANNING            0x05
     422            0 : struct bt_hci_cp_mesh_set_scanning {
     423            0 :         uint8_t      enable;
     424            0 :         uint8_t      ch_map;
     425            0 :         uint8_t      scan_filter;
     426              : } __packed;
     427            0 : struct bt_hci_rp_mesh_set_scanning {
     428            0 :         uint8_t      status;
     429            0 :         uint8_t      opcode;
     430              : } __packed;
     431              : 
     432              : /* Events */
     433            0 : struct bt_hci_evt_mesh {
     434            0 :         uint8_t  prefix;
     435            0 :         uint8_t  subevent;
     436              : } __packed;
     437              : 
     438            0 : #define BT_HCI_EVT_MESH_ADV_COMPLETE           0x00
     439            0 : struct bt_hci_evt_mesh_adv_complete {
     440            0 :         uint8_t         adv_slot;
     441              : } __packed;
     442              : 
     443            0 : #define BT_HCI_EVT_MESH_SCANNING_REPORT        0x01
     444            0 : struct bt_hci_evt_mesh_scan_report {
     445            0 :         bt_addr_le_t addr;
     446            0 :         uint8_t         chan;
     447            0 :         int8_t         rssi;
     448            0 :         uint32_t        instant;
     449            0 :         uint8_t         data_len;
     450            0 :         uint8_t         data[0];
     451              : } __packed;
     452            0 : struct bt_hci_evt_mesh_scanning_report {
     453            0 :         uint8_t num_reports;
     454            0 :         struct bt_hci_evt_mesh_scan_report reports[0];
     455              : } __packed;
     456              : 
     457            0 : struct net_buf *hci_vs_err_stack_frame(unsigned int reason, const struct arch_esf *esf);
     458            0 : struct net_buf *hci_vs_err_trace(const char *file, uint32_t line, uint64_t pc);
     459            0 : struct net_buf *hci_vs_err_assert(const char *file, uint32_t line);
     460              : 
     461              : #ifdef __cplusplus
     462              : }
     463              : #endif
     464              : 
     465              : #endif /* ZEPHYR_INCLUDE_BLUETOOTH_HCI_VS_H_ */
        

Generated by: LCOV version 2.0-1