summaryrefslogtreecommitdiff
path: root/src/pkg/runtime/defs_windows_amd64.h
blob: fe26f5a84a3e69c6954deb8da87b9d2d882e6fba (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
// 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,
};

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