LCOV - code coverage report
Current view: top level - zephyr/retention - bootmode.h Hit Total Coverage
Test: new.info Lines: 4 5 80.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2023 Nordic Semiconductor ASA
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : /**
       8             :  * @file
       9             :  * @brief Public API for boot mode interface
      10             :  */
      11             : 
      12             : #ifndef ZEPHYR_INCLUDE_RETENTION_BOOTMODE_
      13             : #define ZEPHYR_INCLUDE_RETENTION_BOOTMODE_
      14             : 
      15             : #include <stdint.h>
      16             : #include <stddef.h>
      17             : #include <zephyr/kernel.h>
      18             : #include <zephyr/device.h>
      19             : #include <zephyr/types.h>
      20             : 
      21             : #ifdef __cplusplus
      22             : extern "C" {
      23             : #endif
      24             : 
      25             : /**
      26             :  * @brief Boot mode interface
      27             :  * @defgroup boot_mode_interface Boot mode interface
      28             :  * @ingroup retention_api
      29             :  * @{
      30             :  */
      31             : 
      32           0 : enum BOOT_MODE_TYPES {
      33             :         /** Default (normal) boot, to user application */
      34             :         BOOT_MODE_TYPE_NORMAL = 0x00,
      35             : 
      36             :         /** Bootloader boot mode (e.g. serial recovery for MCUboot) */
      37             :         BOOT_MODE_TYPE_BOOTLOADER,
      38             : };
      39             : 
      40             : /**
      41             :  * @brief               Checks if the boot mode of the device is set to a specific value.
      42             :  *
      43             :  * @param boot_mode     Expected boot mode to check.
      44             :  *
      45             :  * @retval 1            If successful and boot mode matches.
      46             :  * @retval 0            If boot mode does not match.
      47             :  * @retval -errno       Error code code.
      48             :  */
      49           1 : int bootmode_check(uint8_t boot_mode);
      50             : 
      51             : /**
      52             :  * @brief               Sets boot mode of device.
      53             :  *
      54             :  * @param boot_mode     Boot mode value to set.
      55             :  *
      56             :  * @retval 0            If successful.
      57             :  * @retval -errno       Error code code.
      58             :  */
      59           1 : int bootmode_set(uint8_t boot_mode);
      60             : 
      61             : /**
      62             :  * @brief               Clear boot mode value (sets to 0) - which corresponds to
      63             :  *                      #BOOT_MODE_TYPE_NORMAL.
      64             :  *
      65             :  * @retval 0            If successful.
      66             :  * @retval -errno       Error code code.
      67             :  */
      68           1 : int bootmode_clear(void);
      69             : 
      70             : /**
      71             :  * @}
      72             :  */
      73             : 
      74             : #ifdef __cplusplus
      75             : }
      76             : #endif
      77             : 
      78             : #endif /* ZEPHYR_INCLUDE_RETENTION_BOOTMODE_ */

Generated by: LCOV version 1.14