github.com/twelsh-aw/go/src@v0.0.0-20230516233729-a56fe86a7c81/runtime/defs_linux_386.go (about) 1 // created by cgo -cdefs and then converted to Go 2 // cgo -cdefs defs2_linux.go 3 4 package runtime 5 6 import "unsafe" 7 8 const ( 9 _EINTR = 0x4 10 _EAGAIN = 0xb 11 _ENOMEM = 0xc 12 13 _PROT_NONE = 0x0 14 _PROT_READ = 0x1 15 _PROT_WRITE = 0x2 16 _PROT_EXEC = 0x4 17 18 _MAP_ANON = 0x20 19 _MAP_PRIVATE = 0x2 20 _MAP_FIXED = 0x10 21 22 _MADV_DONTNEED = 0x4 23 _MADV_FREE = 0x8 24 _MADV_HUGEPAGE = 0xe 25 _MADV_NOHUGEPAGE = 0xf 26 27 _SA_RESTART = 0x10000000 28 _SA_ONSTACK = 0x8000000 29 _SA_RESTORER = 0x4000000 30 _SA_SIGINFO = 0x4 31 32 _SI_KERNEL = 0x80 33 _SI_TIMER = -0x2 34 35 _SIGHUP = 0x1 36 _SIGINT = 0x2 37 _SIGQUIT = 0x3 38 _SIGILL = 0x4 39 _SIGTRAP = 0x5 40 _SIGABRT = 0x6 41 _SIGBUS = 0x7 42 _SIGFPE = 0x8 43 _SIGKILL = 0x9 44 _SIGUSR1 = 0xa 45 _SIGSEGV = 0xb 46 _SIGUSR2 = 0xc 47 _SIGPIPE = 0xd 48 _SIGALRM = 0xe 49 _SIGSTKFLT = 0x10 50 _SIGCHLD = 0x11 51 _SIGCONT = 0x12 52 _SIGSTOP = 0x13 53 _SIGTSTP = 0x14 54 _SIGTTIN = 0x15 55 _SIGTTOU = 0x16 56 _SIGURG = 0x17 57 _SIGXCPU = 0x18 58 _SIGXFSZ = 0x19 59 _SIGVTALRM = 0x1a 60 _SIGPROF = 0x1b 61 _SIGWINCH = 0x1c 62 _SIGIO = 0x1d 63 _SIGPWR = 0x1e 64 _SIGSYS = 0x1f 65 66 _SIGRTMIN = 0x20 67 68 _FPE_INTDIV = 0x1 69 _FPE_INTOVF = 0x2 70 _FPE_FLTDIV = 0x3 71 _FPE_FLTOVF = 0x4 72 _FPE_FLTUND = 0x5 73 _FPE_FLTRES = 0x6 74 _FPE_FLTINV = 0x7 75 _FPE_FLTSUB = 0x8 76 77 _BUS_ADRALN = 0x1 78 _BUS_ADRERR = 0x2 79 _BUS_OBJERR = 0x3 80 81 _SEGV_MAPERR = 0x1 82 _SEGV_ACCERR = 0x2 83 84 _ITIMER_REAL = 0x0 85 _ITIMER_VIRTUAL = 0x1 86 _ITIMER_PROF = 0x2 87 88 _CLOCK_THREAD_CPUTIME_ID = 0x3 89 90 _SIGEV_THREAD_ID = 0x4 91 92 _O_RDONLY = 0x0 93 _O_WRONLY = 0x1 94 _O_CREAT = 0x40 95 _O_TRUNC = 0x200 96 _O_NONBLOCK = 0x800 97 _O_CLOEXEC = 0x80000 98 99 _AF_UNIX = 0x1 100 _SOCK_DGRAM = 0x2 101 ) 102 103 type fpreg struct { 104 significand [4]uint16 105 exponent uint16 106 } 107 108 type fpxreg struct { 109 significand [4]uint16 110 exponent uint16 111 padding [3]uint16 112 } 113 114 type xmmreg struct { 115 element [4]uint32 116 } 117 118 type fpstate struct { 119 cw uint32 120 sw uint32 121 tag uint32 122 ipoff uint32 123 cssel uint32 124 dataoff uint32 125 datasel uint32 126 _st [8]fpreg 127 status uint16 128 magic uint16 129 _fxsr_env [6]uint32 130 mxcsr uint32 131 reserved uint32 132 _fxsr_st [8]fpxreg 133 _xmm [8]xmmreg 134 padding1 [44]uint32 135 anon0 [48]byte 136 } 137 138 type timespec struct { 139 tv_sec int32 140 tv_nsec int32 141 } 142 143 //go:nosplit 144 func (ts *timespec) setNsec(ns int64) { 145 ts.tv_sec = timediv(ns, 1e9, &ts.tv_nsec) 146 } 147 148 type timeval struct { 149 tv_sec int32 150 tv_usec int32 151 } 152 153 func (tv *timeval) set_usec(x int32) { 154 tv.tv_usec = x 155 } 156 157 type sigactiont struct { 158 sa_handler uintptr 159 sa_flags uint32 160 sa_restorer uintptr 161 sa_mask uint64 162 } 163 164 type siginfoFields struct { 165 si_signo int32 166 si_errno int32 167 si_code int32 168 // below here is a union; si_addr is the only field we use 169 si_addr uint32 170 } 171 172 type siginfo struct { 173 siginfoFields 174 175 // Pad struct to the max size in the kernel. 176 _ [_si_max_size - unsafe.Sizeof(siginfoFields{})]byte 177 } 178 179 type stackt struct { 180 ss_sp *byte 181 ss_flags int32 182 ss_size uintptr 183 } 184 185 type sigcontext struct { 186 gs uint16 187 __gsh uint16 188 fs uint16 189 __fsh uint16 190 es uint16 191 __esh uint16 192 ds uint16 193 __dsh uint16 194 edi uint32 195 esi uint32 196 ebp uint32 197 esp uint32 198 ebx uint32 199 edx uint32 200 ecx uint32 201 eax uint32 202 trapno uint32 203 err uint32 204 eip uint32 205 cs uint16 206 __csh uint16 207 eflags uint32 208 esp_at_signal uint32 209 ss uint16 210 __ssh uint16 211 fpstate *fpstate 212 oldmask uint32 213 cr2 uint32 214 } 215 216 type ucontext struct { 217 uc_flags uint32 218 uc_link *ucontext 219 uc_stack stackt 220 uc_mcontext sigcontext 221 uc_sigmask uint32 222 } 223 224 type itimerspec struct { 225 it_interval timespec 226 it_value timespec 227 } 228 229 type itimerval struct { 230 it_interval timeval 231 it_value timeval 232 } 233 234 type sigeventFields struct { 235 value uintptr 236 signo int32 237 notify int32 238 // below here is a union; sigev_notify_thread_id is the only field we use 239 sigev_notify_thread_id int32 240 } 241 242 type sigevent struct { 243 sigeventFields 244 245 // Pad struct to the max size in the kernel. 246 _ [_sigev_max_size - unsafe.Sizeof(sigeventFields{})]byte 247 } 248 249 type sockaddr_un struct { 250 family uint16 251 path [108]byte 252 }