github.com/twelsh-aw/go/src@v0.0.0-20230516233729-a56fe86a7c81/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 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 = 0x0 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 _SIGRTMIN = 0x20 68 69 _FPE_INTDIV = 0x1 70 _FPE_INTOVF = 0x2 71 _FPE_FLTDIV = 0x3 72 _FPE_FLTOVF = 0x4 73 _FPE_FLTUND = 0x5 74 _FPE_FLTRES = 0x6 75 _FPE_FLTINV = 0x7 76 _FPE_FLTSUB = 0x8 77 78 _BUS_ADRALN = 0x1 79 _BUS_ADRERR = 0x2 80 _BUS_OBJERR = 0x3 81 82 _SEGV_MAPERR = 0x1 83 _SEGV_ACCERR = 0x2 84 85 _ITIMER_REAL = 0x0 86 _ITIMER_VIRTUAL = 0x1 87 _ITIMER_PROF = 0x2 88 89 _CLOCK_THREAD_CPUTIME_ID = 0x3 90 91 _SIGEV_THREAD_ID = 0x4 92 ) 93 94 type timespec struct { 95 tv_sec int64 96 tv_nsec int64 97 } 98 99 //go:nosplit 100 func (ts *timespec) setNsec(ns int64) { 101 ts.tv_sec = ns / 1e9 102 ts.tv_nsec = ns % 1e9 103 } 104 105 type timeval struct { 106 tv_sec int64 107 tv_usec int64 108 } 109 110 func (tv *timeval) set_usec(x int32) { 111 tv.tv_usec = int64(x) 112 } 113 114 type sigactiont struct { 115 sa_handler uintptr 116 sa_flags uint64 117 sa_mask uint64 118 // Linux on riscv64 does not have the sa_restorer field, but the setsig 119 // function references it (for x86). Not much harm to include it at the end. 120 sa_restorer uintptr 121 } 122 123 type siginfoFields struct { 124 si_signo int32 125 si_errno int32 126 si_code int32 127 // below here is a union; si_addr is the only field we use 128 si_addr uint64 129 } 130 131 type siginfo struct { 132 siginfoFields 133 134 // Pad struct to the max size in the kernel. 135 _ [_si_max_size - unsafe.Sizeof(siginfoFields{})]byte 136 } 137 138 type itimerspec struct { 139 it_interval timespec 140 it_value timespec 141 } 142 143 type itimerval struct { 144 it_interval timeval 145 it_value timeval 146 } 147 148 type sigeventFields struct { 149 value uintptr 150 signo int32 151 notify int32 152 // below here is a union; sigev_notify_thread_id is the only field we use 153 sigev_notify_thread_id int32 154 } 155 156 type sigevent struct { 157 sigeventFields 158 159 // Pad struct to the max size in the kernel. 160 _ [_sigev_max_size - unsafe.Sizeof(sigeventFields{})]byte 161 } 162 163 const ( 164 _O_RDONLY = 0x0 165 _O_WRONLY = 0x1 166 _O_CREAT = 0x40 167 _O_TRUNC = 0x200 168 _O_NONBLOCK = 0x800 169 _O_CLOEXEC = 0x80000 170 ) 171 172 type user_regs_struct struct { 173 pc uint64 174 ra uint64 175 sp uint64 176 gp uint64 177 tp uint64 178 t0 uint64 179 t1 uint64 180 t2 uint64 181 s0 uint64 182 s1 uint64 183 a0 uint64 184 a1 uint64 185 a2 uint64 186 a3 uint64 187 a4 uint64 188 a5 uint64 189 a6 uint64 190 a7 uint64 191 s2 uint64 192 s3 uint64 193 s4 uint64 194 s5 uint64 195 s6 uint64 196 s7 uint64 197 s8 uint64 198 s9 uint64 199 s10 uint64 200 s11 uint64 201 t3 uint64 202 t4 uint64 203 t5 uint64 204 t6 uint64 205 } 206 207 type user_fpregs_struct struct { 208 f [528]byte 209 } 210 211 type usigset struct { 212 us_x__val [16]uint64 213 } 214 215 type sigcontext struct { 216 sc_regs user_regs_struct 217 sc_fpregs user_fpregs_struct 218 } 219 220 type stackt struct { 221 ss_sp *byte 222 ss_flags int32 223 ss_size uintptr 224 } 225 226 type ucontext struct { 227 uc_flags uint64 228 uc_link *ucontext 229 uc_stack stackt 230 uc_sigmask usigset 231 uc_x__unused [0]uint8 232 uc_pad_cgo_0 [8]byte 233 uc_mcontext sigcontext 234 }