+riscv64.ha (1060B)
1 // SPDX-License-Identifier: MPL-2.0 2 // (c) Hare authors <https://harelang.org> 3 4 export type siginfo = struct { 5 si_signo: int, 6 si_errno: int, 7 si_code: int, 8 si_pid: pid_t, 9 si_uid: uid_t, 10 si_status: int, 11 si_addr: *opaque, 12 si_value: sigval, 13 _reason: union { 14 _fault: struct { 15 _trapno: int, 16 }, 17 _timer: struct { 18 _timerid: int, 19 _overrun: int, 20 }, 21 _mesgq: struct { 22 _mqd: int, 23 }, 24 _poll: struct { 25 _band: i64, 26 }, 27 __spare__: struct { 28 __spare1__: i64, 29 __spare2__: [7]int, 30 }, 31 }, 32 }; 33 34 export type ucontext = struct { 35 uc_sigmask: sigset, 36 uc_mcontext: mcontext, 37 uc_link: *ucontext, 38 uc_stack: stack_t, 39 uc_flags: int, 40 __spare__: [4]int, 41 }; 42 43 export type mcontext = struct { 44 mc_gpregs: gpregs, 45 mc_fpregs: fpregs, 46 mc_flags: int, 47 mc_pad: int, 48 mc_spare: [8]u64, 49 }; 50 51 export type gpregs = struct { 52 gp_ra: u64, 53 gp_sp: u64, 54 gp_gp: u64, 55 gp_tp: u64, 56 gp_t: [7]u64, 57 gp_s: [12]u64, 58 gp_a: [8]u64, 59 gp_sepc: u64, 60 gp_sstatus: u64, 61 }; 62 63 export type fpregs = struct { 64 fp_x: [32][2]u64, 65 fp_fcsr: u64, 66 fp_flags: int, 67 pad: int, 68 };