Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[0.2] Backports #4131

Merged
merged 5 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/unix/bsd/freebsdlike/freebsd/riscv64.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ s_no_extra_traits! {
}

pub struct fpregs {
pub fp_x: [[::register_t; 2]; 32],
pub fp_fcsr: ::register_t,
pub fp_x: [[u64; 2]; 32],
pub fp_fcsr: u64,
pub fp_flags: ::c_int,
pub fp_pad: ::c_int,
pub pad: ::c_int,
}

pub struct mcontext_t {
Expand Down Expand Up @@ -85,7 +85,7 @@ cfg_if! {
self.fp_x == other.fp_x
&& self.fp_fcsr == other.fp_fcsr
&& self.fp_flags == other.fp_flags
&& self.fp_pad == other.fp_pad
&& self.pad == other.pad
}
}
impl Eq for fpregs {}
Expand All @@ -95,7 +95,7 @@ cfg_if! {
.field("fp_x", &self.fp_x)
.field("fp_fcsr", &self.fp_fcsr)
.field("fp_flags", &self.fp_flags)
.field("fp_pad", &self.fp_pad)
.field("pad", &self.pad)
.finish()
}
}
Expand All @@ -104,7 +104,7 @@ cfg_if! {
self.fp_x.hash(state);
self.fp_fcsr.hash(state);
self.fp_flags.hash(state);
self.fp_pad.hash(state);
self.pad.hash(state);
}
}
impl PartialEq for mcontext_t {
Expand Down
66 changes: 66 additions & 0 deletions src/unix/bsd/netbsdlike/netbsd/riscv64.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,77 @@ use PT_FIRSTMACH;
pub type c_long = i64;
pub type c_ulong = u64;
pub type c_char = u8;
pub type __greg_t = u64;
pub type __cpu_simple_lock_nv_t = ::c_int;
pub type __gregset = [__greg_t; _NGREG];
pub type __fregset = [__freg; _NFREG];

s! {
pub struct mcontext_t {
pub __gregs: __gregset,
pub __fregs: __fpregset,
__spare: [::__greg_t; 7],
}
}

s_no_extra_traits! {
#[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))]
pub union __fpreg {
pub u_u64: u64,
pub u_d: ::c_double,
}
}

pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1;

pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 0;
pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 1;
pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 2;
pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 3;

pub const _NGREG: usize = 32;
pub const _NFREG: usize = 33;

pub const _REG_X1: ::c_int = 0;
pub const _REG_X2: ::c_int = 1;
pub const _REG_X3: ::c_int = 2;
pub const _REG_X4: ::c_int = 3;
pub const _REG_X5: ::c_int = 4;
pub const _REG_X6: ::c_int = 5;
pub const _REG_X7: ::c_int = 6;
pub const _REG_X8: ::c_int = 7;
pub const _REG_X9: ::c_int = 8;
pub const _REG_X10: ::c_int = 9;
pub const _REG_X11: ::c_int = 10;
pub const _REG_X12: ::c_int = 11;
pub const _REG_X13: ::c_int = 12;
pub const _REG_X14: ::c_int = 13;
pub const _REG_X15: ::c_int = 14;
pub const _REG_X16: ::c_int = 15;
pub const _REG_X17: ::c_int = 16;
pub const _REG_X18: ::c_int = 17;
pub const _REG_X19: ::c_int = 18;
pub const _REG_X20: ::c_int = 19;
pub const _REG_X21: ::c_int = 20;
pub const _REG_X22: ::c_int = 21;
pub const _REG_X23: ::c_int = 22;
pub const _REG_X24: ::c_int = 23;
pub const _REG_X25: ::c_int = 24;
pub const _REG_X26: ::c_int = 25;
pub const _REG_X27: ::c_int = 26;
pub const _REG_X28: ::c_int = 27;
pub const _REG_X29: ::c_int = 28;
pub const _REG_X30: ::c_int = 29;
pub const _REG_X31: ::c_int = 30;
pub const _REG_PC: ::c_int = 31;

pub const _REG_RA: ::c_int = _REG_X1;
pub const _REG_SP: ::c_int = _REG_X2;
pub const _REG_GP: ::c_int = _REG_X3;
pub const _REG_TP: ::c_int = _REG_X4;
pub const _REG_S0: ::c_int = _REG_X8;
pub const _REG_RV: ::c_int = _REG_X10;
pub const _REG_A0: ::c_int = _REG_X10;

pub const _REG_F0: ::c_int = 0;
pub const _REG_FPCSR: ::c_int = 32;
4 changes: 3 additions & 1 deletion src/unix/hurd/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2732,8 +2732,10 @@ pub const MAP_SHARED: ::c_int = 16;
pub const MAP_PRIVATE: ::c_int = 0;
pub const MAP_FIXED: ::c_int = 256;
pub const MAP_NOEXTEND: ::c_int = 512;
pub const MAP_HASSEMPHORE: ::c_int = 1024;
pub const MAP_HASSEMAPHORE: ::c_int = 1024;
pub const MAP_INHERIT: ::c_int = 2048;
pub const MAP_32BIT: ::c_int = 4096;
pub const MAP_EXCL: ::c_int = 16384;
pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void;
pub const MADV_NORMAL: ::c_int = 0;
pub const MADV_RANDOM: ::c_int = 1;
Expand Down
8 changes: 4 additions & 4 deletions src/unix/linux_like/linux/uclibc/mips/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ pub const ECOMM: ::c_int = 70;
pub const EPROTO: ::c_int = 71;
pub const EDOTDOT: ::c_int = 73;

pub const SA_NODEFER: ::c_int = 0x40000000;
pub const SA_RESETHAND: ::c_int = 0x80000000;
pub const SA_RESTART: ::c_int = 0x10000000;
pub const SA_NOCLDSTOP: ::c_int = 0x00000001;
pub const SA_NODEFER: ::c_uint = 0x40000000;
pub const SA_RESETHAND: ::c_uint = 0x80000000;
pub const SA_RESTART: ::c_uint = 0x10000000;
pub const SA_NOCLDSTOP: ::c_uint = 0x00000001;

pub const EPOLL_CLOEXEC: ::c_int = 0x80000;

Expand Down