OSDN Git Service

2011-08-23 Ralf Corsépius <ralf.corsepius@rtems.org>
authorcorsepiu <corsepiu>
Tue, 23 Aug 2011 05:51:04 +0000 (05:51 +0000)
committercorsepiu <corsepiu>
Tue, 23 Aug 2011 05:51:04 +0000 (05:51 +0000)
* libc/sys/rtems/include/limits.h: Compute SSIZE_MAX based on
__SIZE_MAX__, __SIZEOF_SIZE_T__ and __CHAR_BIT__.

newlib/ChangeLog
newlib/libc/sys/rtems/include/limits.h

index bb89888..c8dbd7f 100644 (file)
@@ -1,3 +1,8 @@
+2011-08-23  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+       * libc/sys/rtems/include/limits.h: Compute SSIZE_MAX based on
+       __SIZE_MAX__, __SIZEOF_SIZE_T__ and __CHAR_BIT__.
+
 2011-08-22  Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * libc/string/index.c: Include <strings.h> for "index".
index 13e168c..43ede04 100644 (file)
  *  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