Commit | Line | Data |
---|---|---|
9f8370e6 CS |
1 | /* Replacement stdint.h file for building GNU Emacs on Windows. |
2 | ||
3 | Copyright (C) 2011 Free Software Foundation, Inc. | |
4 | ||
5 | This file is part of GNU Emacs. | |
6 | ||
7 | GNU Emacs is free software: you can redistribute it and/or modify | |
8 | it under the terms of the GNU General Public License as published by | |
9 | the Free Software Foundation, either version 3 of the License, or | |
10 | (at your option) any later version. | |
11 | ||
12 | GNU Emacs is distributed in the hope that it will be useful, | |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | GNU General Public License for more details. | |
16 | ||
17 | You should have received a copy of the GNU General Public License | |
18 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |
19 | ||
20 | #ifndef _NT_STDINT_H_ | |
21 | #define _NT_STDINT_H_ | |
22 | ||
23 | #ifdef __GNUC__ | |
24 | # include_next <stdint.h> /* use stdint.h if available */ | |
25 | #else /* !__GNUC__ */ | |
26 | ||
27 | /* Minimum definitions to allow compilation with tool chains where | |
28 | stdint.h is not available, e.g. Microsoft Visual Studio. */ | |
29 | ||
30 | typedef unsigned int uint32_t; | |
f7b2cdf3 EZ |
31 | #define INT32_MAX 2147483647 |
32 | /* "i64" is the non-standard suffix used by MSVC for 64-bit constants. */ | |
33 | #define INT64_MAX 9223372036854775807i64 | |
9f8370e6 | 34 | |
0a47eac4 EZ |
35 | #ifdef _WIN64 |
36 | typedef __int64 intptr_t; | |
f7b2cdf3 | 37 | #define INTPTR_MAX INT64_MAX |
0a47eac4 EZ |
38 | #else |
39 | typedef int intptr_t; | |
f7b2cdf3 | 40 | #define INTPTR_MAX INT32_MAX |
0a47eac4 EZ |
41 | #endif |
42 | ||
43 | #define uintmax_t unsigned __int64 | |
f7b2cdf3 | 44 | #define PTRDIFF_MAX INTPTR_MAX |
0a47eac4 | 45 | |
9f8370e6 CS |
46 | #endif /* !__GNUC__ */ |
47 | ||
48 | #endif /* _NT_STDINT_H_ */ |