summaryrefslogtreecommitdiffstats
path: root/newlib/libc/sys
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys')
-rw-r--r--newlib/libc/sys/rtems/include/limits.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/newlib/libc/sys/rtems/include/limits.h b/newlib/libc/sys/rtems/include/limits.h
index 13e168c0a..43ede04e6 100644
--- a/newlib/libc/sys/rtems/include/limits.h
+++ b/newlib/libc/sys/rtems/include/limits.h
@@ -78,7 +78,13 @@
* Invariant values
*/
+#ifdef __SIZE_MAX__
+#define SSIZE_MAX (__SIZE_MAX__ >> 1)
+#elif defined(__SIZEOF_SIZE_T__) && defined(__CHAR_BIT__)
+#define SSIZE_MAX ((1UL << (__SIZEOF_SIZE_T__ * __CHAR_BIT__ - 1)) - 1)
+#else /* historic fallback, wrong in most cases */
#define SSIZE_MAX 32767
+#endif
/*
* Maximum Values