The branch main has been updated by kfv:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=ab420c44bc7c45bf344cb03b289e60109f57aaee

commit ab420c44bc7c45bf344cb03b289e60109f57aaee
Author:     Faraz Vahedi <[email protected]>
AuthorDate: 2026-09-02 14:56:58 +0000
Commit:     Faraz Vahedi <[email protected]>
CommitDate: 2026-09-02 14:56:58 +0000

    libc: Add PRIb*, PRIB*, and SCNb* macros as per C23
    
    Reviewed by:    fuz
    Approved by:    fuz (mentor)
    MFC after:      1 month
    Differential Revision:  https://reviews.freebsd.org/D59293
---
 sys/arm/include/_inttypes.h     | 45 +++++++++++++++++++++++++++++++++++++++++
 sys/arm64/include/_inttypes.h   | 45 +++++++++++++++++++++++++++++++++++++++++
 sys/powerpc/include/_inttypes.h | 45 +++++++++++++++++++++++++++++++++++++++++
 sys/riscv/include/_inttypes.h   | 45 +++++++++++++++++++++++++++++++++++++++++
 sys/x86/include/_inttypes.h     | 45 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 225 insertions(+)

diff --git a/sys/arm/include/_inttypes.h b/sys/arm/include/_inttypes.h
index ab51edc73ab6..8ccc9dd2893d 100644
--- a/sys/arm/include/_inttypes.h
+++ b/sys/arm/include/_inttypes.h
@@ -132,6 +132,36 @@
 #define        PRIXMAX         "jX"    /* uintmax_t */
 #define        PRIXPTR         "X"     /* uintptr_t */
 
+#define        PRIb8           "b"     /* uint8_t */
+#define        PRIb16          "b"     /* uint16_t */
+#define        PRIb32          "b"     /* uint32_t */
+#define        PRIb64          "llb"   /* uint64_t */
+#define        PRIbLEAST8      "b"     /* uint_least8_t */
+#define        PRIbLEAST16     "b"     /* uint_least16_t */
+#define        PRIbLEAST32     "b"     /* uint_least32_t */
+#define        PRIbLEAST64     "llb"   /* uint_least64_t */
+#define        PRIbFAST8       "b"     /* uint_fast8_t */
+#define        PRIbFAST16      "b"     /* uint_fast16_t */
+#define        PRIbFAST32      "b"     /* uint_fast32_t */
+#define        PRIbFAST64      "llb"   /* uint_fast64_t */
+#define        PRIbMAX         "jb"    /* uintmax_t */
+#define        PRIbPTR         "b"     /* uintptr_t */
+
+#define        PRIB8           "B"     /* uint8_t */
+#define        PRIB16          "B"     /* uint16_t */
+#define        PRIB32          "B"     /* uint32_t */
+#define        PRIB64          "llB"   /* uint64_t */
+#define        PRIBLEAST8      "B"     /* uint_least8_t */
+#define        PRIBLEAST16     "B"     /* uint_least16_t */
+#define        PRIBLEAST32     "B"     /* uint_least32_t */
+#define        PRIBLEAST64     "llB"   /* uint_least64_t */
+#define        PRIBFAST8       "B"     /* uint_fast8_t */
+#define        PRIBFAST16      "B"     /* uint_fast16_t */
+#define        PRIBFAST32      "B"     /* uint_fast32_t */
+#define        PRIBFAST64      "llB"   /* uint_fast64_t */
+#define        PRIBMAX         "jB"    /* uintmax_t */
+#define        PRIBPTR         "B"     /* uintptr_t */
+
 /* fscanf(3) macros for signed integers. */
 
 #define        SCNd8           "hhd"   /* int8_t */
@@ -211,4 +241,19 @@
 #define        SCNxMAX         "jx"    /* uintmax_t */
 #define        SCNxPTR         "x"     /* uintptr_t */
 
+#define        SCNb8           "hhb"   /* uint8_t */
+#define        SCNb16          "hb"    /* uint16_t */
+#define        SCNb32          "b"     /* uint32_t */
+#define        SCNb64          "llb"   /* uint64_t */
+#define        SCNbLEAST8      "hhb"   /* uint_least8_t */
+#define        SCNbLEAST16     "hb"    /* uint_least16_t */
+#define        SCNbLEAST32     "b"     /* uint_least32_t */
+#define        SCNbLEAST64     "llb"   /* uint_least64_t */
+#define        SCNbFAST8       "b"     /* uint_fast8_t */
+#define        SCNbFAST16      "b"     /* uint_fast16_t */
+#define        SCNbFAST32      "b"     /* uint_fast32_t */
+#define        SCNbFAST64      "llb"   /* uint_fast64_t */
+#define        SCNbMAX         "jb"    /* uintmax_t */
+#define        SCNbPTR         "b"     /* uintptr_t */
+
 #endif /* !_MACHINE_INTTYPES_H_ */
diff --git a/sys/arm64/include/_inttypes.h b/sys/arm64/include/_inttypes.h
index 67ae82fbf031..1df86d833793 100644
--- a/sys/arm64/include/_inttypes.h
+++ b/sys/arm64/include/_inttypes.h
@@ -134,6 +134,36 @@
 #define        PRIXMAX         "jX"    /* uintmax_t */
 #define        PRIXPTR         "lX"    /* uintptr_t */
 
+#define        PRIb8           "b"     /* uint8_t */
+#define        PRIb16          "b"     /* uint16_t */
+#define        PRIb32          "b"     /* uint32_t */
+#define        PRIb64          "lb"    /* uint64_t */
+#define        PRIbLEAST8      "b"     /* uint_least8_t */
+#define        PRIbLEAST16     "b"     /* uint_least16_t */
+#define        PRIbLEAST32     "b"     /* uint_least32_t */
+#define        PRIbLEAST64     "lb"    /* uint_least64_t */
+#define        PRIbFAST8       "b"     /* uint_fast8_t */
+#define        PRIbFAST16      "b"     /* uint_fast16_t */
+#define        PRIbFAST32      "b"     /* uint_fast32_t */
+#define        PRIbFAST64      "lb"    /* uint_fast64_t */
+#define        PRIbMAX         "jb"    /* uintmax_t */
+#define        PRIbPTR         "lb"    /* uintptr_t */
+
+#define        PRIB8           "B"     /* uint8_t */
+#define        PRIB16          "B"     /* uint16_t */
+#define        PRIB32          "B"     /* uint32_t */
+#define        PRIB64          "lB"    /* uint64_t */
+#define        PRIBLEAST8      "B"     /* uint_least8_t */
+#define        PRIBLEAST16     "B"     /* uint_least16_t */
+#define        PRIBLEAST32     "B"     /* uint_least32_t */
+#define        PRIBLEAST64     "lB"    /* uint_least64_t */
+#define        PRIBFAST8       "B"     /* uint_fast8_t */
+#define        PRIBFAST16      "B"     /* uint_fast16_t */
+#define        PRIBFAST32      "B"     /* uint_fast32_t */
+#define        PRIBFAST64      "lB"    /* uint_fast64_t */
+#define        PRIBMAX         "jB"    /* uintmax_t */
+#define        PRIBPTR         "lB"    /* uintptr_t */
+
 /* fscanf(3) macros for signed integers. */
 
 #define        SCNd8           "hhd"   /* int8_t */
@@ -213,6 +243,21 @@
 #define        SCNxMAX         "jx"    /* uintmax_t */
 #define        SCNxPTR         "lx"    /* uintptr_t */
 
+#define        SCNb8           "hhb"   /* uint8_t */
+#define        SCNb16          "hb"    /* uint16_t */
+#define        SCNb32          "b"     /* uint32_t */
+#define        SCNb64          "lb"    /* uint64_t */
+#define        SCNbLEAST8      "hhb"   /* uint_least8_t */
+#define        SCNbLEAST16     "hb"    /* uint_least16_t */
+#define        SCNbLEAST32     "b"     /* uint_least32_t */
+#define        SCNbLEAST64     "lb"    /* uint_least64_t */
+#define        SCNbFAST8       "b"     /* uint_fast8_t */
+#define        SCNbFAST16      "b"     /* uint_fast16_t */
+#define        SCNbFAST32      "b"     /* uint_fast32_t */
+#define        SCNbFAST64      "lb"    /* uint_fast64_t */
+#define        SCNbMAX         "jb"    /* uintmax_t */
+#define        SCNbPTR         "lb"    /* uintptr_t */
+
 #endif /* !_MACHINE__INTTYPES_H_ */
 
 #endif /* !__arm__ */
diff --git a/sys/powerpc/include/_inttypes.h b/sys/powerpc/include/_inttypes.h
index 4d1b52da6cea..f07f20033c2c 100644
--- a/sys/powerpc/include/_inttypes.h
+++ b/sys/powerpc/include/_inttypes.h
@@ -140,6 +140,36 @@
 #define        PRIXMAX         "jX"            /* uintmax_t */
 #define        PRIXPTR         __PRIptr"X"     /* uintptr_t */
 
+#define        PRIb8           "b"             /* uint8_t */
+#define        PRIb16          "b"             /* uint16_t */
+#define        PRIb32          "b"             /* uint32_t */
+#define        PRIb64          __PRI64"b"      /* uint64_t */
+#define        PRIbLEAST8      "b"             /* uint_least8_t */
+#define        PRIbLEAST16     "b"             /* uint_least16_t */
+#define        PRIbLEAST32     "b"             /* uint_least32_t */
+#define        PRIbLEAST64     __PRI64"b"      /* uint_least64_t */
+#define        PRIbFAST8       "b"             /* uint_fast8_t */
+#define        PRIbFAST16      "b"             /* uint_fast16_t */
+#define        PRIbFAST32      "b"             /* uint_fast32_t */
+#define        PRIbFAST64      __PRI64"b"      /* uint_fast64_t */
+#define        PRIbMAX         "jb"            /* uintmax_t */
+#define        PRIbPTR         __PRIptr"b"     /* uintptr_t */
+
+#define        PRIB8           "B"             /* uint8_t */
+#define        PRIB16          "B"             /* uint16_t */
+#define        PRIB32          "B"             /* uint32_t */
+#define        PRIB64          __PRI64"B"      /* uint64_t */
+#define        PRIBLEAST8      "B"             /* uint_least8_t */
+#define        PRIBLEAST16     "B"             /* uint_least16_t */
+#define        PRIBLEAST32     "B"             /* uint_least32_t */
+#define        PRIBLEAST64     __PRI64"B"      /* uint_least64_t */
+#define        PRIBFAST8       "B"             /* uint_fast8_t */
+#define        PRIBFAST16      "B"             /* uint_fast16_t */
+#define        PRIBFAST32      "B"             /* uint_fast32_t */
+#define        PRIBFAST64      __PRI64"B"      /* uint_fast64_t */
+#define        PRIBMAX         "jB"            /* uintmax_t */
+#define        PRIBPTR         __PRIptr"B"     /* uintptr_t */
+
 /* fscanf(3) macros for signed integers. */
 
 #define        SCNd8           "hhd"           /* int8_t */
@@ -219,4 +249,19 @@
 #define        SCNxMAX         "jx"            /* uintmax_t */
 #define        SCNxPTR         __PRIptr"x"     /* uintptr_t */
 
+#define        SCNb8           "hhb"           /* uint8_t */
+#define        SCNb16          "hb"            /* uint16_t */
+#define        SCNb32          "b"             /* uint32_t */
+#define        SCNb64          __PRI64"b"      /* uint64_t */
+#define        SCNbLEAST8      "hhb"           /* uint_least8_t */
+#define        SCNbLEAST16     "hb"            /* uint_least16_t */
+#define        SCNbLEAST32     "b"             /* uint_least32_t */
+#define        SCNbLEAST64     __PRI64"b"      /* uint_least64_t */
+#define        SCNbFAST8       "b"             /* uint_fast8_t */
+#define        SCNbFAST16      "b"             /* uint_fast16_t */
+#define        SCNbFAST32      "b"             /* uint_fast32_t */
+#define        SCNbFAST64      __PRI64"b"      /* uint_fast64_t */
+#define        SCNbMAX         "jb"            /* uintmax_t */
+#define        SCNbPTR         __PRIptr"b"     /* uintptr_t */
+
 #endif /* !_MACHINE_INTTYPES_H_ */
diff --git a/sys/riscv/include/_inttypes.h b/sys/riscv/include/_inttypes.h
index fb2bb14e33a3..d001261ba550 100644
--- a/sys/riscv/include/_inttypes.h
+++ b/sys/riscv/include/_inttypes.h
@@ -130,6 +130,36 @@
 #define        PRIXMAX         "jX"    /* uintmax_t */
 #define        PRIXPTR         "lX"    /* uintptr_t */
 
+#define        PRIb8           "b"     /* uint8_t */
+#define        PRIb16          "b"     /* uint16_t */
+#define        PRIb32          "b"     /* uint32_t */
+#define        PRIb64          "lb"    /* uint64_t */
+#define        PRIbLEAST8      "b"     /* uint_least8_t */
+#define        PRIbLEAST16     "b"     /* uint_least16_t */
+#define        PRIbLEAST32     "b"     /* uint_least32_t */
+#define        PRIbLEAST64     "lb"    /* uint_least64_t */
+#define        PRIbFAST8       "b"     /* uint_fast8_t */
+#define        PRIbFAST16      "b"     /* uint_fast16_t */
+#define        PRIbFAST32      "b"     /* uint_fast32_t */
+#define        PRIbFAST64      "lb"    /* uint_fast64_t */
+#define        PRIbMAX         "jb"    /* uintmax_t */
+#define        PRIbPTR         "lb"    /* uintptr_t */
+
+#define        PRIB8           "B"     /* uint8_t */
+#define        PRIB16          "B"     /* uint16_t */
+#define        PRIB32          "B"     /* uint32_t */
+#define        PRIB64          "lB"    /* uint64_t */
+#define        PRIBLEAST8      "B"     /* uint_least8_t */
+#define        PRIBLEAST16     "B"     /* uint_least16_t */
+#define        PRIBLEAST32     "B"     /* uint_least32_t */
+#define        PRIBLEAST64     "lB"    /* uint_least64_t */
+#define        PRIBFAST8       "B"     /* uint_fast8_t */
+#define        PRIBFAST16      "B"     /* uint_fast16_t */
+#define        PRIBFAST32      "B"     /* uint_fast32_t */
+#define        PRIBFAST64      "lB"    /* uint_fast64_t */
+#define        PRIBMAX         "jB"    /* uintmax_t */
+#define        PRIBPTR         "lB"    /* uintptr_t */
+
 /* fscanf(3) macros for signed integers. */
 
 #define        SCNd8           "hhd"   /* int8_t */
@@ -209,4 +239,19 @@
 #define        SCNxMAX         "jx"    /* uintmax_t */
 #define        SCNxPTR         "lx"    /* uintptr_t */
 
+#define        SCNb8           "hhb"   /* uint8_t */
+#define        SCNb16          "hb"    /* uint16_t */
+#define        SCNb32          "b"     /* uint32_t */
+#define        SCNb64          "lb"    /* uint64_t */
+#define        SCNbLEAST8      "hhb"   /* uint_least8_t */
+#define        SCNbLEAST16     "hb"    /* uint_least16_t */
+#define        SCNbLEAST32     "b"     /* uint_least32_t */
+#define        SCNbLEAST64     "lb"    /* uint_least64_t */
+#define        SCNbFAST8       "b"     /* uint_fast8_t */
+#define        SCNbFAST16      "b"     /* uint_fast16_t */
+#define        SCNbFAST32      "b"     /* uint_fast32_t */
+#define        SCNbFAST64      "lb"    /* uint_fast64_t */
+#define        SCNbMAX         "jb"    /* uintmax_t */
+#define        SCNbPTR         "lb"    /* uintptr_t */
+
 #endif /* !_MACHINE__INTTYPES_H_ */
diff --git a/sys/x86/include/_inttypes.h b/sys/x86/include/_inttypes.h
index 4d1b52da6cea..f07f20033c2c 100644
--- a/sys/x86/include/_inttypes.h
+++ b/sys/x86/include/_inttypes.h
@@ -140,6 +140,36 @@
 #define        PRIXMAX         "jX"            /* uintmax_t */
 #define        PRIXPTR         __PRIptr"X"     /* uintptr_t */
 
+#define        PRIb8           "b"             /* uint8_t */
+#define        PRIb16          "b"             /* uint16_t */
+#define        PRIb32          "b"             /* uint32_t */
+#define        PRIb64          __PRI64"b"      /* uint64_t */
+#define        PRIbLEAST8      "b"             /* uint_least8_t */
+#define        PRIbLEAST16     "b"             /* uint_least16_t */
+#define        PRIbLEAST32     "b"             /* uint_least32_t */
+#define        PRIbLEAST64     __PRI64"b"      /* uint_least64_t */
+#define        PRIbFAST8       "b"             /* uint_fast8_t */
+#define        PRIbFAST16      "b"             /* uint_fast16_t */
+#define        PRIbFAST32      "b"             /* uint_fast32_t */
+#define        PRIbFAST64      __PRI64"b"      /* uint_fast64_t */
+#define        PRIbMAX         "jb"            /* uintmax_t */
+#define        PRIbPTR         __PRIptr"b"     /* uintptr_t */
+
+#define        PRIB8           "B"             /* uint8_t */
+#define        PRIB16          "B"             /* uint16_t */
+#define        PRIB32          "B"             /* uint32_t */
+#define        PRIB64          __PRI64"B"      /* uint64_t */
+#define        PRIBLEAST8      "B"             /* uint_least8_t */
+#define        PRIBLEAST16     "B"             /* uint_least16_t */
+#define        PRIBLEAST32     "B"             /* uint_least32_t */
+#define        PRIBLEAST64     __PRI64"B"      /* uint_least64_t */
+#define        PRIBFAST8       "B"             /* uint_fast8_t */
+#define        PRIBFAST16      "B"             /* uint_fast16_t */
+#define        PRIBFAST32      "B"             /* uint_fast32_t */
+#define        PRIBFAST64      __PRI64"B"      /* uint_fast64_t */
+#define        PRIBMAX         "jB"            /* uintmax_t */
+#define        PRIBPTR         __PRIptr"B"     /* uintptr_t */
+
 /* fscanf(3) macros for signed integers. */
 
 #define        SCNd8           "hhd"           /* int8_t */
@@ -219,4 +249,19 @@
 #define        SCNxMAX         "jx"            /* uintmax_t */
 #define        SCNxPTR         __PRIptr"x"     /* uintptr_t */
 
+#define        SCNb8           "hhb"           /* uint8_t */
+#define        SCNb16          "hb"            /* uint16_t */
+#define        SCNb32          "b"             /* uint32_t */
+#define        SCNb64          __PRI64"b"      /* uint64_t */
+#define        SCNbLEAST8      "hhb"           /* uint_least8_t */
+#define        SCNbLEAST16     "hb"            /* uint_least16_t */
+#define        SCNbLEAST32     "b"             /* uint_least32_t */
+#define        SCNbLEAST64     __PRI64"b"      /* uint_least64_t */
+#define        SCNbFAST8       "b"             /* uint_fast8_t */
+#define        SCNbFAST16      "b"             /* uint_fast16_t */
+#define        SCNbFAST32      "b"             /* uint_fast32_t */
+#define        SCNbFAST64      __PRI64"b"      /* uint_fast64_t */
+#define        SCNbMAX         "jb"            /* uintmax_t */
+#define        SCNbPTR         __PRIptr"b"     /* uintptr_t */
+
 #endif /* !_MACHINE_INTTYPES_H_ */

Reply via email to