github.com/lzhfromustc/gofuzz@v0.0.0-20211116160056-151b3108bbd1/runtime/defs_windows_amd64.go (about)

     1  // created by cgo -cdefs and then converted to Go
     2  // cgo -cdefs defs_windows.go
     3  
     4  package runtime
     5  
     6  const (
     7  	_PROT_NONE  = 0
     8  	_PROT_READ  = 1
     9  	_PROT_WRITE = 2
    10  	_PROT_EXEC  = 4
    11  
    12  	_MAP_ANON    = 1
    13  	_MAP_PRIVATE = 2
    14  
    15  	_DUPLICATE_SAME_ACCESS   = 0x2
    16  	_THREAD_PRIORITY_HIGHEST = 0x2
    17  
    18  	_SIGINT              = 0x2
    19  	_SIGTERM             = 0xF
    20  	_CTRL_C_EVENT        = 0x0
    21  	_CTRL_BREAK_EVENT    = 0x1
    22  	_CTRL_CLOSE_EVENT    = 0x2
    23  	_CTRL_LOGOFF_EVENT   = 0x5
    24  	_CTRL_SHUTDOWN_EVENT = 0x6
    25  
    26  	_CONTEXT_CONTROL = 0x100001
    27  	_CONTEXT_FULL    = 0x10000b
    28  
    29  	_EXCEPTION_ACCESS_VIOLATION     = 0xc0000005
    30  	_EXCEPTION_BREAKPOINT           = 0x80000003
    31  	_EXCEPTION_FLT_DENORMAL_OPERAND = 0xc000008d
    32  	_EXCEPTION_FLT_DIVIDE_BY_ZERO   = 0xc000008e
    33  	_EXCEPTION_FLT_INEXACT_RESULT   = 0xc000008f
    34  	_EXCEPTION_FLT_OVERFLOW         = 0xc0000091
    35  	_EXCEPTION_FLT_UNDERFLOW        = 0xc0000093
    36  	_EXCEPTION_INT_DIVIDE_BY_ZERO   = 0xc0000094
    37  	_EXCEPTION_INT_OVERFLOW         = 0xc0000095
    38  
    39  	_INFINITE     = 0xffffffff
    40  	_WAIT_TIMEOUT = 0x102
    41  
    42  	_EXCEPTION_CONTINUE_EXECUTION = -0x1
    43  	_EXCEPTION_CONTINUE_SEARCH    = 0x0
    44  )
    45  
    46  type systeminfo struct {
    47  	anon0                       [4]byte
    48  	dwpagesize                  uint32
    49  	lpminimumapplicationaddress *byte
    50  	lpmaximumapplicationaddress *byte
    51  	dwactiveprocessormask       uint64
    52  	dwnumberofprocessors        uint32
    53  	dwprocessortype             uint32
    54  	dwallocationgranularity     uint32
    55  	wprocessorlevel             uint16
    56  	wprocessorrevision          uint16
    57  }
    58  
    59  type exceptionrecord struct {
    60  	exceptioncode        uint32
    61  	exceptionflags       uint32
    62  	exceptionrecord      *exceptionrecord
    63  	exceptionaddress     *byte
    64  	numberparameters     uint32
    65  	pad_cgo_0            [4]byte
    66  	exceptioninformation [15]uint64
    67  }
    68  
    69  type m128a struct {
    70  	low  uint64
    71  	high int64
    72  }
    73  
    74  type context struct {
    75  	p1home               uint64
    76  	p2home               uint64
    77  	p3home               uint64
    78  	p4home               uint64
    79  	p5home               uint64
    80  	p6home               uint64
    81  	contextflags         uint32
    82  	mxcsr                uint32
    83  	segcs                uint16
    84  	segds                uint16
    85  	seges                uint16
    86  	segfs                uint16
    87  	seggs                uint16
    88  	segss                uint16
    89  	eflags               uint32
    90  	dr0                  uint64
    91  	dr1                  uint64
    92  	dr2                  uint64
    93  	dr3                  uint64
    94  	dr6                  uint64
    95  	dr7                  uint64
    96  	rax                  uint64
    97  	rcx                  uint64
    98  	rdx                  uint64
    99  	rbx                  uint64
   100  	rsp                  uint64
   101  	rbp                  uint64
   102  	rsi                  uint64
   103  	rdi                  uint64
   104  	r8                   uint64
   105  	r9                   uint64
   106  	r10                  uint64
   107  	r11                  uint64
   108  	r12                  uint64
   109  	r13                  uint64
   110  	r14                  uint64
   111  	r15                  uint64
   112  	rip                  uint64
   113  	anon0                [512]byte
   114  	vectorregister       [26]m128a
   115  	vectorcontrol        uint64
   116  	debugcontrol         uint64
   117  	lastbranchtorip      uint64
   118  	lastbranchfromrip    uint64
   119  	lastexceptiontorip   uint64
   120  	lastexceptionfromrip uint64
   121  }
   122  
   123  func (c *context) ip() uintptr { return uintptr(c.rip) }
   124  func (c *context) sp() uintptr { return uintptr(c.rsp) }
   125  
   126  // Amd64 does not have link register, so this returns 0.
   127  func (c *context) lr() uintptr      { return 0 }
   128  func (c *context) set_lr(x uintptr) {}
   129  
   130  func (c *context) set_ip(x uintptr) { c.rip = uint64(x) }
   131  func (c *context) set_sp(x uintptr) { c.rsp = uint64(x) }
   132  
   133  func dumpregs(r *context) {
   134  	print("rax     ", hex(r.rax), "\n")
   135  	print("rbx     ", hex(r.rbx), "\n")
   136  	print("rcx     ", hex(r.rcx), "\n")
   137  	print("rdi     ", hex(r.rdi), "\n")
   138  	print("rsi     ", hex(r.rsi), "\n")
   139  	print("rbp     ", hex(r.rbp), "\n")
   140  	print("rsp     ", hex(r.rsp), "\n")
   141  	print("r8      ", hex(r.r8), "\n")
   142  	print("r9      ", hex(r.r9), "\n")
   143  	print("r10     ", hex(r.r10), "\n")
   144  	print("r11     ", hex(r.r11), "\n")
   145  	print("r12     ", hex(r.r12), "\n")
   146  	print("r13     ", hex(r.r13), "\n")
   147  	print("r14     ", hex(r.r14), "\n")
   148  	print("r15     ", hex(r.r15), "\n")
   149  	print("rip     ", hex(r.rip), "\n")
   150  	print("rflags  ", hex(r.eflags), "\n")
   151  	print("cs      ", hex(r.segcs), "\n")
   152  	print("fs      ", hex(r.segfs), "\n")
   153  	print("gs      ", hex(r.seggs), "\n")
   154  }
   155  
   156  type overlapped struct {
   157  	internal     uint64
   158  	internalhigh uint64
   159  	anon0        [8]byte
   160  	hevent       *byte
   161  }
   162  
   163  type memoryBasicInformation struct {
   164  	baseAddress       uintptr
   165  	allocationBase    uintptr
   166  	allocationProtect uint32
   167  	regionSize        uintptr
   168  	state             uint32
   169  	protect           uint32
   170  	type_             uint32
   171  }