|  | 
| 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