github.com/AESNooper/go/src@v0.0.0-20220218095104-b56a4ab1bbbb/runtime/defs_linux_arm.go (about) 1 // Copyright 2014 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package runtime 6 7 import "unsafe" 8 9 // Constants 10 const ( 11 _EINTR = 0x4 12 _ENOMEM = 0xc 13 _EAGAIN = 0xb 14 _ENOSYS = 0x26 15 16 _PROT_NONE = 0 17 _PROT_READ = 0x1 18 _PROT_WRITE = 0x2 19 _PROT_EXEC = 0x4 20 21 _MAP_ANON = 0x20 22 _MAP_PRIVATE = 0x2 23 _MAP_FIXED = 0x10 24 25 _MADV_DONTNEED = 0x4 26 _MADV_FREE = 0x8 27 _MADV_HUGEPAGE = 0xe 28 _MADV_NOHUGEPAGE = 0xf 29 30 _SA_RESTART = 0x10000000 31 _SA_ONSTACK = 0x8000000 32 _SA_RESTORER = 0 // unused on ARM 33 _SA_SIGINFO = 0x4 34 _SI_KERNEL = 0x80 35 _SI_TIMER = -0x2 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 _FPE_INTDIV = 0x1 67 _FPE_INTOVF = 0x2 68 _FPE_FLTDIV = 0x3 69 _FPE_FLTOVF = 0x4 70 _FPE_FLTUND = 0x5 71 _FPE_FLTRES = 0x6 72 _FPE_FLTINV = 0x7 73 _FPE_FLTSUB = 0x8 74 _BUS_ADRALN = 0x1 75 _BUS_ADRERR = 0x2 76 _BUS_OBJERR = 0x3 77 _SEGV_MAPERR = 0x1 78 _SEGV_ACCERR = 0x2 79 _ITIMER_REAL = 0 80 _ITIMER_PROF = 0x2 81 _ITIMER_VIRTUAL = 0x1 82 _O_RDONLY = 0 83 _O_NONBLOCK = 0x800 84 _O_CLOEXEC = 0x80000 85 86 _CLOCK_THREAD_CPUTIME_ID = 0x3 87 88 _SIGEV_THREAD_ID = 0x4 89 90 _EPOLLIN = 0x1 91 _EPOLLOUT = 0x4 92 _EPOLLERR = 0x8 93 _EPOLLHUP = 0x10 94 _EPOLLRDHUP = 0x2000 95 _EPOLLET = 0x80000000 96 _EPOLL_CLOEXEC = 0x80000 97 _EPOLL_CTL_ADD = 0x1 98 _EPOLL_CTL_DEL = 0x2 99 _EPOLL_CTL_MOD = 0x3 100 101 _AF_UNIX = 0x1 102 _SOCK_DGRAM = 0x2 103 ) 104 105 type timespec struct { 106 tv_sec int32 107 tv_nsec int32 108 } 109 110 //go:nosplit 111 func (ts *timespec) setNsec(ns int64) { 112 ts.tv_sec = timediv(ns, 1e9, &ts.tv_nsec) 113 } 114 115 type stackt struct { 116 ss_sp *byte 117 ss_flags int32 118 ss_size uintptr 119 } 120 121 type sigcontext struct { 122 trap_no uint32 123 error_code uint32 124 oldmask uint32 125 r0 uint32 126 r1 uint32 127 r2 uint32 128 r3 uint32 129 r4 uint32 130 r5 uint32 131 r6 uint32 132 r7 uint32 133 r8 uint32 134 r9 uint32 135 r10 uint32 136 fp uint32 137 ip uint32 138 sp uint32 139 lr uint32 140 pc uint32 141 cpsr uint32 142 fault_address uint32 143 } 144 145 type ucontext struct { 146 uc_flags uint32 147 uc_link *ucontext 148 uc_stack stackt 149 uc_mcontext sigcontext 150 uc_sigmask uint32 151 __unused [31]int32 152 uc_regspace [128]uint32 153 } 154 155 type timeval struct { 156 tv_sec int32 157 tv_usec int32 158 } 159 160 func (tv *timeval) set_usec(x int32) { 161 tv.tv_usec = x 162 } 163 164 type itimerspec struct { 165 it_interval timespec 166 it_value timespec 167 } 168 169 type itimerval struct { 170 it_interval timeval 171 it_value timeval 172 } 173 174 type sigeventFields struct { 175 value uintptr 176 signo int32 177 notify int32 178 // below here is a union; sigev_notify_thread_id is the only field we use 179 sigev_notify_thread_id int32 180 } 181 182 type sigevent struct { 183 sigeventFields 184 185 // Pad struct to the max size in the kernel. 186 _ [_sigev_max_size - unsafe.Sizeof(sigeventFields{})]byte 187 } 188 189 type siginfoFields struct { 190 si_signo int32 191 si_errno int32 192 si_code int32 193 // below here is a union; si_addr is the only field we use 194 si_addr uint32 195 } 196 197 type siginfo struct { 198 siginfoFields 199 200 // Pad struct to the max size in the kernel. 201 _ [_si_max_size - unsafe.Sizeof(siginfoFields{})]byte 202 } 203 204 type sigactiont struct { 205 sa_handler uintptr 206 sa_flags uint32 207 sa_restorer uintptr 208 sa_mask uint64 209 } 210 211 type epollevent struct { 212 events uint32 213 _pad uint32 214 data [8]byte // to match amd64 215 } 216 217 type sockaddr_un struct { 218 family uint16 219 path [108]byte 220 }