fix: 调度中将pm相关的部分用LOSCFG_KERNEL_PM包含

Close #I4L00F
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I0dbe0954dcb881c0079677c215aceb099d6d1b94
This commit is contained in:
zhushengle 2021-12-06 19:05:14 +08:00
parent cd31fc9a8b
commit d7c0059dc4
1 changed files with 11 additions and 2 deletions

View File

@ -34,7 +34,9 @@
#include "los_tick.h" #include "los_tick.h"
#include "los_debug.h" #include "los_debug.h"
#include "los_hook.h" #include "los_hook.h"
#if (LOSCFG_KERNEL_PM == 1)
#include "los_pm.h" #include "los_pm.h"
#endif
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
@ -221,13 +223,16 @@ STATIC INLINE VOID OsSchedSetNextExpireTime(UINT64 startTime, UINT32 responseID,
VOID OsSchedUpdateExpireTime(UINT64 startTime, BOOL timeUpdate) VOID OsSchedUpdateExpireTime(UINT64 startTime, BOOL timeUpdate)
{ {
UINT64 endTime; UINT64 endTime;
BOOL isPmMode = FALSE;
LosTaskCB *runTask = g_losTask.runTask; LosTaskCB *runTask = g_losTask.runTask;
if (!g_taskScheduled || g_tickIntLock) { if (!g_taskScheduled || g_tickIntLock) {
return; return;
} }
BOOL isPmMode = OsIsPmMode(); #if (LOSCFG_KERNEL_PM == 1)
isPmMode = OsIsPmMode();
#endif
if ((runTask->taskID != g_idleTaskID) && !isPmMode) { if ((runTask->taskID != g_idleTaskID) && !isPmMode) {
INT32 timeSlice = (runTask->timeSlice <= OS_TIME_SLICE_MIN) ? OS_SCHED_TIME_SLICES : runTask->timeSlice; INT32 timeSlice = (runTask->timeSlice <= OS_TIME_SLICE_MIN) ? OS_SCHED_TIME_SLICES : runTask->timeSlice;
endTime = startTime + timeSlice; endTime = startTime + timeSlice;
@ -443,11 +448,15 @@ STATIC VOID OsSchedUnfreezeTask(LosTaskCB *taskCB)
VOID OsSchedSuspend(LosTaskCB *taskCB) VOID OsSchedSuspend(LosTaskCB *taskCB)
{ {
BOOL isPmMode = FALSE;
if (taskCB->taskStatus & OS_TASK_STATUS_READY) { if (taskCB->taskStatus & OS_TASK_STATUS_READY) {
OsSchedTaskDeQueue(taskCB); OsSchedTaskDeQueue(taskCB);
} }
if ((taskCB->taskStatus & (OS_TASK_STATUS_PEND_TIME | OS_TASK_STATUS_DELAY)) && OsIsPmMode()) { #if (LOSCFG_KERNEL_PM == 1)
isPmMode = OsIsPmMode();
#endif
if ((taskCB->taskStatus & (OS_TASK_STATUS_PEND_TIME | OS_TASK_STATUS_DELAY)) && isPmMode) {
OsSchedFreezeTask(taskCB); OsSchedFreezeTask(taskCB);
} }