The branch main has been updated by fuz: URL: https://cgit.FreeBSD.org/src/commit/?id=7326bc7f9c14f86976a7769906b167ff96140809
commit 7326bc7f9c14f86976a7769906b167ff96140809 Author: Robert Clausecker <[email protected]> AuthorDate: 2025-11-19 12:29:58 +0000 Commit: Robert Clausecker <[email protected]> CommitDate: 2025-11-30 19:21:47 +0000 sys/limits.h: add C23 _WIDTH macros For compliance with IOS/IEC 9899:2024 ("C23"). These macros define the width in bits of the basic integer types. Another new macro, BITINT_MAXWIDTH, is not yet included as I do not understand what it should be set to. Perhaps it is compiler-specific. Approved by: markj (mentor) MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D53825 --- sys/arm/include/_limits.h | 3 +++ sys/arm64/include/_limits.h | 3 +++ sys/powerpc/include/_limits.h | 3 +++ sys/riscv/include/_limits.h | 3 +++ sys/sys/limits.h | 20 ++++++++++++++++++++ sys/x86/include/_limits.h | 3 +++ 6 files changed, 35 insertions(+) diff --git a/sys/arm/include/_limits.h b/sys/arm/include/_limits.h index 8cd48337508e..d6bcb09bda84 100644 --- a/sys/arm/include/_limits.h +++ b/sys/arm/include/_limits.h @@ -42,6 +42,9 @@ */ #define __CHAR_BIT 8 /* number of bits in a char */ +#define __SHRT_BIT 16 /* number of bits in a short */ +#define __INT_BIT 32 /* number of bits in an int */ +#define __LLONG_BIT 64 /* number of bits in a long long */ #define __SCHAR_MAX 0x7f /* max value for a signed char */ #define __SCHAR_MIN (-0x7f - 1) /* min value for a signed char */ diff --git a/sys/arm64/include/_limits.h b/sys/arm64/include/_limits.h index 08649b5c779d..aeb72dc19b09 100644 --- a/sys/arm64/include/_limits.h +++ b/sys/arm64/include/_limits.h @@ -41,6 +41,9 @@ */ #define __CHAR_BIT 8 /* number of bits in a char */ +#define __SHRT_BIT 16 /* number of bits in a short */ +#define __INT_BIT 32 /* number of bits in an int */ +#define __LLONG_BIT 64 /* number of bits in a long long */ #define __SCHAR_MAX 0x7f /* max value for a signed char */ #define __SCHAR_MIN (-0x7f - 1) /* min value for a signed char */ diff --git a/sys/powerpc/include/_limits.h b/sys/powerpc/include/_limits.h index 542248e51498..cae389ef0f36 100644 --- a/sys/powerpc/include/_limits.h +++ b/sys/powerpc/include/_limits.h @@ -42,6 +42,9 @@ */ #define __CHAR_BIT 8 /* number of bits in a char */ +#define __SHRT_BIT 16 /* number of bits in an short */ +#define __INT_BIT 32 /* number of bits in an int */ +#define __LLONG_BIT 64 /* number of bits in a long long */ #define __SCHAR_MAX 0x7f /* max value for a signed char */ #define __SCHAR_MIN (-0x7f - 1) /* min value for a signed char */ diff --git a/sys/riscv/include/_limits.h b/sys/riscv/include/_limits.h index 95e86c14e168..872e5b610e0c 100644 --- a/sys/riscv/include/_limits.h +++ b/sys/riscv/include/_limits.h @@ -37,6 +37,9 @@ */ #define __CHAR_BIT 8 /* number of bits in a char */ +#define __SHRT_BIT 16 /* number of bits in a short */ +#define __INT_BIT 32 /* number of bits in an int */ +#define __LLONG_BIT 64 /* number of bits in a long long */ #define __SCHAR_MAX 0x7f /* max value for a signed char */ #define __SCHAR_MIN (-0x7f - 1) /* min value for a signed char */ diff --git a/sys/sys/limits.h b/sys/sys/limits.h index 2cb0051fe86c..8044d4458639 100644 --- a/sys/sys/limits.h +++ b/sys/sys/limits.h @@ -68,6 +68,26 @@ #define LLONG_MIN __LLONG_MIN /* min for a long long */ #endif +#if __ISO_C_VISIBLE >= 2023 +#define BOOL_WIDTH 1 /* number of bits in a bool */ + +#define CHAR_WIDTH __CHAR_BIT /* number of bits in a char */ +#define SCHAR_WIDTH __CHAR_BIT /* number of bits in a signed char */ +#define UCHAR_WIDTH __CHAR_BIT /* number of bits in an unsigned char */ + +#define SHRT_WIDTH __SHRT_BIT /* number of bits in a short */ +#define USHRT_WIDTH __SHRT_BIT /* number of bits in an unsigned short */ + +#define INT_WIDTH __INT_BIT /* number of bits in an int */ +#define UINT_WIDTH __INT_BIT /* number of bits in an unsigned int */ + +#define LONG_WIDTH __LONG_BIT /* number of bits in a long */ +#define ULONG_WIDTH __LONG_BIT /* number of bits in an unsigned long */ + +#define LLONG_WIDTH __LLONG_BIT /* number of bits in a long long */ +#define ULLONG_WIDTH __LLONG_BIT /* number of bits in an unsigned long long */ +#endif + #if __POSIX_VISIBLE || __XSI_VISIBLE #define SSIZE_MAX __SSIZE_MAX /* max value for an ssize_t */ #endif diff --git a/sys/x86/include/_limits.h b/sys/x86/include/_limits.h index 422667a79bc0..fc7cfac1e70d 100644 --- a/sys/x86/include/_limits.h +++ b/sys/x86/include/_limits.h @@ -42,6 +42,9 @@ */ #define __CHAR_BIT 8 /* number of bits in a char */ +#define __SHRT_BIT 16 /* number of bits in a short */ +#define __INT_BIT 32 /* number of bits in an int */ +#define __LLONG_BIT 64 /* number of bits in a long long */ #define __SCHAR_MAX 0x7f /* max value for a signed char */ #define __SCHAR_MIN (-0x7f - 1) /* min value for a signed char */
