| // created by cgo -cdefs and then converted to Go |
| // cgo -cdefs defs_windows.go |
| |
| package runtime |
| |
| const ( |
| _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 |
| ) |
| |
| type systeminfo struct { |
| anon0 [4]byte |
| dwpagesize uint32 |
| lpminimumapplicationaddress *byte |
| lpmaximumapplicationaddress *byte |
| dwactiveprocessormask uint64 |
| dwnumberofprocessors uint32 |
| dwprocessortype uint32 |
| dwallocationgranularity uint32 |
| wprocessorlevel uint16 |
| wprocessorrevision uint16 |
| } |
| |
| type exceptionrecord struct { |
| exceptioncode uint32 |
| exceptionflags uint32 |
| exceptionrecord *exceptionrecord |
| exceptionaddress *byte |
| numberparameters uint32 |
| pad_cgo_0 [4]byte |
| exceptioninformation [15]uint64 |
| } |
| |
| type m128a struct { |
| low uint64 |
| high int64 |
| } |
| |
| type context struct { |
| p1home uint64 |
| p2home uint64 |
| p3home uint64 |
| p4home uint64 |
| p5home uint64 |
| p6home uint64 |
| contextflags uint32 |
| mxcsr uint32 |
| segcs uint16 |
| segds uint16 |
| seges uint16 |
| segfs uint16 |
| seggs uint16 |
| segss uint16 |
| eflags uint32 |
| 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 uint64 |
| anon0 [512]byte |
| vectorregister [26]m128a |
| vectorcontrol uint64 |
| debugcontrol uint64 |
| lastbranchtorip uint64 |
| lastbranchfromrip uint64 |
| lastexceptiontorip uint64 |
| lastexceptionfromrip uint64 |
| } |
| |
| func (c *context) ip() uintptr { return uintptr(c.rip) } |
| func (c *context) sp() uintptr { return uintptr(c.rsp) } |
| |
| func (c *context) setip(x uintptr) { c.rip = uint64(x) } |
| func (c *context) setsp(x uintptr) { c.rsp = uint64(x) } |
| |
| func dumpregs(r *context) { |
| print("rax ", hex(r.rax), "\n") |
| print("rbx ", hex(r.rbx), "\n") |
| print("rcx ", hex(r.rcx), "\n") |
| print("rdi ", hex(r.rdi), "\n") |
| print("rsi ", hex(r.rsi), "\n") |
| print("rbp ", hex(r.rbp), "\n") |
| print("rsp ", hex(r.rsp), "\n") |
| print("r8 ", hex(r.r8), "\n") |
| print("r9 ", hex(r.r9), "\n") |
| print("r10 ", hex(r.r10), "\n") |
| print("r11 ", hex(r.r11), "\n") |
| print("r12 ", hex(r.r12), "\n") |
| print("r13 ", hex(r.r13), "\n") |
| print("r14 ", hex(r.r14), "\n") |
| print("r15 ", hex(r.r15), "\n") |
| print("rip ", hex(r.rip), "\n") |
| print("rflags ", hex(r.eflags), "\n") |
| print("cs ", hex(r.segcs), "\n") |
| print("fs ", hex(r.segfs), "\n") |
| print("gs ", hex(r.seggs), "\n") |
| } |
| |
| type overlapped struct { |
| internal uint64 |
| internalhigh uint64 |
| anon0 [8]byte |
| hevent *byte |
| } |