LCOV - code coverage report
Current view: top level - zephyr/bluetooth/services/nus - inst.h Coverage Total Hit
Test: new.info Lines: 33.3 % 9 3
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) 2024 Croxel, Inc.
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : #ifndef ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_NUS_INST_H_
       8              : #define ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_NUS_INST_H_
       9              : 
      10              : #include <zephyr/bluetooth/gatt.h>
      11              : #include <zephyr/sys/iterable_sections.h>
      12              : #include <zephyr/sys/slist.h>
      13              : 
      14              : #ifdef __cplusplus
      15              : extern "C" {
      16              : #endif
      17              : 
      18            0 : struct bt_nus_inst {
      19              :         /** Pointer to the NUS Service Instance  */
      20            1 :         const struct bt_gatt_service_static *svc;
      21              : 
      22              :         /** List of subscribers to invoke callbacks on asynchronous events */
      23            1 :         sys_slist_t *cbs;
      24              : };
      25              : 
      26            0 : #define BT_UUID_NUS_SERVICE BT_UUID_DECLARE_128(BT_UUID_NUS_SRV_VAL)
      27            0 : #define BT_UUID_NUS_TX_CHAR BT_UUID_DECLARE_128(BT_UUID_NUS_TX_CHAR_VAL)
      28            0 : #define BT_UUID_NUS_RX_CHAR BT_UUID_DECLARE_128(BT_UUID_NUS_RX_CHAR_VAL)
      29              : 
      30              : /** Required as the service may be instantiated outside of the module */
      31            1 : ssize_t nus_bt_chr_write(struct bt_conn *conn, const struct bt_gatt_attr *attr,
      32              :         const void *buf, uint16_t len, uint16_t offset, uint8_t flags);
      33            0 : void nus_ccc_cfg_changed(const struct bt_gatt_attr *attr, uint16_t value);
      34              : 
      35              : #define Z_INTERNAL_BT_NUS_INST_DEFINE(_name)                                                       \
      36              :                                                                                                    \
      37              : BT_GATT_SERVICE_DEFINE(_name##_svc,                                                                \
      38              :         BT_GATT_PRIMARY_SERVICE(BT_UUID_NUS_SERVICE),                                              \
      39              :         BT_GATT_CHARACTERISTIC(BT_UUID_NUS_TX_CHAR,                                                \
      40              :                 BT_GATT_CHRC_NOTIFY,                                                               \
      41              :                 BT_GATT_PERM_NONE,                                                                 \
      42              :                 NULL, NULL, NULL),                                                                 \
      43              :         BT_GATT_CCC(nus_ccc_cfg_changed,                                                           \
      44              :                 BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),                                           \
      45              :         BT_GATT_CHARACTERISTIC(BT_UUID_NUS_RX_CHAR,                                                \
      46              :                 BT_GATT_CHRC_WRITE |                                                               \
      47              :                 BT_GATT_CHRC_WRITE_WITHOUT_RESP,                                                   \
      48              :                 BT_GATT_PERM_WRITE,                                                                \
      49              :                 NULL, nus_bt_chr_write, NULL),                                                     \
      50              : );                                                                                                 \
      51              :                                                                                                    \
      52              : sys_slist_t _name##_cbs = SYS_SLIST_STATIC_INIT(&_name##_cbs);                                         \
      53              :                                                                                                    \
      54              : STRUCT_SECTION_ITERABLE(bt_nus_inst, _name) = {                                                    \
      55              :         .svc = &_name##_svc,                                                                           \
      56              :         .cbs = &_name##_cbs,                                                                           \
      57              : }
      58              : 
      59              : #ifdef __cplusplus
      60              : }
      61              : #endif
      62              : 
      63              : #endif /* ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_NUS_INST_H_ */
        

Generated by: LCOV version 2.0-1