ReactOS 0.4.16-dev-2104-gb84fa49
msvcrt.h
Go to the documentation of this file.
1/*
2 * Copyright 2001 Jon Griffiths
3 * Copyright 2004 Dimitrie O. Paun
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library 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 GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 */
19
20#ifndef __WINE_MSVCRT_H
21#define __WINE_MSVCRT_H
22
23#if _MSVCR_VER >= 140
24#ifndef _FILE_DEFINED
25#define _FILE_DEFINED
26typedef struct _iobuf
27{
28 char* _ptr;
29 char* _base;
30 int _cnt;
31 int _flag;
32 int _file;
33 int _charbuf;
34 int _bufsiz;
35 char* _tmpfname;
36} FILE;
37
38#define _IOREAD 0x0001
39#define _IOWRT 0x0002
40#define _IORW 0x0004
41#define _IOEOF 0x0008
42#define _IOERR 0x0010
43#define _IOMYBUF 0x0040
44#define _IOSTRG 0x1000
45#endif
46
47#define MSVCRT__NOBUF 0x0400
48
49#else
50
51#define MSVCRT__NOBUF _IONBF
52
53#endif
54
55#include <errno.h>
56#include <locale.h>
57#include <stdarg.h>
58#include <stdint.h>
59#define _NO_CRT_STDIO_INLINE
60#include <stdio.h>
61#include <stdlib.h>
62#include <wchar.h>
63
64#include "windef.h"
65#include "winbase.h"
66#include "winnls.h"
67#undef strncpy
68#undef wcsncpy
69
70extern BOOL sse2_supported;
71
72#define DBL80_MAX_10_EXP 4932
73#define DBL80_MIN_10_EXP -4951
74
78void __cdecl terminate(void);
79
81
82#ifdef __REACTOS__
83// The wine version is wrong and causes buffer overruns in the test!
84typedef struct {UCHAR ld[10];} MSVCRT__LDOUBLE; /* Intel 80 bit FP format has sizeof() 10! The structure is documented!!! */
85typedef struct {ULONG x80[3];} WINE_BROKEN_LDOUBLE; /* Wine devs making up their own crap */
86#else
87typedef struct {ULONG x80[3];} MSVCRT__LDOUBLE; /* Intel 80 bit FP format has sizeof() 12 */
88#endif
89
90typedef struct __lc_time_data {
91 union {
92 const char *str[43];
93 struct {
94 const char *short_wday[7];
95 const char *wday[7];
96 const char *short_mon[12];
97 const char *mon[12];
98 const char *am;
99 const char *pm;
100 const char *short_date;
101 const char *date;
102 const char *time;
105#if _MSVCR_VER < 110
107#endif
108 int unk;
110#if _MSVCR_VER == 0 || _MSVCR_VER >= 100
111 union {
112 const wchar_t *wstr[43];
113 struct {
114 const wchar_t *short_wday[7];
115 const wchar_t *wday[7];
116 const wchar_t *short_mon[12];
117 const wchar_t *mon[12];
118 const wchar_t *am;
119 const wchar_t *pm;
120 const wchar_t *short_date;
121 const wchar_t *date;
122 const wchar_t *time;
125#endif
126#if _MSVCR_VER >= 110
127 const wchar_t *locname;
128#endif
129 char data[1];
131
132typedef struct threadmbcinfostruct {
137 unsigned short mbulinfo[6];
138 unsigned char mbctype[257];
139 unsigned char mbcasemap[256];
141
142typedef struct _frame_info
143{
144 void *object;
147
148typedef struct
149{
154
159
162
163#if defined(__x86_64__) && _MSVCR_VER>=140
164BOOL msvcrt_init_handler4(void);
165void msvcrt_attach_handler4(void);
166void msvcrt_free_handler4(void);
167#endif
168
169/* TLS data */
171
172#define LOCALE_FREE 0x1
173#define LOCALE_THREAD 0x2
174
175/* Keep in sync with msvcr90/tests/msvcr90.c */
181 int unk1;
182 unsigned int random_seed; /* seed for rand() */
183 char *strtok_next; /* next ptr for strtok() */
184 wchar_t *wcstok_next; /* next ptr for wcstok() */
185 unsigned char *mbstok_next; /* next ptr for mbstok() */
186 char *strerror_buffer; /* buffer for strerror */
187 wchar_t *wcserror_buffer; /* buffer for wcserror */
188 char *tmpnam_buffer; /* buffer for tmpname() */
189 wchar_t *wtmpnam_buffer; /* buffer for wtmpname() */
190 void *unk2[2];
191 char *asctime_buffer; /* buffer for asctime */
192 wchar_t *wasctime_buffer; /* buffer for wasctime */
193 struct tm *time_buffer; /* buffer for localtime/gmtime */
194 char *efcvt_buffer; /* buffer for ecvt/fcvt */
195 int unk3[2];
196 void *unk4[3];
202 int unk5[1];
205 _se_translator_function se_translator; /* preserve offset to exc_record and processing_throw */
206 void *unk6;
211 void *unk8[6];
214 int unk9[2];
216 char cached_locale[131];
217 void *unk10[100];
218#if _MSVCR_VER >= 140
221#endif
222};
223
225
227
228BOOL locale_to_sname(const char*, unsigned short*, BOOL*, WCHAR*);
231extern unsigned int MSVCRT___lc_codepage;
232extern int MSVCRT___lc_collate_cp;
233extern WORD MSVCRT__ctype [257];
234extern BOOL initial_locale;
235extern WORD *MSVCRT__pwctype;
236
237void msvcrt_set_errno(int);
238#if _MSVCR_VER >= 80
239void throw_bad_alloc(void);
240#endif
241
242void __cdecl _purecall(void);
243void __cdecl _amsg_exit(int errnum);
244
245extern char **MSVCRT__environ;
246extern wchar_t **MSVCRT__wenviron;
247extern char **MSVCRT___initenv;
248extern wchar_t **MSVCRT___winitenv;
249
250int env_init(BOOL, BOOL);
251
252wchar_t *msvcrt_wstrdupa(const char *);
253
254extern unsigned int MSVCRT__commode;
255
256/* FIXME: This should be declared in new.h but it's not an extern "C" so
257 * it would not be much use anyway. Even for Winelib applications.
258 */
259void* __cdecl operator_new(size_t);
260void __cdecl operator_delete(void*);
261int __cdecl _set_new_mode(int mode);
262
263typedef void* (__cdecl *malloc_func_t)(size_t);
264typedef void (__cdecl *free_func_t)(void*);
265
266/* Setup and teardown multi threaded locks */
267extern void msvcrt_init_mt_locks(void);
268extern void msvcrt_free_locks(void);
269
270extern void msvcrt_init_exception(void*);
271extern BOOL msvcrt_init_locale(void);
272extern void msvcrt_init_math(void*);
273extern void msvcrt_init_io(void);
274extern void msvcrt_free_io(void);
275extern void msvcrt_free_console(void);
276extern void msvcrt_init_args(void);
277extern void msvcrt_free_args(void);
278extern void msvcrt_init_signals(void);
279extern void msvcrt_free_signals(void);
280extern void msvcrt_free_popen_data(void);
281extern BOOL msvcrt_init_heap(void);
282extern void msvcrt_destroy_heap(void);
283extern void msvcrt_init_clock(void);
284
285#if _MSVCR_VER >= 100
286extern void msvcrt_init_concurrency(void*);
287extern void msvcrt_free_concurrency(void);
288extern void msvcrt_free_scheduler_thread(void);
289#endif
290
292
293/* run-time error codes */
294#define _RT_STACK 0
295#define _RT_NULLPTR 1
296#define _RT_FLOAT 2
297#define _RT_INTDIV 3
298#define _RT_EXECMEM 5
299#define _RT_EXECFORM 6
300#define _RT_EXECENV 7
301#define _RT_SPACEARG 8
302#define _RT_SPACEENV 9
303#define _RT_ABORT 10
304#define _RT_NPTR 12
305#define _RT_FPTR 13
306#define _RT_BREAK 14
307#define _RT_INT 15
308#define _RT_THREAD 16
309#define _RT_LOCK 17
310#define _RT_HEAP 18
311#define _RT_OPENCON 19
312#define _RT_QWIN 20
313#define _RT_NOMAIN 21
314#define _RT_NONCONT 22
315#define _RT_INVALDISP 23
316#define _RT_ONEXIT 24
317#define _RT_PUREVIRT 25
318#define _RT_STDIOINIT 26
319#define _RT_LOWIOINIT 27
320#define _RT_HEAPINIT 28
321#define _RT_DOMAIN 120
322#define _RT_SING 121
323#define _RT_TLOSS 122
324#define _RT_CRNL 252
325#define _RT_BANNER 255
326
327#define MSVCRT_NO_CONSOLE_FD (-2)
328#define MSVCRT_NO_CONSOLE ((HANDLE)MSVCRT_NO_CONSOLE_FD)
329
330#if _MSVCR_VER < 140
331extern FILE MSVCRT__iob[];
332#define __acrt_iob_func(idx) (MSVCRT__iob+(idx))
333#endif
334
335/* internal file._flag flags */
336#define MSVCRT__USERBUF 0x0100
337#define MSVCRT__IOCOMMIT 0x4000
338
339#define _MAX__TIME64_T (((__time64_t)0x00000007 << 32) | 0x93406FFF)
340
348int __cdecl __crtLCMapStringA(LCID, DWORD, const char*, int, char*, int, unsigned int, int);
349
350enum fpmod {
351 FP_ROUND_ZERO, /* only used when dropped part contains only zeros */
358
359struct fpnum {
360 int sign;
361 int exp;
363 enum fpmod mod;
364};
365struct fpnum fpnum_parse(wchar_t (*)(void*), void (*)(void*),
366 void*, pthreadlocinfo, BOOL);
367int fpnum_double(struct fpnum*, double*);
368/* Maybe one day we'll enable the invalid parameter handlers with the full set of information (msvcrXXd)
369 * #define MSVCRT_INVALID_PMT(x) MSVCRT_call_invalid_parameter_handler(x, __FUNCTION__, __FILE__, __LINE__, 0)
370 * #define MSVCRT_CHECK_PMT(x) ((x) ? TRUE : MSVCRT_INVALID_PMT(#x),FALSE)
371 * Until this is done, just keep the same semantics for CHECK_PMT(), but without generating / sending
372 * any information
373 * NB : MSVCRT_call_invalid_parameter_handler is a wrapper around _invalid_parameter in order
374 * to do the Ansi to Unicode transformation
375 */
376#define MSVCRT_INVALID_PMT(x,err) (*_errno() = (err), _invalid_parameter(NULL, NULL, NULL, 0, 0))
377#define MSVCRT_CHECK_PMT_ERR(x,err) ((x) || (MSVCRT_INVALID_PMT( 0, (err) ), FALSE))
378#define MSVCRT_CHECK_PMT(x) MSVCRT_CHECK_PMT_ERR((x), EINVAL)
379
380typedef int (*puts_clbk_a)(void*, int, const char*);
381typedef int (*puts_clbk_w)(void*, int, const wchar_t*);
382typedef union _printf_arg
383{
384 void *get_ptr;
389typedef printf_arg (*args_clbk)(void*, int, int, va_list*);
390int pf_printf_a(puts_clbk_a, void*, const char*, _locale_t,
391 DWORD, args_clbk, void*, va_list*);
392int pf_printf_w(puts_clbk_w, void*, const wchar_t*, _locale_t,
393 DWORD, args_clbk, void*, va_list*);
394int create_positional_ctx_a(void*, const char*, va_list);
395int create_positional_ctx_w(void*, const wchar_t*, va_list);
396printf_arg arg_clbk_valist(void*, int, int, va_list*);
397printf_arg arg_clbk_positional(void*, int, int, va_list*);
398
399extern char* __cdecl __unDName(char *,const char*,int,malloc_func_t,free_func_t,unsigned short int);
400
401#define UCRTBASE_PRINTF_MASK ( \
402 _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION | \
403 _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR | \
404 _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS | \
405 _CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY | \
406 _CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS | \
407 _CRT_INTERNAL_PRINTF_STANDARD_ROUNDING )
408
409#define MSVCRT_PRINTF_POSITIONAL_PARAMS (0x0100)
410#define MSVCRT_PRINTF_INVOKE_INVALID_PARAM_HANDLER (0x0200)
411
412#define UCRTBASE_SCANF_MASK ( \
413 _CRT_INTERNAL_SCANF_SECURECRT | \
414 _CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS | \
415 _CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY )
416
417#define COOPERATIVE_TIMEOUT_INFINITE ((unsigned int)-1)
418#define COOPERATIVE_WAIT_TIMEOUT ~0
419
420#define INHERIT_THREAD_PRIORITY 0xF000
421
422static inline UINT get_aw_cp(void)
423{
424#if _MSVCR_VER>=140
425 if (___lc_codepage_func() == CP_UTF8) return CP_UTF8;
426#endif
427 return CP_ACP;
428}
429
430static inline int convert_acp_utf8_to_wcs(const char *str, wchar_t *wstr, int len)
431{
432 return MultiByteToWideChar(get_aw_cp(), MB_PRECOMPOSED, str, -1, wstr, len);
433}
434
435static inline int convert_wcs_to_acp_utf8(const wchar_t *wstr, char *str, int len)
436{
437 return WideCharToMultiByte(get_aw_cp(), 0, wstr, -1, str, len, NULL, NULL);
438}
439
440static inline wchar_t* wstrdupa_utf8(const char *str)
441{
443 wchar_t *wstr;
444
445 if (!len) return NULL;
446 wstr = malloc(len * sizeof(wchar_t));
447 if (!wstr) return NULL;
449 return wstr;
450}
451
452static inline char* astrdupw_utf8(const wchar_t *wstr)
453{
454 int len = convert_wcs_to_acp_utf8(wstr, NULL, 0);
455 char *str;
456
457 if (!len) return NULL;
458 str = malloc(len * sizeof(char));
459 if (!str) return NULL;
461 return str;
462}
463
464#endif /* __WINE_MSVCRT_H */
Definition: _locale.h:75
#define malloc
Definition: debug_ros.c:4
#define NULL
Definition: types.h:112
#define CDECL
Definition: compat.h:29
#define CP_ACP
Definition: compat.h:109
#define WideCharToMultiByte
Definition: compat.h:111
#define MultiByteToWideChar
Definition: compat.h:110
static _invalid_parameter_handler invalid_parameter_handler
Definition: errno.c:129
#define __cdecl
Definition: corecrt.h:121
unsigned short wchar_t
Definition: corecrt.h:237
unsigned long __msvcrt_ulong
Definition: corecrt.h:168
_ACRTIMP unsigned int __cdecl ___lc_codepage_func(void)
Definition: locale.c:1047
void(__cdecl * _invalid_parameter_handler)(const wchar_t *, const wchar_t *, const wchar_t *, unsigned, uintptr_t)
Definition: stdlib.h:259
char * va_list
Definition: vadefs.h:50
void __cdecl _purecall(void)
Definition: exit.c:494
thread_data_t *CDECL msvcrt_get_thread_data(void)
Definition: thread.c:45
void __cdecl terminate(void)
Definition: cpp.c:698
static wchar_t * wstrdupa_utf8(const char *str)
Definition: msvcrt.h:440
wchar_t * msvcrt_wstrdupa(const char *)
Definition: data.c:373
static char * astrdupw_utf8(const wchar_t *wstr)
Definition: msvcrt.h:452
pthreadmbcinfo CDECL get_mbcinfo(void)
Definition: locale.c:642
union _printf_arg printf_arg
int create_positional_ctx_w(void *, const wchar_t *, va_list)
int pf_printf_a(puts_clbk_a, void *, const char *, _locale_t, DWORD, args_clbk, void *, va_list *)
int MSVCRT___lc_collate_cp
Definition: locale.c:46
void(__cdecl * MSVCRT_security_error_handler)(int, void *)
Definition: msvcrt.h:80
void msvcrt_init_exception(void *)
struct threadmbcinfostruct threadmbcinfo
void msvcrt_init_io(void)
Definition: file.c:720
int env_init(BOOL, BOOL)
Definition: environ.c:30
void msvcrt_init_mt_locks(void)
Definition: lock.c:66
wchar_t ** MSVCRT___winitenv
Definition: data.c:58
void *(__cdecl * malloc_func_t)(size_t)
Definition: msvcrt.h:263
_locale_t CDECL get_current_locale_noalloc(_locale_t locale)
Definition: locale.c:1149
WORD * MSVCRT__pwctype
Definition: ctype.c:128
unsigned int MSVCRT___lc_codepage
Definition: locale.c:45
static int convert_acp_utf8_to_wcs(const char *str, wchar_t *wstr, int len)
Definition: msvcrt.h:430
BOOL msvcrt_init_heap(void)
Definition: heap.c:830
unsigned int MSVCRT__commode
Definition: data.c:33
void CDECL __DestructExceptionObject(EXCEPTION_RECORD *)
Definition: except.c:950
static int convert_wcs_to_acp_utf8(const wchar_t *wstr, char *str, int len)
Definition: msvcrt.h:435
void msvcrt_free_args(void)
Definition: data.c:462
struct __lc_time_data __lc_time_data
int create_positional_ctx_a(void *, const char *, va_list)
void **__cdecl __current_exception(void)
BOOL sse2_supported
Definition: math.c:71
BOOL msvcrt_create_io_inherit_block(WORD *, BYTE **)
Definition: file.c:675
struct fpnum fpnum_parse(wchar_t(*)(void *), void(*)(void *), void *, pthreadlocinfo, BOOL)
void free_mbcinfo(pthreadmbcinfo)
Definition: locale.c:1138
void __cdecl operator_delete(void *)
Definition: heap.c:177
frame_info *__cdecl _CreateFrameInfo(frame_info *fi, void *obj)
Definition: except.c:889
int __cdecl __crtLCMapStringA(LCID, DWORD, const char *, int, char *, int, unsigned int, int)
Definition: locale.c:877
WORD MSVCRT__ctype[257]
Definition: ctype.c:34
int pf_printf_w(puts_clbk_w, void *, const wchar_t *, _locale_t, DWORD, args_clbk, void *, va_list *)
FILE MSVCRT__iob[]
Definition: file.c:263
void msvcrt_destroy_heap(void)
Definition: heap.c:840
int *__cdecl __processing_throw(void)
DWORD msvcrt_tls_index
Definition: main.c:29
printf_arg arg_clbk_valist(void *, int, int, va_list *)
Definition: wcs.c:847
void msvcrt_free_io(void)
Definition: file.c:1392
BOOL initial_locale
Definition: locale.c:49
void msvcrt_free_signals(void)
Definition: except.c:640
printf_arg(* args_clbk)(void *, int, int, va_list *)
Definition: msvcrt.h:389
struct _frame_info frame_info
BOOL msvcrt_init_locale(void)
Definition: locale.c:2151
void msvcrt_free_popen_data(void)
Definition: process.c:1034
void(__cdecl * _se_translator_function)(unsigned int code, struct _EXCEPTION_POINTERS *info)
Definition: msvcrt.h:77
void msvcrt_init_clock(void)
Definition: time.c:49
void __cdecl _amsg_exit(int errnum)
Definition: exit.c:233
void __cdecl __CxxUnregisterExceptionObject(cxx_frame_info *, BOOL)
Definition: except.c:992
static UINT get_aw_cp(void)
Definition: msvcrt.h:422
__lc_time_data cloc_time_data
Definition: locale.c:60
void(__cdecl * free_func_t)(void *)
Definition: msvcrt.h:264
void msvcrt_free_locks(void)
Definition: lock.c:149
void free_locinfo(pthreadlocinfo)
Definition: locale.c:1061
void(__cdecl * unexpected_function)(void)
Definition: msvcrt.h:76
printf_arg arg_clbk_positional(void *, int, int, va_list *)
Definition: wcs.c:870
int(* puts_clbk_a)(void *, int, const char *)
Definition: msvcrt.h:380
void msvcrt_init_args(void)
Definition: data.c:404
void msvcrt_init_signals(void)
Definition: except.c:635
BOOL __cdecl __CxxRegisterExceptionObject(EXCEPTION_POINTERS *, cxx_frame_info *)
Definition: except.c:968
char ** MSVCRT___initenv
Definition: data.c:57
wchar_t ** MSVCRT__wenviron
Definition: data.c:56
void msvcrt_free_console(void)
Definition: console.c:68
void *__cdecl operator_new(size_t)
Definition: heap.c:143
int __cdecl _set_new_mode(int mode)
Definition: heap.c:227
pthreadlocinfo CDECL get_locinfo(void)
Definition: locale.c:635
char *__cdecl __unDName(char *, const char *, int, malloc_func_t, free_func_t, unsigned short int)
Definition: undname.c:1783
int(* puts_clbk_w)(void *, int, const wchar_t *)
Definition: msvcrt.h:381
void CDECL free_locale_noalloc(_locale_t locale)
Definition: locale.c:1162
char ** MSVCRT__environ
Definition: data.c:55
fpmod
Definition: msvcrt.h:350
@ FP_VAL_NAN
Definition: msvcrt.h:356
@ FP_ROUND_EVEN
Definition: msvcrt.h:353
@ FP_VAL_INFINITY
Definition: msvcrt.h:355
@ FP_ROUND_UP
Definition: msvcrt.h:354
@ FP_ROUND_ZERO
Definition: msvcrt.h:351
@ FP_ROUND_DOWN
Definition: msvcrt.h:352
threadmbcinfo * create_mbcinfo(int, LCID, threadmbcinfo *)
Definition: mbcs.c:219
void(__cdecl * terminate_function)(void)
Definition: msvcrt.h:75
_locale_t MSVCRT_locale
Definition: locale.c:43
int fpnum_double(struct fpnum *, double *)
Definition: string.c:365
BOOL locale_to_sname(const char *, unsigned short *, BOOL *, WCHAR *)
Definition: locale.c:335
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLenum mode
Definition: glext.h:6217
GLenum GLsizei len
Definition: glext.h:6722
void msvcrt_init_math(void)
unsigned int UINT
Definition: ndis.h:50
#define FILE
Definition: nsiface.idl:2609
#define LOCALE_NAME_MAX_LENGTH
long LONG
Definition: pedump.c:60
const WCHAR * str
DWORD LCID
Definition: nls.h:13
#define CP_UTF8
Definition: nls.h:20
#define msvcrt_set_errno
Definition: heap.c:50
void(__cdecl * _se_translator_function)(unsigned int code, struct _EXCEPTION_POINTERS *info)
Definition: msvcrt.h:48
void(__cdecl * unexpected_function)(void)
Definition: msvcrt.h:47
fpmod
Definition: msvcrt.h:310
void(__cdecl * terminate_function)(void)
Definition: msvcrt.h:46
const char * short_wday[7]
Definition: msvcrt.h:94
const char * time
Definition: msvcrt.h:102
const char * date
Definition: msvcrt.h:101
const char * mon[12]
Definition: msvcrt.h:97
const wchar_t * am
Definition: msvcrt.h:118
struct __lc_time_data::@579::@581 names
const char * pm
Definition: msvcrt.h:99
const wchar_t * date
Definition: msvcrt.h:121
const char * str[43]
Definition: msvcrt.h:92
const wchar_t * time
Definition: msvcrt.h:122
const wchar_t * wstr[43]
Definition: msvcrt.h:112
const wchar_t * pm
Definition: msvcrt.h:119
LONG refcount
Definition: msvcrt.h:109
const char * short_date
Definition: msvcrt.h:100
const char * short_mon[12]
Definition: msvcrt.h:96
const char * am
Definition: msvcrt.h:98
const wchar_t * short_date
Definition: msvcrt.h:120
const char * wday[7]
Definition: msvcrt.h:95
char * tmpnam_buffer
Definition: msvcrt.h:188
char * strtok_next
Definition: msvcrt.h:183
EXCEPTION_POINTERS * xcptinfo
Definition: msvcrt.h:197
BOOL cached_sname_match
Definition: msvcrt.h:212
unsigned char * mbstok_next
Definition: msvcrt.h:185
_se_translator_function se_translator
Definition: msvcrt.h:205
pthreadmbcinfo mbcinfo
Definition: msvcrt.h:199
frame_info * frame_info_head
Definition: msvcrt.h:210
char cached_locale[131]
Definition: msvcrt.h:216
void * unk8[6]
Definition: msvcrt.h:211
EXCEPTION_RECORD * exc_record
Definition: msvcrt.h:207
int processing_throw
Definition: msvcrt.h:209
int thread_errno
Definition: msvcrt.h:179
void * unk10[100]
Definition: msvcrt.h:217
DWORD cached_cp
Definition: msvcrt.h:215
int unk5[1]
Definition: msvcrt.h:202
char * strerror_buffer
Definition: msvcrt.h:186
CONTEXT * ctx_record
Definition: msvcrt.h:208
int fpecode
Definition: msvcrt.h:198
HANDLE handle
Definition: msvcrt.h:178
struct tm * time_buffer
Definition: msvcrt.h:193
__msvcrt_ulong thread_doserrno
Definition: msvcrt.h:180
unsigned int random_seed
Definition: msvcrt.h:182
WCHAR cached_sname[LOCALE_NAME_MAX_LENGTH]
Definition: msvcrt.h:213
DWORD tid
Definition: msvcrt.h:177
char * asctime_buffer
Definition: msvcrt.h:191
int locale_flags
Definition: msvcrt.h:201
terminate_function terminate_handler
Definition: msvcrt.h:203
wchar_t * wcserror_buffer
Definition: msvcrt.h:187
wchar_t * wasctime_buffer
Definition: msvcrt.h:192
char * efcvt_buffer
Definition: msvcrt.h:194
void * unk4[3]
Definition: msvcrt.h:196
unexpected_function unexpected_handler
Definition: msvcrt.h:204
int unk3[2]
Definition: msvcrt.h:195
wchar_t * wcstok_next
Definition: msvcrt.h:184
int unk9[2]
Definition: msvcrt.h:214
wchar_t * wtmpnam_buffer
Definition: msvcrt.h:189
void * unk2[2]
Definition: msvcrt.h:190
pthreadlocinfo locinfo
Definition: msvcrt.h:200
void * unk6
Definition: msvcrt.h:206
void * object
Definition: msvcrt.h:144
struct _frame_info * next
Definition: msvcrt.h:145
char * _ptr
int _charbuf
char * _base
char * _tmpfname
int _bufsiz
Definition: inflate.c:139
frame_info frame_info
Definition: msvcrt.h:150
EXCEPTION_RECORD * rec
Definition: msvcrt.h:151
CONTEXT * context
Definition: msvcrt.h:152
Definition: msvcrt.h:359
enum fpmod mod
Definition: msvcrt.h:363
ULONGLONG m
Definition: msvcrt.h:362
int exp
Definition: msvcrt.h:361
int sign
Definition: msvcrt.h:360
unsigned char mbcasemap[256]
Definition: msvcrt.h:139
unsigned short mbulinfo[6]
Definition: msvcrt.h:137
unsigned char mbctype[257]
Definition: msvcrt.h:138
int64_t LONGLONG
Definition: typedefs.h:68
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
int get_int
Definition: msvcrt.h:385
double get_double
Definition: msvcrt.h:387
void * get_ptr
Definition: msvcrt.h:384
LONGLONG get_longlong
Definition: msvcrt.h:386
#define MB_PRECOMPOSED
Definition: winnls.h:299
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned char BYTE
Definition: xxhash.c:193