summaryrefslogtreecommitdiff
path: root/src/runtime/defs_windows_amd64.h
blob: 7f37a7a8c3e5002fda54fef562b9da0322ff4ce2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// Created by cgo -cdefs - DO NOT EDIT
// cgo -cdefs defs_windows.go


enum {
	PROT_NONE	= 0,
	PROT_READ	= 1,
	PROT_WRITE	= 2,
	PROT_EXEC	= 4,

	MAP_ANON	= 1,
	MAP_PRIVATE	= 2,

	DUPLICATE_SAME_ACCESS	= 0x2,
	THREAD_PRIORITY_HIGHEST	= 0x2,

	SIGINT			= 0x2,
	CTRL_C_EVENT		= 0x0,
	CTRL_BREAK_EVENT	= 0x1,

	CONTEXT_CONTROL	= 0x100001,
	CONTEXT_FULL	= 0x10000b,

	EXCEPTION_ACCESS_VIOLATION	= 0xc0000005,
	EXCEPTION_BREAKPOINT		= 0x80000003,
	EXCEPTION_FLT_DENORMAL_OPERAND	= 0xc000008d,
	EXCEPTION_FLT_DIVIDE_BY_ZERO	= 0xc000008e,
	EXCEPTION_FLT_INEXACT_RESULT	= 0xc000008f,
	EXCEPTION_FLT_OVERFLOW		= 0xc0000091,
	EXCEPTION_FLT_UNDERFLOW		= 0xc0000093,
	EXCEPTION_INT_DIVIDE_BY_ZERO	= 0xc0000094,
	EXCEPTION_INT_OVERFLOW		= 0xc0000095,

	INFINITE	= 0xffffffff,
	WAIT_TIMEOUT	= 0x102,

	EXCEPTION_CONTINUE_EXECUTION	= -0x1,
	EXCEPTION_CONTINUE_SEARCH	= 0x0,
};

typedef struct SystemInfo SystemInfo;
typedef struct ExceptionRecord ExceptionRecord;
typedef struct FloatingSaveArea FloatingSaveArea;
typedef struct M128a M128a;
typedef struct Context Context;
typedef struct Overlapped Overlapped;

#pragma pack on

struct SystemInfo {
	byte	anon0[4];
	uint32	dwPageSize;
	byte	*lpMinimumApplicationAddress;
	byte	*lpMaximumApplicationAddress;
	uint64	dwActiveProcessorMask;
	uint32	dwNumberOfProcessors;
	uint32	dwProcessorType;
	uint32	dwAllocationGranularity;
	uint16	wProcessorLevel;
	uint16	wProcessorRevision;
};
struct ExceptionRecord {
	uint32	ExceptionCode;
	uint32	ExceptionFlags;
	ExceptionRecord	*ExceptionRecord;
	byte	*ExceptionAddress;
	uint32	NumberParameters;
	byte	Pad_cgo_0[4];
	uint64	ExceptionInformation[15];
};
struct M128a {
	uint64	Low;
	int64	High;
};
struct Context {
	uint64	P1Home;
	uint64	P2Home;
	uint64	P3Home;
	uint64	P4Home;
	uint64	P5Home;
	uint64	P6Home;
	uint32	ContextFlags;
	uint32	MxCsr;
	uint16	SegCs;
	uint16	SegDs;
	uint16	SegEs;
	uint16	SegFs;
	uint16	SegGs;
	uint16	SegSs;
	uint32	EFlags;
	uint64	Dr0;
	uint64	Dr1;
	uint64	Dr2;
	uint64	Dr3;
	uint64	Dr6;
	uint64	Dr7;
	uint64	Rax;
	uint64	Rcx;
	uint64	Rdx;
	uint64	Rbx;
	uint64	Rsp;
	uint64	Rbp;
	uint64	Rsi;
	uint64	Rdi;
	uint64	R8;
	uint64	R9;
	uint64	R10;
	uint64	R11;
	uint64	R12;
	uint64	R13;
	uint64	R14;
	uint64	R15;
	uint64	Rip;
	byte	anon0[512];
	M128a	VectorRegister[26];
	uint64	VectorControl;
	uint64	DebugControl;
	uint64	LastBranchToRip;
	uint64	LastBranchFromRip;
	uint64	LastExceptionToRip;
	uint64	LastExceptionFromRip;
};
struct Overlapped {
	uint64	Internal;
	uint64	InternalHigh;
	byte	anon0[8];
	byte	*hEvent;
};


#pragma pack off