github.com/AESNooper/go/src@v0.0.0-20220218095104-b56a4ab1bbbb/runtime/defs_linux_amd64.go (about) 1 // created by cgo -cdefs and then converted to Go 2 // cgo -cdefs defs_linux.go defs1_linux.go 3 4 package runtime 5 6 import "unsafe" 7 8 const ( 9 _EINTR = 0x4 10 _EAGAIN = 0xb 11 _ENOMEM = 0xc 12 _ENOSYS = 0x26 13 14 _PROT_NONE = 0x0 15 _PROT_READ = 0x1 16 _PROT_WRITE = 0x2 17 _PROT_EXEC = 0x4 18 19 _MAP_ANON = 0x20 20 _MAP_PRIVATE = 0x2 21 _MAP_FIXED = 0x10 22 23 _MADV_DONTNEED = 0x4 24 _MADV_FREE = 0x8 25 _MADV_HUGEPAGE = 0xe 26 _MADV_NOHUGEPAGE = 0xf 27 28 _SA_RESTART = 0x10000000 29 _SA_ONSTACK = 0x8000000 30 _SA_RESTORER = 0x4000000 31 _SA_SIGINFO = 0x4 32 33 _SI_KERNEL = 0x80 34 _SI_TIMER = -0x2 35 36 _SIGHUP = 0x1 37 _SIGINT = 0x2 38 _SIGQUIT = 0x3 39 _SIGILL = 0x4 40 _SIGTRAP = 0x5 41 _SIGABRT = 0x6 42 _SIGBUS = 0x7 43 _SIGFPE = 0x8 44 _SIGKILL = 0x9 45 _SIGUSR1 = 0xa 46 _SIGSEGV = 0xb 47 _SIGUSR2 = 0xc 48 _SIGPIPE = 0xd 49 _SIGALRM = 0xe 50 _SIGSTKFLT = 0x10 51 _SIGCHLD = 0x11 52 _SIGCONT = 0x12 53 _SIGSTOP = 0x13 54 _SIGTSTP = 0x14 55 _SIGTTIN = 0x15 56 _SIGTTOU = 0x16 57 _SIGURG = 0x17 58 _SIGXCPU = 0x18 59 _SIGXFSZ = 0x19 60 _SIGVTALRM = 0x1a 61 _SIGPROF = 0x1b 62 _SIGWINCH = 0x1c 63 _SIGIO = 0x1d 64 _SIGPWR = 0x1e 65 _SIGSYS = 0x1f 66 67 _FPE_INTDIV = 0x1 68 _FPE_INTOVF = 0x2 69 _FPE_FLTDIV = 0x3 70 _FPE_FLTOVF = 0x4 71 _FPE_FLTUND = 0x5 72 _FPE_FLTRES = 0x6 73 _FPE_FLTINV = 0x7 74 _FPE_FLTSUB = 0x8 75 76 _BUS_ADRALN = 0x1 77 _BUS_ADRERR = 0x2 78 _BUS_OBJERR = 0x3 79 80 _SEGV_MAPERR = 0x1 81 _SEGV_ACCERR = 0x2 82 83 _ITIMER_REAL = 0x0 84 _ITIMER_VIRTUAL = 0x1 85 _ITIMER_PROF = 0x2 86 87 _CLOCK_THREAD_CPUTIME_ID = 0x3 88 89 _SIGEV_THREAD_ID = 0x4 90 91 _EPOLLIN = 0x1 92 _EPOLLOUT = 0x4 93 _EPOLLERR = 0x8 94 _EPOLLHUP = 0x10 95 _EPOLLRDHUP = 0x2000 96 _EPOLLET = 0x80000000 97 _EPOLL_CLOEXEC = 0x80000 98 _EPOLL_CTL_ADD = 0x1 99 _EPOLL_CTL_DEL = 0x2 100 _EPOLL_CTL_MOD = 0x3 101 102 _AF_UNIX = 0x1 103 _SOCK_DGRAM = 0x2 104 ) 105 106 type timespec struct { 107 tv_sec int64 108 tv_nsec int64 109 } 110 111 //go:nosplit 112 func (ts *timespec) setNsec(ns int64) { 113 ts.tv_sec = ns / 1e9 114 ts.tv_nsec = ns % 1e9 115 } 116 117 type timeval struct { 118 tv_sec int64 119 tv_usec int64 120 } 121 122 func (tv *timeval) set_usec(x int32) { 123 tv.tv_usec = int64(x) 124 } 125 126 type sigactiont struct { 127 sa_handler uintptr 128 sa_flags uint64 129 sa_restorer uintptr 130 sa_mask uint64 131 } 132 133 type siginfoFields struct { 134 si_signo int32 135 si_errno int32 136 si_code int32 137 // below here is a union; si_addr is the only field we use 138 si_addr uint64 139 } 140 141 type siginfo struct { 142 siginfoFields 143 144 // Pad struct to the max size in the kernel. 145 _ [_si_max_size - unsafe.Sizeof(siginfoFields{})]byte 146 } 147 148 type itimerspec struct { 149 it_interval timespec 150 it_value timespec 151 } 152 153 type itimerval struct { 154 it_interval timeval 155 it_value timeval 156 } 157 158 type sigeventFields struct { 159 value uintptr 160 signo int32 161 notify int32 162 // below here is a union; sigev_notify_thread_id is the only field we use 163 sigev_notify_thread_id int32 164 } 165 166 type sigevent struct { 167 sigeventFields 168 169 // Pad struct to the max size in the kernel. 170 _ [_sigev_max_size - unsafe.Sizeof(sigeventFields{})]byte 171 } 172 173 type epollevent struct { 174 events uint32 175 data [8]byte // unaligned uintptr 176 } 177 178 // created by cgo -cdefs and then converted to Go 179 // cgo -cdefs defs_linux.go defs1_linux.go 180 181 const ( 182 _O_RDONLY = 0x0 183 _O_NONBLOCK = 0x800 184 _O_CLOEXEC = 0x80000 185 ) 186 187 type usigset struct { 188 __val [16]uint64 189 } 190 191 type fpxreg struct { 192 significand [4]uint16 193 exponent uint16 194 padding [3]uint16 195 } 196 197 type xmmreg struct { 198 element [4]uint32 199 } 200 201 type fpstate struct { 202 cwd uint16 203 swd uint16 204 ftw uint16 205 fop uint16 206 rip uint64 207 rdp uint64 208 mxcsr uint32 209 mxcr_mask uint32 210 _st [8]fpxreg 211 _xmm [16]xmmreg 212 padding [24]uint32 213 } 214 215 type fpxreg1 struct { 216 significand [4]uint16 217 exponent uint16 218 padding [3]uint16 219 } 220 221 type xmmreg1 struct { 222 element [4]uint32 223 } 224 225 type fpstate1 struct { 226 cwd uint16 227 swd uint16 228 ftw uint16 229 fop uint16 230 rip uint64 231 rdp uint64 232 mxcsr uint32 233 mxcr_mask uint32 234 _st [8]fpxreg1 235 _xmm [16]xmmreg1 236 padding [24]uint32 237 } 238 239 type fpreg1 struct { 240 significand [4]uint16 241 exponent uint16 242 } 243 244 type stackt struct { 245 ss_sp *byte 246 ss_flags int32 247 pad_cgo_0 [4]byte 248 ss_size uintptr 249 } 250 251 type mcontext struct { 252 gregs [23]uint64 253 fpregs *fpstate 254 __reserved1 [8]uint64 255 } 256 257 type ucontext struct { 258 uc_flags uint64 259 uc_link *ucontext 260 uc_stack stackt 261 uc_mcontext mcontext 262 uc_sigmask usigset 263 __fpregs_mem fpstate 264 } 265 266 type sigcontext struct { 267 r8 uint64 268 r9 uint64 269 r10 uint64 270 r11 uint64 271 r12 uint64 272 r13 uint64 273 r14 uint64 274 r15 uint64 275 rdi uint64 276 rsi uint64 277 rbp uint64 278 rbx uint64 279 rdx uint64 280 rax uint64 281 rcx uint64 282 rsp uint64 283 rip uint64 284 eflags uint64 285 cs uint16 286 gs uint16 287 fs uint16 288 __pad0 uint16 289 err uint64 290 trapno uint64 291 oldmask uint64 292 cr2 uint64 293 fpstate *fpstate1 294 __reserved1 [8]uint64 295 } 296 297 type sockaddr_un struct { 298 family uint16 299 path [108]byte 300 }