1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339
  
     | 
    
      /*
 * 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 <newlib.h>
#include <sys/config.h>
#include <sys/_intsup.h>
#include "_ansi.h"
#include <stdint.h>
#define __need_wchar_t
#include <stddef.h>
#if __BSD_VISIBLE
#include <sys/_locale.h>
#endif
#define __STRINGIFY(a) #a
/* 8-bit types */
#define __PRI8(x) __INT8 __STRINGIFY(x)
#define __PRI8LEAST(x) __LEAST8 __STRINGIFY(x)
#define __PRI8FAST(x) __FAST8 __STRINGIFY(x)
/* NOTICE: scanning 8-bit types requires use of the hh specifier
 * which is only supported on newlib platforms that
 * are built with C99 I/O format support enabled.  If the flag in
 * newlib.h hasn't been set during configuration to indicate this, the 8-bit
 * scanning format macros are disabled here as they result in undefined
 * behaviour which can include memory overwrite.  Overriding the flag after the
 * library has been built is not recommended as it will expose the underlying
 * undefined behaviour.
 */
#if defined(_WANT_IO_C99_FORMATS)
  #define __SCN8(x) __INT8 __STRINGIFY(x)
	#define __SCN8LEAST(x) __LEAST8 __STRINGIFY(x)
	#define __SCN8FAST(x) __FAST8 __STRINGIFY(x)
#endif /* _WANT_IO_C99_FORMATS */
#define PRId8		__PRI8(d)
#define PRIi8		__PRI8(i)
#define PRIo8		__PRI8(o)
#define PRIu8		__PRI8(u)
#define PRIx8		__PRI8(x)
#define PRIX8		__PRI8(X)
/* Macros below are only enabled for a newlib built with C99 I/O format support. */
#if defined(_WANT_IO_C99_FORMATS)
#define SCNd8		__SCN8(d)
#define SCNi8		__SCN8(i)
#define SCNo8		__SCN8(o)
#define SCNu8		__SCN8(u)
#define SCNx8		__SCN8(x)
#endif /* _WANT_IO_C99_FORMATS */
#define PRIdLEAST8	__PRI8LEAST(d)
#define PRIiLEAST8	__PRI8LEAST(i)
#define PRIoLEAST8	__PRI8LEAST(o)
#define PRIuLEAST8	__PRI8LEAST(u)
#define PRIxLEAST8	__PRI8LEAST(x)
#define PRIXLEAST8	__PRI8LEAST(X)
/* Macros below are only enabled for a newlib built with C99 I/O format support. */
#if defined(_WANT_IO_C99_FORMATS)
  #define SCNdLEAST8	__SCN8LEAST(d)
  #define SCNiLEAST8	__SCN8LEAST(i)
  #define SCNoLEAST8	__SCN8LEAST(o)
  #define SCNuLEAST8	__SCN8LEAST(u)
  #define SCNxLEAST8	__SCN8LEAST(x)
#endif /* _WANT_IO_C99_FORMATS */
#define PRIdFAST8	__PRI8FAST(d)
#define PRIiFAST8	__PRI8FAST(i)
#define PRIoFAST8	__PRI8FAST(o)
#define PRIuFAST8	__PRI8FAST(u)
#define PRIxFAST8	__PRI8FAST(x)
#define PRIXFAST8	__PRI8FAST(X)
/* Macros below are only enabled for a newlib built with C99 I/O format support. */
#if defined(_WANT_IO_C99_FORMATS)
  #define SCNdFAST8	__SCN8FAST(d)
  #define SCNiFAST8	__SCN8FAST(i)
  #define SCNoFAST8	__SCN8FAST(o)
  #define SCNuFAST8	__SCN8FAST(u)
  #define SCNxFAST8	__SCN8FAST(x)
#endif /* _WANT_IO_C99_FORMATS */
/* 16-bit types */
#define __PRI16(x) __INT16 __STRINGIFY(x)
#define __PRI16LEAST(x) __LEAST16 __STRINGIFY(x)
#define __PRI16FAST(x) __FAST16 __STRINGIFY(x)
#define __SCN16(x) __INT16 __STRINGIFY(x)
#define __SCN16LEAST(x) __LEAST16 __STRINGIFY(x)
#define __SCN16FAST(x) __FAST16 __STRINGIFY(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	__PRI16LEAST(d)
#define PRIiLEAST16	__PRI16LEAST(i)
#define PRIoLEAST16	__PRI16LEAST(o)
#define PRIuLEAST16	__PRI16LEAST(u)
#define PRIxLEAST16	__PRI16LEAST(x)
#define PRIXLEAST16	__PRI16LEAST(X)
#define SCNdLEAST16	__SCN16LEAST(d)
#define SCNiLEAST16	__SCN16LEAST(i)
#define SCNoLEAST16	__SCN16LEAST(o)
#define SCNuLEAST16	__SCN16LEAST(u)
#define SCNxLEAST16	__SCN16LEAST(x)
#define PRIdFAST16	__PRI16FAST(d)
#define PRIiFAST16	__PRI16FAST(i)
#define PRIoFAST16	__PRI16FAST(o)
#define PRIuFAST16	__PRI16FAST(u)
#define PRIxFAST16	__PRI16FAST(x)
#define PRIXFAST16	__PRI16FAST(X)
#define SCNdFAST16	__SCN16FAST(d)
#define SCNiFAST16	__SCN16FAST(i)
#define SCNoFAST16	__SCN16FAST(o)
#define SCNuFAST16	__SCN16FAST(u)
#define SCNxFAST16	__SCN16FAST(x)
/* 32-bit types */
#define __PRI32(x) __INT32 __STRINGIFY(x)
#define __SCN32(x) __INT32 __STRINGIFY(x)
#define __PRI32LEAST(x) __LEAST32 __STRINGIFY(x)
#define __SCN32LEAST(x) __LEAST32 __STRINGIFY(x)
#define __PRI32FAST(x) __FAST32 __STRINGIFY(x)
#define __SCN32FAST(x) __FAST32 __STRINGIFY(x)
#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	__PRI32LEAST(d)
#define PRIiLEAST32	__PRI32LEAST(i)
#define PRIoLEAST32	__PRI32LEAST(o)
#define PRIuLEAST32	__PRI32LEAST(u)
#define PRIxLEAST32	__PRI32LEAST(x)
#define PRIXLEAST32	__PRI32LEAST(X)
#define SCNdLEAST32	__SCN32LEAST(d)
#define SCNiLEAST32	__SCN32LEAST(i)
#define SCNoLEAST32	__SCN32LEAST(o)
#define SCNuLEAST32	__SCN32LEAST(u)
#define SCNxLEAST32	__SCN32LEAST(x)
#define PRIdFAST32	__PRI32FAST(d)
#define PRIiFAST32	__PRI32FAST(i)
#define PRIoFAST32	__PRI32FAST(o)
#define PRIuFAST32	__PRI32FAST(u)
#define PRIxFAST32	__PRI32FAST(x)
#define PRIXFAST32	__PRI32FAST(X)
#define SCNdFAST32	__SCN32FAST(d)
#define SCNiFAST32	__SCN32FAST(i)
#define SCNoFAST32	__SCN32FAST(o)
#define SCNuFAST32	__SCN32FAST(u)
#define SCNxFAST32	__SCN32FAST(x)
/* 64-bit types */
#define __PRI64(x) __INT64 __STRINGIFY(x)
#define __SCN64(x) __INT64 __STRINGIFY(x)
#define __PRI64LEAST(x) __LEAST64 __STRINGIFY(x)
#define __SCN64LEAST(x) __LEAST64 __STRINGIFY(x)
#define __PRI64FAST(x) __FAST64 __STRINGIFY(x)
#define __SCN64FAST(x) __FAST64 __STRINGIFY(x)
#if __int64_t_defined
#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)
#endif
#if __int_least64_t_defined
#define PRIdLEAST64	__PRI64LEAST(d)
#define PRIiLEAST64	__PRI64LEAST(i)
#define PRIoLEAST64	__PRI64LEAST(o)
#define PRIuLEAST64	__PRI64LEAST(u)
#define PRIxLEAST64	__PRI64LEAST(x)
#define PRIXLEAST64	__PRI64LEAST(X)
#define SCNdLEAST64	__SCN64LEAST(d)
#define SCNiLEAST64	__SCN64LEAST(i)
#define SCNoLEAST64	__SCN64LEAST(o)
#define SCNuLEAST64	__SCN64LEAST(u)
#define SCNxLEAST64	__SCN64LEAST(x)
#endif
#if __int_fast64_t_defined
#define PRIdFAST64	__PRI64FAST(d)
#define PRIiFAST64	__PRI64FAST(i)
#define PRIoFAST64	__PRI64FAST(o)
#define PRIuFAST64	__PRI64FAST(u)
#define PRIxFAST64	__PRI64FAST(x)
#define PRIXFAST64	__PRI64FAST(X)
#define SCNdFAST64	__SCN64FAST(d)
#define SCNiFAST64	__SCN64FAST(i)
#define SCNoFAST64	__SCN64FAST(o)
#define SCNuFAST64	__SCN64FAST(u)
#define SCNxFAST64	__SCN64FAST(x)
#endif
/* max-bit types */
#if __have_long64
#define __PRIMAX(x) __STRINGIFY(l##x)
#define __SCNMAX(x) __STRINGIFY(l##x)
#elif __have_longlong64
#define __PRIMAX(x) __STRINGIFY(ll##x)
#define __SCNMAX(x) __STRINGIFY(ll##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 (_INTPTR_EQ_LONGLONG)
# define __PRIPTR(x) __STRINGIFY(ll##x)
# define __SCNPTR(x) __STRINGIFY(ll##x)
#elif defined (_INTPTR_EQ_LONG)
# 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);
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);
#if __BSD_VISIBLE
extern intmax_t  strtoimax_l(const char *__restrict, char **_restrict, int, locale_t);
extern uintmax_t strtoumax_l(const char *__restrict, char **_restrict, int, locale_t);
extern intmax_t  wcstoimax_l(const wchar_t *__restrict, wchar_t **_restrict, int, locale_t);
extern uintmax_t wcstoumax_l(const wchar_t *__restrict, wchar_t **_restrict, int, locale_t);
#endif
#ifdef __cplusplus
}
#endif
#endif
 
     |