!384 对内核中menuconfig开关的宏使用#ifdef/#ifndef来做预编译判断
Merge pull request !384 from boxi/upload
This commit is contained in:
@@ -183,7 +183,7 @@ VOID OsWaitWakeTask(LosTaskCB *taskCB, UINT32 wakePID)
|
||||
{
|
||||
taskCB->waitID = wakePID;
|
||||
OsSchedTaskWake(taskCB);
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
LOS_MpSchedule(OS_MP_CPU_ALL);
|
||||
#endif
|
||||
}
|
||||
@@ -312,7 +312,7 @@ LITE_OS_SEC_TEXT VOID OsProcessResourcesToFree(LosProcessCB *processCB)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (LOSCFG_KERNEL_LITEIPC == YES)
|
||||
#ifdef LOSCFG_KERNEL_LITEIPC
|
||||
if (OsProcessIsUserMode(processCB)) {
|
||||
LiteIpcPoolDelete(&(processCB->ipcInfo));
|
||||
(VOID)memset_s(&(processCB->ipcInfo), sizeof(ProcIpcInfo), 0, sizeof(ProcIpcInfo));
|
||||
@@ -685,7 +685,7 @@ STATIC UINT32 OsProcessCreateInit(LosProcessCB *processCB, UINT32 flags, const C
|
||||
goto EXIT;
|
||||
}
|
||||
|
||||
#if (LOSCFG_KERNEL_LITEIPC == YES)
|
||||
#ifdef LOSCFG_KERNEL_LITEIPC
|
||||
if (OsProcessIsUserMode(processCB)) {
|
||||
ret = LiteIpcPoolInit(&(processCB->ipcInfo));
|
||||
if (ret != LOS_OK) {
|
||||
@@ -1294,7 +1294,7 @@ LITE_OS_SEC_TEXT UINT32 OsExecRecycleAndInit(LosProcessCB *processCB, const CHAR
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if (LOSCFG_KERNEL_LITEIPC == YES)
|
||||
#ifdef LOSCFG_KERNEL_LITEIPC
|
||||
ret = LiteIpcPoolInit(&(processCB->ipcInfo));
|
||||
if (ret != LOS_OK) {
|
||||
return LOS_NOK;
|
||||
@@ -1690,7 +1690,7 @@ STATIC UINT32 OsCopyProcessResources(UINT32 flags, LosProcessCB *child, LosProce
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if (LOSCFG_KERNEL_LITEIPC == YES)
|
||||
#ifdef LOSCFG_KERNEL_LITEIPC
|
||||
if (OsProcessIsUserMode(child)) {
|
||||
ret = LiteIpcPoolReInit(&child->ipcInfo, (const ProcIpcInfo *)(&run->ipcInfo));
|
||||
if (ret != LOS_OK) {
|
||||
|
||||
@@ -127,7 +127,7 @@ STATIC Percpu *OsFindIdleCpu(UINT16 *ildeCpuID)
|
||||
Percpu *idleCpu = OsPercpuGetByID(0);
|
||||
*ildeCpuID = 0;
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
UINT16 cpuID = 1;
|
||||
UINT32 nodeNum = idleCpu->taskSortLink.nodeNum + idleCpu->swtmrSortLink.nodeNum;
|
||||
|
||||
@@ -174,7 +174,7 @@ VOID OsAdd2SortLink(SortLinkList *node, UINT64 startTime, UINT32 waitTicks, Sort
|
||||
LOS_SpinLockSave(spinLock, &intSave);
|
||||
SET_SORTLIST_VALUE(node, startTime + (UINT64)waitTicks * OS_CYCLE_PER_TICK);
|
||||
OsAddNode2SortLink(sortLinkHeader, node);
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
node->cpuid = idleCpu;
|
||||
if (idleCpu != ArchCurrCpuid()) {
|
||||
LOS_MpSchedule(CPUID_TO_AFFI_MASK(idleCpu));
|
||||
@@ -186,7 +186,7 @@ VOID OsAdd2SortLink(SortLinkList *node, UINT64 startTime, UINT32 waitTicks, Sort
|
||||
VOID OsDeleteSortLink(SortLinkList *node, SortLinkType type)
|
||||
{
|
||||
UINT32 intSave;
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
Percpu *cpu = OsPercpuGetByID(node->cpuid);
|
||||
#else
|
||||
Percpu *cpu = OsPercpuGetByID(0);
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include "los_task_pri.h"
|
||||
|
||||
|
||||
#if (LOSCFG_BASE_CORE_SWTMR == YES)
|
||||
#ifdef LOSCFG_BASE_CORE_SWTMR_ENABLE
|
||||
#if (LOSCFG_BASE_CORE_SWTMR_LIMIT <= 0)
|
||||
#error "swtmr maxnum cannot be zero"
|
||||
#endif /* LOSCFG_BASE_CORE_SWTMR_LIMIT <= 0 */
|
||||
@@ -84,7 +84,7 @@ LITE_OS_SEC_TEXT_INIT UINT32 OsSwtmrTaskCreate(VOID)
|
||||
swtmrTask.pcName = "Swt_Task";
|
||||
swtmrTask.usTaskPrio = 0;
|
||||
swtmrTask.uwResved = LOS_TASK_STATUS_DETACHED;
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
swtmrTask.usCpuAffiMask = CPUID_TO_AFFI_MASK(cpuid);
|
||||
#endif
|
||||
ret = LOS_TaskCreate(&swtmrTaskID, &swtmrTask);
|
||||
@@ -533,4 +533,4 @@ LITE_OS_SEC_TEXT UINT32 LOS_SwtmrDelete(UINT16 swtmrID)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* LOSCFG_BASE_CORE_SWTMR */
|
||||
#endif /* LOSCFG_BASE_CORE_SWTMR_ENABLE */
|
||||
|
||||
+21
-21
@@ -51,10 +51,10 @@
|
||||
#ifdef LOSCFG_KERNEL_CPUP
|
||||
#include "los_cpup_pri.h"
|
||||
#endif
|
||||
#if (LOSCFG_BASE_CORE_SWTMR == YES)
|
||||
#ifdef LOSCFG_BASE_CORE_SWTMR_ENABLE
|
||||
#include "los_swtmr_pri.h"
|
||||
#endif
|
||||
#if (LOSCFG_KERNEL_LITEIPC == YES)
|
||||
#ifdef LOSCFG_KERNEL_LITEIPC
|
||||
#include "hm_liteipc.h"
|
||||
#endif
|
||||
#ifdef LOSCFG_ENABLE_OOM_LOOP_TASK
|
||||
@@ -98,7 +98,7 @@ VOID OsSetMainTask()
|
||||
g_mainTask[i].taskStatus = OS_TASK_STATUS_UNUSED;
|
||||
g_mainTask[i].taskID = LOSCFG_BASE_CORE_TSK_LIMIT;
|
||||
g_mainTask[i].priority = OS_TASK_PRIORITY_LOWEST;
|
||||
#if (LOSCFG_KERNEL_SMP_LOCKDEP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP_LOCKDEP
|
||||
g_mainTask[i].lockDep.lockDepth = 0;
|
||||
g_mainTask[i].lockDep.waitLock = NULL;
|
||||
#endif
|
||||
@@ -208,7 +208,7 @@ LITE_OS_SEC_TEXT_INIT UINT32 OsTaskInit(VOID)
|
||||
LOS_ListTailInsert(&g_losFreeTask, &g_taskCBArray[index].pendList);
|
||||
}
|
||||
|
||||
#if (LOSCFG_KERNEL_TRACE == YES)
|
||||
#ifdef LOSCFG_KERNEL_TRACE
|
||||
LOS_TraceReg(LOS_TRACE_TASK, OsTaskTrace, LOS_TRACE_TASK_NAME, LOS_TRACE_ENABLE);
|
||||
#endif
|
||||
|
||||
@@ -240,7 +240,7 @@ LITE_OS_SEC_TEXT_INIT UINT32 OsIdleTaskCreate(VOID)
|
||||
taskInitParam.pcName = "Idle";
|
||||
taskInitParam.usTaskPrio = OS_TASK_PRIORITY_LOWEST;
|
||||
taskInitParam.processID = OsGetIdleProcessID();
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
taskInitParam.usCpuAffiMask = CPUID_TO_AFFI_MASK(ArchCurrCpuid());
|
||||
#endif
|
||||
ret = LOS_TaskCreateOnly(idleTaskID, &taskInitParam);
|
||||
@@ -381,7 +381,7 @@ LITE_OS_SEC_TEXT_INIT STATIC VOID OsTaskStackAlloc(VOID **topStack, UINT32 stack
|
||||
|
||||
STATIC INLINE UINT32 OsTaskSyncCreate(LosTaskCB *taskCB)
|
||||
{
|
||||
#if (LOSCFG_KERNEL_SMP_TASK_SYNC == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP_TASK_SYNC
|
||||
UINT32 ret = LOS_SemCreate(0, &taskCB->syncSignal);
|
||||
if (ret != LOS_OK) {
|
||||
return LOS_ERRNO_TSK_MP_SYNC_RESOURCE;
|
||||
@@ -394,7 +394,7 @@ STATIC INLINE UINT32 OsTaskSyncCreate(LosTaskCB *taskCB)
|
||||
|
||||
STATIC INLINE VOID OsTaskSyncDestroy(UINT32 syncSignal)
|
||||
{
|
||||
#if (LOSCFG_KERNEL_SMP_TASK_SYNC == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP_TASK_SYNC
|
||||
(VOID)LOS_SemDelete(syncSignal);
|
||||
#else
|
||||
(VOID)syncSignal;
|
||||
@@ -403,7 +403,7 @@ STATIC INLINE VOID OsTaskSyncDestroy(UINT32 syncSignal)
|
||||
|
||||
LITE_OS_SEC_TEXT UINT32 OsTaskSyncWait(const LosTaskCB *taskCB)
|
||||
{
|
||||
#if (LOSCFG_KERNEL_SMP_TASK_SYNC == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP_TASK_SYNC
|
||||
UINT32 ret = LOS_OK;
|
||||
|
||||
LOS_ASSERT(LOS_SpinHeld(&g_taskSpin));
|
||||
@@ -428,7 +428,7 @@ LITE_OS_SEC_TEXT UINT32 OsTaskSyncWait(const LosTaskCB *taskCB)
|
||||
|
||||
STATIC INLINE VOID OsTaskSyncWake(const LosTaskCB *taskCB)
|
||||
{
|
||||
#if (LOSCFG_KERNEL_SMP_TASK_SYNC == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP_TASK_SYNC
|
||||
(VOID)OsSemPostUnsafe(taskCB->syncSignal, NULL);
|
||||
#else
|
||||
(VOID)taskCB;
|
||||
@@ -485,7 +485,7 @@ LITE_OS_SEC_TEXT VOID OsTaskResourcesToFree(LosTaskCB *taskCB)
|
||||
processCB->processID, taskCB->taskID, mapBase, mapSize, ret);
|
||||
}
|
||||
|
||||
#if (LOSCFG_KERNEL_LITEIPC == YES)
|
||||
#ifdef LOSCFG_KERNEL_LITEIPC
|
||||
LiteIpcRemoveServiceHandle(taskCB);
|
||||
#endif
|
||||
}
|
||||
@@ -494,7 +494,7 @@ LITE_OS_SEC_TEXT VOID OsTaskResourcesToFree(LosTaskCB *taskCB)
|
||||
if (taskCB->taskStatus & OS_TASK_STATUS_UNUSED) {
|
||||
topOfStack = taskCB->topOfStack;
|
||||
taskCB->topOfStack = 0;
|
||||
#if (LOSCFG_KERNEL_SMP_TASK_SYNC == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP_TASK_SYNC
|
||||
syncSignal = taskCB->syncSignal;
|
||||
taskCB->syncSignal = LOSCFG_BASE_IPC_SEM_LIMIT;
|
||||
#endif
|
||||
@@ -523,12 +523,12 @@ LITE_OS_SEC_TEXT_INIT STATIC VOID OsTaskCBInitBase(LosTaskCB *taskCB,
|
||||
taskCB->taskEntry = initParam->pfnTaskEntry;
|
||||
taskCB->signal = SIGNAL_NONE;
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
taskCB->currCpu = OS_TASK_INVALID_CPUID;
|
||||
taskCB->cpuAffiMask = (initParam->usCpuAffiMask) ?
|
||||
initParam->usCpuAffiMask : LOSCFG_KERNEL_CPU_MASK;
|
||||
#endif
|
||||
#if (LOSCFG_KERNEL_LITEIPC == YES)
|
||||
#ifdef LOSCFG_KERNEL_LITEIPC
|
||||
LOS_ListInit(&(taskCB->msgListHead));
|
||||
#endif
|
||||
taskCB->policy = (initParam->policy == LOS_SCHED_FIFO) ? LOS_SCHED_FIFO : LOS_SCHED_RR;
|
||||
@@ -654,7 +654,7 @@ LITE_OS_SEC_TEXT_INIT UINT32 LOS_TaskCreateOnly(UINT32 *taskID, TSK_INIT_PARAM_S
|
||||
LOS_ERREND_TCB_INIT:
|
||||
(VOID)LOS_MemFree(pool, topStack);
|
||||
LOS_ERREND_REWIND_SYNC:
|
||||
#if (LOSCFG_KERNEL_SMP_TASK_SYNC == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP_TASK_SYNC
|
||||
OsTaskSyncDestroy(taskCB->syncSignal);
|
||||
#endif
|
||||
LOS_ERREND_REWIND_TCB:
|
||||
@@ -769,7 +769,7 @@ LITE_OS_SEC_TEXT_INIT STATIC BOOL OsTaskSuspendCheckOnRun(LosTaskCB *taskCB, UIN
|
||||
/* init default out return value */
|
||||
*ret = LOS_OK;
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
/* ASYNCHRONIZED. No need to do task lock checking */
|
||||
if (taskCB->currCpu != ArchCurrCpuid()) {
|
||||
taskCB->signal = SIGNAL_SUSPEND;
|
||||
@@ -909,7 +909,7 @@ STATIC BOOL OsRunTaskToDeleteCheckOnRun(LosTaskCB *taskCB, UINT32 *ret)
|
||||
/* init default out return value */
|
||||
*ret = LOS_OK;
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
/* ASYNCHRONIZED. No need to do task lock checking */
|
||||
if (taskCB->currCpu != ArchCurrCpuid()) {
|
||||
/*
|
||||
@@ -994,7 +994,7 @@ LITE_OS_SEC_TEXT UINT32 OsTaskDeleteUnsafe(LosTaskCB *taskCB, UINT32 status, UIN
|
||||
SCHEDULER_LOCK(intSave);
|
||||
}
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
LOS_ASSERT(OsPercpuGet()->taskLockCnt == 1);
|
||||
#else
|
||||
LOS_ASSERT(OsPercpuGet()->taskLockCnt == 0);
|
||||
@@ -1235,7 +1235,7 @@ LITE_OS_SEC_TEXT_MINOR UINT32 LOS_TaskInfoGet(UINT32 taskID, TSK_INFO_S *taskInf
|
||||
|
||||
LITE_OS_SEC_TEXT BOOL OsTaskCpuAffiSetUnsafe(UINT32 taskID, UINT16 newCpuAffiMask, UINT16 *oldCpuAffiMask)
|
||||
{
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
LosTaskCB *taskCB = OS_TCB_FROM_TID(taskID);
|
||||
|
||||
taskCB->cpuAffiMask = newCpuAffiMask;
|
||||
@@ -1286,7 +1286,7 @@ LITE_OS_SEC_TEXT_MINOR UINT32 LOS_TaskCpuAffiSet(UINT32 taskID, UINT16 cpuAffiMa
|
||||
|
||||
LITE_OS_SEC_TEXT_MINOR UINT16 LOS_TaskCpuAffiGet(UINT32 taskID)
|
||||
{
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
#define INVALID_CPU_AFFI_MASK 0
|
||||
LosTaskCB *taskCB = NULL;
|
||||
UINT16 cpuAffiMask;
|
||||
@@ -1346,7 +1346,7 @@ LITE_OS_SEC_TEXT_MINOR VOID OsTaskProcSignal(VOID)
|
||||
|
||||
/* suspend killed task may fail, ignore the result */
|
||||
(VOID)LOS_TaskSuspend(runTask->taskID);
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
} else if (runTask->signal & SIGNAL_AFFI) {
|
||||
runTask->signal &= ~SIGNAL_AFFI;
|
||||
|
||||
@@ -1406,7 +1406,7 @@ STATIC VOID OsExitGroupActiveTaskKilled(LosProcessCB *processCB, LosTaskCB *task
|
||||
INT32 ret;
|
||||
|
||||
taskCB->taskStatus |= OS_TASK_FLAG_EXIT_KILL;
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
/* The other core that the thread is running on and is currently running in a non-system call */
|
||||
if (!taskCB->sig.sigIntLock && (taskCB->taskStatus & OS_TASK_STATUS_RUNNING)) {
|
||||
taskCB->signal = SIGNAL_KILL;
|
||||
|
||||
@@ -57,7 +57,7 @@ LITE_OS_SEC_TEXT VOID OsTickHandler(VOID)
|
||||
OsVdsoTimevalUpdate();
|
||||
#endif
|
||||
|
||||
#if (LOSCFG_BASE_CORE_TICK_HW_TIME == YES)
|
||||
#ifdef LOSCFG_BASE_CORE_TICK_HW_TIME
|
||||
HalClockIrqClear(); /* diff from every platform */
|
||||
#endif
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
typedef enum {
|
||||
CPU_RUNNING = 0, /* cpu is running */
|
||||
CPU_HALT, /* cpu in the halt */
|
||||
@@ -66,7 +66,7 @@ typedef struct {
|
||||
UINT32 swtmrTaskID; /* software timer task id */
|
||||
|
||||
UINT32 schedFlag; /* pending scheduler flag */
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
UINT32 excFlag; /* cpu halt or exc flag */
|
||||
#endif
|
||||
} Percpu;
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#include "los_sem_pri.h"
|
||||
#include "los_process.h"
|
||||
#include "los_vm_map.h"
|
||||
#if (LOSCFG_KERNEL_LITEIPC == YES)
|
||||
#ifdef LOSCFG_KERNEL_LITEIPC
|
||||
#include "hm_liteipc.h"
|
||||
#endif
|
||||
#ifdef LOSCFG_SECURITY_CAPABILITY
|
||||
@@ -96,12 +96,12 @@ typedef struct ProcessCB {
|
||||
volatile UINT32 threadNumber; /**< Number of threads alive under this process */
|
||||
UINT32 threadCount; /**< Total number of threads created under this process */
|
||||
LOS_DL_LIST waitList; /**< The process holds the waitLits to support wait/waitpid */
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
UINT32 timerCpu; /**< CPU core number of this task is delayed or pended */
|
||||
#endif
|
||||
UINTPTR sigHandler; /**< Signal handler */
|
||||
sigset_t sigShare; /**< Signal share bit */
|
||||
#if (LOSCFG_KERNEL_LITEIPC == YES)
|
||||
#ifdef LOSCFG_KERNEL_LITEIPC
|
||||
ProcIpcInfo ipcInfo; /**< Memory pool for lite ipc */
|
||||
#endif
|
||||
#ifdef LOSCFG_KERNEL_VM
|
||||
|
||||
@@ -112,7 +112,7 @@ STATIC INLINE BOOL OsPreemptableInSched(VOID)
|
||||
{
|
||||
BOOL preemptable = FALSE;
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
/*
|
||||
* For smp systems, schedule must hold the task spinlock, and this counter
|
||||
* will increase by 1 in that case.
|
||||
|
||||
@@ -50,7 +50,7 @@ typedef enum {
|
||||
typedef struct {
|
||||
LOS_DL_LIST sortLinkNode;
|
||||
UINT64 responseTime;
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
UINT32 cpuid;
|
||||
#endif
|
||||
} SortLinkList;
|
||||
|
||||
@@ -344,14 +344,14 @@ typedef struct {
|
||||
INT32 errorNo; /**< Error Num */
|
||||
UINT32 signal; /**< Task signal */
|
||||
sig_cb sig;
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
UINT16 currCpu; /**< CPU core number of this task is running on */
|
||||
UINT16 lastCpu; /**< CPU core number of this task is running on last time */
|
||||
UINT16 cpuAffiMask; /**< CPU affinity mask, support up to 16 cores */
|
||||
#if (LOSCFG_KERNEL_SMP_TASK_SYNC == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP_TASK_SYNC
|
||||
UINT32 syncSignal; /**< Synchronization for signal handling */
|
||||
#endif
|
||||
#if (LOSCFG_KERNEL_SMP_LOCKDEP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP_LOCKDEP
|
||||
LockDep lockDep;
|
||||
#endif
|
||||
#endif
|
||||
@@ -368,7 +368,7 @@ typedef struct {
|
||||
UINTPTR waitID; /**< Wait for the PID or GID of the child process */
|
||||
UINT16 waitFlag; /**< The type of child process that is waiting, belonging to a group or parent,
|
||||
a specific child process, or any child process */
|
||||
#if (LOSCFG_KERNEL_LITEIPC == YES)
|
||||
#ifdef LOSCFG_KERNEL_LITEIPC
|
||||
UINT32 ipcStatus;
|
||||
LOS_DL_LIST msgListHead;
|
||||
BOOL accessMap[LOSCFG_BASE_CORE_TSK_LIMIT];
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
#include "los_mp.h"
|
||||
#include "los_percpu_pri.h"
|
||||
#include "los_sched_pri.h"
|
||||
#if (LOSCFG_BASE_CORE_SWTMR == YES)
|
||||
#ifdef LOSCFG_BASE_CORE_SWTMR_ENABLE
|
||||
#include "los_exc.h"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include "los_sched_pri.h"
|
||||
|
||||
|
||||
#if (LOSCFG_BASE_IPC_MUX == YES)
|
||||
#ifdef LOSCFG_BASE_IPC_MUX
|
||||
#define MUTEXATTR_TYPE_MASK 0x0FU
|
||||
|
||||
LITE_OS_SEC_TEXT UINT32 LOS_MuxAttrInit(LosMuxAttr *attr)
|
||||
@@ -560,5 +560,5 @@ LITE_OS_SEC_TEXT UINT32 LOS_MuxUnlock(LosMux *mutex)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* (LOSCFG_BASE_IPC_MUX == YES) */
|
||||
#endif /* LOSCFG_BASE_IPC_MUX */
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include "los_percpu_pri.h"
|
||||
|
||||
|
||||
#if (LOSCFG_BASE_IPC_QUEUE == YES)
|
||||
#ifdef LOSCFG_BASE_IPC_QUEUE
|
||||
#if (LOSCFG_BASE_IPC_QUEUE_LIMIT <= 0)
|
||||
#error "queue maxnum cannot be zero"
|
||||
#endif /* LOSCFG_BASE_IPC_QUEUE_LIMIT <= 0 */
|
||||
@@ -493,5 +493,5 @@ QUEUE_END:
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* (LOSCFG_BASE_IPC_QUEUE == YES) */
|
||||
#endif /* LOSCFG_BASE_IPC_QUEUE */
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#include "los_percpu_pri.h"
|
||||
|
||||
|
||||
#if (LOSCFG_BASE_IPC_SEM == YES)
|
||||
#ifdef LOSCFG_BASE_IPC_SEM
|
||||
|
||||
#if (LOSCFG_BASE_IPC_SEM_LIMIT <= 0)
|
||||
#error "sem maxnum cannot be zero"
|
||||
@@ -283,5 +283,5 @@ LITE_OS_SEC_TEXT UINT32 LOS_SemPost(UINT32 semHandle)
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif /* (LOSCFG_BASE_IPC_SEM == YES) */
|
||||
#endif /* LOSCFG_BASE_IPC_SEM */
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@ struct OsMemPoolInfo {
|
||||
VOID *pool;
|
||||
UINT32 totalSize;
|
||||
UINT32 attr;
|
||||
#if defined(OS_MEM_WATERLINE) && (OS_MEM_WATERLINE == YES)
|
||||
#ifdef LOSCFG_MEM_WATERLINE
|
||||
UINT32 waterLine; /* Maximum usage size in a memory pool */
|
||||
UINT32 curUsedSize; /* Current usage size in a memory pool */
|
||||
#endif
|
||||
@@ -230,7 +230,7 @@ STATIC INLINE VOID OsMemNodeSetTaskID(struct OsMemUsedNodeHead *node)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(OS_MEM_WATERLINE) && (OS_MEM_WATERLINE == YES)
|
||||
#ifdef LOSCFG_MEM_WATERLINE
|
||||
STATIC INLINE VOID OsMemWaterUsedRecord(struct OsMemPoolHead *pool, UINT32 size)
|
||||
{
|
||||
pool->info.curUsedSize += size;
|
||||
@@ -775,7 +775,7 @@ STATIC UINT32 OsMemPoolInit(VOID *pool, UINT32 size)
|
||||
endNode->ptr.prev = newNode;
|
||||
OS_MEM_NODE_SET_USED_FLAG(endNode->sizeAndFlag);
|
||||
#endif
|
||||
#if defined(OS_MEM_WATERLINE) && (OS_MEM_WATERLINE == YES)
|
||||
#ifdef LOSCFG_MEM_WATERLINE
|
||||
poolHead->info.curUsedSize = sizeof(struct OsMemPoolHead) + OS_MEM_NODE_HEAD_SIZE;
|
||||
poolHead->info.waterLine = poolHead->info.curUsedSize;
|
||||
#endif
|
||||
@@ -1171,7 +1171,7 @@ STATIC INLINE UINT32 OsMemFree(struct OsMemPoolHead *pool, struct OsMemNodeHead
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if defined(OS_MEM_WATERLINE) && (OS_MEM_WATERLINE == YES)
|
||||
#ifdef LOSCFG_MEM_WATERLINE
|
||||
pool->info.curUsedSize -= OS_MEM_NODE_GET_SIZE(node->sizeAndFlag);
|
||||
#endif
|
||||
|
||||
@@ -1256,14 +1256,14 @@ UINT32 LOS_MemFree(VOID *pool, VOID *ptr)
|
||||
|
||||
STATIC INLINE VOID OsMemReAllocSmaller(VOID *pool, UINT32 allocSize, struct OsMemNodeHead *node, UINT32 nodeSize)
|
||||
{
|
||||
#if defined(OS_MEM_WATERLINE) && (OS_MEM_WATERLINE == YES)
|
||||
#ifdef LOSCFG_MEM_WATERLINE
|
||||
struct OsMemPoolHead *poolInfo = (struct OsMemPoolHead *)pool;
|
||||
#endif
|
||||
node->sizeAndFlag = nodeSize;
|
||||
if ((allocSize + OS_MEM_NODE_HEAD_SIZE + OS_MEM_MIN_ALLOC_SIZE) <= nodeSize) {
|
||||
OsMemSplitNode(pool, node, allocSize);
|
||||
OS_MEM_NODE_SET_USED_FLAG(node->sizeAndFlag);
|
||||
#if defined(OS_MEM_WATERLINE) && (OS_MEM_WATERLINE == YES)
|
||||
#ifdef LOSCFG_MEM_WATERLINE
|
||||
poolInfo->info.curUsedSize -= nodeSize - allocSize;
|
||||
#endif
|
||||
}
|
||||
@@ -1603,7 +1603,7 @@ STATIC VOID OsMemPoolHeadCheck(const struct OsMemPoolHead *pool)
|
||||
OUT:
|
||||
if (flag) {
|
||||
PRINTK("mem pool info: poolAddr: %#x, poolSize: 0x%x\n", pool, pool->info.totalSize);
|
||||
#if defined(OS_MEM_WATERLINE) && (OS_MEM_WATERLINE == YES)
|
||||
#ifdef LOSCFG_MEM_WATERLINE
|
||||
PRINTK("mem pool info: poolWaterLine: 0x%x, poolCurUsedSize: 0x%x\n", pool->info.waterLine,
|
||||
pool->info.curUsedSize);
|
||||
#endif
|
||||
@@ -1844,7 +1844,7 @@ UINT32 LOS_MemInfoGet(VOID *pool, LOS_MEM_POOL_STATUS *poolStatus)
|
||||
OsMemInfoGet(poolInfo, tmpNode, poolStatus);
|
||||
}
|
||||
#endif
|
||||
#if defined(OS_MEM_WATERLINE) && (OS_MEM_WATERLINE == YES)
|
||||
#ifdef LOSCFG_MEM_WATERLINE
|
||||
poolStatus->usageWaterLine = poolInfo->info.waterLine;
|
||||
#endif
|
||||
MEM_UNLOCK(poolInfo, intSave);
|
||||
@@ -1861,7 +1861,7 @@ STATIC VOID OsMemInfoPrint(VOID *pool)
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(OS_MEM_WATERLINE) && (OS_MEM_WATERLINE == YES)
|
||||
#ifdef LOSCFG_MEM_WATERLINE
|
||||
PRINTK("pool addr pool size used size free size "
|
||||
"max free node size used node num free node num UsageWaterLine\n");
|
||||
PRINTK("--------------- -------- ------- -------- "
|
||||
|
||||
@@ -119,9 +119,21 @@ UINT32 OsShellCmdSwtmrCntGet(VOID)
|
||||
LITE_OS_SEC_TEXT_MINOR VOID OsShellCmdSystemInfoGet(VOID)
|
||||
{
|
||||
UINT8 isTaskEnable = YES;
|
||||
UINT8 isSemEnable = LOSCFG_BASE_IPC_SEM;
|
||||
UINT8 isQueueEnable = LOSCFG_BASE_IPC_QUEUE;
|
||||
UINT8 isSwtmrEnable = LOSCFG_BASE_CORE_SWTMR;
|
||||
#ifdef LOSCFG_BASE_IPC_SEM
|
||||
UINT8 isSemEnable = YES;
|
||||
#else
|
||||
UINT8 isSemEnable = NO;
|
||||
#endif
|
||||
#ifdef LOSCFG_BASE_IPC_QUEUE
|
||||
UINT8 isQueueEnable = YES;
|
||||
#else
|
||||
UINT8 isQueueEnable = NO;
|
||||
#endif
|
||||
#ifdef LOSCFG_BASE_CORE_SWTMR_ENABLE
|
||||
UINT8 isSwtmrEnable = YES;
|
||||
#else
|
||||
UINT8 isSwtmrEnable = NO;
|
||||
#endif
|
||||
|
||||
PRINTK("\n Module Used Total Enabled\n");
|
||||
PRINTK("--------------------------------------------\n");
|
||||
|
||||
@@ -428,7 +428,7 @@ EXIT:
|
||||
STATIC VOID OsShellCmdTskInfoTitle(VOID *seqBuf, UINT16 flag)
|
||||
{
|
||||
PROCESS_INFO_SHOW(seqBuf, "\r\n TID PID ");
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
PROCESS_INFO_SHOW(seqBuf, "Affi CPU ");
|
||||
#endif
|
||||
PROCESS_INFO_SHOW(seqBuf, " Status StackSize WaterLine ");
|
||||
@@ -456,7 +456,7 @@ STATIC INLINE VOID OsShellTskInfoData(const LosTaskCB *taskCB, VOID *seqBuf, UIN
|
||||
#endif
|
||||
PROCESS_INFO_SHOW(seqBuf, " %4u%5u", taskCB->taskID, taskCB->processID);
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
PROCESS_INFO_SHOW(seqBuf, "%#5x%4d ", taskCB->cpuAffiMask, (INT16)(taskCB->currCpu));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
#include "los_exc.h"
|
||||
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP_LOCKDEP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP_LOCKDEP
|
||||
|
||||
#define LOCKDEP_GET_NAME(lockDep, index) (((SPIN_LOCK_S *)((lockDep)->heldLocks[(index)].lockPtr))->name)
|
||||
#define LOCKDEP_GET_ADDR(lockDep, index) ((lockDep)->heldLocks[(index)].lockAddr)
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#include "los_swtmr.h"
|
||||
#include "los_task_pri.h"
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
|
||||
VOID LOS_MpSchedule(UINT32 target)
|
||||
{
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
*/
|
||||
|
||||
#include "los_spinlock.h"
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
#include "los_sched_pri.h"
|
||||
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
#include "los_task_pri.h"
|
||||
|
||||
|
||||
#if (LOSCFG_KERNEL_SCHED_STATISTICS == YES)
|
||||
#ifdef LOSCFG_KERNEL_SCHED_STATISTICS
|
||||
#define HIGHTASKPRI 16
|
||||
#define NS_PER_MS 1000000
|
||||
#define DECIMAL_TO_PERCENTAGE 100
|
||||
@@ -212,7 +212,7 @@ LITE_OS_SEC_TEXT_MINOR VOID OsShellMpStaticStart(VOID)
|
||||
for (loop = 0; loop < g_taskMaxNum; loop++) {
|
||||
taskCB = (((LosTaskCB *)g_taskCBArray) + loop);
|
||||
if (taskCB->taskStatus & OS_TASK_STATUS_RUNNING) {
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
cpuid = taskCB->currCpu;
|
||||
#endif
|
||||
if ((UINT32)(OS_TASK_INVALID_CPUID) == cpuid) {
|
||||
@@ -293,7 +293,7 @@ LITE_OS_SEC_TEXT_MINOR VOID OsShellMpStaticStop(VOID)
|
||||
for (loop = 0; loop < g_taskMaxNum; loop++) {
|
||||
taskCB = (((LosTaskCB *)g_taskCBArray) + loop);
|
||||
if (taskCB->taskStatus & OS_TASK_STATUS_RUNNING) {
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
cpuid = taskCB->currCpu;
|
||||
#endif
|
||||
if (cpuid == (UINT32)(OS_TASK_INVALID_CPUID)) {
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
#endif
|
||||
#include "los_hw_tick_pri.h"
|
||||
#include "los_tick_pri.h"
|
||||
#if (LOSCFG_BASE_CORE_TSK_MONITOR == YES)
|
||||
#ifdef LOSCFG_BASE_CORE_TSK_MONITOR
|
||||
#include "los_stackinfo_pri.h"
|
||||
#endif
|
||||
#include "los_mp.h"
|
||||
@@ -443,7 +443,7 @@ STATIC INLINE VOID OsSchedWakePendTimeTask(UINT64 currTime, LosTaskCB *taskCB, B
|
||||
if (tempStatus & (OS_TASK_STATUS_PENDING | OS_TASK_STATUS_DELAY)) {
|
||||
taskCB->taskStatus &= ~(OS_TASK_STATUS_PENDING | OS_TASK_STATUS_PEND_TIME | OS_TASK_STATUS_DELAY);
|
||||
if (tempStatus & OS_TASK_STATUS_PENDING) {
|
||||
#if (LOSCFG_KERNEL_LITEIPC == YES)
|
||||
#ifdef LOSCFG_KERNEL_LITEIPC
|
||||
taskCB->ipcStatus &= ~IPC_THREAD_STATUS_PEND;
|
||||
#endif
|
||||
taskCB->taskStatus |= OS_TASK_STATUS_TIMEOUT;
|
||||
@@ -819,7 +819,7 @@ STATIC LosTaskCB *OsGetTopTask(VOID)
|
||||
UINT32 bitmap;
|
||||
LosTaskCB *newTask = NULL;
|
||||
UINT32 processBitmap = g_sched->queueBitmap;
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
UINT32 cpuid = ArchCurrCpuid();
|
||||
#endif
|
||||
|
||||
@@ -830,11 +830,11 @@ STATIC LosTaskCB *OsGetTopTask(VOID)
|
||||
while (bitmap) {
|
||||
priority = CLZ(bitmap);
|
||||
LOS_DL_LIST_FOR_EACH_ENTRY(newTask, &queueList->priQueueList[priority], LosTaskCB, pendList) {
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
if (newTask->cpuAffiMask & (1U << cpuid)) {
|
||||
#endif
|
||||
goto FIND_TASK;
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -869,7 +869,7 @@ VOID OsSchedStart(VOID)
|
||||
OsSchedSetStartTime(HalClockGetCycles());
|
||||
newTask->startTime = OsGerCurrSchedTimeCycle();
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
/*
|
||||
* attention: current cpu needs to be set, in case first task deletion
|
||||
* may fail because this flag mismatch with the real current cpu.
|
||||
@@ -889,7 +889,7 @@ VOID OsSchedStart(VOID)
|
||||
OsTaskContextLoad(newTask);
|
||||
}
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
VOID OsSchedToUserReleaseLock(VOID)
|
||||
{
|
||||
/* The scheduling lock needs to be released before returning to user mode */
|
||||
@@ -900,7 +900,7 @@ VOID OsSchedToUserReleaseLock(VOID)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (LOSCFG_BASE_CORE_TSK_MONITOR == YES)
|
||||
#ifdef LOSCFG_BASE_CORE_TSK_MONITOR
|
||||
STATIC VOID OsTaskStackCheck(LosTaskCB *runTask, LosTaskCB *newTask)
|
||||
{
|
||||
if (!OS_STACK_MAGIC_CHECK(runTask->topOfStack)) {
|
||||
@@ -917,9 +917,9 @@ STATIC VOID OsTaskStackCheck(LosTaskCB *runTask, LosTaskCB *newTask)
|
||||
|
||||
STATIC INLINE VOID OsSchedSwitchCheck(LosTaskCB *runTask, LosTaskCB *newTask)
|
||||
{
|
||||
#if (LOSCFG_BASE_CORE_TSK_MONITOR == YES)
|
||||
#ifdef LOSCFG_BASE_CORE_TSK_MONITOR
|
||||
OsTaskStackCheck(runTask, newTask);
|
||||
#endif /* LOSCFG_BASE_CORE_TSK_MONITOR == YES */
|
||||
#endif /* LOSCFG_BASE_CORE_TSK_MONITOR */
|
||||
|
||||
OsTraceTaskSchedule(newTask, runTask);
|
||||
}
|
||||
@@ -955,7 +955,7 @@ STATIC VOID OsSchedTaskSwicth(LosTaskCB *runTask, LosTaskCB *newTask)
|
||||
runTask->taskStatus &= ~OS_TASK_STATUS_RUNNING;
|
||||
newTask->taskStatus |= OS_TASK_STATUS_RUNNING;
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
/* mask new running task's owner processor */
|
||||
runTask->currCpu = OS_TASK_INVALID_CPUID;
|
||||
newTask->currCpu = ArchCurrCpuid();
|
||||
@@ -1043,7 +1043,7 @@ VOID OsSchedIrqEndCheckNeedSched(VOID)
|
||||
VOID OsSchedResched(VOID)
|
||||
{
|
||||
LOS_ASSERT(LOS_SpinHeld(&g_taskSpin));
|
||||
#if (LOSCFG_KERNEL_SMP == YES)
|
||||
#ifdef LOSCFG_KERNEL_SMP
|
||||
LOS_ASSERT(OsPercpuGet()->taskLockCnt == 1);
|
||||
#else
|
||||
LOS_ASSERT(OsPercpuGet()->taskLockCnt == 0);
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
#include "los_vm_phys.h"
|
||||
#include "los_vm_filemap.h"
|
||||
#include "los_process_pri.h"
|
||||
#if (LOSCFG_BASE_CORE_SWTMR == YES)
|
||||
#ifdef LOSCFG_BASE_CORE_SWTMR_ENABLE
|
||||
#include "los_swtmr_pri.h"
|
||||
#endif
|
||||
|
||||
@@ -55,12 +55,12 @@ LITE_OS_SEC_TEXT_MINOR STATIC UINT32 OomScoreProcess(LosProcessCB *candidateProc
|
||||
{
|
||||
UINT32 actualPm;
|
||||
|
||||
#if (LOSCFG_KERNEL_SMP != YES)
|
||||
#ifndef LOSCFG_KERNEL_SMP
|
||||
(VOID)LOS_MuxAcquire(&candidateProcess->vmSpace->regionMux);
|
||||
#endif
|
||||
/* we only consider actual physical memory here. */
|
||||
OsUProcessPmUsage(candidateProcess->vmSpace, NULL, &actualPm);
|
||||
#if (LOSCFG_KERNEL_SMP != YES)
|
||||
#ifndef LOSCFG_KERNEL_SMP
|
||||
(VOID)LOS_MuxRelease(&candidateProcess->vmSpace->regionMux);
|
||||
#endif
|
||||
return actualPm;
|
||||
|
||||
Reference in New Issue
Block a user