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