29#ifndef _LOS_LOWPOWER_IMPL_PRI_H
30#define _LOS_LOWPOWER_IMPL_PRI_H
37#ifdef LOSCFG_KERNEL_RUNSTOP
41#ifdef LOSCFG_KERNEL_TICKLESS
45#ifdef LOSCFG_KERNEL_DEEPSLEEP
49#ifdef LOSCFG_KERNEL_RAM_SAVE
53#ifdef LOSCFG_KERNEL_DEEPSLEEP
57#ifdef LOSCFG_KERNEL_LOWPOWER
58#define CALL_FUNC_NO_RETURN(ops, func, ...) do { \
59 if (((ops).func != NULL)) { \
60 (ops).func(__VA_ARGS__); \
64#define CALL_FUNC_WITH_RETURN(ops, ret, func, ...) do { \
65 if (((ops).func != NULL)) { \
66 (ret) = (ops).func(__VA_ARGS__); \
70#define CALL_FUNC_NO_RETURN(ops, func, ...)
71#define CALL_FUNC_WITH_RETURN(ops, ret, func, ...)
75#define PANIC_TICK_ADJUST_RET(ret, retcode) do { \
76 if ((ret) != (retcode)) { \
77 LOS_PANIC("[%s, %d] tick adjust fail, max sleep time too big\n", __FUNCTION__, __LINE__); \
81#ifdef LOSCFG_LOWPOWER_SLEEP_VETO
82#define MAX_SLEEP_VETO_SRC 32
86#ifdef LOSCFG_LOWPOWER_SLEEP_VETO
89#ifdef LOSCFG_LOWPOWER_SLEEP_DEBUG
94#ifdef LOSCFG_KERNEL_LIGHTSLEEP
97#ifdef LOSCFG_KERNEL_DEEPSLEEP
102#if defined(LOSCFG_LOWPOWER_SLEEP_DEBUG) || defined(LOSCFG_KERNEL_DEEPSLEEP)
105#if defined(LOSCFG_KERNEL_SMP) || defined(LOSCFG_KERNEL_DEEPSLEEP)
109#ifdef LOSCFG_KERNEL_DYN_FREQ
118#ifdef LOSCFG_KERNEL_DEEPSLEEP
119extern VOID OsLowpowerWakeupFromReset(
VOID);
122#if defined (LOSCFG_KERNEL_DEEPSLEEP) || defined (LOSCFG_KERNEL_TICKLESS)
123extern VOID OsSysTimeUpdate(
UINT32 sleepTicks);
126#ifdef LOSCFG_KERNEL_DYN_FREQ
129 return freq1 < freq2;
#define STATIC
Definition common_def.h:57
#define INLINE
Definition common_def.h:65
#define LOSCFG_KERNEL_CORE_NUM
Definition los_config.h:258
@ LOS_SLEEP_MAX
Definition los_lowpower.h:54
#define VOID
Definition los_typedef.h:88
volatile INT32 Atomic
Definition los_typedef.h:85
unsigned int UINT32
Definition los_typedef.h:52
size_t BOOL
Definition los_typedef.h:83
Definition los_lowpower_pri.h:85
UINT32 maxSleepTicks
Definition los_lowpower_pri.h:93
Definition los_spinlock.h:78