ReactOS 0.4.15-dev-7931-gfd331f1
crtdata.c
Go to the documentation of this file.
1/*
2* PROJECT: ReactOS CRT API tests
3* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4* PURPOSE: Tests for crt data exports
5* COPYRIGHT: Copyright 2021 Timo Kreuzer <timo.kreuzer@reactos.org>
6*/
7
8#include <apitest.h>
9#include <apitest_guard.h>
10
11#define WIN32_NO_STATUS
12#include <stdio.h>
13#include <stdlib.h>
14#include <time.h>
15#include <locale.h>
16#include <mbctype.h>
17
19extern char __ImageBase;
20static void* s_ImageEnd;
21
23{
24 return ((Address >= (void*)&__ImageBase) && (Address <= s_ImageEnd));
25}
26
27// Dynamically imported functions (Vista+)
28int* (__cdecl *p__daylight)(void);
29long* (__cdecl *p__dstbias)(void);
30errno_t (__cdecl *p_get_fmode)(int* _PMode);
31errno_t (__cdecl *p_get_osplatform)(unsigned int *pValue);
32int (__cdecl *p_get_pgmptr)(char** p);
33errno_t (__cdecl *p_get_wpgmptr)(_Outptr_result_z_ wchar_t **_Value);
34errno_t (__cdecl *p_get_winver)(_Out_ unsigned int *_Value);
35errno_t (__cdecl *p_get_winmajor)(_Out_ unsigned int *_Value);
36errno_t (__cdecl *p_get_winminor)(_Out_ unsigned int *_Value);
38errno_t (__cdecl *p_get_wenviron)(_Out_ wchar_t***);
39
40
41#ifndef TEST_STATIC
42#define test_is_local_symbol(addr, is) ok_int(IsLocalSymbol(addr), (is))
43#else
44#define test_is_local_symbol(addr, is)
45#endif
46
47void Test___argc(void)
48{
49 void* p = &__argc;
51
52 #undef __argc
53 ok_ptr(&__argc, p);
54#ifdef _M_IX86
56#endif
57}
58
59void Test___argv(void)
60{
61 void* p = &__argv;
63
64 #undef __argv
65 ok_ptr(&__argv, p);
66#ifdef _M_IX86
68#endif
69}
70
72{
73 typedef struct _ioinfo ioinfo;
74 _CRTIMP extern ioinfo* __badioinfo[];
75 ok(__badioinfo != NULL, "__badioinfo is NULL\n");
76 ok(__badioinfo[0] != NULL, "__badioinfo is NULL\n");
77}
78
79#ifndef _M_ARM
81{
82 _CRTIMP extern char** __initenv;
83 ok(__initenv != NULL, "__initenv is NULL\n");
84 ok(*__initenv != NULL, "*__initenv is NULL\n");
85#ifdef _M_IX86
86 _CRTIMP char*** __p___initenv(void);
88#endif
89}
90
92{
93 _CRTIMP extern unsigned int __lc_codepage;
99}
100
102{
103 _CRTIMP extern int __lc_collate_cp;
110}
111#endif // !_M_ARM
112
114{
115 _CRTIMP int __lc_handle;
116 ok_int(__lc_handle, 0);
119 __lc_handle++;
121 __lc_handle--;
122}
123
125{
126 void* p = &__mb_cur_max;
129
130 #undef __mb_cur_max
131 _CRTIMP extern int __mb_cur_max;
133
135#ifdef _M_IX86
136 _CRTIMP int* __p___mb_cur_max(void);
138#endif
139 __mb_cur_max++;
140 if (s_osvi.dwMajorVersion >= 6)
141 {
143#ifdef _M_IX86
145#endif
146 }
147 else
148 {
150#ifdef _M_IX86
151 todo_ros ok_ptr(__p___mb_cur_max(), p); // wine code handles it like on Vista+
153#endif
154 }
155
156 __mb_cur_max--;
157}
158
160{
161
162}
163
164#ifndef _M_ARM
166{
167 _CRTIMP extern unsigned int __setlc_active;
169
170 _CRTIMP unsigned int ___setlc_active_func(void);
175}
176
178{
179 _CRTIMP extern unsigned int __unguarded_readlc_active;
182
185}
186#endif // !_M_ARM
187
188void Test___wargv(void)
189{
190 void* p = &__wargv;
192
193 #undef __wargv
194 _CRTIMP extern wchar_t ** __wargv;
195 ok_ptr(&__wargv, p);
196#ifdef _M_IX86
197 ok_ptr(__p___wargv(), p);
198#endif
199}
200
201#ifndef _M_ARM
203{
204 _CRTIMP extern wchar_t** __winitenv;
205 todo_ros ok(__winitenv == NULL, "__winitenv is not NULL\n");
206#ifdef _M_IX86
207 _CRTIMP wchar_t*** __p___winitenv(void);
209#endif
210}
211#endif
212
213void Test__acmdln(void)
214{
215 _CRTIMP extern char* _acmdln;
216 ok(_acmdln != NULL, "__winitenv is NULL\n");
217#ifdef _M_IX86
218 _CRTIMP char** __p__acmdln(void);
220#endif
221}
222
223#ifdef _M_IX86
224void Test__adjust_fdiv(void)
225{
226 _CRTIMP extern int _adjust_fdiv;
228}
229#endif
230
232{
233 typedef void (*_exit_t)(int exitcode);
234 _CRTIMP extern _exit_t _aexit_rtn;
236}
237
239{
240 void* p = &_commode;
242 ok_int(_commode, 0);
243
244 #undef _commode
245 _CRTIMP extern int _commode;
246 ok_ptr(&_commode, p);
247#ifdef _M_IX86
249#endif
250}
251
252void Test__ctype(void)
253{
254 _CRTIMP extern const unsigned short _ctype[];
255 ok_int(_ctype[0], 0);
257
258 #undef _pctype
259 _CRTIMP extern const unsigned short* _pctype;
260 ok(_pctype != &_ctype[0], "_pwctype should not match &_wctype[0]");
261 if (s_osvi.dwMajorVersion >= 6)
262 {
263 ok(_pctype != &_ctype[1], "_pwctype should not match &_wctype[1]");
264 }
265 else
266 {
267 ok(_pctype == &_ctype[1], "_pwctype should match &_wctype[1]");
268 }
269
270 ok(__pctype_func() != _ctype, "__pctype_func() should not match _ctype\n");
273#ifdef _M_IX86
274 _CRTIMP const unsigned short** __cdecl __p__pctype(void);
276#endif
277}
278
279void Test__wctype(void)
280{
281 ok_int(_wctype[0], 0);
283
284 #undef _pwctype
285 _CRTIMP extern const unsigned short* _pwctype;
286 ok_ptr(_pwctype, &_wctype[1]);
287
288 ok(__pwctype_func() != _wctype, "__pwctype_func() == _wctype\n");
291#ifdef _M_IX86
292 _CRTIMP const unsigned short** __cdecl __p__pwctype(void);
294#endif
295}
296
298{
299 void* p = &_daylight;
301
302 #undef _daylight
303 _CRTIMP extern int _daylight;
304 ok_ptr(&_daylight, p);
305
306#ifdef _M_IX86
307 _CRTIMP void* __p__daylight(void);
309#endif
310 if (p__daylight != NULL)
311 {
313 }
314}
315
316#ifndef _M_ARM
318{
319 void* p = &_dstbias;
321
322 #undef _dstbias
323 _CRTIMP extern long _dstbias;
324 ok_ptr(&_dstbias, p);
325#ifdef _M_IX86
326 _CRTIMP long* __cdecl __p__dstbias(void);
328#endif
329 if (p__dstbias != NULL)
330 {
332 }
333}
334
336{
337 void* p = &_environ;
338 ok(_environ != NULL, "_environ == NULL\n");
339
340 #undef _environ
341 _CRTIMP extern char** _environ;
342 ok_ptr(&_environ, p);
343#ifdef _M_IX86
345#endif
346 if (p_get_environ != NULL)
347 {
348 char** result_environ;
349 ok_int(p_get_environ(&result_environ), 0);
350 ok_ptr(result_environ, _environ);
351 }
352}
353
355{
356 _CRTIMP extern int _fileinfo;
357 ok_int(_fileinfo, -1);
358
359#ifdef _M_IX86
360 _CRTIMP int* __p__fileinfo();
362#endif
363}
364#endif // !_M_ARM
365
366void Test__fmode(void)
367{
368 void* p = &_fmode;
370 ok_int(_fmode, 0);
371
372 #undef _fmode
373 _CRTIMP extern int _fmode;
374 ok_ptr(&_fmode, p);
375
376#ifdef _M_IX86
378 ok_ptr(__p__fmode(), p);
379#endif
380
381 if (p_get_fmode != NULL)
382 {
383 _fmode = 1234;
384
385 int mode;
386 ok_int(p_get_fmode(&mode), 0);
388 _fmode = 0;
389 }
390}
391
392void Test__iob(void)
393{
394 void* p = &_iob;
396 ok_ptr(&_iob[0], stdin);
397 ok_ptr(&_iob[1], stdout);
398 ok_ptr(&_iob[2], stderr);
399
400 #undef _iob
401 _CRTIMP extern FILE _iob[];
402 ok_ptr(&_iob, p);
403
405
406#ifdef _M_IX86
407 _CRTIMP int* __cdecl __p__iob();
408 ok_ptr(__p__iob(), p);
409#endif
410}
411
413{
414 void* p = &_mbcasemap;
415 ok_int(_mbcasemap[0], 0);
416
417 #undef _mbcasemap
419
420#ifdef _M_IX86
421 _CRTIMP unsigned char* __cdecl __p__mbcasemap();
423#endif
424}
425
427{
428 void* p = &_mbctype;
429 ok_int(_mbctype[0], 0);
430
431 #undef _mbctype
432 ok_ptr(&_mbctype, p);
433
434#ifdef _M_IX86
435 _CRTIMP unsigned char* __cdecl __p__mbctype();
436 todo_ros ok_ptr(__p__mbctype(), &_mbctype); // wine implements thiss like on Vista
437#endif
438}
439
440#ifndef _M_ARM
442{
444 if (p_get_osplatform != NULL)
445 {
446 unsigned int result_osplatform;
447 ok_int(p_get_osplatform(&result_osplatform), 0);
448 ok_int(result_osplatform, _osplatform);
449 }
450}
451#endif
452
453void Test__osver(void)
454{
456
457#ifdef _M_IX86
460#endif
461}
462
463void Test__pgmptr(void)
464{
465 void* p = &_pgmptr;
466 ok(_pgmptr != NULL, "_pgmptr should not be NULL\n");
467
468 #undef _pgmptr
469 _CRTIMP extern char* _pgmptr;
470 ok_ptr(&_pgmptr, p);
471#ifdef _M_IX86
473#endif
474 if (p_get_pgmptr != NULL)
475 {
476 char *result_pgmptr;
477 ok_int(p_get_pgmptr(&result_pgmptr), 0);
478 ok_ptr(result_pgmptr, _pgmptr);
479 }
480}
481
483{
484 void* p = &_sys_errlist;
486 ok_int(strcmp(_sys_errlist[42], strerror(42)), 0);
487
488 #undef _sys_errlist
489 _CRTIMP extern char* _sys_errlist[];
491}
492
494{
495 void* p = &_sys_nerr;
496 ok_int(_sys_nerr, 43);
497
498 #undef _sys_nerr
499 _CRTIMP extern int _sys_nerr;
500 ok_ptr(&_sys_nerr, p);
501}
502
504{
505 void* p = &_timezone;
507
508 #undef _timezone
509 _CRTIMP extern long _timezone;
510 ok_ptr(&_timezone, p);
511
512#ifdef _M_IX86
513 _CRTIMP char** __p__timezone();
515#endif
516}
517
518void Test__tzname(void)
519{
520 void* p = &_tzname;
522 ok(_tzname[0] != NULL, "_tzname[0] == NULL\n");
523 ok(_tzname[0] != NULL, "_tzname[0] == NULL\n");
524
525 #undef _tzname
526 _CRTIMP extern char * _tzname[2];
527 ok_ptr(_tzname, p);
528
529#ifdef _M_IX86
530 _CRTIMP char** __p__tzname();
532#endif
533}
534
535void Test__wcmdln(void)
536{
537 _CRTIMP extern wchar_t* _wcmdln;
538#ifdef _M_IX86
539 _CRTIMP wchar_t** __p__wcmdln(void);
541#endif
542}
543
544#ifndef _M_ARM
546{
547 void* p = &_wenviron;
548 todo_ros ok(_wenviron == NULL, "_wenviron is not NULL\n");
549
550 #undef _wenviron
551 _CRTIMP extern wchar_t** _wenviron;
552 ok_ptr(&_wenviron, p);
553#ifdef _M_IX86
555#endif
556
557#if 0 // FIXME: This returns an error / NULL on Windows 10
558 if (p_get_wenviron != NULL)
559 {
560 wchar_t** result_wenviron;
561 ok_int(p_get_wenviron(&result_wenviron), 0);
562 ok_ptr(result_wenviron, _wenviron);
563 }
564#endif
565}
566#endif
567
569{
571#ifdef _M_IX86
572 _CRTIMP unsigned int* __cdecl __p__winmajor();
574#endif
575 if (p_get_winmajor != NULL)
576 {
577 unsigned int result_winmajor;
578 ok_int(p_get_winmajor(&result_winmajor), 0);
579 ok_int(result_winmajor, _winmajor);
580 }
581}
582
584{
586#ifdef _M_IX86
587 _CRTIMP unsigned int* __cdecl __p__winminor();
589#endif
590 if (p_get_winminor != NULL)
591 {
592 unsigned int result_winminor;
593 ok_int(p_get_winminor(&result_winminor), 0);
594 ok_int(result_winminor, _winminor);
595 }
596}
597
598#ifndef _M_ARM
599void Test__winver(void)
600{
602#ifdef _M_IX86
603 _CRTIMP unsigned int* __cdecl __p__winver();
605#endif
606 if (p_get_winver != NULL)
607 {
608 unsigned int result_winver;
609 ok_int(p_get_winver(&result_winver), 0);
610 ok_int(result_winver, _winver);
611 }
612}
613#endif
614
616{
617 void* p = _wpgmptr;
619
620 #undef _wpgmptr
621 ok_ptr(_wpgmptr, p);
622
623#ifdef _M_IX86
624 _CRTIMP wchar_t ** __cdecl __p__wpgmptr();
626#endif
627
628#if 0 // FIXME: This returns an error on Windows 10
629 if (p_get_wpgmptr != NULL)
630 {
631 wchar_t* result_wpgmptr;
632 ok_int(p_get_wpgmptr(&result_wpgmptr), 0);
633 ok_ptr(result_wpgmptr, _wpgmptr);
634 }
635#endif
636}
637
639{
640 /* Initialize image size */
642 PIMAGE_NT_HEADERS ntHeaders = (PIMAGE_NT_HEADERS)((PUCHAR)dosHeader + dosHeader->e_lfanew);
643 s_ImageEnd = (PUCHAR)dosHeader + ntHeaders->OptionalHeader.SizeOfImage;
644
645 /* initialize version info */
648
649 HMODULE hmsvcrt = GetModuleHandleA("msvcrt.dll");
650 p__daylight = (void*)GetProcAddress(hmsvcrt, "__daylight");
651 p__dstbias = (void*)GetProcAddress(hmsvcrt, "__dstbias");
652 p_get_fmode = (void*)GetProcAddress(hmsvcrt, "_get_fmode");
653 p_get_osplatform = (void*)GetProcAddress(hmsvcrt, "_get_osplatform");
654 p_get_pgmptr = (void*)GetProcAddress(hmsvcrt, "_get_pgmptr");
655 p_get_wpgmptr = (void*)GetProcAddress(hmsvcrt, "_get_wpgmptr");
656 p_get_winver = (void*)GetProcAddress(hmsvcrt, "_get_winver");
657 p_get_winmajor = (void*)GetProcAddress(hmsvcrt, "_get_winmajor");
658 p_get_winminor = (void*)GetProcAddress(hmsvcrt, "_get_winminor");
659 p_get_environ = (void*)GetProcAddress(hmsvcrt, "_get_environ");
660 p_get_wenviron = (void*)GetProcAddress(hmsvcrt, "_get_wenviron");
661
662 if (s_osvi.dwMajorVersion >= 6)
663 {
664 ok(p__daylight != NULL, "__daylight is NULL\n");
665 ok(p__dstbias != NULL, "__dstbias is NULL\n");
666 ok(p_get_fmode != NULL, "_get_fmode is NULL\n");
667 ok(p_get_osplatform != NULL, "_get_osplatform is NULL\n");
668 ok(p_get_pgmptr != NULL, "_get_pgmptr is NULL\n");
669 ok(p_get_wpgmptr != NULL, "_get_wpgmptr is NULL\n");
670 ok(p_get_winver != NULL, "_get_winver is NULL\n");
671 ok(p_get_winmajor != NULL, "_get_winmajor is NULL\n");
672 ok(p_get_winminor != NULL, "_get_winminor is NULL\n");
673 ok(p_get_environ != NULL, "_get_environ is NULL\n");
674 ok(p_get_wenviron != NULL, "_get_wenviron is NULL\n");
675 }
676
677 Test___argc();
678 Test___argv();
680#ifndef _M_ARM
684#endif
688#ifndef _M_ARM
691#endif
692 Test___wargv();
693#ifndef _M_ARM
695#endif
696 Test__acmdln();
697#ifdef _M_IX86
698 Test__adjust_fdiv();
699#endif
702 Test__ctype();
704#ifndef _M_ARM
708#endif
709 Test__fmode();
710 Test__iob();
713#ifndef _M_ARM
715#endif
716 Test__osver();
717 Test__pgmptr();
721 Test__tzname();
722 Test__wcmdln();
723 Test__wctype();
724#ifndef _M_ARM
726#endif
729#ifndef _M_ARM
730 Test__winver();
731#endif
733}
const wchar_t ** __p__wcmdln(void)
Definition: environ.c:376
const char ** __p__acmdln(void)
Definition: environ.c:368
void _exit(int exitcode)
Definition: _exit.c:25
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
#define __cdecl
Definition: accygwin.h:79
int _adjust_fdiv
Definition: adjust.c:2
aexit_t _aexit_rtn
Definition: amsg.c:39
#define ok(value,...)
Definition: atltest.h:57
#define START_TEST(x)
Definition: atltest.h:75
#define ok_int(expression, result)
Definition: atltest.h:134
#define ok_ptr(expression, result)
Definition: atltest.h:108
int _Value
Definition: setjmp.h:214
void Test__tzname(void)
Definition: crtdata.c:518
char __ImageBase
void Test__winminor(void)
Definition: crtdata.c:583
void Test__osplatform(void)
Definition: crtdata.c:441
void Test__osver(void)
Definition: crtdata.c:453
int IsLocalSymbol(void *Address)
Definition: crtdata.c:22
int *__cdecl * p__daylight(void)
void Test__dstbias(void)
Definition: crtdata.c:317
void Test__acmdln(void)
Definition: crtdata.c:213
void Test__mbcasemap(void)
Definition: crtdata.c:412
void Test__fileinfo(void)
Definition: crtdata.c:354
void Test___argc(void)
Definition: crtdata.c:47
void Test__sys_errlist(void)
Definition: crtdata.c:482
void Test__winver(void)
Definition: crtdata.c:599
void Test__wpgmptr(void)
Definition: crtdata.c:615
void Test___wargv(void)
Definition: crtdata.c:188
void Test__daylight(void)
Definition: crtdata.c:297
void Test___initenv(void)
Definition: crtdata.c:80
void Test__wenviron(void)
Definition: crtdata.c:545
void Test__mbctype(void)
Definition: crtdata.c:426
void Test___winitenv(void)
Definition: crtdata.c:202
void Test__fmode(void)
Definition: crtdata.c:366
void Test__ctype(void)
Definition: crtdata.c:252
void Test___setlc_active(void)
Definition: crtdata.c:165
long *__cdecl * p__dstbias(void)
static OSVERSIONINFOW s_osvi
Definition: crtdata.c:18
void Test__sys_nerr(void)
Definition: crtdata.c:493
void Test__pgmptr(void)
Definition: crtdata.c:463
void Test___argv(void)
Definition: crtdata.c:59
static void * s_ImageEnd
Definition: crtdata.c:20
void Test__aexit_rtn(void)
Definition: crtdata.c:231
void Test__environ(void)
Definition: crtdata.c:335
void Test___pioinfo(void)
Definition: crtdata.c:159
void Test__wcmdln(void)
Definition: crtdata.c:535
void Test__commode(void)
Definition: crtdata.c:238
void Test__iob(void)
Definition: crtdata.c:392
void Test___mb_cur_max(void)
Definition: crtdata.c:124
void Test__timezone(void)
Definition: crtdata.c:503
void Test__winmajor(void)
Definition: crtdata.c:568
void Test___lc_handle(void)
Definition: crtdata.c:113
void Test__wctype(void)
Definition: crtdata.c:279
void Test___unguarded_readlc_active(void)
Definition: crtdata.c:177
void Test___lc_collate_cp(void)
Definition: crtdata.c:101
void Test___badioinfo(void)
Definition: crtdata.c:71
#define test_is_local_symbol(addr, is)
Definition: crtdata.c:42
void Test___lc_codepage(void)
Definition: crtdata.c:91
#define _CRTIMP
Definition: crtdefs.h:72
int errno_t
Definition: crtdefs.h:374
const unsigned short ** __p__pwctype(void)
Definition: ctype.c:564
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
char ** __initenv
Definition: environ.c:24
wchar_t ** __winitenv
Definition: environ.c:25
wchar_t ** _wenviron
Definition: environ.c:23
char ** _environ
Definition: environ.c:22
#define GetProcAddress(x, y)
Definition: compat.h:753
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
Definition: loader.c:812
BOOL WINAPI GetVersionExW(IN LPOSVERSIONINFOW lpVersionInformation)
Definition: version.c:37
void * __p__fileinfo()
Definition: stubs.c:17
int _fileinfo
Definition: stubs.c:14
void * __p__mbcasemap()
Definition: stubs.c:25
unsigned char _mbcasemap[1]
Definition: stubs.c:22
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS
Definition: ntddk_ex.h:187
struct _IMAGE_DOS_HEADER * PIMAGE_DOS_HEADER
PWCHAR pValue
GLenum mode
Definition: glext.h:6217
GLfloat GLfloat p
Definition: glext.h:8902
#define _CONTROL
Definition: ctype.h:71
#define __mb_cur_max
Definition: ctype.h:629
#define ___mb_cur_max_func()
Definition: ctype.h:636
_CRTIMP unsigned int __cdecl ___lc_collate_cp_func(void)
Definition: locale.c:635
_CRTIMP unsigned int __cdecl ___lc_codepage_func(void)
Definition: locale.c:627
#define stdout
Definition: stdio.h:99
_CRTIMP int _commode
Definition: environ.c:31
#define stderr
Definition: stdio.h:100
_CRTIMP FILE *__cdecl __iob_func(void)
Definition: file.c:682
#define stdin
Definition: stdio.h:98
_CRTIMP char * _sys_errlist[]
Definition: strerror.c:68
_CRTIMP char **__cdecl __p__pgmptr()
Definition: environ.c:454
_CRTIMP char ***__cdecl __p___argv()
Definition: getargs.c:483
_CRTIMP wchar_t * _wpgmptr
Definition: environ.c:29
_CRTIMP int _fmode
Definition: fmode.c:4
_CRTIMP char ** __argv
Definition: getargs.c:18
_CRTIMP wchar_t ***__cdecl __p___wargv()
Definition: getargs.c:491
_CRTIMP wchar_t ***__cdecl __p__wenviron()
Definition: environ.c:392
_CRTIMP int _sys_nerr
Definition: strerror.c:80
_CRTIMP wchar_t **__cdecl __p__wpgmptr()
Definition: environ.c:477
_CRTIMP int __argc
Definition: getargs.c:21
_CRTIMP int *__cdecl __p___argc()
Definition: getargs.c:475
_CRTIMP wchar_t ** __wargv
Definition: getargs.c:20
_CRTIMP char ***__cdecl __p__environ()
Definition: environ.c:384
_CRTIMP char * _pgmptr
Definition: environ.c:27
#define __pwctype_func()
Definition: wctype.h:68
#define __pctype_func()
Definition: wctype.h:34
#define _pctype
Definition: wctype.h:43
#define _wctype
Definition: wctype.h:58
#define _pwctype
Definition: wctype.h:67
unsigned char * __p__mbctype(void)
Definition: ismblead.c:48
_CRTIMP unsigned char _mbctype[257]
Definition: locale.c:40
static void(* p_get_wenviron)(WCHAR ***)
Definition: environ.c:51
static void(* p_get_environ)(char ***)
Definition: environ.c:50
int *__cdecl __p___mb_cur_max(void)
Definition: environ.c:430
unsigned int *__cdecl __p__fmode(void)
Definition: fmode.c:9
const char * strerror(int err)
Definition: compat_str.c:23
#define _Out_
Definition: ms_sal.h:345
#define _Outptr_result_z_
Definition: ms_sal.h:434
char * _acmdln
Definition: environ.c:18
unsigned int _winminor
Definition: environ.c:12
unsigned int _winmajor
Definition: environ.c:13
wchar_t * _wcmdln
Definition: environ.c:19
unsigned int _osver
Definition: environ.c:11
unsigned int _osplatform
Definition: environ.c:10
unsigned int _winver
Definition: environ.c:14
static WCHAR Address[46]
Definition: ping.c:68
#define todo_ros
Definition: test.h:167
_CRTIMP ioinfo * __badioinfo[]
Definition: file.c:126
const unsigned short _ctype[257]
Definition: ctype.c:36
int __lc_collate_cp
unsigned int __lc_codepage
Definition: locale.c:34
LCID *CDECL ___lc_handle_func(void)
Definition: locale.c:619
unsigned int __unguarded_readlc_active
Definition: environ.c:17
unsigned int CDECL ___setlc_active_func(void)
Definition: locale.c:1481
const unsigned short ** __p__pctype(void)
Definition: locale.c:1518
unsigned int *CDECL ___unguarded_readlc_active_add_func(void)
Definition: locale.c:1490
unsigned int __setlc_active
Definition: environ.c:16
wchar_t *** __p___winitenv(void)
Definition: environ.c:408
unsigned int * __p__winminor(void)
Definition: environ.c:508
unsigned int * __p__winmajor(void)
Definition: environ.c:500
unsigned int * __p__winver(void)
Definition: environ.c:516
char *** __p___initenv(void)
Definition: environ.c:400
unsigned int * __p__osver(void)
Definition: environ.c:446
int * __p__commode(void)
Definition: environ.c:352
FILE _iob[_IOB_ENTRIES]
Definition: file.c:133
long * __p__dstbias(void)
Definition: timezone.c:69
void * __p__daylight(void)
Definition: timezone.c:37
char ** __p__tzname(void)
Definition: timezone.c:79
int _daylight
Definition: timezone.c:30
char * _tzname[2]
Definition: timezone.c:22
long * __p__timezone(void)
Definition: timezone.c:53
long _dstbias
Definition: timezone.c:62
long _timezone
Definition: timezone.c:46
IMAGE_OPTIONAL_HEADER32 OptionalHeader
Definition: ntddk_ex.h:184
ULONG dwMinorVersion
Definition: rtltypes.h:248
ULONG dwPlatformId
Definition: rtltypes.h:250
ULONG dwOSVersionInfoSize
Definition: rtltypes.h:246
ULONG dwMajorVersion
Definition: rtltypes.h:247
ULONG dwBuildNumber
Definition: rtltypes.h:249
Definition: file.c:40
unsigned char * PUCHAR
Definition: typedefs.h:53