~hamo/ubuntu/precise/grub2/grub2.hi_res

« back to all changes in this revision

Viewing changes to grub-core/gnulib/stdint.in.h

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson, Colin Watson, Evan Broder, Mario Limonciello
  • Date: 2010-11-24 13:59:55 UTC
  • mfrom: (1.17.6 upstream) (17.6.15 experimental)
  • Revision ID: james.westby@ubuntu.com-20101124135955-r6ii5sepayr7jt53
Tags: 1.99~20101124-1ubuntu1
[ Colin Watson ]
* Resynchronise with Debian experimental.  Remaining changes:
  - Adjust for default Ubuntu boot options ("quiet splash").
  - Default to hiding the menu; holding down Shift at boot will show it.
  - Set a monochromatic theme for Ubuntu.
  - Apply Ubuntu GRUB Legacy changes to legacy update-grub script: title,
    recovery mode, quiet option, tweak how memtest86+ is displayed, and
    use UUIDs where appropriate.
  - Fix backslash-escaping in merge_debconf_into_conf.
  - Remove "GNU/Linux" from default distributor string.
  - Add crashkernel= options if kdump and makedumpfile are available.
  - If other operating systems are installed, then automatically unhide
    the menu.  Otherwise, if GRUB_HIDDEN_TIMEOUT is 0, then use keystatus
    if available to check whether Shift is pressed.  If it is, show the
    menu, otherwise boot immediately.  If keystatus is not available, then
    fall back to a short delay interruptible with Escape.
  - Allow Shift to interrupt 'sleep --interruptible'.
  - Don't display introductory message about line editing unless we're
    actually offering a shell prompt.  Don't clear the screen just before
    booting if we never drew the menu in the first place.
  - Remove some verbose messages printed before reading the configuration
    file.
  - Suppress progress messages as the kernel and initrd load for
    non-recovery kernel menu entries.
  - Change prepare_grub_to_access_device to handle filesystems
    loop-mounted on file images.
  - Ignore devices loop-mounted from files in 10_linux.
  - Show the boot menu if the previous boot failed, that is if it failed
    to get to the end of one of the normal runlevels.
  - Don't generate /boot/grub/device.map during grub-install or
    grub-mkconfig by default.
  - Adjust upgrade version checks for Ubuntu.
  - Don't display "GRUB loading" unless Shift is held down.
  - Adjust versions of grub-doc and grub-legacy-doc conflicts to tolerate
    our backport of the grub-doc split.
  - Fix LVM/RAID probing in the absence of /boot/grub/device.map.
  - Look for .mo files in /usr/share/locale-langpack as well, in
    preference.
  - Make sure GRUB_TIMEOUT isn't quoted unnecessarily.
  - Probe all devices in 'grub-probe --target=drive' if
    /boot/grub/device.map is missing.
  - Build-depend on qemu-kvm rather than qemu-system for grub-pc tests.
  - Use qemu rather than qemu-system-i386.
  - Program vesafb on BIOS systems rather than efifb.
  - Add a grub-rescue-efi-amd64 package containing a rescue CD-ROM image
    for EFI-AMD64.
  - On Wubi, don't ask for an install device, but just update wubildr
    using the diverted grub-install.
  - When embedding the core image in a post-MBR gap, check for and avoid
    sectors matching any of a list of known signatures.
  - Disable video_bochs and video_cirrus on PC BIOS systems, as probing
    PCI space seems to break on some systems.
* Downgrade "ACPI shutdown failed" error to a debug message, since it can
  cause spurious test failures.

[ Evan Broder ]
* Enable lua from grub-extras.
* Incorporate the bitop library into lua.
* Add enum_pci function to grub module in lua.
* Switch back to gfxpayload=keep by default, unless the video hardware
  is known to not support it.

[ Mario Limonciello ]
* Built part_msdos and vfat into bootx64.efi (LP: #677758)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright (C) 2001-2002, 2004-2010 Free Software Foundation, Inc.
 
2
   Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
 
3
   This file is part of gnulib.
 
4
 
 
5
   This program is free software; you can redistribute it and/or modify
 
6
   it under the terms of the GNU General Public License as published by
 
7
   the Free Software Foundation; either version 3, or (at your option)
 
8
   any later version.
 
9
 
 
10
   This program is distributed in the hope that it will be useful,
 
11
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
   GNU General Public License for more details.
 
14
 
 
15
   You should have received a copy of the GNU General Public License
 
16
   along with this program; if not, write to the Free Software Foundation,
 
17
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
18
 
 
19
/*
 
20
 * ISO C 99 <stdint.h> for platforms that lack it.
 
21
 * <http://www.opengroup.org/susv3xbd/stdint.h.html>
 
22
 */
 
23
 
 
24
#ifndef _GL_STDINT_H
 
25
 
 
26
#if __GNUC__ >= 3
 
27
@PRAGMA_SYSTEM_HEADER@
 
28
#endif
 
29
 
 
30
/* When including a system file that in turn includes <inttypes.h>,
 
31
   use the system <inttypes.h>, not our substitute.  This avoids
 
32
   problems with (for example) VMS, whose <sys/bitypes.h> includes
 
33
   <inttypes.h>.  */
 
34
#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
 
35
 
 
36
/* Get those types that are already defined in other system include
 
37
   files, so that we can "#define int8_t signed char" below without
 
38
   worrying about a later system include file containing a "typedef
 
39
   signed char int8_t;" that will get messed up by our macro.  Our
 
40
   macros should all be consistent with the system versions, except
 
41
   for the "fast" types and macros, which we recommend against using
 
42
   in public interfaces due to compiler differences.  */
 
43
 
 
44
#if @HAVE_STDINT_H@
 
45
# if defined __sgi && ! defined __c99
 
46
   /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
 
47
      with "This header file is to be used only for c99 mode compilations"
 
48
      diagnostics.  */
 
49
#  define __STDINT_H__
 
50
# endif
 
51
  /* Other systems may have an incomplete or buggy <stdint.h>.
 
52
     Include it before <inttypes.h>, since any "#include <stdint.h>"
 
53
     in <inttypes.h> would reinclude us, skipping our contents because
 
54
     _GL_STDINT_H is defined.
 
55
     The include_next requires a split double-inclusion guard.  */
 
56
# @INCLUDE_NEXT@ @NEXT_STDINT_H@
 
57
#endif
 
58
 
 
59
#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
 
60
#define _GL_STDINT_H
 
61
 
 
62
/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
 
63
   IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
 
64
   AIX 5.2 <sys/types.h> isn't needed and causes troubles.
 
65
   MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
 
66
   relies on the system <stdint.h> definitions, so include
 
67
   <sys/types.h> after @NEXT_STDINT_H@.  */
 
68
#if @HAVE_SYS_TYPES_H@ && ! defined _AIX
 
69
# include <sys/types.h>
 
70
#endif
 
71
 
 
72
/* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
 
73
#include <limits.h>
 
74
 
 
75
#if @HAVE_INTTYPES_H@
 
76
  /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
 
77
     int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
 
78
     <inttypes.h> also defines intptr_t and uintptr_t.  */
 
79
# include <inttypes.h>
 
80
#elif @HAVE_SYS_INTTYPES_H@
 
81
  /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
 
82
     the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX.  */
 
83
# include <sys/inttypes.h>
 
84
#endif
 
85
 
 
86
#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
 
87
  /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
 
88
     int{8,16,32,64}_t and __BIT_TYPES_DEFINED__.  In libc5 >= 5.2.2 it is
 
89
     included by <sys/types.h>.  */
 
90
# include <sys/bitypes.h>
 
91
#endif
 
92
 
 
93
#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
 
94
 
 
95
/* Minimum and maximum values for a integer type under the usual assumption.
 
96
   Return an unspecified value if BITS == 0, adding a check to pacify
 
97
   picky compilers.  */
 
98
 
 
99
#define _STDINT_MIN(signed, bits, zero) \
 
100
  ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
 
101
 
 
102
#define _STDINT_MAX(signed, bits, zero) \
 
103
  ((signed) \
 
104
   ? ~ _STDINT_MIN (signed, bits, zero) \
 
105
   : /* The expression for the unsigned case.  The subtraction of (signed) \
 
106
        is a nop in the unsigned case and avoids "signed integer overflow" \
 
107
        warnings in the signed case.  */ \
 
108
     ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
 
109
 
 
110
/* 7.18.1.1. Exact-width integer types */
 
111
 
 
112
/* Here we assume a standard architecture where the hardware integer
 
113
   types have 8, 16, 32, optionally 64 bits.  */
 
114
 
 
115
#undef int8_t
 
116
#undef uint8_t
 
117
typedef signed char gl_int8_t;
 
118
typedef unsigned char gl_uint8_t;
 
119
#define int8_t gl_int8_t
 
120
#define uint8_t gl_uint8_t
 
121
 
 
122
#undef int16_t
 
123
#undef uint16_t
 
124
typedef short int gl_int16_t;
 
125
typedef unsigned short int gl_uint16_t;
 
126
#define int16_t gl_int16_t
 
127
#define uint16_t gl_uint16_t
 
128
 
 
129
#undef int32_t
 
130
#undef uint32_t
 
131
typedef int gl_int32_t;
 
132
typedef unsigned int gl_uint32_t;
 
133
#define int32_t gl_int32_t
 
134
#define uint32_t gl_uint32_t
 
135
 
 
136
/* Do not undefine int64_t if gnulib is not being used with 64-bit
 
137
   types, since otherwise it breaks platforms like Tandem/NSK.  */
 
138
#if LONG_MAX >> 31 >> 31 == 1
 
139
# undef int64_t
 
140
typedef long int gl_int64_t;
 
141
# define int64_t gl_int64_t
 
142
# define GL_INT64_T
 
143
#elif defined _MSC_VER
 
144
# undef int64_t
 
145
typedef __int64 gl_int64_t;
 
146
# define int64_t gl_int64_t
 
147
# define GL_INT64_T
 
148
#elif @HAVE_LONG_LONG_INT@
 
149
# undef int64_t
 
150
typedef long long int gl_int64_t;
 
151
# define int64_t gl_int64_t
 
152
# define GL_INT64_T
 
153
#endif
 
154
 
 
155
#if ULONG_MAX >> 31 >> 31 >> 1 == 1
 
156
# undef uint64_t
 
157
typedef unsigned long int gl_uint64_t;
 
158
# define uint64_t gl_uint64_t
 
159
# define GL_UINT64_T
 
160
#elif defined _MSC_VER
 
161
# undef uint64_t
 
162
typedef unsigned __int64 gl_uint64_t;
 
163
# define uint64_t gl_uint64_t
 
164
# define GL_UINT64_T
 
165
#elif @HAVE_UNSIGNED_LONG_LONG_INT@
 
166
# undef uint64_t
 
167
typedef unsigned long long int gl_uint64_t;
 
168
# define uint64_t gl_uint64_t
 
169
# define GL_UINT64_T
 
170
#endif
 
171
 
 
172
/* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
 
173
#define _UINT8_T
 
174
#define _UINT32_T
 
175
#define _UINT64_T
 
176
 
 
177
 
 
178
/* 7.18.1.2. Minimum-width integer types */
 
179
 
 
180
/* Here we assume a standard architecture where the hardware integer
 
181
   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
 
182
   are the same as the corresponding N_t types.  */
 
183
 
 
184
#undef int_least8_t
 
185
#undef uint_least8_t
 
186
#undef int_least16_t
 
187
#undef uint_least16_t
 
188
#undef int_least32_t
 
189
#undef uint_least32_t
 
190
#undef int_least64_t
 
191
#undef uint_least64_t
 
192
#define int_least8_t int8_t
 
193
#define uint_least8_t uint8_t
 
194
#define int_least16_t int16_t
 
195
#define uint_least16_t uint16_t
 
196
#define int_least32_t int32_t
 
197
#define uint_least32_t uint32_t
 
198
#ifdef GL_INT64_T
 
199
# define int_least64_t int64_t
 
200
#endif
 
201
#ifdef GL_UINT64_T
 
202
# define uint_least64_t uint64_t
 
203
#endif
 
204
 
 
205
/* 7.18.1.3. Fastest minimum-width integer types */
 
206
 
 
207
/* Note: Other <stdint.h> substitutes may define these types differently.
 
208
   It is not recommended to use these types in public header files. */
 
209
 
 
210
/* Here we assume a standard architecture where the hardware integer
 
211
   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
 
212
   are taken from the same list of types.  Assume that 'long int'
 
213
   is fast enough for all narrower integers.  */
 
214
 
 
215
#undef int_fast8_t
 
216
#undef uint_fast8_t
 
217
#undef int_fast16_t
 
218
#undef uint_fast16_t
 
219
#undef int_fast32_t
 
220
#undef uint_fast32_t
 
221
#undef int_fast64_t
 
222
#undef uint_fast64_t
 
223
typedef long int gl_int_fast8_t;
 
224
typedef unsigned long int gl_uint_fast8_t;
 
225
typedef long int gl_int_fast16_t;
 
226
typedef unsigned long int gl_uint_fast16_t;
 
227
typedef long int gl_int_fast32_t;
 
228
typedef unsigned long int gl_uint_fast32_t;
 
229
#define int_fast8_t gl_int_fast8_t
 
230
#define uint_fast8_t gl_uint_fast8_t
 
231
#define int_fast16_t gl_int_fast16_t
 
232
#define uint_fast16_t gl_uint_fast16_t
 
233
#define int_fast32_t gl_int_fast32_t
 
234
#define uint_fast32_t gl_uint_fast32_t
 
235
#ifdef GL_INT64_T
 
236
# define int_fast64_t int64_t
 
237
#endif
 
238
#ifdef GL_UINT64_T
 
239
# define uint_fast64_t uint64_t
 
240
#endif
 
241
 
 
242
/* 7.18.1.4. Integer types capable of holding object pointers */
 
243
 
 
244
#undef intptr_t
 
245
#undef uintptr_t
 
246
typedef long int gl_intptr_t;
 
247
typedef unsigned long int gl_uintptr_t;
 
248
#define intptr_t gl_intptr_t
 
249
#define uintptr_t gl_uintptr_t
 
250
 
 
251
/* 7.18.1.5. Greatest-width integer types */
 
252
 
 
253
/* Note: These types are compiler dependent. It may be unwise to use them in
 
254
   public header files. */
 
255
 
 
256
#undef intmax_t
 
257
#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
 
258
typedef long long int gl_intmax_t;
 
259
# define intmax_t gl_intmax_t
 
260
#elif defined GL_INT64_T
 
261
# define intmax_t int64_t
 
262
#else
 
263
typedef long int gl_intmax_t;
 
264
# define intmax_t gl_intmax_t
 
265
#endif
 
266
 
 
267
#undef uintmax_t
 
268
#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
 
269
typedef unsigned long long int gl_uintmax_t;
 
270
# define uintmax_t gl_uintmax_t
 
271
#elif defined GL_UINT64_T
 
272
# define uintmax_t uint64_t
 
273
#else
 
274
typedef unsigned long int gl_uintmax_t;
 
275
# define uintmax_t gl_uintmax_t
 
276
#endif
 
277
 
 
278
/* Verify that intmax_t and uintmax_t have the same size.  Too much code
 
279
   breaks if this is not the case.  If this check fails, the reason is likely
 
280
   to be found in the autoconf macros.  */
 
281
typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1];
 
282
 
 
283
/* 7.18.2. Limits of specified-width integer types */
 
284
 
 
285
#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
 
286
 
 
287
/* 7.18.2.1. Limits of exact-width integer types */
 
288
 
 
289
/* Here we assume a standard architecture where the hardware integer
 
290
   types have 8, 16, 32, optionally 64 bits.  */
 
291
 
 
292
#undef INT8_MIN
 
293
#undef INT8_MAX
 
294
#undef UINT8_MAX
 
295
#define INT8_MIN  (~ INT8_MAX)
 
296
#define INT8_MAX  127
 
297
#define UINT8_MAX  255
 
298
 
 
299
#undef INT16_MIN
 
300
#undef INT16_MAX
 
301
#undef UINT16_MAX
 
302
#define INT16_MIN  (~ INT16_MAX)
 
303
#define INT16_MAX  32767
 
304
#define UINT16_MAX  65535
 
305
 
 
306
#undef INT32_MIN
 
307
#undef INT32_MAX
 
308
#undef UINT32_MAX
 
309
#define INT32_MIN  (~ INT32_MAX)
 
310
#define INT32_MAX  2147483647
 
311
#define UINT32_MAX  4294967295U
 
312
 
 
313
#undef INT64_MIN
 
314
#undef INT64_MAX
 
315
#ifdef GL_INT64_T
 
316
/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
 
317
   evaluates the latter incorrectly in preprocessor expressions.  */
 
318
# define INT64_MIN  (- INTMAX_C (1) << 63)
 
319
# define INT64_MAX  INTMAX_C (9223372036854775807)
 
320
#endif
 
321
 
 
322
#undef UINT64_MAX
 
323
#ifdef GL_UINT64_T
 
324
# define UINT64_MAX  UINTMAX_C (18446744073709551615)
 
325
#endif
 
326
 
 
327
/* 7.18.2.2. Limits of minimum-width integer types */
 
328
 
 
329
/* Here we assume a standard architecture where the hardware integer
 
330
   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
 
331
   are the same as the corresponding N_t types.  */
 
332
 
 
333
#undef INT_LEAST8_MIN
 
334
#undef INT_LEAST8_MAX
 
335
#undef UINT_LEAST8_MAX
 
336
#define INT_LEAST8_MIN  INT8_MIN
 
337
#define INT_LEAST8_MAX  INT8_MAX
 
338
#define UINT_LEAST8_MAX  UINT8_MAX
 
339
 
 
340
#undef INT_LEAST16_MIN
 
341
#undef INT_LEAST16_MAX
 
342
#undef UINT_LEAST16_MAX
 
343
#define INT_LEAST16_MIN  INT16_MIN
 
344
#define INT_LEAST16_MAX  INT16_MAX
 
345
#define UINT_LEAST16_MAX  UINT16_MAX
 
346
 
 
347
#undef INT_LEAST32_MIN
 
348
#undef INT_LEAST32_MAX
 
349
#undef UINT_LEAST32_MAX
 
350
#define INT_LEAST32_MIN  INT32_MIN
 
351
#define INT_LEAST32_MAX  INT32_MAX
 
352
#define UINT_LEAST32_MAX  UINT32_MAX
 
353
 
 
354
#undef INT_LEAST64_MIN
 
355
#undef INT_LEAST64_MAX
 
356
#ifdef GL_INT64_T
 
357
# define INT_LEAST64_MIN  INT64_MIN
 
358
# define INT_LEAST64_MAX  INT64_MAX
 
359
#endif
 
360
 
 
361
#undef UINT_LEAST64_MAX
 
362
#ifdef GL_UINT64_T
 
363
# define UINT_LEAST64_MAX  UINT64_MAX
 
364
#endif
 
365
 
 
366
/* 7.18.2.3. Limits of fastest minimum-width integer types */
 
367
 
 
368
/* Here we assume a standard architecture where the hardware integer
 
369
   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
 
370
   are taken from the same list of types.  */
 
371
 
 
372
#undef INT_FAST8_MIN
 
373
#undef INT_FAST8_MAX
 
374
#undef UINT_FAST8_MAX
 
375
#define INT_FAST8_MIN  LONG_MIN
 
376
#define INT_FAST8_MAX  LONG_MAX
 
377
#define UINT_FAST8_MAX  ULONG_MAX
 
378
 
 
379
#undef INT_FAST16_MIN
 
380
#undef INT_FAST16_MAX
 
381
#undef UINT_FAST16_MAX
 
382
#define INT_FAST16_MIN  LONG_MIN
 
383
#define INT_FAST16_MAX  LONG_MAX
 
384
#define UINT_FAST16_MAX  ULONG_MAX
 
385
 
 
386
#undef INT_FAST32_MIN
 
387
#undef INT_FAST32_MAX
 
388
#undef UINT_FAST32_MAX
 
389
#define INT_FAST32_MIN  LONG_MIN
 
390
#define INT_FAST32_MAX  LONG_MAX
 
391
#define UINT_FAST32_MAX  ULONG_MAX
 
392
 
 
393
#undef INT_FAST64_MIN
 
394
#undef INT_FAST64_MAX
 
395
#ifdef GL_INT64_T
 
396
# define INT_FAST64_MIN  INT64_MIN
 
397
# define INT_FAST64_MAX  INT64_MAX
 
398
#endif
 
399
 
 
400
#undef UINT_FAST64_MAX
 
401
#ifdef GL_UINT64_T
 
402
# define UINT_FAST64_MAX  UINT64_MAX
 
403
#endif
 
404
 
 
405
/* 7.18.2.4. Limits of integer types capable of holding object pointers */
 
406
 
 
407
#undef INTPTR_MIN
 
408
#undef INTPTR_MAX
 
409
#undef UINTPTR_MAX
 
410
#define INTPTR_MIN  LONG_MIN
 
411
#define INTPTR_MAX  LONG_MAX
 
412
#define UINTPTR_MAX  ULONG_MAX
 
413
 
 
414
/* 7.18.2.5. Limits of greatest-width integer types */
 
415
 
 
416
#undef INTMAX_MIN
 
417
#undef INTMAX_MAX
 
418
#ifdef INT64_MAX
 
419
# define INTMAX_MIN  INT64_MIN
 
420
# define INTMAX_MAX  INT64_MAX
 
421
#else
 
422
# define INTMAX_MIN  INT32_MIN
 
423
# define INTMAX_MAX  INT32_MAX
 
424
#endif
 
425
 
 
426
#undef UINTMAX_MAX
 
427
#ifdef UINT64_MAX
 
428
# define UINTMAX_MAX  UINT64_MAX
 
429
#else
 
430
# define UINTMAX_MAX  UINT32_MAX
 
431
#endif
 
432
 
 
433
/* 7.18.3. Limits of other integer types */
 
434
 
 
435
/* ptrdiff_t limits */
 
436
#undef PTRDIFF_MIN
 
437
#undef PTRDIFF_MAX
 
438
#if @APPLE_UNIVERSAL_BUILD@
 
439
# ifdef _LP64
 
440
#  define PTRDIFF_MIN  _STDINT_MIN (1, 64, 0l)
 
441
#  define PTRDIFF_MAX  _STDINT_MAX (1, 64, 0l)
 
442
# else
 
443
#  define PTRDIFF_MIN  _STDINT_MIN (1, 32, 0)
 
444
#  define PTRDIFF_MAX  _STDINT_MAX (1, 32, 0)
 
445
# endif
 
446
#else
 
447
# define PTRDIFF_MIN  \
 
448
    _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
 
449
# define PTRDIFF_MAX  \
 
450
    _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
 
451
#endif
 
452
 
 
453
/* sig_atomic_t limits */
 
454
#undef SIG_ATOMIC_MIN
 
455
#undef SIG_ATOMIC_MAX
 
456
#define SIG_ATOMIC_MIN  \
 
457
   _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
 
458
                0@SIG_ATOMIC_T_SUFFIX@)
 
459
#define SIG_ATOMIC_MAX  \
 
460
   _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
 
461
                0@SIG_ATOMIC_T_SUFFIX@)
 
462
 
 
463
 
 
464
/* size_t limit */
 
465
#undef SIZE_MAX
 
466
#if @APPLE_UNIVERSAL_BUILD@
 
467
# ifdef _LP64
 
468
#  define SIZE_MAX  _STDINT_MAX (0, 64, 0ul)
 
469
# else
 
470
#  define SIZE_MAX  _STDINT_MAX (0, 32, 0ul)
 
471
# endif
 
472
#else
 
473
# define SIZE_MAX  _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
 
474
#endif
 
475
 
 
476
/* wchar_t limits */
 
477
/* Get WCHAR_MIN, WCHAR_MAX.
 
478
   This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested
 
479
   includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes
 
480
   <stdint.h> and assumes its types are already defined.  */
 
481
#if ! (defined WCHAR_MIN && defined WCHAR_MAX)
 
482
# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
 
483
# include <wchar.h>
 
484
# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
 
485
#endif
 
486
#undef WCHAR_MIN
 
487
#undef WCHAR_MAX
 
488
#define WCHAR_MIN  \
 
489
   _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
 
490
#define WCHAR_MAX  \
 
491
   _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
 
492
 
 
493
/* wint_t limits */
 
494
#undef WINT_MIN
 
495
#undef WINT_MAX
 
496
#define WINT_MIN  \
 
497
   _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
 
498
#define WINT_MAX  \
 
499
   _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
 
500
 
 
501
#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
 
502
 
 
503
/* 7.18.4. Macros for integer constants */
 
504
 
 
505
#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
 
506
 
 
507
/* 7.18.4.1. Macros for minimum-width integer constants */
 
508
/* According to ISO C 99 Technical Corrigendum 1 */
 
509
 
 
510
/* Here we assume a standard architecture where the hardware integer
 
511
   types have 8, 16, 32, optionally 64 bits, and int is 32 bits.  */
 
512
 
 
513
#undef INT8_C
 
514
#undef UINT8_C
 
515
#define INT8_C(x) x
 
516
#define UINT8_C(x) x
 
517
 
 
518
#undef INT16_C
 
519
#undef UINT16_C
 
520
#define INT16_C(x) x
 
521
#define UINT16_C(x) x
 
522
 
 
523
#undef INT32_C
 
524
#undef UINT32_C
 
525
#define INT32_C(x) x
 
526
#define UINT32_C(x) x ## U
 
527
 
 
528
#undef INT64_C
 
529
#undef UINT64_C
 
530
#if LONG_MAX >> 31 >> 31 == 1
 
531
# define INT64_C(x) x##L
 
532
#elif defined _MSC_VER
 
533
# define INT64_C(x) x##i64
 
534
#elif @HAVE_LONG_LONG_INT@
 
535
# define INT64_C(x) x##LL
 
536
#endif
 
537
#if ULONG_MAX >> 31 >> 31 >> 1 == 1
 
538
# define UINT64_C(x) x##UL
 
539
#elif defined _MSC_VER
 
540
# define UINT64_C(x) x##ui64
 
541
#elif @HAVE_UNSIGNED_LONG_LONG_INT@
 
542
# define UINT64_C(x) x##ULL
 
543
#endif
 
544
 
 
545
/* 7.18.4.2. Macros for greatest-width integer constants */
 
546
 
 
547
#undef INTMAX_C
 
548
#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
 
549
# define INTMAX_C(x)   x##LL
 
550
#elif defined GL_INT64_T
 
551
# define INTMAX_C(x)   INT64_C(x)
 
552
#else
 
553
# define INTMAX_C(x)   x##L
 
554
#endif
 
555
 
 
556
#undef UINTMAX_C
 
557
#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
 
558
# define UINTMAX_C(x)  x##ULL
 
559
#elif defined GL_UINT64_T
 
560
# define UINTMAX_C(x)  UINT64_C(x)
 
561
#else
 
562
# define UINTMAX_C(x)  x##UL
 
563
#endif
 
564
 
 
565
#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
 
566
 
 
567
#endif /* _GL_STDINT_H */
 
568
#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */