diff --git a/kal/posix/include/limits.h b/kal/posix/include/limits.h index b71daa354bb5d27b31d4f5b9ec04d99e6baa7068..f77e3ed097838aae86875716c0b745573c33ad3d 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 a4820a288e66ec3756d5f1c367a270d96bf3720a..d3909f7fe1c0cb607a128d29389e605ad1a3eed5 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 ebe148cbcd7109a46a7d90cd1dc567934c7ff2ee..3aadeef3836f0fb8bb4d8c4677dbc6c6433501e6 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