ReactOS 0.4.15-dev-8127-g6338913
compat.h
Go to the documentation of this file.
1#pragma once
2
3#include <typedefs.h>
4#include <guiddef.h>
5#include <pecoff.h>
6#include <wine/unicode.h>
7
8#include <stdio.h>
9#include <stdlib.h>
10#include <wchar.h>
11#include <ctype.h>
12#include <wctype.h>
13
14#define wcsnicmp strncmpiW
15#define wcsicmp strcmpiW
16#define wcsrchr strrchrW
17#define wcschr strchrW
18
19typedef HANDLE HWND;
20
21#define min(x, y) (((x) < (y)) ? (x) : (y))
22#define max(x, y) (((x) > (y)) ? (x) : (y))
23#define _strnicmp(_String1, _String2, _MaxCount) strncasecmp(_String1, _String2, _MaxCount)
24#define stricmp(_String1, _String2) strcasecmp(_String1, _String2)
25
26#ifdef __i386__
27#define CDECL __cdecl
28#else
29#define CDECL
30#endif
32
33// windef.h
34#define MAX_PATH 260
35#define CALLBACK
36typedef int (*FARPROC)();
37
38// bytesex.h
39#define SWAPD(x) x
40#define SWAPW(x) x
41
42// Wine stuff
43#define DECLSPEC_HIDDEN
44#define WINE_DEFAULT_DEBUG_CHANNEL(x)
45#define WINE_DECLARE_DEBUG_CHANNEL(x)
46extern const char *wine_dbgstr_an( const char * s, int n );
47extern const char *wine_dbgstr_wn( const WCHAR *s, int n );
48extern const char *wine_dbg_sprintf( const char *format, ... );
49static __inline const char *wine_dbgstr_longlong( ULONGLONG ll )
50{
51 if (/*sizeof(ll) > sizeof(unsigned long) &&*/ ll >> 32) /* ULONGLONG is always > long in ReactOS */
52 return wine_dbg_sprintf( "%lx%08lx", (unsigned long)(ll >> 32), (unsigned long)ll );
53 else return wine_dbg_sprintf( "%lx", (unsigned long)ll );
54}
55static __inline const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
56static __inline const char *debugstr_wn( const WCHAR *s, int n ) { return wine_dbgstr_wn( s, n ); }
57static __inline const char *debugstr_a( const char *s ) { return wine_dbgstr_an( s, -1 ); }
58static __inline const char *debugstr_w( const WCHAR *s ) { return wine_dbgstr_wn( s, -1 ); }
59static __inline const char *wine_dbgstr_w( const WCHAR *s ){return wine_dbgstr_wn( s, -1 );}
60/* This should never be called */
61#define wine_get_dos_file_name(__x) (assert(0), NULL)
62
63#if 0
64#define WARN(fmt, ...) fprintf(stderr, "WARN %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
65#define FIXME(fmt, ...) fprintf(stderr, "FIXME %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
66#define TRACE(fmt, ...) fprintf(stderr, "TRACE %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
67#define ERR(fmt, ...) fprintf(stderr, "ERR %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
68#else
69#define WARN(fmt, ...)
70#define FIXME(fmt, ...)
71#define TRACE(fmt, ...)
72#define ERR(fmt, ...)
73#endif
74
75#define TRACE_ON(x) FALSE
76#define TRACE_(x) TRACE
77#define FIXME_(x) FIXME
78const char *wine_dbg_sprintf( const char *format, ... );
79#define CP_UNIXCP CP_ACP
80#define __TRY if(1)
81#define __EXCEPT_PAGE_FAULT else
82#define __ENDTRY
83
84// basetsd.h
86
87// excpt.h
89{
95
96// winerror.h
97#define ERROR_ACCESS_DENIED 5
98#define ERROR_INVALID_HANDLE 6
99#define ERROR_OUTOFMEMORY 14
100#define ERROR_NOT_SUPPORTED 50
101#define ERROR_INVALID_PARAMETER 87
102#define ERROR_CALL_NOT_IMPLEMENTED 120
103#define ERROR_INVALID_NAME 123
104#define ERROR_MOD_NOT_FOUND 126
105#define ERROR_NO_MORE_ITEMS 259
106#define ERROR_INVALID_ADDRESS 487
107
108// winnls.h
109#define CP_ACP 0
110#define MultiByteToWideChar __MultiByteToWideChar
111#define WideCharToMultiByte __WideCharToMultiByte
114
115// #define strlenW(s) wcslen((s))
116// #define strcpyW(d,s) wcscpy((d),(s))
117// #define strchrW(s,c) wcschr((s),(c))
118// #define strcatW(d,s) wcscat((d),(s))
119// #define strncmpiW(s1,s2,n) _wcsnicmp((s1),(s2),(n))
120// #define strcmpW(s1,s2) wcscmp((s1),(s2))
121// #define strcmpiW(s1,s2) _wcsicmp((s1),(s2))
122// #define tolowerW(n) towlower((n))
123// #define toupperW(n) towupper((n))
124
125// winnt.h
126# define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
127#define IMAGE_FILE_MACHINE_ARMNT 0x1c4
128#define IMAGE_FILE_MACHINE_POWERPC 0x1f0
129#define IMAGE_FILE_MACHINE_ARM64 0xaa64
130#define DLL_PROCESS_DETACH 0
131#define DLL_PROCESS_ATTACH 1
132#define DLL_THREAD_ATTACH 2
133#define DLL_THREAD_DETACH 3
134#define HEAP_ZERO_MEMORY 8
135#define GENERIC_READ 0x80000000
136#define FILE_SHARE_READ 0x00000001
137#define FILE_ATTRIBUTE_NORMAL 0x00000080
138#define PAGE_READONLY 0x0002
139#define SECTION_MAP_READ 4
140#define IMAGE_DEBUG_TYPE_UNKNOWN 0
141#define IMAGE_DEBUG_TYPE_COFF 1
142#define IMAGE_DEBUG_TYPE_CODEVIEW 2
143#define IMAGE_DEBUG_TYPE_FPO 3
144#define IMAGE_DEBUG_TYPE_MISC 4
145#define IMAGE_DEBUG_TYPE_EXCEPTION 5
146#define IMAGE_DEBUG_TYPE_FIXUP 6
147#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7
148#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8
149#define IMAGE_SYM_CLASS_EXTERNAL 2
150#define IMAGE_SYM_CLASS_FILE 103
151#define IMAGE_DIRECTORY_ENTRY_EXPORT 0
152#define IMAGE_DIRECTORY_ENTRY_DEBUG 6
153#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10
154#define IMAGE_DEBUG_MISC_EXENAME 1
155#define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944
169typedef struct _IMAGE_DEBUG_MISC {
191typedef struct _SECURITY_ATTRIBUTES {
206#define EXCEPTION_MAXIMUM_PARAMETERS 15
207typedef struct _EXCEPTION_RECORD {
215
216#define WOW64_CONTEXT_i386 0x00010000
217#define WOW64_CONTEXT_i486 0x00010000
218#define WOW64_CONTEXT_CONTROL (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000001))
219#define WOW64_CONTEXT_INTEGER (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000002))
220#define WOW64_CONTEXT_SEGMENTS (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000004))
221#define WOW64_CONTEXT_FLOATING_POINT (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000008))
222#define WOW64_CONTEXT_DEBUG_REGISTERS (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000010))
223#define WOW64_CONTEXT_EXTENDED_REGISTERS (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000020))
224#define WOW64_CONTEXT_FULL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | WOW64_CONTEXT_SEGMENTS)
225#define WOW64_CONTEXT_ALL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | \
226 WOW64_CONTEXT_SEGMENTS | WOW64_CONTEXT_FLOATING_POINT | \
227 WOW64_CONTEXT_DEBUG_REGISTERS | WOW64_CONTEXT_EXTENDED_REGISTERS)
228
229#define WOW64_CONTEXT_XSTATE (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000040))
230
231#define WOW64_CONTEXT_EXCEPTION_ACTIVE 0x08000000
232#define WOW64_CONTEXT_SERVICE_ACTIVE 0x10000000
233#define WOW64_CONTEXT_EXCEPTION_REQUEST 0x40000000
234#define WOW64_CONTEXT_EXCEPTION_REPORTING 0x80000000
235
236#define WOW64_SIZE_OF_80387_REGISTERS 80
237#define WOW64_MAXIMUM_SUPPORTED_EXTENSION 512
238
240{
251
252#include "pshpack4.h"
253typedef struct _WOW64_CONTEXT
254{
281#include "poppack.h"
282
283#if defined(TARGET_i386)
284#define SIZE_OF_80387_REGISTERS 80
285#define CONTEXT_i386 0x10000
286#define CONTEXT_i486 0x10000
287#define CONTEXT_CONTROL (CONTEXT_i386|0x00000001L)
288#define CONTEXT_INTEGER (CONTEXT_i386|0x00000002L)
289#define CONTEXT_SEGMENTS (CONTEXT_i386|0x00000004L)
290#define CONTEXT_FLOATING_POINT (CONTEXT_i386|0x00000008L)
291#define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386|0x00000010L)
292#define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386|0x00000020L)
293#define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_INTEGER|CONTEXT_SEGMENTS)
294#define MAXIMUM_SUPPORTED_EXTENSION 512
295
296#define EXCEPTION_READ_FAULT 0
297#define EXCEPTION_WRITE_FAULT 1
298#define EXCEPTION_EXECUTE_FAULT 8
299
300typedef struct _FLOATING_SAVE_AREA {
308 BYTE RegisterArea[80];
311
312typedef struct _CONTEXT {
314 DWORD Dr0;
315 DWORD Dr1;
316 DWORD Dr2;
317 DWORD Dr3;
318 DWORD Dr6;
319 DWORD Dr7;
321 DWORD SegGs;
322 DWORD SegFs;
323 DWORD SegEs;
324 DWORD SegDs;
325 DWORD Edi;
326 DWORD Esi;
327 DWORD Ebx;
328 DWORD Edx;
329 DWORD Ecx;
330 DWORD Eax;
331 DWORD Ebp;
332 DWORD Eip;
333 DWORD SegCs;
335 DWORD Esp;
336 DWORD SegSs;
338} CONTEXT;
339
340#elif defined TARGET_amd64
341
342typedef struct _M128A {
345} M128A, *PM128A;
346
347typedef struct _XMM_SAVE_AREA32 {
348 WORD ControlWord;
349 WORD StatusWord;
350 BYTE TagWord;
352 WORD ErrorOpcode;
353 DWORD ErrorOffset;
354 WORD ErrorSelector;
356 DWORD DataOffset;
357 WORD DataSelector;
359 DWORD MxCsr;
360 DWORD MxCsr_Mask;
361 M128A FloatRegisters[8];
362 M128A XmmRegisters[16];
363 BYTE Reserved4[96];
365
366typedef struct _CONTEXT {
367 DWORD64 P1Home;
368 DWORD64 P2Home;
369 DWORD64 P3Home;
370 DWORD64 P4Home;
371 DWORD64 P5Home;
372 DWORD64 P6Home;
373
374 /* Control flags */
376 DWORD MxCsr;
377
378 /* Segment */
379 WORD SegCs;
380 WORD SegDs;
381 WORD SegEs;
382 WORD SegFs;
383 WORD SegGs;
384 WORD SegSs;
386
387 /* Debug */
388 DWORD64 Dr0;
389 DWORD64 Dr1;
390 DWORD64 Dr2;
391 DWORD64 Dr3;
392 DWORD64 Dr6;
393 DWORD64 Dr7;
394
395 /* Integer */
396 DWORD64 Rax;
397 DWORD64 Rcx;
398 DWORD64 Rdx;
399 DWORD64 Rbx;
400 DWORD64 Rsp;
401 DWORD64 Rbp;
402 DWORD64 Rsi;
403 DWORD64 Rdi;
404 DWORD64 R8;
405 DWORD64 R9;
406 DWORD64 R10;
407 DWORD64 R11;
408 DWORD64 R12;
409 DWORD64 R13;
410 DWORD64 R14;
411 DWORD64 R15;
412
413 /* Counter */
414 DWORD64 Rip;
415
416 /* Floating point */
417 union {
418 XMM_SAVE_AREA32 FltSave;
419 struct {
420 M128A Header[2];
421 M128A Legacy[8];
422 M128A Xmm0;
423 M128A Xmm1;
424 M128A Xmm2;
425 M128A Xmm3;
426 M128A Xmm4;
427 M128A Xmm5;
428 M128A Xmm6;
429 M128A Xmm7;
430 M128A Xmm8;
431 M128A Xmm9;
432 M128A Xmm10;
433 M128A Xmm11;
434 M128A Xmm12;
435 M128A Xmm13;
436 M128A Xmm14;
437 M128A Xmm15;
440
441 /* Vector */
442 M128A VectorRegister[26];
443 DWORD64 VectorControl;
444
445 /* Debug control */
446 DWORD64 DebugControl;
447 DWORD64 LastBranchToRip;
448 DWORD64 LastBranchFromRip;
449 DWORD64 LastExceptionToRip;
450 DWORD64 LastExceptionFromRip;
451} CONTEXT;
452
453#elif defined TARGET_arm
454
455/* The following flags control the contents of the CONTEXT structure. */
456
457#define CONTEXT_ARM 0x0200000
458#define CONTEXT_CONTROL (CONTEXT_ARM | 0x00000001)
459#define CONTEXT_INTEGER (CONTEXT_ARM | 0x00000002)
460#define CONTEXT_FLOATING_POINT (CONTEXT_ARM | 0x00000004)
461#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM | 0x00000008)
462
463#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER)
464
465#define EXCEPTION_READ_FAULT 0
466#define EXCEPTION_WRITE_FAULT 1
467#define EXCEPTION_EXECUTE_FAULT 8
468
469typedef struct _RUNTIME_FUNCTION
470{
471 DWORD BeginAddress;
472 union {
473 DWORD UnwindData;
474 struct {
475 DWORD Flag : 2;
476 DWORD FunctionLength : 11;
477 DWORD Ret : 2;
478 DWORD H : 1;
479 DWORD Reg : 3;
480 DWORD R : 1;
481 DWORD L : 1;
482 DWORD C : 1;
483 DWORD StackAdjust : 10;
487
488#define UNWIND_HISTORY_TABLE_SIZE 12
489typedef struct _UNWIND_HISTORY_TABLE_ENTRY
490{
491 DWORD ImageBase;
492 PRUNTIME_FUNCTION FunctionEntry;
493} UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
494
495typedef struct _UNWIND_HISTORY_TABLE
496{
497 DWORD Count;
498 BYTE LocalHint;
499 BYTE GlobalHint;
500 BYTE Search;
501 BYTE Once;
502 DWORD LowAddress;
504 UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
505} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
506
507typedef struct _CONTEXT {
508 /* The flags values within this flag control the contents of
509 a CONTEXT record.
510
511 If the context record is used as an input parameter, then
512 for each portion of the context record controlled by a flag
513 whose value is set, it is assumed that that portion of the
514 context record contains valid context. If the context record
515 is being used to modify a thread's context, then only that
516 portion of the threads context will be modified.
517
518 If the context record is used as an IN OUT parameter to capture
519 the context of a thread, then only those portions of the thread's
520 context corresponding to set flags will be returned.
521
522 The context record is never used as an OUT only parameter. */
523
525
526 /* This section is specified/returned if the ContextFlags word contains
527 the flag CONTEXT_INTEGER. */
528 ULONG R0;
529 ULONG R1;
530 ULONG R2;
531 ULONG R3;
532 ULONG R4;
533 ULONG R5;
534 ULONG R6;
535 ULONG R7;
536 ULONG R8;
537 ULONG R9;
538 ULONG R10;
539 ULONG Fp;
540 ULONG Ip;
541
542 /* These are selected by CONTEXT_CONTROL */
543 ULONG Sp;
544 ULONG Lr;
545 ULONG Pc;
546 ULONG Cpsr;
547} CONTEXT;
548
552
553#elif defined TARGET_arm64
554
555#define CONTEXT_ARM64 0x00400000L
556#define CONTEXT_CONTROL (CONTEXT_ARM64 | 0x1L)
557#define CONTEXT_INTEGER (CONTEXT_ARM64 | 0x2L)
558#define CONTEXT_FLOATING_POINT (CONTEXT_ARM64 | 0x4L)
559#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM64 | 0x8L)
560#define CONTEXT_X18 (CONTEXT_ARM64 | 0x10L)
561#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT)
562
563#define EXCEPTION_READ_FAULT 0
564#define EXCEPTION_WRITE_FAULT 1
565#define EXCEPTION_EXECUTE_FAULT 8
566
567typedef union NEON128 {
568 struct {
572 double D[2];
573 float S[4];
574 WORD H[8];
575 BYTE B[16];
576} NEON128, *PNEON128;
577
578#define ARM64_MAX_BREAKPOINTS 8
579#define ARM64_MAX_WATCHPOINTS 2
580
581typedef struct _CONTEXT {
582
583 //
584 // Control flags.
585 //
586
588
589 //
590 // Integer registers
591 //
592
593 DWORD Cpsr;
594 union {
595 struct {
596 DWORD64 X0;
597 DWORD64 X1;
598 DWORD64 X2;
599 DWORD64 X3;
600 DWORD64 X4;
601 DWORD64 X5;
602 DWORD64 X6;
603 DWORD64 X7;
604 DWORD64 X8;
605 DWORD64 X9;
606 DWORD64 X10;
607 DWORD64 X11;
608 DWORD64 X12;
609 DWORD64 X13;
610 DWORD64 X14;
611 DWORD64 X15;
612 DWORD64 X16;
613 DWORD64 X17;
614 DWORD64 X18;
615 DWORD64 X19;
616 DWORD64 X20;
617 DWORD64 X21;
618 DWORD64 X22;
619 DWORD64 X23;
620 DWORD64 X24;
621 DWORD64 X25;
622 DWORD64 X26;
623 DWORD64 X27;
624 DWORD64 X28;
625 DWORD64 Fp;
626 DWORD64 Lr;
628 DWORD64 X[31];
630
631 DWORD64 Sp;
632 DWORD64 Pc;
633
634 //
635 // Floating Point/NEON Registers
636 //
637
638 NEON128 V[32];
639 DWORD Fpcr;
640 DWORD Fpsr;
641
642 //
643 // Debug registers
644 //
645
650
651} _CONTEXT, *P_CONTEXT;
652typedef _CONTEXT CONTEXT, *PCONTEXT;
653
654typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
655 DWORD BeginAddress;
656 union {
657 DWORD UnwindData;
658 struct {
659 DWORD Flag : 2;
660 DWORD FunctionLength : 11;
661 DWORD RegF : 3;
662 DWORD RegI : 4;
663 DWORD H : 1;
664 DWORD CR : 2;
665 DWORD FrameSize : 9;
668} IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, * PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY;
669typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
670
671#define UNWIND_HISTORY_TABLE_SIZE 12
672
673typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
674 ULONG_PTR ImageBase;
675 PRUNTIME_FUNCTION FunctionEntry;
676} UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
677
678typedef struct _UNWIND_HISTORY_TABLE {
679 DWORD Count;
680 BYTE LocalHint;
681 BYTE GlobalHint;
682 BYTE Search;
683 BYTE Once;
684 ULONG_PTR LowAddress;
686 UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
687} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
688
692
693#else
694
695#error "Unknown target platform"
696
697#endif
698
700
701typedef
703NTAPI
705 struct _EXCEPTION_RECORD *ExceptionRecord,
707 struct _CONTEXT *ContextRecord,
710typedef struct _NT_TIB {
715 union {
720 struct _NT_TIB *Self;
722
723// rtltypes.h
725{
729
730// winbase.h
731#define INVALID_HANDLE_VALUE (HANDLE)(-1)
732#define INVALID_SET_FILE_POINTER ((DWORD)-1)
733#define HeapAlloc __HeapAlloc
734#define HeapReAlloc __HeapReAlloc
735#define HeapFree(x,y,z) free(z)
736#define GetProcessHeap() 1
737#define GetProcessId(x) 8
738#define lstrcpynW __lstrcpynW
739#define CloseHandle __CloseHandle
740#define CreateFileA(a,b,c,d,e,f,g) fopen(a, "rb")
741#define CreateFileW __CreateFileW
742#define ReadFile(a,b,c,d,e) __ReadFile
743#define SetFilePointer __SetFilePointer
744#define CreateFileMappingW(a,b,c,d,e,f) a
745#define MapViewOfFile __MapViewOfFile
746#define UnmapViewOfFile __UnmapViewOfFile
747#define LoadLibraryW(x) 0
748#define FreeLibrary(x) 0
749#define lstrcpyW strcpyW // Forward this to wine unicode inline function
750#define lstrlenW strlenW // ditto
751#define lstrcpynA __lstrcpynA
752#define SetLastError(x)
753#define GetProcAddress(x,y) 0
754#define GetEnvironmentVariableA(x, y, z) 0
755#define GetEnvironmentVariableW(x, y, z) 0
756#define GetCurrentDirectoryW(x, y) 0
757#define GetFileSizeEx __GetFileSizeEx
758#define ReadProcessMemory(a,b,c,d,e) 0
759#define GetCurrentProcess() (HANDLE)1
760#define IsWow64Process __IsWow64Process
761#define FILE_BEGIN 0
762
763void* __HeapAlloc(int heap, int flags, size_t size);
764void* __HeapReAlloc(int heap, DWORD d2, void *slab, SIZE_T newsize);
765WCHAR* __lstrcpynW(WCHAR* lpString1, const WCHAR* lpString2, int iMaxLength);
767HANDLE __CreateFileW(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
768BOOL __ReadFile(HANDLE,PVOID,DWORD,PDWORD,/*LPOVERLAPPED*/ PVOID);
771BOOL __UnmapViewOfFile(const void*);
775#define OPEN_EXISTING 3
776#define FILE_MAP_READ SECTION_MAP_READ
777typedef struct _LDT_ENTRY {
780 union {
781 struct {
787 struct {
801
802// umtypes.h
804
805// winternl.h
806#define RtlImageNtHeader __RtlImageNtHeader
807#define RtlImageRvaToVa __RtlImageRvaToVa
808#define RtlImageRvaToSection __RtlImageRvaToSection
809#define RtlImageDirectoryEntryToData __RtlImageDirectoryEntryToData
810#define RtlComputeCrc32 __RtlComputeCrc32
811
812#ifdef _MSC_VER
813#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
814#else
815#define RtlUlongByteSwap(_x) __builtin_bswap32((_x))
816#endif
817
822
823typedef struct _CLIENT_ID
824{
828#define GDI_BATCH_BUFFER_SIZE 0x136
829typedef struct _GDI_TEB_BATCH
830{
835typedef struct _TEB
836{
837 NT_TIB Tib; /* 000 */
842 PVOID Peb; /* 030 */
847 ULONG Win32ClientInfo[31]; /* 044 used for user32 private data in Wine */
851 PVOID SystemReserved1[54]; /* 0cc used for kernel32 private data in Wine */
852 PVOID Spare1; /* 1a4 */
855 BYTE SpareBytes1[36]; /* 1ac */
856 PVOID SystemReserved2[10]; /* 1d4 used for ntdll private data in Wine */
858 ULONG gdiRgn; /* 6dc */
859 ULONG gdiPen; /* 6e0 */
860 ULONG gdiBrush; /* 6e4 */
866 PVOID UserReserved[5]; /* 700 */
867 PVOID glDispatchTable[280]; /* 714 */
868 ULONG glReserved1[26]; /* b74 */
871 PVOID glSection; /* be4 */
872 PVOID glTable; /* be8 */
874 PVOID glContext; /* bf0 */
876 UNICODE_STRING StaticUnicodeString; /* bf8 used by advapi32 */
877 WCHAR StaticUnicodeBuffer[261]; /* c00 used by advapi32 */
879 PVOID TlsSlots[64]; /* e10 */
881 PVOID Vdm; /* f18 */
883 PVOID DbgSsReserved[2]; /* f20 */
885 PVOID Instrumentation[16]; /* f2c */
888 ULONG Spare2; /* f74 */
889 ULONG Spare3; /* f78 */
890 ULONG Spare4; /* f7c */
893 PVOID Reserved5[3]; /* f88 */
896
897
898// winver.h
899typedef struct tagVS_FIXEDFILEINFO {
914
915
916// psapi.h
917typedef struct _MODULEINFO {
922#define GetModuleFileNameExW(w, x, y, z) 0
923
924// pstypes.h
926{
934typedef enum _THREADINFOCLASS {
971
972
973// dbghelp.h
975#define MAX_SYM_NAME 2000
976#define CBA_DEFERRED_SYMBOL_LOAD_START 0x00000001
977#define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002
978#define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003
979#define CBA_SYMBOLS_UNLOADED 0x00000004
980#define CBA_DUPLICATE_SYMBOL 0x00000005
981#define CBA_READ_MEMORY 0x00000006
982#define CBA_DEFERRED_SYMBOL_LOAD_CANCEL 0x00000007
983#define CBA_SET_OPTIONS 0x00000008
984#define CBA_EVENT 0x00000010
985#define CBA_DEFERRED_SYMBOL_LOAD_PARTIAL 0x00000020
986#define CBA_DEBUG_INFO 0x10000000
987#define SYMOPT_CASE_INSENSITIVE 0x00000001
988#define SYMOPT_UNDNAME 0x00000002
989#define SYMOPT_DEFERRED_LOADS 0x00000004
990#define SYMOPT_LOAD_LINES 0x00000010
991#define SYMOPT_LOAD_ANYTHING 0x00000040
992#define SYMOPT_PUBLICS_ONLY 0x00004000
993#define SYMOPT_NO_PUBLICS 0x00008000
994#define SYMOPT_AUTO_PUBLICS 0x00010000
995#define SYMFLAG_VALUEPRESENT 0x00000001
996#define SYMFLAG_REGISTER 0x00000008
997#define SYMFLAG_REGREL 0x00000010
998#define SYMFLAG_FRAMEREL 0x00000020
999#define SYMFLAG_PARAMETER 0x00000040
1000#define SYMFLAG_LOCAL 0x00000080
1001#define SYMFLAG_CONSTANT 0x00000100
1002#define SYMFLAG_EXPORT 0x00000200
1003#define SYMFLAG_FORWARDER 0x00000400
1004#define SYMFLAG_FUNCTION 0x00000800
1005#define SYMFLAG_VIRTUAL 0x00001000
1006#define SYMFLAG_THUNK 0x00002000
1007#define SYMFLAG_TLSREL 0x00004000
1008#define SYMFLAG_SLOT 0x00008000
1009#define SYMFLAG_ILREL 0x00010000
1010#define SYMFLAG_METADATA 0x00020000
1011#define SYMFLAG_CLR_TOKEN 0x00040000
1012#define SYMFLAG_NULL 0x00080000
1013#define SYMFLAG_FUNC_NO_RETURN 0x00100000
1014#define SYMFLAG_SYNTHETIC_ZEROBASE 0x00200000
1015#define SYMFLAG_PUBLIC_CODE 0x00400000
1016#define UNDNAME_COMPLETE (0x0000)
1017#define UNDNAME_NAME_ONLY (0x1000)
1019{
1024#define SYMSEARCH_GLOBALSONLY 0x04
1025/* flags for SymLoadModuleEx */
1026#define SLMFLAG_VIRTUAL 0x1
1027#define SLMFLAG_NO_SYMBOLS 0x4
1029{
1036typedef struct _SYMBOL_INFO
1037{
1054typedef enum
1055{
1068{
1093typedef struct _IMAGEHLP_LINE64
1094{
1101typedef enum
1102{
1105/* __WINESRC__ */
1108typedef struct _SRCCODEINFO
1109{
1120BOOL WINAPI SymInitialize(HANDLE hProcess, PCSTR UserSearchPath, BOOL fInvadeProcess);
1124BOOL WINAPI SymMatchStringW(PCWSTR string, PCWSTR re, BOOL _case);
1126 PCSTR ModuleName, DWORD BaseOfDll, DWORD SizeOfDll);
1141#define FindExecutableImageExW __FindExecutableImageExW
1145{
1152 ThreadWriteThreadInfo = 0x0040
1154typedef enum
1155{
1162{
1172typedef struct _tagADDRESS64
1173{
1190
1192
1193typedef struct _tagADDRESS
1194{
1199
1200typedef struct _IMAGEHLP_MODULE
1201{
1213typedef struct _IMAGEHLP_MODULEW
1214{
1235
1237{
1262typedef DWORD RVA;
1264typedef enum _MINIDUMP_TYPE
1265{
1280 MiniDumpWithCodeSegs = 0x2000
1283{
1292{
1303{
1316{
1320{
1324{
1328 union
1329 {
1338{
1339 union
1340 {
1343 struct
1344 {
1352{
1356typedef struct _SYMBOL_INFOW
1357{
1375{
1387typedef struct _KDHELP64
1388{
1399typedef struct _STACKFRAME64
1400{
1414{
1443typedef struct _SOURCEFILE
1444{
1448typedef struct _SOURCEFILEW
1449{
1455typedef struct _SRCCODEINFOW
1456{
1467#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
1468#define IMAGEHLP_SYMBOL IMAGEHLP_SYMBOL64
1469#define IMAGEHLP_SYMBOLW IMAGEHLP_SYMBOLW64
1470#define PIMAGEHLP_SYMBOL PIMAGEHLP_SYMBOL64
1471#define PIMAGEHLP_SYMBOLW PIMAGEHLP_SYMBOLW64
1472#else
1473typedef struct _IMAGEHLP_SYMBOL
1474{
1482
1483typedef struct _IMAGEHLP_SYMBOLW
1484{
1492#endif
1494{
1503{
1511#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
1512#define IMAGEHLP_LINE IMAGEHLP_LINE64
1513#define PIMAGEHLP_LINE PIMAGEHLP_LINE64
1514#define IMAGEHLP_LINEW IMAGEHLP_LINEW64
1515#define PIMAGEHLP_LINEW PIMAGEHLP_LINEW64
1516#else
1517typedef struct _IMAGEHLP_LINE
1518{
1525
1526typedef struct _IMAGEHLP_LINEW
1527{
1534#endif
1535typedef struct _IMAGEHLP_LINEW64
1536{
1543#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
1544#define IMAGEHLP_DEFERRED_SYMBOL_LOAD IMAGEHLP_DEFERRED_SYMBOL_LOAD64
1545#define PIMAGEHLP_DEFERRED_SYMBOL_LOAD PIMAGEHLP_DEFERRED_SYMBOL_LOAD64
1546#else
1548{
1557#endif
1559{
1569typedef struct API_VERSION
1570{
1576
1577// cvconst.h
1578/* symbols & types enumeration */
1580{
1612 SymTagMax
1614
1616{
1632 btBit = 29,
1635};
1636
1637/* kind of UDT */
1639{
1642 UdtUnion
1644
1645/* kind of SymTagData */
1647{
1659
1660/* values for registers (on different CPUs) */
1662{
1663 /* those values are common to all supported CPUs (and CPU independent) */
1677
1678 /* Intel x86 CPU */
1714
1715 /* <pcode> */
1719 CV_REG_PCDR3 = 43, /* this includes PCDR4 to PCDR7 */
1720 CV_REG_CR0 = 80, /* this includes CR1 to CR4 */
1721 CV_REG_DR0 = 90, /* this includes DR1 to DR7 */
1722 /* </pcode> */
1723
1730
1731 CV_REG_PSEUDO1 = 116, /* this includes Pseudo02 to Pseudo09 */
1732 CV_REG_ST0 = 128, /* this includes ST1 to ST7 */
1743 CV_REG_MM0 = 146, /* this includes MM1 to MM7 */
1744 CV_REG_XMM0 = 154, /* this includes XMM1 to XMM7 */
1746 CV_REG_XMM0L = 194, /* this includes XMM1L to XMM7L */
1747 CV_REG_XMM0H = 202, /* this includes XMM1H to XMM7H */
1768
1769 CV_REG_YMM0 = 252, /* this includes YMM1 to YMM7 */
1770 CV_REG_YMM0H = 260, /* this includes YMM1H to YMM7H */
1771 CV_REG_YMM0I0 = 268, /* this includes YMM0I1 to YMM0I3 */
1772 CV_REG_YMM1I0 = 272, /* this includes YMM1I1 to YMM1I3 */
1773 CV_REG_YMM2I0 = 276, /* this includes YMM2I1 to YMM2I3 */
1774 CV_REG_YMM3I0 = 280, /* this includes YMM3I1 to YMM3I3 */
1775 CV_REG_YMM4I0 = 284, /* this includes YMM4I1 to YMM4I3 */
1776 CV_REG_YMM5I0 = 288, /* this includes YMM5I1 to YMM5I3 */
1777 CV_REG_YMM6I0 = 292, /* this includes YMM6I1 to YMM6I3 */
1778 CV_REG_YMM7I0 = 296, /* this includes YMM7I1 to YMM7I3 */
1779 CV_REG_YMM0F0 = 300, /* this includes YMM0F1 to YMM0F7 */
1780 CV_REG_YMM1F0 = 308, /* this includes YMM1F1 to YMM1F7 */
1781 CV_REG_YMM2F0 = 316, /* this includes YMM2F1 to YMM2F7 */
1782 CV_REG_YMM3F0 = 324, /* this includes YMM3F1 to YMM3F7 */
1783 CV_REG_YMM4F0 = 332, /* this includes YMM4F1 to YMM4F7 */
1784 CV_REG_YMM5F0 = 340, /* this includes YMM5F1 to YMM5F7 */
1785 CV_REG_YMM6F0 = 348, /* this includes YMM6F1 to YMM6F7 */
1786 CV_REG_YMM7F0 = 356, /* this includes YMM7F1 to YMM7F7 */
1787 CV_REG_YMM0D0 = 364, /* this includes YMM0D1 to YMM0D3 */
1788 CV_REG_YMM1D0 = 368, /* this includes YMM1D1 to YMM1D3 */
1789 CV_REG_YMM2D0 = 372, /* this includes YMM2D1 to YMM2D3 */
1790 CV_REG_YMM3D0 = 376, /* this includes YMM3D1 to YMM3D3 */
1791 CV_REG_YMM4D0 = 380, /* this includes YMM4D1 to YMM4D3 */
1792 CV_REG_YMM5D0 = 384, /* this includes YMM5D1 to YMM5D3 */
1793 CV_REG_YMM6D0 = 388, /* this includes YMM6D1 to YMM6D3 */
1794 CV_REG_YMM7D0 = 392, /* this includes YMM7D1 to YMM7D3 */
1795
1796 /* Motorola 68K CPU */
1797 CV_R68_D0 = 0, /* this includes D1 to D7 too */
1798 CV_R68_A0 = 8, /* this includes A1 to A7 too */
1813 CV_R68_FP0 = 32, /* this includes FP1 to FP7 */
1833 CV_R68_BAD0 = 64, /* this includes BAD1 to BAD7 */
1834 CV_R68_BAC0 = 72, /* this includes BAC1 to BAC7 */
1835
1836 /* MIPS 4000 CPU */
1842 CV_M4_IntA0 = 14, /* this includes IntA1 to IntA3 */
1843 CV_M4_IntT0 = 18, /* this includes IntT1 to IntT7 */
1844 CV_M4_IntS0 = 26, /* this includes IntS1 to IntS7 */
1857 CV_M4_FltF0 = 60, /* this includes FltF1 to Flt31 */
1859
1860 /* Alpha AXP CPU */
1862 CV_ALPHA_FltF0 = 10, /* this includes FltF1 to FltF31 */
1864 CV_ALPHA_IntT0 = 43, /* this includes T1 to T7 */
1865 CV_ALPHA_IntS0 = 51, /* this includes S1 to S5 */
1867 CV_ALPHA_IntA0 = 58, /* this includes A1 to A5 */
1883
1884 /* Motorola & IBM PowerPC CPU */
1885 CV_PPC_GPR0 = 1, /* this includes GPR1 to GPR31 */
1887 CV_PPC_CR0 = 34, /* this includes CR1 to CR7 */
1888 CV_PPC_FPR0 = 42, /* this includes FPR1 to FPR31 */
1889
1892 CV_PPC_SR0 = 76, /* this includes SR1 to SR15 */
1908 CV_PPC_SPRG0 = 372, /* this includes SPRG1 to SPRG3 */
1928 CV_PPC_PMR0 = 1044, /* this includes PMR1 to PMR15 */
1936 CV_PPC_HID0 = 1108, /* this includes HID1 to HID15 */
1937
1938 /* Java */
1940
1941 /* Hitachi SH3 CPU */
1943 CV_SH3_IntR0 = 10, /* this include R1 to R13 */
1965 CV_SH_FpR0 = 80, /* this includes FpR1 to FpR15 */
1966 CV_SH_XFpR0 = 96, /* this includes XFpR1 to XXFpR15 */
1967
1968 /* ARM CPU */
1970 CV_ARM_R0 = 10, /* this includes R1 to R12 */
1978 CV_ARM_FS0 = 50, /* this includes FS1 to FS31 */
1979 CV_ARM_FPEXTRA0 = 90, /* this includes FPEXTRA1 to FPEXTRA7 */
1980 CV_ARM_WR0 = 128, /* this includes WR1 to WR15 */
1989 CV_ARM_WCGR0 = 152, /* this includes WCGR1 to WCGR3 */
1994 CV_ARM_FS32 = 200, /* this includes FS33 to FS63 */
1995 CV_ARM_ND0 = 300, /* this includes ND1 to ND31 */
1996 CV_ARM_NQ0 = 400, /* this includes NQ1 to NQ15 */
1997
1998 /* Intel IA64 CPU */
2000 CV_IA64_Br0 = 512, /* this includes Br1 to Br7 */
2001 CV_IA64_P0 = 704, /* this includes P1 to P63 */
2003 CV_IA64_IntH0 = 832, /* this includes H1 to H15 */
2011 CV_IA64_IntR0 = 1024, /* this includes R1 to R127 */
2012 CV_IA64_FltF0 = 2048, /* this includes FltF1 to FltF127 */
2013 /* some IA64 registers missing */
2014
2015 /* TriCore CPU */
2017 CV_TRI_D0 = 10, /* includes D1 to D15 */
2018 CV_TRI_A0 = 26, /* includes A1 to A15 */
2045 CV_TRI_DPRx_0 = 68, /* includes DPRx_1 to DPRx_3 */
2046 CV_TRI_CPRx_0 = 68, /* includes CPRx_1 to CPRx_3 */
2047 CV_TRI_DPMx_0 = 68, /* includes DPMx_1 to DPMx_3 */
2048 CV_TRI_CPMx_0 = 68, /* includes CPMx_1 to CPMx_3 */
2060
2061 /* AM33 (and the likes) CPU */
2063 CV_AM33_E0 = 10, /* this includes E1 to E7 */
2064 CV_AM33_A0 = 20, /* this includes A1 to A3 */
2065 CV_AM33_D0 = 30, /* this includes D1 to D3 */
2066 CV_AM33_FS0 = 40, /* this includes FS1 to FS31 */
2078
2079 /* Mitsubishi M32R CPU */
2081 CV_M32R_R0 = 10, /* this includes R1 to R11 */
2095
2096 /* AMD/Intel x86_64 CPU */
2131
2132 /* <pcode> */
2136 CV_AMD64_PCDR3 = CV_REG_PCDR3, /* this includes PCDR4 to PCDR7 */
2137 CV_AMD64_CR0 = CV_REG_CR0, /* this includes CR1 to CR4 */
2138 CV_AMD64_DR0 = CV_REG_DR0, /* this includes DR1 to DR7 */
2139 /* </pcode> */
2140
2147
2148 CV_AMD64_PSEUDO1 = CV_REG_PSEUDO1, /* this includes Pseudo02 to Pseudo09 */
2149 CV_AMD64_ST0 = CV_REG_ST0, /* this includes ST1 to ST7 */
2160 CV_AMD64_MM0 = CV_REG_MM0, /* this includes MM1 to MM7 */
2161 CV_AMD64_XMM0 = CV_REG_XMM0, /* this includes XMM1 to XMM7 */
2163 CV_AMD64_XMM0L = CV_REG_XMM0L, /* this includes XMM1L to XMM7L */
2164 CV_AMD64_XMM0H = CV_REG_XMM0H, /* this includes XMM1H to XMM7H */
2185
2186 CV_AMD64_XMM8 = 252, /* this includes XMM9 to XMM15 */
2187
2196
2205
2206 /* Wine extension */
2208 CV_ARM64_X0 = 10, /* this includes X0 to X30 */
2212};
2213
2214typedef enum
2215{
2222
2223typedef enum CV_call_e
2224{
2249
2250
2251// wtypes.h
2252typedef LONG SCODE;
2253typedef double DATE;
2254typedef unsigned short VARTYPE;
2255typedef union tagCY {
2256 struct {
2257#ifdef WORDS_BIGENDIAN
2258 LONG Hi;
2259 ULONG Lo;
2260#else
2263#endif
2267typedef struct tagDEC {
2269 union {
2270 struct {
2277 union {
2278 struct {
2279#ifdef WORDS_BIGENDIAN
2280 ULONG Mid32;
2281 ULONG Lo32;
2282#else
2285#endif
2290typedef short VARIANT_BOOL;
2293typedef OLECHAR *BSTR;
2310 VT_I1 = 16,
2314 VT_I8 = 20,
2336 VT_CF = 71,
2340 VT_VECTOR = 0x1000,
2341 VT_ARRAY = 0x2000,
2342 VT_BYREF = 0x4000,
2343 VT_RESERVED = 0x8000,
2344 VT_ILLEGAL = 0xffff,
2346 VT_TYPEMASK = 0xfff
2348
2349// oaidl.h
2350typedef struct tagSAFEARRAYBOUND {
2354typedef struct tagSAFEARRAY {
2363
2364#if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)
2365#define __VARIANT_NAME_1 n1
2366#define __VARIANT_NAME_2 n2
2367#define __VARIANT_NAME_3 n3
2368#define __VARIANT_NAME_4 brecVal
2369#else
2370#define __tagVARIANT
2371#define __VARIANT_NAME_1
2372#define __VARIANT_NAME_2
2373#define __VARIANT_NAME_3
2374#define __tagBRECORD
2375#define __VARIANT_NAME_4
2376#endif
2377typedef struct tagVARIANT VARIANT;
2379 union {
2380 struct __tagVARIANT {
2385 union {
2386 signed char cVal;
2406 signed char *pcVal;
2429 struct __tagBRECORD {
2437};
2438
2442
2443// wine/windef16.h
2445
2446// wine/winbase16.h
2447typedef struct _STACK32FRAME
2448{
2449 DWORD restore_addr; /* 00 return address for restoring code selector */
2450 DWORD codeselector; /* 04 code selector to restore */
2451 EXCEPTION_REGISTRATION_RECORD frame; /* 08 Exception frame */
2452 SEGPTR frame16; /* 10 16-bit frame from last CallFrom16() */
2453 DWORD edi; /* 14 saved registers */
2454 DWORD esi; /* 18 */
2455 DWORD ebx; /* 1c */
2456 DWORD ebp; /* 20 saved 32-bit frame pointer */
2457 DWORD retaddr; /* 24 return address */
2458 DWORD target; /* 28 target address / CONTEXT86 pointer */
2459 DWORD nb_args; /* 2c number of 16-bit argument bytes */
2461
2462/* 16-bit stack layout after __wine_call_from_16() */
2463typedef struct _STACK16FRAME
2464{
2465 STACK32FRAME *frame32; /* 00 32-bit frame from last CallTo16() */
2466 DWORD edx; /* 04 saved registers */
2467 DWORD ecx; /* 08 */
2468 DWORD ebp; /* 0c */
2469 WORD ds; /* 10 */
2470 WORD es; /* 12 */
2471 WORD fs; /* 14 */
2472 WORD gs; /* 16 */
2473 DWORD callfrom_ip; /* 18 callfrom tail IP */
2474 DWORD module_cs; /* 1c module code segment */
2475 DWORD relay; /* 20 relay function address */
2476 WORD entry_ip; /* 22 entry point IP */
2477 DWORD entry_point; /* 26 API entry point to call, reused as mutex count */
2478 WORD bp; /* 2a 16-bit stack frame chain */
2479 WORD ip; /* 2c return address */
2480 WORD cs; /* 2e */
unsigned char BOOLEAN
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 ACPI_STATUS const char UINT32 const char const char * ModuleName
Definition: acpixf.h:1280
static int used
Definition: adh-main.c:39
@ R15
Definition: amd64_sup.c:13
@ R13
Definition: amd64_sup.c:13
@ R14
Definition: amd64_sup.c:13
_In_ ULONG _Out_writes_bytes_opt_ InformationLength PAUX_MODULE_EXTENDED_INFO ModuleInfo
Definition: aux_klib.h:65
void user(int argc, const char *argv[])
Definition: cmds.c:1350
@ Reserved2
Definition: bcd.h:202
@ Reserved1
Definition: bcd.h:201
#define D(d)
Definition: builtin.c:4557
#define C(c)
Definition: builtin.c:4556
w ll
Definition: byte_order.h:167
Definition: ehthrow.cxx:54
Definition: bufpool.h:45
Definition: Header.h:9
Definition: Symbol.h:9
SYM_TYPE
Definition: dbghelp.h:167
BOOL(WINAPI * MINIDUMP_CALLBACK_ROUTINE)(_Inout_ PVOID, _In_ const PMINIDUMP_CALLBACK_INPUT, _Inout_ PMINIDUMP_CALLBACK_OUTPUT)
Definition: dbghelp.h:731
ADDRESS_MODE
Definition: dbghelp.h:124
PVOID IDispatch
Definition: compat.h:31
struct _IMAGEHLP_LINE * PIMAGEHLP_LINE
#define CDECL
Definition: compat.h:29
double DATE
Definition: compat.h:2253
struct _IMAGEHLP_LINE64 * PIMAGEHLP_LINE64
BOOL(CALLBACK * PREAD_PROCESS_MEMORY_ROUTINE64)(HANDLE, DWORD64, PVOID, DWORD, PDWORD)
Definition: compat.h:1183
VARIANTARG * LPVARIANTARG
Definition: compat.h:2441
union tagCY CY
BOOL(CALLBACK * PREAD_PROCESS_MEMORY_ROUTINE)(HANDLE, DWORD, PVOID, DWORD, PDWORD)
Definition: compat.h:1228
struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD IMAGEHLP_DEFERRED_SYMBOL_LOAD
BOOL WINAPI SymFromAddr(HANDLE hProcess, DWORD64 Address, DWORD64 *Displacement, PSYMBOL_INFO Symbol)
Definition: symbol.c:1263
struct API_VERSION API_VERSION
struct _IMAGE_DEBUG_MISC IMAGE_DEBUG_MISC
struct _tagADDRESS64 * LPADDRESS64
BOOL(CALLBACK * PSYM_ENUMERATESYMBOLS_CALLBACK)(PSYMBOL_INFO, ULONG, PVOID)
Definition: compat.h:1119
BOOL __ReadFile(HANDLE, PVOID, DWORD, PDWORD, PVOID)
Definition: compat.c:169
_EXCEPTION_DISPOSITION
Definition: compat.h:89
@ ExceptionContinueSearch
Definition: compat.h:91
@ ExceptionCollidedUnwind
Definition: compat.h:93
@ ExceptionNestedException
Definition: compat.h:92
@ ExceptionContinueExecution
Definition: compat.h:90
struct _STACKFRAME64 * LPSTACKFRAME64
struct tagVS_FIXEDFILEINFO VS_FIXEDFILEINFO
struct _MODULEINFO MODULEINFO
struct _SYMBOL_INFO * PSYMBOL_INFO
BOOL(CALLBACK * PSYM_ENUMSYMBOLS_CALLBACK64W)(PCWSTR, DWORD64, ULONG, PVOID)
Definition: compat.h:1189
struct _MINIDUMP_THREAD_EX_CALLBACK MINIDUMP_THREAD_EX_CALLBACK
struct _IMAGEHLP_SYMBOL * PIMAGEHLP_SYMBOL
BOOL(CALLBACK * PSYM_ENUMERATESYMBOLS_CALLBACKW)(PSYMBOL_INFOW, ULONG, PVOID)
Definition: compat.h:1466
BOOL WINAPI SymUnloadModule(HANDLE hProcess, DWORD BaseOfDll)
Definition: module.c:928
struct _tagADDRESS ADDRESS
PVOID __RtlImageRvaToVa(const IMAGE_NT_HEADERS *NtHeader, PVOID BaseAddress, ULONG Rva, PIMAGE_SECTION_HEADER *SectionHeader)
Definition: compat.c:74
PVOID WINAPI SymFunctionTableAccess64(HANDLE, DWORD64)
Definition: module.c:1371
struct _IMAGEHLP_SYMBOLW IMAGEHLP_SYMBOLW
WCHAR * __lstrcpynW(WCHAR *lpString1, const WCHAR *lpString2, int iMaxLength)
struct _SOURCEFILEW SOURCEFILEW
struct _IMAGEHLP_MODULE64 IMAGEHLP_MODULE64
struct _MINIDUMP_THREAD_CALLBACK * PMINIDUMP_THREAD_CALLBACK
struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD64 IMAGEHLP_DEFERRED_SYMBOL_LOAD64
struct _IMAGEHLP_STACK_FRAME * PIMAGEHLP_STACK_FRAME
struct _SECURITY_ATTRIBUTES * LPSECURITY_ATTRIBUTES
struct _IMAGEHLP_LINE64 IMAGEHLP_LINE64
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
#define __tagVARIANT
Definition: oaidl.idl:151
struct _SRCCODEINFOW SRCCODEINFOW
PVOID WINAPI SymFunctionTableAccess(HANDLE, DWORD)
Definition: module.c:1363
struct _THREAD_BASIC_INFORMATION THREAD_BASIC_INFORMATION
HANDLE __FindExecutableImageExW(PCWSTR, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID)
Definition: compat.c:286
struct _LDT_ENTRY LDT_ENTRY
BOOL WINAPI SymGetModuleInfoW64(HANDLE hProcess, DWORD64 dwAddr, PIMAGEHLP_MODULEW64 ModuleInfo)
Definition: module.c:1269
struct _WOW64_CONTEXT * PWOW64_CONTEXT
enum _MINIDUMP_TYPE MINIDUMP_TYPE
struct _NT_TIB NT_TIB
struct _IMAGEHLP_LINEW IMAGEHLP_LINEW
struct _WOW64_FLOATING_SAVE_AREA * PWOW64_FLOATING_SAVE_AREA
struct _IMAGE_SEPARATE_DEBUG_HEADER * PIMAGE_SEPARATE_DEBUG_HEADER
BOOL(CALLBACK * PSYMBOL_REGISTERED_CALLBACK)(HANDLE, ULONG, PVOID, PVOID)
Definition: compat.h:1227
DWORD SEGPTR
Definition: compat.h:2444
struct _LDT_ENTRY * LPLDT_ENTRY
HANDLE __CreateFileW(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
Definition: compat.c:152
struct tagDEC DECIMAL
struct _WOW64_FLOATING_SAVE_AREA WOW64_FLOATING_SAVE_AREA
struct _IMAGEHLP_STACK_FRAME IMAGEHLP_STACK_FRAME
BOOL WINAPI SymCleanup(HANDLE hProcess)
Definition: dbghelp.c:557
struct _SRCCODEINFO * PSRCCODEINFO
struct _MINIDUMP_CALLBACK_INFORMATION MINIDUMP_CALLBACK_INFORMATION
struct _IMAGEHLP_MODULE64 * PIMAGEHLP_MODULE64
BOOL WINAPI SymInitialize(HANDLE hProcess, PCSTR UserSearchPath, BOOL fInvadeProcess)
Definition: dbghelp.c:534
SYM_TYPE
Definition: compat.h:1055
@ SymNone
Definition: compat.h:1056
@ SymCv
Definition: compat.h:1058
@ SymDeferred
Definition: compat.h:1061
@ SymExport
Definition: compat.h:1060
@ SymDia
Definition: compat.h:1063
@ SymCoff
Definition: compat.h:1057
@ SymVirtual
Definition: compat.h:1064
@ SymSym
Definition: compat.h:1062
@ NumSymTypes
Definition: compat.h:1065
@ SymPdb
Definition: compat.h:1059
DWORD(CALLBACK * PGET_MODULE_BASE_ROUTINE)(HANDLE, DWORD)
Definition: compat.h:1231
#define GDI_BATCH_BUFFER_SIZE
Definition: compat.h:828
struct _LDT_ENTRY * PLDT_ENTRY
struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES
BOOL(CALLBACK * PSYM_ENUMSYMBOLS_CALLBACK)(PCSTR, ULONG, ULONG, PVOID)
Definition: compat.h:1233
int(* FARPROC)()
Definition: compat.h:36
IMAGEHLP_EXTENDED_OPTIONS
Definition: compat.h:1102
@ SYMOPT_EX_DISABLEACCESSTIMEUPDATE
Definition: compat.h:1103
@ SYMOPT_EX_WINE_NATIVE_MODULES
Definition: compat.h:1106
@ SYMOPT_EX_MAX
Definition: compat.h:1104
struct _MINIDUMP_INCLUDE_THREAD_CALLBACK MINIDUMP_INCLUDE_THREAD_CALLBACK
struct _CLIENT_ID CLIENT_ID
void * __HeapReAlloc(int heap, DWORD d2, void *slab, SIZE_T newsize)
Definition: compat.c:11
BOOL(CALLBACK * PSYM_ENUMSYMBOLS_CALLBACKW)(PCWSTR, ULONG, ULONG, PVOID)
Definition: compat.h:1234
struct _IMAGEHLP_SYMBOLW64 IMAGEHLP_SYMBOLW64
struct _IMAGE_DEBUG_DIRECTORY * PIMAGE_DEBUG_DIRECTORY
struct _MINIDUMP_CALLBACK_INPUT * PMINIDUMP_CALLBACK_INPUT
PVOID(CALLBACK * PFUNCTION_TABLE_ACCESS_ROUTINE64)(HANDLE, DWORD64)
Definition: compat.h:1179
struct _IMAGEHLP_MODULE * PIMAGEHLP_MODULE
ULONG_PTR KAFFINITY
Definition: compat.h:85
BOOL(CALLBACK * PFIND_EXE_FILE_CALLBACKW)(HANDLE, PCWSTR, PVOID)
Definition: compat.h:1140
struct _WOW64_CONTEXT WOW64_CONTEXT
DWORD RVA
Definition: compat.h:1262
struct _SRCCODEINFO SRCCODEINFO
struct _IMAGEHLP_DEFERRED_SYMBOL_LOADW64 * PIMAGEHLP_DEFERRED_SYMBOL_LOADW64
const char * wine_dbgstr_an(const char *s, int n)
Definition: compat.c:313
void * __HeapAlloc(int heap, int flags, size_t size)
Definition: compat.c:3
CONTEXT * PCONTEXT
Definition: compat.h:699
VARIANT VARIANTARG
Definition: compat.h:2440
struct _IMAGEHLP_MODULEW * PIMAGEHLP_MODULEW
struct _SOURCEFILE SOURCEFILE
struct _TEB * PTEB
PVOID __RtlImageDirectoryEntryToData(PVOID BaseAddress, BOOLEAN MappedAsImage, USHORT Directory, PULONG Size)
Definition: compat.c:102
HANDLE HWND
Definition: compat.h:19
struct _EXCEPTION_RECORD EXCEPTION_RECORD
BOOL(CALLBACK * PSYM_ENUMLINES_CALLBACKW)(PSRCCODEINFOW, PVOID)
Definition: compat.h:1465
ULONG64 RVA64
Definition: compat.h:1263
struct _IMAGEHLP_MODULEW IMAGEHLP_MODULEW
BOOL __CloseHandle(HANDLE handle)
Definition: compat.c:146
VOID * PIMAGEHLP_CONTEXT
Definition: compat.h:974
struct _IMAGEHLP_SYMBOLW * PIMAGEHLP_SYMBOLW
struct _IMAGEHLP_SYMBOL64 * PIMAGEHLP_SYMBOL64
BOOL WINAPI SymEnumerateModulesW64(HANDLE hProcess, PSYM_ENUMMODULES_CALLBACKW64 EnumModulesCallback, PVOID UserContext)
Definition: module.c:1023
DWORD64 WINAPI SymGetModuleBase64(HANDLE, DWORD64)
Definition: module.c:1313
_THREADINFOCLASS
Definition: compat.h:934
@ ThreadEnableAlignmentFaultFixup
Definition: compat.h:942
@ ThreadCSwitchPmu
Definition: compat.h:963
@ ThreadDescriptorTableEntry
Definition: compat.h:941
@ ThreadEventPair_Reusable
Definition: compat.h:943
@ ThreadIdealProcessorEx
Definition: compat.h:968
@ ThreadAmILastThread
Definition: compat.h:947
@ ThreadTimes
Definition: compat.h:936
@ ThreadPagePriority
Definition: compat.h:959
@ ThreadUmsInformation
Definition: compat.h:966
@ ThreadCSwitchMon
Definition: compat.h:962
@ ThreadPriority
Definition: compat.h:937
@ MaxThreadInfoClass
Definition: compat.h:969
@ ThreadIdealProcessor
Definition: compat.h:948
@ ThreadActualBasePriority
Definition: compat.h:960
@ ThreadGroupInformation
Definition: compat.h:965
@ ThreadSwitchLegacyState
Definition: compat.h:954
@ ThreadQuerySetWin32StartAddress
Definition: compat.h:944
@ ThreadIsTerminated
Definition: compat.h:955
@ ThreadLastSystemCall
Definition: compat.h:956
@ ThreadBreakOnTermination
Definition: compat.h:953
@ ThreadImpersonationToken
Definition: compat.h:940
@ ThreadSetTlsArrayAddress
Definition: compat.h:950
@ ThreadAffinityMask
Definition: compat.h:939
@ ThreadBasePriority
Definition: compat.h:938
@ ThreadTebInformation
Definition: compat.h:961
@ ThreadIoPriority
Definition: compat.h:957
@ ThreadCycleTime
Definition: compat.h:958
@ ThreadBasicInformation
Definition: compat.h:935
@ ThreadCounterProfiling
Definition: compat.h:967
@ ThreadPriorityBoost
Definition: compat.h:949
@ ThreadPerformanceCount
Definition: compat.h:946
@ ThreadIsIoPending
Definition: compat.h:951
@ ThreadZeroTlsCell
Definition: compat.h:945
@ ThreadWow64Context
Definition: compat.h:964
@ ThreadHideFromDebugger
Definition: compat.h:952
struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD * PIMAGEHLP_DEFERRED_SYMBOL_LOAD
BOOL(CALLBACK * PSYM_ENUMSOURCEFILES_CALLBACKW)(PSOURCEFILEW, PVOID)
Definition: compat.h:1454
THUNK_ORDINAL
Definition: compat.h:2215
@ THUNK_ORDINAL_VCALL
Definition: compat.h:2218
@ THUNK_ORDINAL_PCODE
Definition: compat.h:2219
@ THUNK_ORDINAL_NOTYPE
Definition: compat.h:2216
@ THUNK_ORDINAL_LOAD
Definition: compat.h:2220
@ THUNK_ORDINAL_ADJUSTOR
Definition: compat.h:2217
struct _IMAGE_DEBUG_MISC * PIMAGE_DEBUG_MISC
CV_call_e
Definition: compat.h:2224
@ CV_CALL_TRICALL
Definition: compat.h:2244
@ CV_CALL_NEAR_STD
Definition: compat.h:2232
@ CV_CALL_ALPHACALL
Definition: compat.h:2239
@ CV_CALL_NEAR_FAST
Definition: compat.h:2229
@ CV_CALL_AM33CALL
Definition: compat.h:2243
@ CV_CALL_SHCALL
Definition: compat.h:2241
@ CV_CALL_FAR_FAST
Definition: compat.h:2230
@ CV_CALL_FAR_STD
Definition: compat.h:2233
@ CV_CALL_M32RCALL
Definition: compat.h:2246
@ CV_CALL_NEAR_SYS
Definition: compat.h:2234
@ CV_CALL_FAR_C
Definition: compat.h:2226
@ CV_CALL_SH5CALL
Definition: compat.h:2245
@ CV_CALL_GENERIC
Definition: compat.h:2238
@ CV_CALL_PPCCALL
Definition: compat.h:2240
@ CV_CALL_THISCALL
Definition: compat.h:2236
@ CV_CALL_FAR_PASCAL
Definition: compat.h:2228
@ CV_CALL_SKIPPED
Definition: compat.h:2231
@ CV_CALL_RESERVED
Definition: compat.h:2247
@ CV_CALL_MIPSCALL
Definition: compat.h:2237
@ CV_CALL_NEAR_C
Definition: compat.h:2225
@ CV_CALL_FAR_SYS
Definition: compat.h:2235
@ CV_CALL_ARMCALL
Definition: compat.h:2242
@ CV_CALL_NEAR_PASCAL
Definition: compat.h:2227
struct _STACKFRAME64 STACKFRAME64
struct _SOURCEFILE * PSOURCEFILE
EXCEPTION_DISPOSITION NTAPI EXCEPTION_ROUTINE(struct _EXCEPTION_RECORD *ExceptionRecord, PVOID EstablisherFrame, struct _CONTEXT *ContextRecord, PVOID DispatcherContext)
Definition: compat.h:704
WCHAR OLECHAR
Definition: compat.h:2292
PVOID IRecordInfo
Definition: compat.h:31
static __inline const char * debugstr_an(const char *s, int n)
Definition: compat.h:55
struct _MINIDUMP_CALLBACK_INPUT MINIDUMP_CALLBACK_INPUT
BOOL(WINAPI * MINIDUMP_CALLBACK_ROUTINE)(PVOID, const PMINIDUMP_CALLBACK_INPUT, PMINIDUMP_CALLBACK_OUTPUT)
Definition: compat.h:1350
BOOL(CALLBACK * PENUMLOADED_MODULES_CALLBACK)(PCSTR, ULONG, ULONG, PVOID)
Definition: compat.h:1226
enum _THREADINFOCLASS THREADINFOCLASS
Definition: thread.c:101
ADDRESS_MODE
Definition: compat.h:1155
@ AddrModeReal
Definition: compat.h:1158
@ AddrModeFlat
Definition: compat.h:1159
@ AddrMode1616
Definition: compat.h:1156
@ AddrMode1632
Definition: compat.h:1157
PVOID IUnknown
Definition: compat.h:31
struct tagSAFEARRAYBOUND SAFEARRAYBOUND
struct _GDI_TEB_BATCH * PGDI_TEB_BATCH
DWORD64 WINAPI SymLoadModuleEx(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD)
Definition: module.c:763
struct _MINIDUMP_INCLUDE_THREAD_CALLBACK * PMINIDUMP_INCLUDE_THREAD_CALLBACK
struct _KDHELP64 KDHELP64
struct _SYMBOL_INFOW SYMBOL_INFOW
enum _THREAD_WRITE_FLAGS THREAD_WRITE_FLAGS
INT __MultiByteToWideChar(UINT page, DWORD flags, LPCSTR src, INT srclen, LPWSTR dst, INT dstlen)
Definition: compat.c:263
DWORD __SetFilePointer(HANDLE, LONG, PLONG, DWORD)
Definition: compat.c:184
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
Definition: compat.h:49
OLECHAR * BSTR
Definition: compat.h:2293
struct _IMAGEHLP_SYMBOL64 IMAGEHLP_SYMBOL64
struct _STACK32FRAME STACK32FRAME
struct _IMAGE_EXPORT_DIRECTORY * PIMAGE_EXPORT_DIRECTORY
EXCEPTION_ROUTINE * PEXCEPTION_ROUTINE
Definition: compat.h:709
PIMAGE_NT_HEADERS __RtlImageNtHeader(void *data)
Definition: compat.c:34
struct _SOURCEFILEW * PSOURCEFILEW
struct _IMAGEHLP_DEFERRED_SYMBOL_LOADW64 IMAGEHLP_DEFERRED_SYMBOL_LOADW64
struct _IMAGE_DEBUG_DIRECTORY IMAGE_DEBUG_DIRECTORY
struct _EXCEPTION_REGISTRATION_RECORD * PEXCEPTION_REGISTRATION_RECORD
struct _MINIDUMP_CALLBACK_INFORMATION * PMINIDUMP_CALLBACK_INFORMATION
struct _SYMBOL_INFO SYMBOL_INFO
BOOL(CALLBACK * PSYM_ENUMSYMBOLS_CALLBACK64)(PCSTR, DWORD64, ULONG, PVOID)
Definition: compat.h:1188
SAFEARRAY * LPSAFEARRAY
Definition: compat.h:2362
struct _GDI_TEB_BATCH GDI_TEB_BATCH
VARIANT * LPVARIANT
Definition: compat.h:2439
enum _EXCEPTION_DISPOSITION EXCEPTION_DISPOSITION
_IMAGEHLP_SYMBOL_TYPE_INFO
Definition: compat.h:1414
@ TI_GET_NESTED
Definition: compat.h:1434
@ TI_GET_LENGTH
Definition: compat.h:1417
@ TI_GET_VIRTUALBASEPOINTEROFFSET
Definition: compat.h:1432
@ TI_GET_SYMNAME
Definition: compat.h:1416
@ TI_GET_BITPOSITION
Definition: compat.h:1429
@ TI_GET_CHILDRENCOUNT
Definition: compat.h:1428
@ TI_GET_TYPE
Definition: compat.h:1418
@ TI_GET_THISADJUST
Definition: compat.h:1438
@ TI_GET_SYMTAG
Definition: compat.h:1415
@ TI_GET_CALLING_CONVENTION
Definition: compat.h:1441
@ TI_GET_VIRTUALBASECLASS
Definition: compat.h:1430
@ TI_GET_ADDRESSOFFSET
Definition: compat.h:1424
@ TI_GET_UDTKIND
Definition: compat.h:1439
@ TI_GET_LEXICALPARENT
Definition: compat.h:1436
@ TI_GET_TYPEID
Definition: compat.h:1419
@ TI_GET_DATAKIND
Definition: compat.h:1423
@ TI_GET_VIRTUALTABLESHAPEID
Definition: compat.h:1431
@ TI_GET_CLASSPARENTID
Definition: compat.h:1433
@ TI_GET_ADDRESS
Definition: compat.h:1437
@ TI_FINDCHILDREN
Definition: compat.h:1422
@ TI_GET_SYMINDEX
Definition: compat.h:1435
@ TI_GET_OFFSET
Definition: compat.h:1425
@ TI_IS_EQUIV_TO
Definition: