github.com/mtsmfm/go/src@v0.0.0-20221020090648-44bdcb9f8fde/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_NONBLOCK = 0x800 94 _O_CLOEXEC = 0x80000 95 96 _AF_UNIX = 0x1 97 _SOCK_DGRAM = 0x2 98 ) 99 100 type fpreg struct { 101 significand [4]uint16 102 exponent uint16 103 } 104 105 type fpxreg struct { 106 significand [4]uint16 107 exponent uint16 108 padding [3]uint16 109 } 110 111 type xmmreg struct { 112 element [4]uint32 113 } 114 115 type fpstate struct { 116 cw uint32 117 sw uint32 118 tag uint32 119 ipoff uint32 120 cssel uint32 121 dataoff uint32 122 datasel uint32 123 _st [8]fpreg 124 status uint16 125 magic uint16 126 _fxsr_env [6]uint32 127 mxcsr uint32 128 reserved uint32 129 _fxsr_st [8]fpxreg 130 _xmm [8]xmmreg 131 padding1 [44]uint32 132 anon0 [48]byte 133 } 134 135 type timespec struct { 136 tv_sec int32 137 tv_nsec int32 138 } 139 140 //go:nosplit 141 func (ts *timespec) setNsec(ns int64) { 142 ts.tv_sec = timediv(ns, 1e9, &ts.tv_nsec) 143 } 144 145 type timeval struct { 146 tv_sec int32 147 tv_usec int32 148 } 149 150 func (tv *timeval) set_usec(x int32) { 151 tv.tv_usec = x 152 } 153 154 type sigactiont struct { 155 sa_handler uintptr 156 sa_flags uint32 157 sa_restorer uintptr 158 sa_mask uint64 159 } 160 161 type siginfoFields struct { 162 si_signo int32 163 si_errno int32 164 si_code int32 165 // below here is a union; si_addr is the only field we use 166 si_addr uint32 167 } 168 169 type siginfo struct { 170 siginfoFields 171 172 // Pad struct to the max size in the kernel. 173 _ [_si_max_size - unsafe.Sizeof(siginfoFields{})]byte 174 } 175 176 type stackt struct { 177 ss_sp *byte 178 ss_flags int32 179 ss_size uintptr 180 } 181 182 type sigcontext struct { 183 gs uint16 184 __gsh uint16 185 fs uint16 186 __fsh uint16 187 es uint16 188 __esh uint16 189 ds uint16 190 __dsh uint16 191 edi uint32 192 esi uint32 193 ebp uint32 194 esp uint32 195 ebx uint32 196 edx uint32 197 ecx uint32 198 eax uint32 199 trapno uint32 200 err uint32 201 eip uint32 202 cs uint16 203 __csh uint16 204 eflags uint32 205 esp_at_signal uint32 206 ss uint16 207 __ssh uint16 208 fpstate *fpstate 209 oldmask uint32 210 cr2 uint32 211 } 212 213 type ucontext struct { 214 uc_flags uint32 215 uc_link *ucontext 216 uc_stack stackt 217 uc_mcontext sigcontext 218 uc_sigmask uint32 219 } 220 221 type itimerspec struct { 222 it_interval timespec 223 it_value timespec 224 } 225 226 type itimerval struct { 227 it_interval timeval 228 it_value timeval 229 } 230 231 type sigeventFields struct { 232 value uintptr 233 signo int32 234 notify int32 235 // below here is a union; sigev_notify_thread_id is the only field we use 236 sigev_notify_thread_id int32 237 } 238 239 type sigevent struct { 240 sigeventFields 241 242 // Pad struct to the max size in the kernel. 243 _ [_sigev_max_size - unsafe.Sizeof(sigeventFields{})]byte 244 } 245 246 type sockaddr_un struct { 247 family uint16 248 path [108]byte 249 }