160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson/**
260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson * This file has no copyright assigned and is placed in the Public Domain.
360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson * This file was original part of the w64 mingw-runtime package.
460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson */
560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson/*
760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *  THIS SOFTWARE IS NOT COPYRIGHTED
860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *
960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *  Modified for libusb/MSVC: Pete Batard <pbatard@gmail.com>
1060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *
1160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *  This source code is offered for use in the public domain. You may
1260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *  use, modify or distribute it freely.
1360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *
1460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *  This code is distributed in the hope that it will be useful but
1560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
1660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *  DISCLAIMED. This includes but is not limited to warranties of
1760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *
1960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *  Date: 2010-04-02
2060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson */
2160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
2260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#ifndef _MSC_VER
2360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#error This header should only be used with Microsoft compilers
2460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#endif
2560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
2660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson/* 7.8 Format conversion of integer types <inttypes.h> */
2760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
2860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#ifndef _INTTYPES_H_
2960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define _INTTYPES_H_
3060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
3160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#include <stdint.h>
3260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
3360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#ifdef	__cplusplus
3460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampsonextern	"C"	{
3560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#endif
3660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
3760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampsontypedef struct {
3860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson	intmax_t quot;
3960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson	intmax_t rem;
4060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson	} imaxdiv_t;
4160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
4260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
4360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson/* 7.8.1 Macros for format specifiers
4460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *
4560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson * MS runtime does not yet understand C9x standard "ll"
4660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson * length specifier. It appears to treat "ll" as "l".
4760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson * The non-standard I64 length specifier causes warning in GCC,
4860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson * but understood by MS runtime functions.
4960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson */
5060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
5160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson/* fprintf macros for signed types */
5260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRId8 "d"
5360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRId16 "d"
5460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRId32 "d"
5560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRId64 "I64d"
5660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
5760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIdLEAST8 "d"
5860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIdLEAST16 "d"
5960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIdLEAST32 "d"
6060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIdLEAST64 "I64d"
6160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
6260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIdFAST8 "d"
6360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIdFAST16 "d"
6460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIdFAST32 "d"
6560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIdFAST64 "I64d"
6660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
6760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIdMAX "I64d"
6860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
6960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIi8 "i"
7060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIi16 "i"
7160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIi32 "i"
7260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIi64 "I64i"
7360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
7460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIiLEAST8 "i"
7560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIiLEAST16 "i"
7660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIiLEAST32 "i"
7760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIiLEAST64 "I64i"
7860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
7960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIiFAST8 "i"
8060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIiFAST16 "i"
8160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIiFAST32 "i"
8260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIiFAST64 "I64i"
8360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
8460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIiMAX "I64i"
8560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
8660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIo8 "o"
8760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIo16 "o"
8860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIo32 "o"
8960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIo64 "I64o"
9060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
9160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIoLEAST8 "o"
9260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIoLEAST16 "o"
9360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIoLEAST32 "o"
9460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIoLEAST64 "I64o"
9560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
9660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIoFAST8 "o"
9760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIoFAST16 "o"
9860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIoFAST32 "o"
9960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIoFAST64 "I64o"
10060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
10160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIoMAX "I64o"
10260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
10360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson/* fprintf macros for unsigned types */
10460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIu8 "u"
10560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIu16 "u"
10660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIu32 "u"
10760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIu64 "I64u"
10860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
10960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
11060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIuLEAST8 "u"
11160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIuLEAST16 "u"
11260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIuLEAST32 "u"
11360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIuLEAST64 "I64u"
11460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
11560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIuFAST8 "u"
11660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIuFAST16 "u"
11760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIuFAST32 "u"
11860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIuFAST64 "I64u"
11960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
12060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIuMAX "I64u"
12160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
12260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIx8 "x"
12360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIx16 "x"
12460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIx32 "x"
12560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIx64 "I64x"
12660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
12760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIxLEAST8 "x"
12860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIxLEAST16 "x"
12960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIxLEAST32 "x"
13060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIxLEAST64 "I64x"
13160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
13260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIxFAST8 "x"
13360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIxFAST16 "x"
13460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIxFAST32 "x"
13560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIxFAST64 "I64x"
13660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
13760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIxMAX "I64x"
13860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
13960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIX8 "X"
14060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIX16 "X"
14160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIX32 "X"
14260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIX64 "I64X"
14360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
14460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIXLEAST8 "X"
14560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIXLEAST16 "X"
14660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIXLEAST32 "X"
14760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIXLEAST64 "I64X"
14860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
14960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIXFAST8 "X"
15060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIXFAST16 "X"
15160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIXFAST32 "X"
15260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIXFAST64 "I64X"
15360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
15460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIXMAX "I64X"
15560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
15660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson/*
15760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *   fscanf macros for signed int types
15860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *   NOTE: if 32-bit int is used for int_fast8_t and int_fast16_t
15960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *   (see stdint.h, 7.18.1.3), FAST8 and FAST16 should have
16060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson *   no length identifiers
16160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson */
16260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
16360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNd16 "hd"
16460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNd32 "d"
16560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNd64 "I64d"
16660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
16760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNdLEAST16 "hd"
16860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNdLEAST32 "d"
16960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNdLEAST64 "I64d"
17060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
17160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNdFAST16 "hd"
17260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNdFAST32 "d"
17360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNdFAST64 "I64d"
17460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
17560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNdMAX "I64d"
17660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
17760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNi16 "hi"
17860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNi32 "i"
17960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNi64 "I64i"
18060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
18160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNiLEAST16 "hi"
18260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNiLEAST32 "i"
18360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNiLEAST64 "I64i"
18460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
18560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNiFAST16 "hi"
18660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNiFAST32 "i"
18760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNiFAST64 "I64i"
18860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
18960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNiMAX "I64i"
19060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
19160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNo16 "ho"
19260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNo32 "o"
19360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNo64 "I64o"
19460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
19560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNoLEAST16 "ho"
19660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNoLEAST32 "o"
19760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNoLEAST64 "I64o"
19860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
19960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNoFAST16 "ho"
20060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNoFAST32 "o"
20160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNoFAST64 "I64o"
20260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
20360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNoMAX "I64o"
20460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
20560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNx16 "hx"
20660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNx32 "x"
20760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNx64 "I64x"
20860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
20960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNxLEAST16 "hx"
21060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNxLEAST32 "x"
21160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNxLEAST64 "I64x"
21260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
21360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNxFAST16 "hx"
21460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNxFAST32 "x"
21560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNxFAST64 "I64x"
21660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
21760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNxMAX "I64x"
21860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
21960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson/* fscanf macros for unsigned int types */
22060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
22160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNu16 "hu"
22260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNu32 "u"
22360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNu64 "I64u"
22460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
22560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNuLEAST16 "hu"
22660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNuLEAST32 "u"
22760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNuLEAST64 "I64u"
22860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
22960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNuFAST16 "hu"
23060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNuFAST32 "u"
23160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNuFAST64 "I64u"
23260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
23360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNuMAX "I64u"
23460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
23560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#ifdef _WIN64
23660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIdPTR "I64d"
23760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIiPTR "I64i"
23860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIoPTR "I64o"
23960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIuPTR "I64u"
24060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIxPTR "I64x"
24160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIXPTR "I64X"
24260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNdPTR "I64d"
24360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNiPTR "I64i"
24460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNoPTR "I64o"
24560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNxPTR "I64x"
24660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNuPTR "I64u"
24760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#else
24860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIdPTR "d"
24960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIiPTR "i"
25060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIoPTR "o"
25160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIuPTR "u"
25260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIxPTR "x"
25360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define PRIXPTR "X"
25460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNdPTR "d"
25560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNiPTR "i"
25660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNoPTR "o"
25760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNxPTR "x"
25860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson #define SCNuPTR "u"
25960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#endif
26060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
26160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
26260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson/*
26360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson * no length modifier for char types prior to C9x
26460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson * MS runtime  scanf appears to treat "hh" as "h"
26560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson */
26660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
26760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson/* signed char */
26860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNd8 "hhd"
26960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNdLEAST8 "hhd"
27060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNdFAST8 "hhd"
27160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
27260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNi8 "hhi"
27360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNiLEAST8 "hhi"
27460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNiFAST8 "hhi"
27560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
27660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNo8 "hho"
27760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNoLEAST8 "hho"
27860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNoFAST8 "hho"
27960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
28060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNx8 "hhx"
28160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNxLEAST8 "hhx"
28260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNxFAST8 "hhx"
28360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
28460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson/* unsigned char */
28560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNu8 "hhu"
28660ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNuLEAST8 "hhu"
28760ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#define SCNuFAST8 "hhu"
28860ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#endif /* __STDC_VERSION__ >= 199901 */
28960ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
29060ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
29160ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#ifdef	__cplusplus
29260ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson}
29360ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#endif
29460ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson
29560ed380e961ed65bf2ddeb16d43121cdbeba6d3eAdam Hampson#endif /* ndef _INTTYPES_H */
296