1 #[allow(deprecated)] 2 pub type XMM_SAVE_AREA32 = XSAVE_FORMAT; 3 4 s_no_extra_traits! { 5 #[repr(align(16))] 6 pub union __c_anonymous_CONTEXT_FP { 7 pub FltSave: ::XMM_SAVE_AREA32, 8 pub Xmm: __c_anonymous_CONTEXT_XMM, 9 } 10 } 11 12 cfg_if! { 13 if #[cfg(feature = "extra_traits")] { 14 impl PartialEq for __c_anonymous_CONTEXT_FP { 15 fn eq(&self, other: &__c_anonymous_CONTEXT_FP) -> bool { 16 unsafe { 17 self.FltSave == other.FltSave || 18 self.Xmm == other.Xmm 19 } 20 } 21 } 22 impl Eq for __c_anonymous_CONTEXT_FP {} 23 impl ::fmt::Debug for __c_anonymous_CONTEXT_FP { 24 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { 25 unsafe { 26 f.debug_struct("__c_anonymous_CONTEXT_FP") 27 .field("FltSave", &self.FltSave) 28 .finish() 29 } 30 } 31 } 32 impl ::hash::Hash for __c_anonymous_CONTEXT_FP { 33 fn hash<H: ::hash::Hasher>(&self, state: &mut H) { 34 unsafe { 35 self.FltSave.hash(state); 36 self.Xmm.hash(state); 37 } 38 } 39 } 40 } 41 } 42 43 s! { 44 #[doc(hidden)] 45 #[deprecated(since = "0.2.104", note = "use the `winapi` crate instead; we're going to 46 remove it in a future release")] 47 #[repr(align(16))] 48 pub struct M128A { 49 pub Low: ::c_ulonglong, 50 pub High: ::c_longlong, 51 } 52 53 #[doc(hidden)] 54 #[deprecated(since = "0.2.104", note = "use the `winapi` crate instead; we're going to 55 remove it in a future release")] 56 #[repr(align(16))] 57 pub struct XSAVE_FORMAT { 58 pub ControlWord: ::c_ushort, 59 pub StatusWord: ::c_ushort, 60 pub TagWord: ::c_uchar, 61 _Reserved1: ::c_uchar, 62 pub ErrorOpcode: ::c_ushort, 63 pub ErrorOffset: ::c_ulong, 64 pub ErrorSelector: ::c_ushort, 65 _Reserved2: ::c_ushort, 66 pub DataOffset: ::c_ulong, 67 pub DataSelector: ::c_ushort, 68 _Reserved3: ::c_ushort, 69 pub MxCsr: ::c_ulong, 70 pub MxCsr_Mask: ::c_ulong, 71 pub FloatRegisters: [M128A; 8], 72 pub XmmRegisters: [M128A; 16], 73 _Reserved4: [[::c_uchar; 16]; 6], 74 } 75 76 #[repr(align(16))] 77 pub struct __c_anonymous_CONTEXT_XMM { 78 pub Header: [M128A; 2], 79 pub Legacy: [M128A; 8], 80 pub Xmm0: M128A, 81 pub Xmm1: M128A, 82 pub Xmm2: M128A, 83 pub Xmm3: M128A, 84 pub Xmm4: M128A, 85 pub Xmm5: M128A, 86 pub Xmm6: M128A, 87 pub Xmm7: M128A, 88 pub Xmm8: M128A, 89 pub Xmm9: M128A, 90 pub Xmm10: M128A, 91 pub Xmm11: M128A, 92 pub Xmm12: M128A, 93 pub Xmm13: M128A, 94 pub Xmm14: M128A, 95 pub Xmm15: M128A, 96 } 97 98 #[doc(hidden)] 99 #[deprecated(since = "0.2.104", note = "use the `winapi` crate instead; we're going to 100 remove it in a future release")] 101 #[repr(align(16))] 102 pub struct CONTEXT { 103 pub P1Home: u64, 104 pub P2Home: u64, 105 pub P3Home: u64, 106 pub P4Home: u64, 107 pub P5Home: u64, 108 pub P6Home: u64, 109 pub ContextFlags: ::c_ulong, 110 pub MxCsr: ::c_ulong, 111 pub SegCs: ::c_ushort, 112 pub SegDs: ::c_ushort, 113 pub SegEs: ::c_ushort, 114 pub SegFs: ::c_ushort, 115 pub SegGs: ::c_ushort, 116 pub SegSs: ::c_ushort, 117 pub EFlags: ::c_ulong, 118 pub Dr0: u64, 119 pub Dr1: u64, 120 pub Dr2: u64, 121 pub Dr3: u64, 122 pub Dr6: u64, 123 pub Dr7: u64, 124 pub Rax: u64, 125 pub Rcx: u64, 126 pub Rdx: u64, 127 pub Rbx: u64, 128 pub Rsp: u64, 129 pub Rbp: u64, 130 pub Rsi: u64, 131 pub Rdi: u64, 132 pub R8: u64, 133 pub R9: u64, 134 pub R10: u64, 135 pub R11: u64, 136 pub R12: u64, 137 pub R13: u64, 138 pub R14: u64, 139 pub R15: u64, 140 pub Rip: u64, 141 pub Fp: __c_anonymous_CONTEXT_FP, 142 pub VectorRegister: [M128A; 26], 143 pub VectorControl: u64, 144 pub DebugControl: u64, 145 pub LastBranchToRip: u64, 146 pub LastBranchFromRip: u64, 147 pub LastExceptionToRip: u64, 148 pub LastExceptionFromRip: u64, 149 } 150 } 151