posix: signal: check RTSIG limit

Use build assert to make sure that the realtime signal
constants are configured properly in the Kconfig.

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
This commit is contained in:
Yong Cong Sin 2023-07-18 13:00:59 +08:00 committed by Chris Friedt
parent 5970543999
commit 43c549305b
3 changed files with 17 additions and 0 deletions

View File

@ -44,6 +44,7 @@ source "lib/posix/Kconfig.fnmatch"
source "lib/posix/Kconfig.fs"
source "lib/posix/Kconfig.getopt"
source "lib/posix/Kconfig.key"
source "lib/posix/Kconfig.limits"
source "lib/posix/Kconfig.mqueue"
source "lib/posix/Kconfig.mutex"
source "lib/posix/Kconfig.pthread"

13
lib/posix/Kconfig.limits Normal file
View File

@ -0,0 +1,13 @@
# Copyright (c) 2023 Meta
#
# SPDX-License-Identifier: Apache-2.0
if POSIX_SIGNAL
config POSIX_LIMITS_RTSIG_MAX
int "_POSIX_RTSIG_MAX value in limits.h"
default 8
help
Define the _POSIX_RTSIG_MAX value in limits.h.
IEEE 1003.1 defines this to be 8.
endif

View File

@ -13,6 +13,9 @@
#define SIGNO_WORD_IDX(_signo) (signo / BITS_PER_LONG)
#define SIGNO_WORD_BIT(_signo) (signo & BIT_MASK(LOG2(BITS_PER_LONG)))
BUILD_ASSERT(CONFIG_POSIX_LIMITS_RTSIG_MAX >= 0);
BUILD_ASSERT(CONFIG_POSIX_RTSIG_MAX >= CONFIG_POSIX_LIMITS_RTSIG_MAX);
static inline bool signo_valid(int signo)
{
return ((signo > 0) && (signo < _NSIG));