root/nt/inc/stdint.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


     1 /* Replacement stdint.h file for building GNU Emacs on Windows.
     2 
     3 Copyright (C) 2011-2023 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 (at
    10 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 <https://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 #ifdef _WIN64
    31 typedef __int64 intptr_t;
    32 typedef unsigned int uint32_t;
    33 typedef unsigned __int64 uint64_t;
    34 #define UINT64_MAX (18446744073709551615i64)
    35 #define UINT64_MIN 0
    36 /* "i64" is the non-standard suffix used by MSVC for 64-bit constants.  */
    37 #define INT64_MAX 9223372036854775807i64
    38 #define INT64_MIN (~INT64_MAX)
    39 #define INTPTR_MAX INT64_MAX
    40 #define INTPTR_MIN INT64_MIN
    41 #define UINTPTR_MAX UINT64_MAX
    42 #define UINTMAX_MAX UINT64_MAX
    43 #define UINTMAX_MIN UINT64_MIN
    44 #define INTMAX_MAX INT64_MAX
    45 #define INTMAX_MIN INT64_MIN
    46 #define uintmax_t unsigned __int64
    47 #define intmax_t __int64
    48 #else
    49 typedef int intptr_t;
    50 typedef unsigned int uint32_t;
    51 #define UINT32_MAX 4294967295
    52 #define UINT32_MIN 0
    53 #define INT32_MAX 2147483647
    54 #define INT32_MIN (~INT32_MAX)
    55 #define INTPTR_MAX INT32_MAX
    56 #define INTPTR_MIN INT32_MIN
    57 #define UINTPTR_MAX UINT32_MAX
    58 #define UINTMAX_MAX UINT32_MAX
    59 #define UINTMAX_MIN UINT32_MIN
    60 #define INTMAX_MAX INT32_MAX
    61 #define INTMAX_MIN INT32_MIN
    62 #define uintmax_t unsigned long
    63 #define intmax_t long
    64 #endif
    65 
    66 #define PTRDIFF_MAX INTPTR_MAX
    67 #define PTRDIFF_MIN INTPTR_MIN
    68 #define SIZE_MAX UINTPTR_MAX
    69 
    70 #endif  /* !__GNUC__ */
    71 
    72 #endif /* _NT_STDINT_H_ */

/* [<][>][^][v][top][bottom][index][help] */