LCOV - code coverage report
Current view: top level - zephyr/mgmt/mcumgr/grp/settings_mgmt - settings_mgmt_callbacks.h Hit Total Coverage
Test: new.info Lines: 5 7 71.4 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2023 Nordic Semiconductor ASA
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef H_MCUMGR_SETTINGS_MGMT_CALLBACKS_
       8             : #define H_MCUMGR_SETTINGS_MGMT_CALLBACKS_
       9             : 
      10             : #ifdef __cplusplus
      11             : extern "C" {
      12             : #endif
      13             : 
      14             : /**
      15             :  * @brief MCUmgr settings_mgmt callback API
      16             :  * @defgroup mcumgr_callback_api_settings_mgmt MCUmgr settings_mgmt callback API
      17             :  * @ingroup mcumgr_callback_api
      18             :  * @{
      19             :  */
      20             : 
      21           0 : enum settings_mgmt_access_types {
      22             :         SETTINGS_ACCESS_READ,
      23             :         SETTINGS_ACCESS_WRITE,
      24             :         SETTINGS_ACCESS_DELETE,
      25             :         SETTINGS_ACCESS_COMMIT,
      26             :         SETTINGS_ACCESS_LOAD,
      27             :         SETTINGS_ACCESS_SAVE,
      28             : };
      29             : 
      30             : /**
      31             :  * Structure provided in the #MGMT_EVT_OP_SETTINGS_MGMT_ACCESS notification callback: This
      32             :  * callback function is used to notify the application about a pending setting
      33             :  * read/write/delete/load/save/commit request and to authorise or deny it. Access will be allowed
      34             :  * so long as no handlers return an error, if one returns an error then access will be denied.
      35             :  */
      36           1 : struct settings_mgmt_access {
      37             :         /** Type of access */
      38           1 :         enum settings_mgmt_access_types access;
      39             : 
      40             :         /**
      41             :          * Key name for accesses (only set for SETTINGS_ACCESS_READ, SETTINGS_ACCESS_WRITE and
      42             :          * SETTINGS_ACCESS_DELETE). Note that this can be changed by handlers to redirect settings
      43             :          * access if needed (as long as it does not exceed the maximum setting string size) if
      44             :          * CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_STACK is selected, of maximum size
      45             :          * CONFIG_MCUMGR_GRP_SETTINGS_NAME_LEN.
      46             :          *
      47             :          * Note: This string *must* be NULL terminated.
      48             :          */
      49             : #ifdef CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_HEAP
      50             :         const char *name;
      51             : #else
      52           1 :         char *name;
      53             : #endif
      54             : 
      55             :         /** Data provided by the user (only set for SETTINGS_ACCESS_WRITE) */
      56           1 :         const uint8_t *val;
      57             : 
      58             :         /** Length of data provided by the user (only set for SETTINGS_ACCESS_WRITE) */
      59           1 :         const size_t *val_length;
      60             : };
      61             : 
      62             : /**
      63             :  * @}
      64             :  */
      65             : 
      66             : #ifdef __cplusplus
      67             : }
      68             : #endif
      69             : 
      70             : #endif

Generated by: LCOV version 1.14