hare

[hare] The Hare programming language
git clone https://git.torresjrjr.com/hare.git
Log | Files | Refs | README | LICENSE

+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 };