LCOV - code coverage report
Current view: top level - zephyr/arch/common - pm_s2ram.h Coverage Total Hit
Test: new.info Lines: 100.0 % 5 5
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2022, Carlo Caione <ccaione@baylibre.com>
       3              :  */
       4              : 
       5              : /**
       6              :  * @file
       7              :  *
       8              :  * @brief public S2RAM APIs.
       9              :  * @defgroup pm_s2ram S2RAM APIs
      10              :  * @ingroup subsys_pm
      11              :  * @{
      12              :  */
      13              : 
      14              : #ifndef ZEPHYR_INCLUDE_ARCH_COMMON_PM_S2RAM_H_
      15              : #define ZEPHYR_INCLUDE_ARCH_COMMON_PM_S2RAM_H_
      16              : 
      17              : #ifdef _ASMLANGUAGE
      18              : GTEXT(arch_pm_s2ram_suspend);
      19              : #else
      20              : 
      21              : #ifdef __cplusplus
      22              : extern "C" {
      23              : #endif
      24              : 
      25              : /**
      26              :  * @brief System off function
      27              :  *
      28              :  * This function is passed as argument and called by @ref arch_pm_s2ram_suspend
      29              :  * to power the system off after the CPU context has been saved.
      30              :  *
      31              :  * This function never returns if the system is powered off. If the operation
      32              :  * cannot be performed a proper value is returned and the code must take care
      33              :  * of restoring the system in a fully operational state before returning.
      34              :  *
      35              :  * @retval none         The system is powered off.
      36              :  * @retval -EBUSY       The system is busy and cannot be powered off at this time.
      37              :  * @retval -errno       Other error codes.
      38              :  */
      39            1 : typedef int (*pm_s2ram_system_off_fn_t)(void);
      40              : 
      41              : /**
      42              :  * @brief Save CPU context on suspend
      43              :  *
      44              :  * This function is used on suspend-to-RAM (S2RAM) to save the CPU context in
      45              :  * (retained) RAM before powering the system off using the provided function.
      46              :  * This function is usually called from the PM subsystem / hooks.
      47              :  *
      48              :  * The CPU context is usually the minimum set of CPU registers which content
      49              :  * must be restored on resume to let the platform resume its execution from the
      50              :  * point it left at the time of suspension.
      51              :  *
      52              :  * @param system_off    Function to power off the system.
      53              :  *
      54              :  * @retval 0            The CPU context was successfully saved and restored.
      55              :  * @retval -EBUSY       The system is busy and cannot be suspended at this time.
      56              :  * @retval -errno       Negative errno code in case of failure.
      57              :  */
      58            1 : int arch_pm_s2ram_suspend(pm_s2ram_system_off_fn_t system_off);
      59              : 
      60              : /**
      61              :  * @brief Mark that core is entering suspend-to-RAM state.
      62              :  *
      63              :  * Function is called when system state is stored to RAM, just before going to system
      64              :  * off.
      65              :  *
      66              :  * Default implementation is setting a magic word in RAM. CONFIG_PM_S2RAM_CUSTOM_MARKING
      67              :  * allows custom implementation.
      68              :  */
      69            1 : void pm_s2ram_mark_set(void);
      70              : 
      71              : /**
      72              :  * @brief Check suspend-to-RAM marking and clear its state.
      73              :  *
      74              :  * Function is used to determine if resuming after suspend-to-RAM shall be performed
      75              :  * or standard boot code shall be executed.
      76              :  *
      77              :  * Default implementation is checking a magic word in RAM. CONFIG_PM_S2RAM_CUSTOM_MARKING
      78              :  * allows custom implementation.
      79              :  *
      80              :  * @retval true if marking is found which indicates resuming after suspend-to-RAM.
      81              :  * @retval false if marking is not found which indicates standard boot.
      82              :  */
      83            1 : bool pm_s2ram_mark_check_and_clear(void);
      84              : /**
      85              :  * @}
      86              :  */
      87              : 
      88              : #ifdef __cplusplus
      89              : }
      90              : #endif
      91              : 
      92              : #endif /* _ASMLANGUAGE */
      93              : 
      94              : #endif /* ZEPHYR_INCLUDE_ARCH_COMMON_PM_S2RAM_H_ */
        

Generated by: LCOV version 2.0-1