|
32 | 32 | }
|
33 | 33 | }
|
34 | 34 |
|
| 35 | +s_no_extra_traits! { |
| 36 | + #[repr(align(16))] |
| 37 | + pub struct mcontext_t { |
| 38 | + pub mc_vers: ::c_int, |
| 39 | + pub mc_flags: ::c_int, |
| 40 | + pub mc_onstack: ::c_int, |
| 41 | + pub mc_len: ::c_int, |
| 42 | + pub mc_avec: [u64; 64], |
| 43 | + pub mc_av: [u32; 2], |
| 44 | + pub mc_frame: [::register_t; 42], |
| 45 | + pub mc_fpreg: [u64; 33], |
| 46 | + pub mc_vsxfpreg: [u64; 32], |
| 47 | + } |
| 48 | +} |
| 49 | + |
| 50 | +cfg_if! { |
| 51 | + if #[cfg(feature = "extra_traits")] { |
| 52 | + impl PartialEq for mcontext_t { |
| 53 | + fn eq(&self, other: &mcontext_t) -> bool { |
| 54 | + self.mc_vers == other.mc_vers && |
| 55 | + self.mc_flags == other.mc_flags && |
| 56 | + self.mc_onstack == other.mc_onstack && |
| 57 | + self.mc_len == other.mc_len && |
| 58 | + self.mc_avec == other.mc_avec && |
| 59 | + self.mc_av == other.mc_av && |
| 60 | + self.mc_frame == other.mc_frame && |
| 61 | + self.mc_fpreg == other.mc_fpreg && |
| 62 | + self.mc_vsxfpreg == other.mc_vsxfpreg |
| 63 | + } |
| 64 | + } |
| 65 | + impl Eq for mcontext_t {} |
| 66 | + impl ::fmt::Debug for mcontext_t { |
| 67 | + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { |
| 68 | + f.debug_struct("mcontext_t") |
| 69 | + .field("mc_vers", &self.mc_vers) |
| 70 | + .field("mc_flags", &self.mc_flags) |
| 71 | + .field("mc_onstack", &self.mc_onstack) |
| 72 | + .field("mc_len", &self.mc_len) |
| 73 | + .field("mc_avec", &self.mc_avec) |
| 74 | + .field("mc_av", &self.mc_av) |
| 75 | + .field("mc_frame", &self.mc_frame) |
| 76 | + .field("mc_fpreg", &self.mc_fpreg) |
| 77 | + .field("mc_vsxfpreg", &self.mc_vsxfpreg) |
| 78 | + .finish() |
| 79 | + } |
| 80 | + } |
| 81 | + impl ::hash::Hash for mcontext_t { |
| 82 | + fn hash<H: ::hash::Hasher>(&self, state: &mut H) { |
| 83 | + self.mc_vers.hash(state); |
| 84 | + self.mc_flags.hash(state); |
| 85 | + self.mc_onstack.hash(state); |
| 86 | + self.mc_len.hash(state); |
| 87 | + self.mc_avec.hash(state); |
| 88 | + self.mc_av.hash(state); |
| 89 | + self.mc_frame.hash(state); |
| 90 | + self.mc_fpreg.hash(state); |
| 91 | + self.mc_vsxfpreg.hash(state); |
| 92 | + } |
| 93 | + } |
| 94 | + } |
| 95 | +} |
| 96 | + |
35 | 97 | pub(crate) const _ALIGNBYTES: usize = ::mem::size_of::<::c_int>() - 1;
|
36 | 98 | pub const MAP_32BIT: ::c_int = 0x00080000;
|
37 | 99 | pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4
|
0 commit comments