diff --git a/lib/posix/Kconfig b/lib/posix/Kconfig index 59414797328..199ed956af2 100644 --- a/lib/posix/Kconfig +++ b/lib/posix/Kconfig @@ -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" diff --git a/lib/posix/Kconfig.limits b/lib/posix/Kconfig.limits new file mode 100644 index 00000000000..cc651203961 --- /dev/null +++ b/lib/posix/Kconfig.limits @@ -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 diff --git a/lib/posix/signal.c b/lib/posix/signal.c index e1d7feab299..809ba84dc3a 100644 --- a/lib/posix/signal.c +++ b/lib/posix/signal.c @@ -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));