Author: jmallett
Date: Fri Apr 16 23:54:56 2010
New Revision: 206715
URL: http://svn.freebsd.org/changeset/base/206715

Log:
  Adjust limits and formats for ABIs with 64-bit longs.

Modified:
  head/sys/mips/include/_inttypes.h
  head/sys/mips/include/_limits.h

Modified: head/sys/mips/include/_inttypes.h
==============================================================================
--- head/sys/mips/include/_inttypes.h   Fri Apr 16 23:48:28 2010        
(r206714)
+++ head/sys/mips/include/_inttypes.h   Fri Apr 16 23:54:56 2010        
(r206715)
@@ -38,177 +38,183 @@
  * Macros for format specifiers.
  */
 
+#if defined(__mips_n64)
+#define        PRI64           "l"
+#else
+#define        PRI64           "ll"
+#endif
+
 /* fprintf(3) macros for signed integers. */
 
 #define        PRId8           "d"     /* int8_t */
 #define        PRId16          "d"     /* int16_t */
 #define        PRId32          "d"     /* int32_t */
-#define        PRId64          "lld"   /* int64_t */
+#define        PRId64          PRI64"d"        /* int64_t */
 #define        PRIdLEAST8      "d"     /* int_least8_t */
 #define        PRIdLEAST16     "d"     /* int_least16_t */
 #define        PRIdLEAST32     "d"     /* int_least32_t */
-#define        PRIdLEAST64     "lld"   /* int_least64_t */
+#define        PRIdLEAST64     PRI64"d"        /* int_least64_t */
 #define        PRIdFAST8       "d"     /* int_fast8_t */
 #define        PRIdFAST16      "d"     /* int_fast16_t */
 #define        PRIdFAST32      "d"     /* int_fast32_t */
-#define        PRIdFAST64      "lld"   /* int_fast64_t */
+#define        PRIdFAST64      PRI64"d"        /* int_fast64_t */
 #define        PRIdMAX         "jd"    /* intmax_t */
-#define        PRIdPTR         "d"     /* intptr_t */
+#define        PRIdPTR         "ld"    /* intptr_t */
 
 #define        PRIi8           "i"     /* int8_t */
 #define        PRIi16          "i"     /* int16_t */
 #define        PRIi32          "i"     /* int32_t */
-#define        PRIi64          "lli"   /* int64_t */
+#define        PRIi64          PRI64"i"        /* int64_t */
 #define        PRIiLEAST8      "i"     /* int_least8_t  */
 #define        PRIiLEAST16     "i"     /* int_least16_t */
 #define        PRIiLEAST32     "i"     /* int_least32_t */
-#define        PRIiLEAST64     "lli"   /* int_least64_t */
+#define        PRIiLEAST64     PRI64"i"        /* int_least64_t */
 #define        PRIiFAST8       "i"     /* int_fast8_t */
 #define        PRIiFAST16      "i"     /* int_fast16_t */
 #define        PRIiFAST32      "i"     /* int_fast32_t */
-#define        PRIiFAST64      "lli"   /* int_fast64_t */
+#define        PRIiFAST64      PRI64"i"        /* int_fast64_t */
 #define        PRIiMAX         "ji"    /* intmax_t */
-#define        PRIiPTR         "i"     /* intptr_t */
+#define        PRIiPTR         "li"    /* intptr_t */
 
 /* fprintf(3) macros for unsigned integers. */
 
 #define        PRIo8           "o"     /* uint8_t */
 #define        PRIo16          "o"     /* uint16_t */
 #define        PRIo32          "o"     /* uint32_t */
-#define        PRIo64          "llo"   /* uint64_t */
+#define        PRIo64          PRI64"o"        /* uint64_t */
 #define        PRIoLEAST8      "o"     /* uint_least8_t */
 #define        PRIoLEAST16     "o"     /* uint_least16_t */
 #define        PRIoLEAST32     "o"     /* uint_least32_t */
-#define        PRIoLEAST64     "llo"   /* uint_least64_t */
+#define        PRIoLEAST64     PRI64"o"        /* uint_least64_t */
 #define        PRIoFAST8       "o"     /* uint_fast8_t */
 #define        PRIoFAST16      "o"     /* uint_fast16_t */
 #define        PRIoFAST32      "o"     /* uint_fast32_t */
-#define        PRIoFAST64      "llo"   /* uint_fast64_t */
+#define        PRIoFAST64      PRI64"o"        /* uint_fast64_t */
 #define        PRIoMAX         "jo"    /* uintmax_t */
-#define        PRIoPTR         "o"     /* uintptr_t */
+#define        PRIoPTR         "lo"    /* uintptr_t */
 
 #define        PRIu8           "u"     /* uint8_t */
 #define        PRIu16          "u"     /* uint16_t */
 #define        PRIu32          "u"     /* uint32_t */
-#define        PRIu64          "llu"   /* uint64_t */
+#define        PRIu64          PRI64"u"        /* uint64_t */
 #define        PRIuLEAST8      "u"     /* uint_least8_t */
 #define        PRIuLEAST16     "u"     /* uint_least16_t */
 #define        PRIuLEAST32     "u"     /* uint_least32_t */
-#define        PRIuLEAST64     "llu"   /* uint_least64_t */
+#define        PRIuLEAST64     PRI64"u"        /* uint_least64_t */
 #define        PRIuFAST8       "u"     /* uint_fast8_t */
 #define        PRIuFAST16      "u"     /* uint_fast16_t */
 #define        PRIuFAST32      "u"     /* uint_fast32_t */
-#define        PRIuFAST64      "llu"   /* uint_fast64_t */
+#define        PRIuFAST64      PRI64"u"        /* uint_fast64_t */
 #define        PRIuMAX         "ju"    /* uintmax_t */
-#define        PRIuPTR         "u"     /* uintptr_t */
+#define        PRIuPTR         "lu"    /* uintptr_t */
 
 #define        PRIx8           "x"     /* uint8_t */
 #define        PRIx16          "x"     /* uint16_t */
 #define        PRIx32          "x"     /* uint32_t */
-#define        PRIx64          "llx"   /* uint64_t */
+#define        PRIx64          PRI64"x"        /* uint64_t */
 #define        PRIxLEAST8      "x"     /* uint_least8_t */
 #define        PRIxLEAST16     "x"     /* uint_least16_t */
 #define        PRIxLEAST32     "x"     /* uint_least32_t */
-#define        PRIxLEAST64     "llx"   /* uint_least64_t */
+#define        PRIxLEAST64     PRI64"x"        /* uint_least64_t */
 #define        PRIxFAST8       "x"     /* uint_fast8_t */
 #define        PRIxFAST16      "x"     /* uint_fast16_t */
 #define        PRIxFAST32      "x"     /* uint_fast32_t */
-#define        PRIxFAST64      "llx"   /* uint_fast64_t */
+#define        PRIxFAST64      PRI64"x"        /* uint_fast64_t */
 #define        PRIxMAX         "jx"    /* uintmax_t */
-#define        PRIxPTR         "x"     /* uintptr_t */
+#define        PRIxPTR         "lx"    /* uintptr_t */
 
 #define        PRIX8           "X"     /* uint8_t */
 #define        PRIX16          "X"     /* uint16_t */
 #define        PRIX32          "X"     /* uint32_t */
-#define        PRIX64          "llX"   /* uint64_t */
+#define        PRIX64          PRI64"X"        /* uint64_t */
 #define        PRIXLEAST8      "X"     /* uint_least8_t */
 #define        PRIXLEAST16     "X"     /* uint_least16_t */
 #define        PRIXLEAST32     "X"     /* uint_least32_t */
-#define        PRIXLEAST64     "llX"   /* uint_least64_t */
+#define        PRIXLEAST64     PRI64"X"        /* uint_least64_t */
 #define        PRIXFAST8       "X"     /* uint_fast8_t */
 #define        PRIXFAST16      "X"     /* uint_fast16_t */
 #define        PRIXFAST32      "X"     /* uint_fast32_t */
-#define        PRIXFAST64      "llX"   /* uint_fast64_t */
+#define        PRIXFAST64      PRI64"X"        /* uint_fast64_t */
 #define        PRIXMAX         "jX"    /* uintmax_t */
-#define        PRIXPTR         "X"     /* uintptr_t */
+#define        PRIXPTR         "lX"    /* uintptr_t */
 
 /* fscanf(3) macros for signed integers. */
 
 #define        SCNd8           "hhd"   /* int8_t */
 #define        SCNd16          "hd"    /* int16_t */
 #define        SCNd32          "d"     /* int32_t */
-#define        SCNd64          "lld"   /* int64_t */
+#define        SCNd64          PRI64"d"        /* int64_t */
 #define        SCNdLEAST8      "hhd"   /* int_least8_t */
 #define        SCNdLEAST16     "hd"    /* int_least16_t */
 #define        SCNdLEAST32     "d"     /* int_least32_t */
-#define        SCNdLEAST64     "lld"   /* int_least64_t */
+#define        SCNdLEAST64     PRI64"d"        /* int_least64_t */
 #define        SCNdFAST8       "d"     /* int_fast8_t */
 #define        SCNdFAST16      "d"     /* int_fast16_t */
 #define        SCNdFAST32      "d"     /* int_fast32_t */
-#define        SCNdFAST64      "lld"   /* int_fast64_t */
+#define        SCNdFAST64      PRI64"d"        /* int_fast64_t */
 #define        SCNdMAX         "jd"    /* intmax_t */
-#define        SCNdPTR         "d"     /* intptr_t */
+#define        SCNdPTR         "ld"    /* intptr_t */
 
 #define        SCNi8           "hhi"   /* int8_t */
 #define        SCNi16          "hi"    /* int16_t */
 #define        SCNi32          "i"     /* int32_t */
-#define        SCNi64          "lli"   /* int64_t */
+#define        SCNi64          PRI64"i"        /* int64_t */
 #define        SCNiLEAST8      "hhi"   /* int_least8_t */
 #define        SCNiLEAST16     "hi"    /* int_least16_t */
 #define        SCNiLEAST32     "i"     /* int_least32_t */
-#define        SCNiLEAST64     "lli"   /* int_least64_t */
+#define        SCNiLEAST64     PRI64"i"        /* int_least64_t */
 #define        SCNiFAST8       "i"     /* int_fast8_t */
 #define        SCNiFAST16      "i"     /* int_fast16_t */
 #define        SCNiFAST32      "i"     /* int_fast32_t */
-#define        SCNiFAST64      "lli"   /* int_fast64_t */
+#define        SCNiFAST64      PRI64"i"        /* int_fast64_t */
 #define        SCNiMAX         "ji"    /* intmax_t */
-#define        SCNiPTR         "i"     /* intptr_t */
+#define        SCNiPTR         "li"    /* intptr_t */
 
 /* fscanf(3) macros for unsigned integers. */
 
 #define        SCNo8           "hho"   /* uint8_t */
 #define        SCNo16          "ho"    /* uint16_t */
 #define        SCNo32          "o"     /* uint32_t */
-#define        SCNo64          "llo"   /* uint64_t */
+#define        SCNo64          PRI64"o"        /* uint64_t */
 #define        SCNoLEAST8      "hho"   /* uint_least8_t */
 #define        SCNoLEAST16     "ho"    /* uint_least16_t */
 #define        SCNoLEAST32     "o"     /* uint_least32_t */
-#define        SCNoLEAST64     "llo"   /* uint_least64_t */
+#define        SCNoLEAST64     PRI64"o"        /* uint_least64_t */
 #define        SCNoFAST8       "o"     /* uint_fast8_t */
 #define        SCNoFAST16      "o"     /* uint_fast16_t */
 #define        SCNoFAST32      "o"     /* uint_fast32_t */
-#define        SCNoFAST64      "llo"   /* uint_fast64_t */
+#define        SCNoFAST64      PRI64"o"        /* uint_fast64_t */
 #define        SCNoMAX         "jo"    /* uintmax_t */
-#define        SCNoPTR         "o"     /* uintptr_t */
+#define        SCNoPTR         "lo"    /* uintptr_t */
 
 #define        SCNu8           "hhu"   /* uint8_t */
 #define        SCNu16          "hu"    /* uint16_t */
 #define        SCNu32          "u"     /* uint32_t */
-#define        SCNu64          "llu"   /* uint64_t */
+#define        SCNu64          PRI64"u"        /* uint64_t */
 #define        SCNuLEAST8      "hhu"   /* uint_least8_t */
 #define        SCNuLEAST16     "hu"    /* uint_least16_t */
 #define        SCNuLEAST32     "u"     /* uint_least32_t */
-#define        SCNuLEAST64     "llu"   /* uint_least64_t */
+#define        SCNuLEAST64     PRI64"u"        /* uint_least64_t */
 #define        SCNuFAST8       "u"     /* uint_fast8_t */
 #define        SCNuFAST16      "u"     /* uint_fast16_t */
 #define        SCNuFAST32      "u"     /* uint_fast32_t */
-#define        SCNuFAST64      "llu"   /* uint_fast64_t */
+#define        SCNuFAST64      PRI64"u"        /* uint_fast64_t */
 #define        SCNuMAX         "ju"    /* uintmax_t */
-#define        SCNuPTR         "u"     /* uintptr_t */
+#define        SCNuPTR         "lu"    /* uintptr_t */
 
 #define        SCNx8           "hhx"   /* uint8_t */
 #define        SCNx16          "hx"    /* uint16_t */
 #define        SCNx32          "x"     /* uint32_t */
-#define        SCNx64          "llx"   /* uint64_t */
+#define        SCNx64          PRI64"x"        /* uint64_t */
 #define        SCNxLEAST8      "hhx"   /* uint_least8_t */
 #define        SCNxLEAST16     "hx"    /* uint_least16_t */
 #define        SCNxLEAST32     "x"     /* uint_least32_t */
-#define        SCNxLEAST64     "llx"   /* uint_least64_t */
+#define        SCNxLEAST64     PRI64"x"        /* uint_least64_t */
 #define        SCNxFAST8       "x"     /* uint_fast8_t */
 #define        SCNxFAST16      "x"     /* uint_fast16_t */
 #define        SCNxFAST32      "x"     /* uint_fast32_t */
-#define        SCNxFAST64      "llx"   /* uint_fast64_t */
+#define        SCNxFAST64      PRI64"x"        /* uint_fast64_t */
 #define        SCNxMAX         "jx"    /* uintmax_t */
-#define        SCNxPTR         "x"     /* uintptr_t */
+#define        SCNxPTR         "lx"    /* uintptr_t */
 
 #endif /* !_MACHINE_INTTYPES_H_ */

Modified: head/sys/mips/include/_limits.h
==============================================================================
--- head/sys/mips/include/_limits.h     Fri Apr 16 23:48:28 2010        
(r206714)
+++ head/sys/mips/include/_limits.h     Fri Apr 16 23:54:56 2010        
(r206715)
@@ -34,6 +34,10 @@
 #ifndef _MACHINE__LIMITS_H_
 #define        _MACHINE__LIMITS_H_
 
+#if _MIPS_SZLONG == 64
+#define        _LARGE_LONG
+#endif
+
 /*
  * According to ANSI (section 2.2.4.2), the values below must be usable by
  * #if preprocessing directives.  Additionally, the expression must have the
@@ -76,9 +80,9 @@
 #define        __LLONG_MAX     0x7fffffffffffffffLL    /* max value for a long 
long */
 #define        __LLONG_MIN     (-0x7fffffffffffffffLL - 1)  /* min for a long 
long */
 
-#define        __SSIZE_MAX     __INT_MAX       /* max value for a ssize_t */
+#define        __SSIZE_MAX     __LONG_MAX      /* max value for a ssize_t */
 
-#define        __SIZE_T_MAX    __UINT_MAX      /* max value for a size_t */
+#define        __SIZE_T_MAX    __ULONG_MAX     /* max value for a size_t */
 
 #define        __OFF_MAX       __LLONG_MAX     /* max value for an off_t */
 #define        __OFF_MIN       __LLONG_MIN     /* min value for an off_t */
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to