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