From caffe81339d25cf8c17cbe680d49f1143bbdda90 Mon Sep 17 00:00:00 2001 From: arvinzzz Date: Fri, 9 Apr 2021 10:05:57 +0800 Subject: [PATCH] IssueNo:#I3HGTM Description: Fix some macro definitions of limits.h. Feature or Bugfix: Bugfix Binary Source:NA Change-Id: I419c712f8605f8a0d2d6cb0b6c3831cea0e742e1 --- kal/posix/include/limits.h | 8 +++++--- kernel/include/los_config.h | 8 ++++++++ kernel/include/los_sem.h | 21 +++++++++++---------- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/kal/posix/include/limits.h b/kal/posix/include/limits.h index b71daa35..f77e3ed0 100644 --- a/kal/posix/include/limits.h +++ b/kal/posix/include/limits.h @@ -1,6 +1,8 @@ #ifndef _LIMITS_H #define _LIMITS_H +#include "los_config.h" + #ifdef __ICCARM__ /* for iar */ #define PATH_MAX 256 #define MQ_PRIO_MAX 1 @@ -73,9 +75,9 @@ #define PTHREAD_KEYS_MAX 128 #define PTHREAD_STACK_MIN LOSCFG_BASE_CORE_TSK_MIN_STACK_SIZE #define PTHREAD_DESTRUCTOR_ITERATIONS 4 -#define SEM_VALUE_MAX 0x7fffffff -#define SEM_NSEMS_MAX 256 -#define DELAYTIMER_MAX 0x7fffffff +#define SEM_VALUE_MAX OS_SEM_COUNTING_MAX_COUNT +#define SEM_NSEMS_MAX LOSCFG_BASE_IPC_SEM_LIMIT +#define DELAYTIMER_MAX 32 #define MQ_PRIO_MAX 1 #define LOGIN_NAME_MAX 256 diff --git a/kernel/include/los_config.h b/kernel/include/los_config.h index a4820a28..d3909f7f 100755 --- a/kernel/include/los_config.h +++ b/kernel/include/los_config.h @@ -268,6 +268,14 @@ extern "C" { #define LOSCFG_BASE_IPC_SEM_LIMIT 6 #endif +/** + * @ingroup los_config + * Maximum number of semaphores. + */ +#ifndef OS_SEM_COUNTING_MAX_COUNT +#define OS_SEM_COUNTING_MAX_COUNT 0xFFFF +#endif + /* ============================================================================= Mutex module configuration ============================================================================= */ diff --git a/kernel/include/los_sem.h b/kernel/include/los_sem.h index ebe148cb..3aadeef3 100644 --- a/kernel/include/los_sem.h +++ b/kernel/include/los_sem.h @@ -285,11 +285,6 @@ extern UINT32 LOS_SemPend(UINT32 semHandle, UINT32 timeout); */ extern UINT32 LOS_SemPost(UINT32 semHandle); -enum LosSemMaxCount { - OS_SEM_COUNTING_MAX_COUNT = 0xFFFF, /**< Max count of counting semaphores */ - OS_SEM_BINARY_MAX_COUNT = 1 /**< Max count of binary semaphores */ -}; - /** * @ingroup los_sem * Semaphore control structure. @@ -302,24 +297,30 @@ typedef struct { LOS_DL_LIST semList; /**< Queue of tasks that are waiting on a semaphore */ } LosSemCB; +/** + * @ingroup los_config + * Max count of binary semaphores. + */ +#define OS_SEM_BINARY_MAX_COUNT 1 + /** * @ingroup los_sem * The semaphore is not in use. - * */ -#define OS_SEM_UNUSED 0 +#define OS_SEM_UNUSED 0 + /** * @ingroup los_sem * The semaphore is used. - * */ -#define OS_SEM_USED 1 +#define OS_SEM_USED 1 + /** * @ingroup los_sem * Obtain the head node in a semaphore doubly linked list. - * */ #define GET_SEM_LIST(ptr) LOS_DL_LIST_ENTRY(ptr, LosSemCB, semList) + extern LosSemCB *g_allSem; /** * @ingroup los_sem