github.com/AESNooper/go/src@v0.0.0-20220218095104-b56a4ab1bbbb/runtime/defs_linux_riscv64.go (about) 1 // Generated using cgo, then manually converted into appropriate naming and code 2 // for the Go runtime. 3 // go tool cgo -godefs defs_linux.go defs1_linux.go defs2_linux.go 4 5 package runtime 6 7 import "unsafe" 8 9 const ( 10 _EINTR = 0x4 11 _EAGAIN = 0xb 12 _ENOMEM = 0xc 13 _ENOSYS = 0x26 14 15 _PROT_NONE = 0x0 16 _PROT_READ = 0x1 17 _PROT_WRITE = 0x2 18 _PROT_EXEC = 0x4 19 20 _MAP_ANON = 0x20 21 _MAP_PRIVATE = 0x2 22 _MAP_FIXED = 0x10 23 24 _MADV_DONTNEED = 0x4 25 _MADV_FREE = 0x8 26 _MADV_HUGEPAGE = 0xe 27 _MADV_NOHUGEPAGE = 0xf 28 29 _SA_RESTART = 0x10000000 30 _SA_ONSTACK = 0x8000000 31 _SA_RESTORER = 0x0 32 _SA_SIGINFO = 0x4 33 34 _SI_KERNEL = 0x80 35 _SI_TIMER = -0x2 36 37 _SIGHUP = 0x1 38 _SIGINT = 0x2 39 _SIGQUIT = 0x3 40 _SIGILL = 0x4 41 _SIGTRAP = 0x5 42 _SIGABRT = 0x6 43 _SIGBUS = 0x7 44 _SIGFPE = 0x8 45 _SIGKILL = 0x9 46 _SIGUSR1 = 0xa 47 _SIGSEGV = 0xb 48 _SIGUSR2 = 0xc 49 _SIGPIPE = 0xd 50 _SIGALRM = 0xe 51 _SIGSTKFLT = 0x10 52 _SIGCHLD = 0x11 53 _SIGCONT = 0x12 54 _SIGSTOP = 0x13 55 _SIGTSTP = 0x14 56 _SIGTTIN = 0x15 57 _SIGTTOU = 0x16 58 _SIGURG = 0x17 59 _SIGXCPU = 0x18 60 _SIGXFSZ = 0x19 61 _SIGVTALRM = 0x1a 62 _SIGPROF = 0x1b 63 _SIGWINCH = 0x1c 64 _SIGIO = 0x1d 65 _SIGPWR = 0x1e 66 _SIGSYS = 0x1f 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 _EPOLLIN = 0x1 93 _EPOLLOUT = 0x4 94 _EPOLLERR = 0x8 95 _EPOLLHUP = 0x10 96 _EPOLLRDHUP = 0x2000 97 _EPOLLET = 0x80000000 98 _EPOLL_CLOEXEC = 0x80000 99 _EPOLL_CTL_ADD = 0x1 100 _EPOLL_CTL_DEL = 0x2 101 _EPOLL_CTL_MOD = 0x3 102 ) 103 104 type timespec struct { 105 tv_sec int64 106 tv_nsec int64 107 } 108 109 //go:nosplit 110 func (ts *timespec) setNsec(ns int64) { 111 ts.tv_sec = ns / 1e9 112 ts.tv_nsec = ns % 1e9 113 } 114 115 type timeval struct { 116 tv_sec int64 117 tv_usec int64 118 } 119 120 func (tv *timeval) set_usec(x int32) { 121 tv.tv_usec = int64(x) 122 } 123 124 type sigactiont struct { 125 sa_handler uintptr 126 sa_flags uint64 127 sa_mask uint64 128 // Linux on riscv64 does not have the sa_restorer field, but the setsig 129 // function references it (for x86). Not much harm to include it at the end. 130 sa_restorer uintptr 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 pad_cgo_0 [4]byte 176 data [8]byte // unaligned uintptr 177 } 178 179 const ( 180 _O_RDONLY = 0x0 181 _O_NONBLOCK = 0x800 182 _O_CLOEXEC = 0x80000 183 ) 184 185 type user_regs_struct struct { 186 pc uint64 187 ra uint64 188 sp uint64 189 gp uint64 190 tp uint64 191 t0 uint64 192 t1 uint64 193 t2 uint64 194 s0 uint64 195 s1 uint64 196 a0 uint64 197 a1 uint64 198 a2 uint64 199 a3 uint64 200 a4 uint64 201 a5 uint64 202 a6 uint64 203 a7 uint64 204 s2 uint64 205 s3 uint64 206 s4 uint64 207 s5 uint64 208 s6 uint64 209 s7 uint64 210 s8 uint64 211 s9 uint64 212 s10 uint64 213 s11 uint64 214 t3 uint64 215 t4 uint64 216 t5 uint64 217 t6 uint64 218 } 219 220 type user_fpregs_struct struct { 221 f [528]byte 222 } 223 224 type usigset struct { 225 us_x__val [16]uint64 226 } 227 228 type sigcontext struct { 229 sc_regs user_regs_struct 230 sc_fpregs user_fpregs_struct 231 } 232 233 type stackt struct { 234 ss_sp *byte 235 ss_flags int32 236 ss_size uintptr 237 } 238 239 type ucontext struct { 240 uc_flags uint64 241 uc_link *ucontext 242 uc_stack stackt 243 uc_sigmask usigset 244 uc_x__unused [0]uint8 245 uc_pad_cgo_0 [8]byte 246 uc_mcontext sigcontext 247 }