21#ifndef __WINE_CORECRT_H
22#define __WINE_CORECRT_H
24#ifndef __WINE_USE_MSVCRT
25#define __WINE_USE_MSVCRT
29# error You cannot use config.h with msvcrt
33# error msvcrt headers cannot be used in Unix code
44#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__aarch64__)) && !defined(_WIN64)
49# define _MSVCR_VER 140
52#if !defined(_UCRT) && _MSVCR_VER >= 140
69# if defined(_WIN64) && !defined(__MINGW64__)
72# define __int64 long long
85#define NULL ((void *)0)
89#ifndef __has_attribute
90#define __has_attribute(x) 0
93#ifndef __has_declspec_attribute
95# define __has_declspec_attribute(x) 1
97# define __has_declspec_attribute(x) 0
101#if !defined(_MSC_VER) && !defined(__MINGW32__)
104# if defined(__i386__) && defined(__GNUC__)
105# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) || defined(__APPLE__)
106# define __stdcall __attribute__((__stdcall__)) __attribute__((__force_align_arg_pointer__))
107# define __cdecl __attribute__((__cdecl__)) __attribute__((__force_align_arg_pointer__))
109# define __stdcall __attribute__((__stdcall__))
110# define __cdecl __attribute__((__cdecl__))
112# elif defined(__x86_64__) && defined(__GNUC__)
113# if __has_attribute(__force_align_arg_pointer__)
114# define __stdcall __attribute__((ms_abi)) __attribute__((__force_align_arg_pointer__))
116# define __stdcall __attribute__((ms_abi))
118# define __cdecl __stdcall
125#ifndef DECLSPEC_NORETURN
127# define DECLSPEC_NORETURN __attribute__((noreturn))
128# elif __has_declspec_attribute(noreturn) && !defined(MIDL_PASS)
129# define DECLSPEC_NORETURN __declspec(noreturn)
131# define DECLSPEC_NORETURN
135#ifndef DECLSPEC_ALIGN
137# define DECLSPEC_ALIGN(x) __attribute__((aligned(x)))
138# elif __has_declspec_attribute(align) && !defined(MIDL_PASS)
139# define DECLSPEC_ALIGN(x) __declspec(align(x))
141# define DECLSPEC_ALIGN(x)
147# define _ACRTIMP _CRTIMP
148# elif __has_declspec_attribute(dllimport)
149# define _ACRTIMP __declspec(dllimport)
150# elif defined(__MINGW32__) || defined(__CYGWIN__)
151# define _ACRTIMP __attribute__((dllimport))
158#define _CRT_INT_MAX 0x7fffffff
160#ifndef _MSVCRT_LONG_DEFINED
161#define _MSVCRT_LONG_DEFINED
172#ifndef _INTPTR_T_DEFINED
178#define _INTPTR_T_DEFINED
181#ifndef _UINTPTR_T_DEFINED
187#define _UINTPTR_T_DEFINED
190#ifndef _PTRDIFF_T_DEFINED
196#define _PTRDIFF_T_DEFINED
199#ifndef _SIZE_T_DEFINED
205#define _SIZE_T_DEFINED
208#ifndef _TIME32_T_DEFINED
210#define _TIME32_T_DEFINED
213#ifndef _TIME64_T_DEFINED
215#define _TIME64_T_DEFINED
218#ifdef _USE_32BIT_TIME_T
220# error You cannot use 32-bit time_t in Win64
222#elif !defined(_WIN64)
223# define _USE_32BIT_TIME_T
226#ifndef _TIME_T_DEFINED
227#ifdef _USE_32BIT_TIME_T
232#define _TIME_T_DEFINED
235#ifndef _WCHAR_T_DEFINED
239#define _WCHAR_T_DEFINED
242#ifndef _WCTYPE_T_DEFINED
245#define _WCTYPE_T_DEFINED
248#ifndef _ERRNO_T_DEFINED
250#define _ERRNO_T_DEFINED
264#ifndef _TAGLC_ID_DEFINED
270#define _TAGLC_ID_DEFINED
273#ifndef _THREADLOCALEINFO
314#define _THREADLOCALEINFO
317#if defined(__MINGW32__) || (defined(_MSC_VER) && defined(__clang__))
318#define __WINE_CRT_PRINTF_ATTR(fmt,args) __attribute__((format (printf,fmt,args)))
319#define __WINE_CRT_SCANF_ATTR(fmt,args) __attribute__((format (scanf,fmt,args)))
321#define __WINE_CRT_PRINTF_ATTR(fmt,args)
322#define __WINE_CRT_SCANF_ATTR(fmt,args)
325#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
326#define __WINE_ALLOC_SIZE(...) __attribute__((__alloc_size__(__VA_ARGS__)))
328#define __WINE_ALLOC_SIZE(...)
331#if defined(__GNUC__) && (__GNUC__ > 10)
332#define __WINE_DEALLOC(...) __attribute__((malloc (__VA_ARGS__)))
334#define __WINE_DEALLOC(...)
337#if defined(__GNUC__) && (__GNUC__ > 2)
338#define __WINE_MALLOC __attribute__((malloc))
struct threadlocaleinfostruct threadlocinfo
#define DECLSPEC_ALIGN(x)
struct threadlocaleinfostruct * pthreadlocinfo
struct threadmbcinfostruct * pthreadmbcinfo
struct localeinfo_struct _locale_tstruct
struct tagLC_ID * LPLC_ID
struct localeinfo_struct * _locale_t
unsigned long __msvcrt_ulong
unsigned int lc_collate_cp
struct threadlocaleinfostruct::@576 lc_category[6]
struct __lc_time_data * lc_time_curr
const unsigned char * pcumap
const unsigned char * pclmap
int * lconv_intl_refcount
__msvcrt_ulong lc_handle[6]