You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by pk...@apache.org on 2022/06/03 19:25:56 UTC

[incubator-nuttx] 02/04: arch: Define WCHAR_[MIN|MAX] in arch/include/limits.h

This is an automated email from the ASF dual-hosted git repository.

pkarashchenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 11e1a8b28bcdc9590fa8f6e021e3682656a8cea7
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Mon May 30 19:55:52 2022 +0800

    arch: Define WCHAR_[MIN|MAX] in arch/include/limits.h
    
    follow up the below change:
    commit 635752389226ad005f52524a933acf864c1a1f8d
    Author: Xiang Xiao <xi...@xiaomi.com>
    Date:   Mon Nov 1 12:40:51 2021 +0800
    
        arch: Add _wchar_t typedef like other basic types
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 arch/arm/include/limits.h            | 19 +++++++---
 arch/avr/include/avr/limits.h        | 19 +++++++---
 arch/avr/include/avr32/limits.h      | 19 +++++++---
 arch/ceva/include/limits.h           | 11 ++++++
 arch/hc/include/hc12/limits.h        | 19 +++++++---
 arch/hc/include/hcs12/limits.h       | 19 +++++++---
 arch/mips/include/limits.h           | 19 +++++++---
 arch/misoc/include/limits.h          | 19 +++++++---
 arch/or1k/include/limits.h           | 19 +++++++---
 arch/renesas/include/m16c/limits.h   | 19 +++++++---
 arch/renesas/include/rx65n/limits.h  | 19 +++++++---
 arch/renesas/include/sh1/limits.h    | 19 +++++++---
 arch/renesas/include/sh1Plimits.h    | 19 +++++++---
 arch/risc-v/include/limits.h         | 67 +++++++++++++++++++-----------------
 arch/sim/include/limits.h            | 19 +++++++---
 arch/sparc/include/limits.h          | 19 +++++++---
 arch/x86/include/i486/limits.h       | 19 +++++++---
 arch/x86_64/include/intel64/limits.h | 19 +++++++---
 arch/xtensa/include/limits.h         | 19 +++++++---
 arch/z16/include/limits.h            | 19 +++++++---
 arch/z80/include/ez80/limits.h       | 33 ++++++++++++------
 arch/z80/include/z180/limits.h       | 19 +++++++---
 arch/z80/include/z8/limits.h         | 19 +++++++---
 arch/z80/include/z80/limits.h        | 19 +++++++---
 include/wchar.h                      |  4 +--
 25 files changed, 385 insertions(+), 129 deletions(-)

diff --git a/arch/arm/include/limits.h b/arch/arm/include/limits.h
index 64dacedfc8..f87e814fb5 100644
--- a/arch/arm/include/limits.h
+++ b/arch/arm/include/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -68,4 +68,15 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_ARM_INCLUDE_LIMITS_H */
diff --git a/arch/avr/include/avr/limits.h b/arch/avr/include/avr/limits.h
index 31490ff699..3e52020f2b 100644
--- a/arch/avr/include/avr/limits.h
+++ b/arch/avr/include/avr/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -70,4 +70,15 @@
 #define PTR_MAX     32767
 #define UPTR_MAX    65535U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_AVR_INCLUDE_AVR_LIMITS_H */
diff --git a/arch/avr/include/avr32/limits.h b/arch/avr/include/avr32/limits.h
index 4288c3a47d..262fb21aa4 100644
--- a/arch/avr/include/avr32/limits.h
+++ b/arch/avr/include/avr32/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -70,4 +70,15 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_AVR_INCLUDE_AVR32_LIMITS_H */
diff --git a/arch/ceva/include/limits.h b/arch/ceva/include/limits.h
index e4b1b17637..42aa484075 100644
--- a/arch/ceva/include/limits.h
+++ b/arch/ceva/include/limits.h
@@ -37,4 +37,15 @@
 #define PTR_MAX     LONG_MAX
 #define UPTR_MAX    ULONG_MAX
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_CEVA_INCLUDE_LIMITS_H */
diff --git a/arch/hc/include/hc12/limits.h b/arch/hc/include/hc12/limits.h
index e0838a7716..7acd8fa607 100644
--- a/arch/hc/include/hc12/limits.h
+++ b/arch/hc/include/hc12/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -78,4 +78,15 @@
 #define PTR_MAX     32767
 #define UPTR_MAX    65535U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_HC_INCLUDE_HC12_LIMITS_H */
diff --git a/arch/hc/include/hcs12/limits.h b/arch/hc/include/hcs12/limits.h
index 349aeda34b..9436e1e368 100644
--- a/arch/hc/include/hcs12/limits.h
+++ b/arch/hc/include/hcs12/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -78,4 +78,15 @@
 #define PTR_MAX     32767
 #define UPTR_MAX    65535U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_HC_INCLUDE_HCS12_LIMITS_H */
diff --git a/arch/mips/include/limits.h b/arch/mips/include/limits.h
index b95720e3ee..9b9d5c39f9 100644
--- a/arch/mips/include/limits.h
+++ b/arch/mips/include/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -68,4 +68,15 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_MIPS_INCLUDE_LIMITS_H */
diff --git a/arch/misoc/include/limits.h b/arch/misoc/include/limits.h
index 6c1315218c..1e6ad0b8da 100644
--- a/arch/misoc/include/limits.h
+++ b/arch/misoc/include/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -70,4 +70,15 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_MISOC_INCLUDE_LIMITS_H */
diff --git a/arch/or1k/include/limits.h b/arch/or1k/include/limits.h
index 44e439021a..95982025b6 100644
--- a/arch/or1k/include/limits.h
+++ b/arch/or1k/include/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -68,4 +68,15 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_OR1K_INCLUDE_LIMITS_H */
diff --git a/arch/renesas/include/m16c/limits.h b/arch/renesas/include/m16c/limits.h
index 6114132044..69d7d2a23b 100644
--- a/arch/renesas/include/m16c/limits.h
+++ b/arch/renesas/include/m16c/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -70,4 +70,15 @@
 #define PTR_MAX     32767
 #define UPTR_MAX    65535U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_RENESAS_INCLUDE_M16C_LIMITS_H */
diff --git a/arch/renesas/include/rx65n/limits.h b/arch/renesas/include/rx65n/limits.h
index a72cd690fd..5c07140a81 100644
--- a/arch/renesas/include/rx65n/limits.h
+++ b/arch/renesas/include/rx65n/limits.h
@@ -33,11 +33,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -66,4 +66,15 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_RENESAS_INCLUDE_RX65N_LIMITS_H */
diff --git a/arch/renesas/include/sh1/limits.h b/arch/renesas/include/sh1/limits.h
index 980cb4f420..68cd6ab5a3 100644
--- a/arch/renesas/include/sh1/limits.h
+++ b/arch/renesas/include/sh1/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -70,4 +70,15 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_RENESAS_INCLUDE_SH1_LIMITS_H */
diff --git a/arch/renesas/include/sh1Plimits.h b/arch/renesas/include/sh1Plimits.h
index 6bdbbc09c6..bfd7de4ffa 100644
--- a/arch/renesas/include/sh1Plimits.h
+++ b/arch/renesas/include/sh1Plimits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -70,4 +70,15 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_RENESAS_INCLUDE_SH1_PLIMITS_H */
diff --git a/arch/risc-v/include/limits.h b/arch/risc-v/include/limits.h
index 06efa5434c..3c38398cd8 100644
--- a/arch/risc-v/include/limits.h
+++ b/arch/risc-v/include/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -54,38 +54,43 @@
 
 /* These change on 32-bit and 64-bit platforms */
 
-#if defined(CONFIG_ARCH_RV32)
+#ifdef CONFIG_ARCH_RV32
+#  define LONG_MIN  (-LONG_MAX - 1)
+#  define LONG_MAX  2147483647L
+#  define ULONG_MAX 4294967295UL
 
-#define LONG_MIN    (-LONG_MAX - 1)
-#define LONG_MAX    2147483647L
-#define ULONG_MAX   4294967295UL
-
-#define LLONG_MIN   (-LLONG_MAX - 1)
-#define LLONG_MAX   9223372036854775807LL
-#define ULLONG_MAX  18446744073709551615ULL
+#  define LLONG_MIN  (-LLONG_MAX - 1)
+#  define LLONG_MAX  9223372036854775807LL
+#  define ULLONG_MAX 18446744073709551615ULL
 
 /* A pointer is 4 bytes */
 
-#define PTR_MIN     (-PTR_MAX - 1)
-#define PTR_MAX     2147483647
-#define UPTR_MAX    4294967295U
-
-#endif /* defined(CONFIG_ARCH_RV32) */
-
-#if defined(CONFIG_ARCH_RV64)
-
-#define LONG_MIN    (-LONG_MAX - 1)
-#define LONG_MAX    9223372036854775807L
-#define ULONG_MAX   18446744073709551615UL
-
-#define LLONG_MIN   (-LLONG_MAX - 1)
-#define LLONG_MAX   9223372036854775807LL
-#define ULLONG_MAX  18446744073709551615ULL
-
-#define PTR_MIN     (-PTR_MAX - 1)
-#define PTR_MAX     9223372036854775807
-#define UPTR_MAX    18446744073709551615U
+#  define PTR_MIN   (-PTR_MAX - 1)
+#  define PTR_MAX   2147483647
+#  define UPTR_MAX  4294967295U
+#else /* CONFIG_ARCH_RV32 */
+#  define LONG_MIN  (-LONG_MAX - 1)
+#  define LONG_MAX  9223372036854775807L
+#  define ULONG_MAX 18446744073709551615UL
+
+#  define LLONG_MIN  (-LLONG_MAX - 1)
+#  define LLONG_MAX  9223372036854775807LL
+#  define ULLONG_MAX 18446744073709551615ULL
+
+#  define PTR_MIN   (-PTR_MAX - 1)
+#  define PTR_MAX   9223372036854775807
+#  define UPTR_MAX  18446744073709551615U
+#endif
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
 #endif
 
 #endif /* __ARCH_RISCV_INCLUDE_LIMITS_H */
diff --git a/arch/sim/include/limits.h b/arch/sim/include/limits.h
index 608675084f..cef045ce68 100644
--- a/arch/sim/include/limits.h
+++ b/arch/sim/include/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN     0
-#define CHAR_MAX     UCHAR_MAX
+#  define CHAR_MIN   0
+#d  efine CHAR_MAX   UCHAR_MAX
 #else
-#define CHAR_MIN     SCHAR_MIN
-#define CHAR_MAX     SCHAR_MAX
+#  define CHAR_MIN   SCHAR_MIN
+#  define CHAR_MAX   SCHAR_MAX
 #endif
 
 #define SHRT_MIN     (-SHRT_MAX - 1)
@@ -81,4 +81,15 @@
 #  define UPTR_MAX   4294967295U
 #endif
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_SIM_INCLUDE_LIMITS_H  */
diff --git a/arch/sparc/include/limits.h b/arch/sparc/include/limits.h
index 89c65dffbc..5aa9d91ab5 100644
--- a/arch/sparc/include/limits.h
+++ b/arch/sparc/include/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -68,5 +68,16 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_SPARC_INCLUDE_LIMITS_H */
 
diff --git a/arch/x86/include/i486/limits.h b/arch/x86/include/i486/limits.h
index 7ccf82bb5a..34b9f474a0 100644
--- a/arch/x86/include/i486/limits.h
+++ b/arch/x86/include/i486/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -68,4 +68,15 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_X86_INCLUDE_I486_LIMITS_H  */
diff --git a/arch/x86_64/include/intel64/limits.h b/arch/x86_64/include/intel64/limits.h
index ae7cdfc9de..75a64f227d 100644
--- a/arch/x86_64/include/intel64/limits.h
+++ b/arch/x86_64/include/intel64/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -68,4 +68,15 @@
 #define PTR_MAX     LLONG_MAX
 #define UPTR_MAX    ULLONG_MAX
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_X86_64_INCLUDE_INTEL64_LIMITS_H  */
diff --git a/arch/xtensa/include/limits.h b/arch/xtensa/include/limits.h
index 95f2e57705..2e3178e3cd 100644
--- a/arch/xtensa/include/limits.h
+++ b/arch/xtensa/include/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -68,4 +68,15 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_XTENSA_INCLUDE_LIMITS_H */
diff --git a/arch/z16/include/limits.h b/arch/z16/include/limits.h
index 1e5163f9fa..9f39329716 100644
--- a/arch/z16/include/limits.h
+++ b/arch/z16/include/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -66,4 +66,15 @@
 #define PTR_MAX     2147483647
 #define UPTR_MAX    4294967295U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_Z16_INCLUDE_LIMITS_H  */
diff --git a/arch/z80/include/ez80/limits.h b/arch/z80/include/ez80/limits.h
index 0be67d6fdc..9cd9dbade2 100644
--- a/arch/z80/include/ez80/limits.h
+++ b/arch/z80/include/ez80/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -67,17 +67,28 @@
 
 #define PTR_MIN     (-PTR_MAX - 1)
 #ifdef CONFIG_EZ80_Z80MODE
-#define PTR_MAX     32767
-#define UPTR_MAX    65535U
+#  define PTR_MAX   32767
+#  define UPTR_MAX  65535U
 #else
-#define PTR_MAX     8388607
-#define UPTR_MAX    16777215U
+#  define PTR_MAX   8388607
+#  define UPTR_MAX  16777215U
 #endif
 
 #ifdef __clang__
-#define LLONG_MIN       (-LLONG_MAX - 1)
-#define LLONG_MAX       9223372036854775807LL
-#define ULLONG_MAX      18446744073709551615ULL
+#  define LLONG_MIN  (-LLONG_MAX - 1)
+#  define LLONG_MAX  9223372036854775807LL
+#  define ULLONG_MAX 18446744073709551615ULL
+#endif
+
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
 #endif
 
 #endif /* __ARCH_Z80_INCLUDE_EZ80_LIMITS_H */
diff --git a/arch/z80/include/z180/limits.h b/arch/z80/include/z180/limits.h
index 00f1ef4245..d811b13bdf 100644
--- a/arch/z80/include/z180/limits.h
+++ b/arch/z80/include/z180/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -68,4 +68,15 @@
 #define PTR_MAX     32767
 #define UPTR_MAX    65535U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_Z80_INCLUDE_Z180_LIMITS_H  */
diff --git a/arch/z80/include/z8/limits.h b/arch/z80/include/z8/limits.h
index ac4fdac26b..50c49bfaf7 100644
--- a/arch/z80/include/z8/limits.h
+++ b/arch/z80/include/z8/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -64,4 +64,15 @@
 #define PTR_MAX     32767
 #define UPTR_MAX    65535U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_Z80_INCLUDE_Z8_LIMITS_H  */
diff --git a/arch/z80/include/z80/limits.h b/arch/z80/include/z80/limits.h
index 1beef85622..51e584ab64 100644
--- a/arch/z80/include/z80/limits.h
+++ b/arch/z80/include/z80/limits.h
@@ -37,11 +37,11 @@
 /* These could be different on machines where char is unsigned */
 
 #ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN    0
-#define CHAR_MAX    UCHAR_MAX
+#  define CHAR_MIN  0
+#  define CHAR_MAX  UCHAR_MAX
 #else
-#define CHAR_MIN    SCHAR_MIN
-#define CHAR_MAX    SCHAR_MAX
+#  define CHAR_MIN  SCHAR_MIN
+#  define CHAR_MAX  SCHAR_MAX
 #endif
 
 #define SHRT_MIN    (-SHRT_MAX - 1)
@@ -68,4 +68,15 @@
 #define PTR_MAX     32767
 #define UPTR_MAX    65535U
 
+#if !defined(__WCHAR_TYPE__)
+#  define WCHAR_MIN INT_MIN
+#  define WCHAR_MAX INT_MAX
+#elif defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN 0
+#  define WCHAR_MAX __WCHAR_MAX__
+#else
+#  define WCHAR_MIN (-__WCHAR_MAX__ - 1)
+#  define WCHAR_MAX __WCHAR_MAX__
+#endif
+
 #endif /* __ARCH_Z80_INCLUDE_Z80_LIMITS_H  */
diff --git a/include/wchar.h b/include/wchar.h
index a61f36e78b..51b5415468 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -57,9 +57,7 @@
  * Reference: Opengroup.org
  */
 
-#define WCHAR_MAX 0xffff
-#define WCHAR_MIN 0x0000
-#define WEOF      ((wint_t)-1)
+#define WEOF ((wint_t)-1)
 
 #define wcsftime_l(s, m, f, t, l)   wcsftime(s, m, f, t)
 #define wcscasecmp_l(s1, s2, l)     wcscasecmp(s1, s2)