]> sourceware.org Git - newlib-cygwin.git/commitdiff
2005-03-06 Ralf Corsepious <ralf.corsepius@rtems.org>
authorJeff Johnston <jjohnstn@redhat.com>
Sun, 6 Mar 2005 20:51:38 +0000 (20:51 +0000)
committerJeff Johnston <jjohnstn@redhat.com>
Sun, 6 Mar 2005 20:51:38 +0000 (20:51 +0000)
        * libc/sys/rtems/include/inttypes.h: New file.
        * libc/sys/rtems/include/stdint.h: Ditto.

newlib/ChangeLog
newlib/libc/sys/rtems/include/inttypes.h [new file with mode: 0644]
newlib/libc/sys/rtems/include/stdint.h [new file with mode: 0644]

index 95c92a5ce9ccaed6b8ff254eb81a9805b403504e..5c824399a17efe7964f6db2ebf6ae2c77f42b81c 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-06  Ralf Corsepious  <ralf.corsepius@rtems.org>
+
+       * libc/sys/rtems/include/inttypes.h: New file.
+       * libc/sys/rtems/include/stdint.h: Ditto.
+
 2005-03-06  Ralf Corsepious  <ralf.corsepius@rtems.org>
 
        * libc/string/memcmp.c: Fix to avoid pointer signedness warning.
diff --git a/newlib/libc/sys/rtems/include/inttypes.h b/newlib/libc/sys/rtems/include/inttypes.h
new file mode 100644 (file)
index 0000000..5f4f918
--- /dev/null
@@ -0,0 +1,288 @@
+/*
+ * Copyright (c) 2004, 2005 by
+ * Ralf Corsepius, Ulm/Germany. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+/**
+ *  @file  inttypes.h
+ */
+
+#ifndef _INTTYPES_H
+#define _INTTYPES_H
+
+#include <stdint.h>
+
+#define __STRINGIFY(a) #a
+
+/* 8-bit types */
+#define __PRI8(x) __STRINGIFY(x)
+#define __SCN8(x) __STRINGIFY(hh##x)
+
+
+#define PRId8          __PRI8(d)
+#define PRIi8          __PRI8(i)
+#define PRIo8          __PRI8(o)
+#define PRIu8          __PRI8(u)
+#define PRIx8          __PRI8(x)
+#define PRIX8          __PRI8(X)
+
+#define SCNd8          __SCN8(d)
+#define SCNi8          __SCN8(i)
+#define SCNo8          __SCN8(o)
+#define SCNu8          __SCN8(u)
+#define SCNx8          __SCN8(x)
+
+
+#define PRIdLEAST8     __PRI8(d)
+#define PRIiLEAST8     __PRI8(i)
+#define PRIoLEAST8     __PRI8(o)
+#define PRIuLEAST8     __PRI8(u)
+#define PRIxLEAST8     __PRI8(x)
+#define PRIXLEAST8     __PRI8(X)
+
+#define SCNdLEAST8     __SCN8(d)
+#define SCNiLEAST8     __SCN8(i)
+#define SCNoLEAST8     __SCN8(o)
+#define SCNuLEAST8     __SCN8(u)
+#define SCNxLEAST8     __SCN8(x)
+
+
+#define PRIdFAST8      __PRI8(d)
+#define PRIiFAST8      __PRI8(i)
+#define PRIoFAST8      __PRI8(o)
+#define PRIuFAST8      __PRI8(u)
+#define PRIxFAST8      __PRI8(x)
+#define PRIXFAST8      __PRI8(X)
+
+#define SCNdFAST8      __SCN8(d)
+#define SCNiFAST8      __SCN8(i)
+#define SCNoFAST8      __SCN8(o)
+#define SCNuFAST8      __SCN8(u)
+#define SCNxFAST8      __SCN8(x)
+
+/* 16-bit types */
+#define __PRI16(x) __STRINGIFY(x)
+#define __SCN16(x) __STRINGIFY(h##x)
+
+
+#define PRId16         __PRI16(d)
+#define PRIi16         __PRI16(i)
+#define PRIo16         __PRI16(o)
+#define PRIu16         __PRI16(u)
+#define PRIx16         __PRI16(x)
+#define PRIX16         __PRI16(X)
+
+#define SCNd16         __SCN16(d)
+#define SCNi16         __SCN16(i)
+#define SCNo16         __SCN16(o)
+#define SCNu16         __SCN16(u)
+#define SCNx16         __SCN16(x)
+
+
+#define PRIdLEAST16    __PRI16(d)
+#define PRIiLEAST16    __PRI16(i)
+#define PRIoLEAST16    __PRI16(o)
+#define PRIuLEAST16    __PRI16(u)
+#define PRIxLEAST16    __PRI16(x)
+#define PRIXLEAST16    __PRI16(X)
+
+#define SCNdLEAST16    __SCN16(d)
+#define SCNiLEAST16    __SCN16(i)
+#define SCNoLEAST16    __SCN16(o)
+#define SCNuLEAST16    __SCN16(u)
+#define SCNxLEAST16    __SCN16(x)
+
+
+#define PRIdFAST16     __PRI16(d)
+#define PRIiFAST16     __PRI16(i)
+#define PRIoFAST16     __PRI16(o)
+#define PRIuFAST16     __PRI16(u)
+#define PRIxFAST16     __PRI16(x)
+#define PRIXFAST16     __PRI16(X)
+
+#define SCNdFAST16     __SCN16(d)
+#define SCNiFAST16     __SCN16(i)
+#define SCNoFAST16     __SCN16(o)
+#define SCNuFAST16     __SCN16(u)
+#define SCNxFAST16     __SCN16(x)
+
+/* 32-bit types */
+#if defined(__have_long32)
+#define __PRI32(x) __STRINGIFY(l##x)
+#define __SCN32(x) __STRINGIFY(l##x)
+#else
+#define __PRI32(x) __STRINGIFY(x)
+#define __SCN32(x) __STRINGIFY(x)
+#endif
+
+#define PRId32         __PRI32(d)
+#define PRIi32         __PRI32(i)
+#define PRIo32         __PRI32(o)
+#define PRIu32         __PRI32(u)
+#define PRIx32         __PRI32(x)
+#define PRIX32         __PRI32(X)
+
+#define SCNd32         __SCN32(d)
+#define SCNi32         __SCN32(i)
+#define SCNo32         __SCN32(o)
+#define SCNu32         __SCN32(u)
+#define SCNx32         __SCN32(x)
+
+
+#define PRIdLEAST32    __PRI32(d)
+#define PRIiLEAST32    __PRI32(i)
+#define PRIoLEAST32    __PRI32(o)
+#define PRIuLEAST32    __PRI32(u)
+#define PRIxLEAST32    __PRI32(x)
+#define PRIXLEAST32    __PRI32(X)
+
+#define SCNdLEAST32    __SCN32(d)
+#define SCNiLEAST32    __SCN32(i)
+#define SCNoLEAST32    __SCN32(o)
+#define SCNuLEAST32    __SCN32(u)
+#define SCNxLEAST32    __SCN32(x)
+
+
+#define PRIdFAST32     __PRI32(d)
+#define PRIiFAST32     __PRI32(i)
+#define PRIoFAST32     __PRI32(o)
+#define PRIuFAST32     __PRI32(u)
+#define PRIxFAST32     __PRI32(x)
+#define PRIXFAST32     __PRI32(X)
+
+#define SCNdFAST32     __SCN32(d)
+#define SCNiFAST32     __SCN32(i)
+#define SCNoFAST32     __SCN32(o)
+#define SCNuFAST32     __SCN32(u)
+#define SCNxFAST32     __SCN32(x)
+
+
+/* 64-bit types */
+#if defined(__have_longlong64)
+#define __PRI64(x) __STRINGIFY(ll##x)
+#define __SCN64(x) __STRINGIFY(ll##x)
+#elif defined(__have_long64)
+#define __PRI64(x) __STRINGIFY(l##x)
+#define __SCN64(x) __STRINGIFY(l##x)
+#else
+#define __PRI64(x) __STRINGIFY(x)
+#define __SCN64(x) __STRINGIFY(x)
+#endif
+
+#define PRId64         __PRI64(d)
+#define PRIi64         __PRI64(i)
+#define PRIo64         __PRI64(o)
+#define PRIu64         __PRI64(u)
+#define PRIx64         __PRI64(x)
+#define PRIX64         __PRI64(X)
+
+#define SCNd64         __SCN64(d)
+#define SCNi64         __SCN64(i)
+#define SCNo64         __SCN64(o)
+#define SCNu64         __SCN64(u)
+#define SCNx64         __SCN64(x)
+
+#if __int64_t_defined
+#define PRIdLEAST64    __PRI64(d)
+#define PRIiLEAST64    __PRI64(i)
+#define PRIoLEAST64    __PRI64(o)
+#define PRIuLEAST64    __PRI64(u)
+#define PRIxLEAST64    __PRI64(x)
+#define PRIXLEAST64    __PRI64(X)
+
+#define SCNdLEAST64    __SCN64(d)
+#define SCNiLEAST64    __SCN64(i)
+#define SCNoLEAST64    __SCN64(o)
+#define SCNuLEAST64    __SCN64(u)
+#define SCNxLEAST64    __SCN64(x)
+
+
+#define PRIdFAST64     __PRI64(d)
+#define PRIiFAST64     __PRI64(i)
+#define PRIoFAST64     __PRI64(o)
+#define PRIuFAST64     __PRI64(u)
+#define PRIxFAST64     __PRI64(x)
+#define PRIXFAST64     __PRI64(X)
+
+#define SCNdFAST64     __SCN64(d)
+#define SCNiFAST64     __SCN64(i)
+#define SCNoFAST64     __SCN64(o)
+#define SCNuFAST64     __SCN64(u)
+#define SCNxFAST64     __SCN64(x)
+#endif
+
+/* max-bit types */
+#if defined(__have_longlong64)
+#define __PRIMAX(x) __STRINGIFY(ll##x)
+#define __SCNMAX(x) __STRINGIFY(ll##x)
+#elif defined(__have_long64)
+#define __PRIMAX(x) __STRINGIFY(l##x)
+#define __SCNMAX(x) __STRINGIFY(l##x)
+#else
+#define __PRIMAX(x) __STRINGIFY(x)
+#define __SCNMAX(x) __STRINGIFY(x)
+#endif
+
+#define PRIdMAX                __PRIMAX(d)
+#define PRIiMAX                __PRIMAX(i)
+#define PRIoMAX                __PRIMAX(o)
+#define PRIuMAX                __PRIMAX(u)
+#define PRIxMAX                __PRIMAX(x)
+#define PRIXMAX                __PRIMAX(X)
+
+#define SCNdMAX                __SCNMAX(d)
+#define SCNiMAX                __SCNMAX(i)
+#define SCNoMAX                __SCNMAX(o)
+#define SCNuMAX                __SCNMAX(u)
+#define SCNxMAX                __SCNMAX(x)
+
+/* ptr types */
+#if defined(__have_longlong64)
+#define __PRIPTR(x) __STRINGIFY(ll##x)
+#define __SCNPTR(x) __STRINGIFY(ll##x)
+#elif defined(__have_long64)
+#define __PRIPTR(x) __STRINGIFY(l##x)
+#define __SCNPTR(x) __STRINGIFY(l##x)
+#else
+#define __PRIPTR(x) __STRINGIFY(x)
+#define __SCNPTR(x) __STRINGIFY(x)
+#endif
+
+#define PRIdPTR                __PRIPTR(d)
+#define PRIiPTR                __PRIPTR(i)
+#define PRIoPTR                __PRIPTR(o)
+#define PRIuPTR                __PRIPTR(u)
+#define PRIxPTR                __PRIPTR(x)
+#define PRIXPTR                __PRIPTR(X)
+
+#define SCNdPTR                __SCNPTR(d)
+#define SCNiPTR                __SCNPTR(i)
+#define SCNoPTR                __SCNPTR(o)
+#define SCNuPTR                __SCNPTR(u)
+#define SCNxPTR                __SCNPTR(x)
+
+
+typedef struct {
+  intmax_t     quot;
+  intmax_t     rem;
+} imaxdiv_t;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern intmax_t  imaxabs(intmax_t j);
+extern imaxdiv_t imaxdiv(intmax_t numer, intmax_t denomer);
+extern intmax_t  strtoimax(const char *__restrict, char **__restrict, int);
+extern uintmax_t strtoumax(const char *__restrict, char **__restrict, int);
+extern intmax_t  wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int);
+extern uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/newlib/libc/sys/rtems/include/stdint.h b/newlib/libc/sys/rtems/include/stdint.h
new file mode 100644 (file)
index 0000000..d108d05
--- /dev/null
@@ -0,0 +1,282 @@
+/*
+ * Copyright (c) 2004, 2005 by
+ * Ralf Corsepius, Ulm/Germany. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+/*
+ * @todo - Add fast<N>_t types.
+ * @todo - Add support for wint_t types.
+ */
+
+#ifndef _STDINT_H
+#define _STDINT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(__GNUC__) && (__GNUC__ >= 3 ) \
+  && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ > 2 ) 
+#define __EXP(x) __##x##__
+#else
+#define __EXP(x) x
+#include <limits.h>
+#endif
+
+#if __EXP(SCHAR_MAX) == 0x7f
+typedef signed char int8_t ;
+typedef unsigned char uint8_t ;
+#define __int8_t_defined 1
+#endif
+
+#if __int8_t_defined
+typedef signed char int_least8_t;
+typedef unsigned char uint_least8_t;
+#define __int_least8_t_defined 1
+#endif
+
+#if __EXP(SHRT_MAX) == 0x7fff
+typedef signed short int16_t;
+typedef unsigned short uint16_t;
+#define __int16_t_defined 1
+#elif __EXP(INT_MAX) == 0x7fff
+typedef signed int int16_t;
+typedef unsigned int uint16_t;
+#define __int16_t_defined 1
+#elif __EXP(SCHAR_MAX) == 0x7fff
+typedef signed char int16_t;
+typedef unsigned char uint16_t;
+#define __int16_t_defined 1
+#endif
+
+#if __int16_t_defined
+typedef int16_t        int_least16_t;
+typedef uint16_t       uint_least16_t;
+#define __int_least16_t_defined 1
+
+#ifndef __int_least8_t_defined
+typedef int16_t                int_least8_t;
+typedef uint16_t       uint_least8_t;
+#define __int_least8_t_defined 1
+#endif
+#endif
+
+#if __EXP(INT_MAX) == 0x7fffffffL
+typedef signed int int32_t;
+typedef unsigned int uint32_t;
+#define __int32_t_defined 1
+#elif __EXP(LONG_MAX) == 0x7fffffffL
+typedef signed long int32_t;
+typedef unsigned long uint32_t;
+#define __int32_t_defined 1
+#define __have_long32 1
+#elif __EXP(SHRT_MAX) == 0x7fffffffL
+typedef signed short int32_t;
+typedef unsigned short uint32_t;
+#define __int32_t_defined 1
+#elif __EXP(SCHAR_MAX) == 0x7fffffffL
+typedef signed char int32_t;
+typedef unsigned char uint32_t;
+#define __int32_t_defined 1
+#endif
+
+#if __int32_t_defined
+typedef int32_t        int_least32_t;
+typedef uint32_t       uint_least32_t;
+#define __int_least32_t_defined 1
+
+#ifndef __int_least8_t_defined
+typedef int32_t                int_least8_t;
+typedef uint32_t       uint_least8_t;
+#define __int_least8_t_defined 1
+#endif
+
+#ifndef __int_least16_t_defined
+typedef int32_t                int_least16_t;
+typedef uint32_t       uint_least16_t;
+#define __int_least16_t_defined 1
+#endif
+#endif
+
+#if __EXP(LONG_MAX) > 0x7fffffff
+typedef signed long int64_t;
+typedef unsigned long uint64_t;
+#define __int64_t_defined 1
+#define __have_long64 1
+#elif  defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff)
+typedef signed long long int64_t;
+typedef unsigned long long uint64_t;
+#define __int64_t_defined 1
+#define __have_longlong64 1
+#elif  defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff)
+typedef signed long long int64_t;
+typedef unsigned long long uint64_t;
+#define __int64_t_defined 1
+#define __have_longlong64 1
+#elif  __EXP(INT_MAX) > 0x7fffffff
+typedef signed int int64_t;
+typedef unsigned int uint64_t;
+#define __int64_t_defined 1
+#endif
+
+#if __int64_t_defined
+typedef int64_t        int_least64_t;
+typedef uint64_t       uint_least64_t;
+#define __int_least64_t_defined 1
+
+#ifndef __int_least8_t_defined
+typedef int64_t                int_least8_t;
+typedef uint64_t       uint_least8_t;
+#define __int_least8_t_defined 1
+#endif
+
+#ifndef __int_least16_t_defined
+typedef int64_t                int_least16_t;
+typedef uint64_t       uint_least16_t;
+#define __int_least16_t_defined 1
+#endif
+
+#ifndef __int_least32_t_defined
+typedef int64_t                int_least32_t;
+typedef uint64_t       uint_least32_t;
+#define __int_least32_t_defined 1
+#endif
+#endif
+
+#if __have_longlong64
+typedef signed long long intmax_t;
+typedef unsigned long long uintmax_t;
+#else
+typedef signed long intmax_t;
+typedef unsigned long uintmax_t;
+#endif
+
+/*
+ * GCC doesn't provide an propriate macro for [u]intptr_t
+ * For now, use __PTRDIFF_TYPE__
+ */
+#if defined(__PTRDIFF_TYPE__)
+typedef signed __PTRDIFF_TYPE__ intptr_t;
+typedef unsigned __PTRDIFF_TYPE__ uintptr_t;
+#else
+/*
+ * Fallback to hardcoded values, 
+ * should be valid on cpu's with 32bit int/32bit void*
+ */
+typedef signed long intptr_t;
+typedef unsigned long uintptr_t;
+#endif
+
+/* Limits of Specified-Width Integer Types */
+
+#if __int8_t_defined
+#define INT8_MIN       -128
+#define INT8_MAX        127
+#define UINT8_MAX       255
+#endif
+
+#if __int_least8_t_defined
+#define INTLEAST8_MIN  -128
+#define INTLEAST8_MAX   127
+#define UINTLEAST8_MAX          255
+#else
+#error required type int_least8_t missing
+#endif
+
+#if __int16_t_defined
+#define INT16_MIN      -32768
+#define INT16_MAX       32767
+#define UINT16_MAX      65535
+#endif
+
+#if __int_least16_t_defined
+#define INTLEAST16_MIN         -32768
+#define INTLEAST16_MAX          32767
+#define UINTLEAST16_MAX  65535
+#else
+#error required type int_least16_t missing
+#endif
+
+#if __int32_t_defined
+#define INT32_MIN      -2147483648
+#define INT32_MAX       2147483647
+#define UINT32_MAX       4294967295
+#endif
+
+#if __int_least32_t_defined
+#define INTLEAST32_MIN         -2147483648
+#define INTLEAST32_MAX          2147483647
+#define UINTLEAST32_MAX  4294967295
+#else
+#error required type int_least32_t missing
+#endif
+
+#if __int64_t_defined
+#define INT64_MIN      -9223372036854775808
+#define INT64_MAX       9223372036854775807
+#define UINT64_MAX     18446744073709551615
+#endif
+
+#if __int_least64_t_defined
+#define INTLEAST64_MIN         -9223372036854775808
+#define INTLEAST64_MAX          9223372036854775807
+#define UINTLEAST64_MAX 18446744073709551615
+#endif
+
+/* This must match size_t in stddef.h, currently long unsigned int */
+#define SIZE_MIN (-__EXP(LONG_MAX) - 1L)
+#define SIZE_MAX __EXP(LONG_MAX)
+
+/* This must match sig_atomic_t in <signal.h> (currently int) */
+#define SIG_ATOMIC_MIN (-__EXP(INT_MAX) - 1)
+#define SIG_ATOMIC_MAX __EXP(INT_MAX)
+
+/* This must match ptrdiff_t  in <stddef.h> (currently long int) */
+#define PTRDIFF_MIN (-__EXP(LONG_MAX) - 1L)
+#define PTHDIFF_MAX __EXT(LONG_MAX)
+
+#undef __EXP
+
+/** Macros for minimum-width integer constant expressions */
+#define INT8_C(x)      x
+#define UINT8_C(x)     x##U
+
+#define INT16_C(x)     x
+#define UINT16_C(x)    x##U
+
+#if __have_long32
+#define INT32_C(x)     x##L
+#define UINT32_C(x)    x##UL
+#else
+#define INT32_C(x)     x
+#define UINT32_C(x)    x##U
+#endif
+
+#if __int64_t_defined
+#if __have_longlong64
+#define INT64_C(x)     x##LL
+#define UINT64_C(x)    x##ULL
+#else
+#define INT64_C(x)     x##L
+#define UINT64_C(x)    x##UL
+#endif
+#endif
+
+/** Macros for greatest-width integer constant expression */
+#if __have_longlong64
+#define INTMAX_C(x)    x##LL
+#define UINTMAX_C(x)   x##ULL
+#else
+#define INTMAX_C(x)    x##L
+#define UINTMAX_C(x)   x##UL
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _STDINT_H */
This page took 0.061251 seconds and 5 git commands to generate.