s_no_extra_traits! {
pub struct fpu_state {
pub control: ::c_ushort,
pub status: ::c_ushort,
pub tag: ::c_ushort,
pub opcode: ::c_ushort,
pub rip: ::c_ulong,
pub rdp: ::c_ulong,
pub mxcsr: ::c_uint,
pub mscsr_mask: ::c_uint,
pub _fpreg: [[::c_uchar; 8 ]; 16 ],
pub _xmm: [[::c_uchar; 16 ]; 16 ],
pub _reserved_416_511: [::c_uchar; 96 ],
}
pub struct xstate_hdr {
pub bv: ::c_ulong,
pub xcomp_bv: ::c_ulong,
pub _reserved: [::c_uchar; 48 ],
}
pub struct savefpu {
pub fp_fxsave: fpu_state,
pub fp_xstate: xstate_hdr,
pub _fp_ymm: [[::c_uchar; 16 ]; 16 ],
}
pub struct mcontext_t {
pub rax: ::c_ulong,
pub rbx: ::c_ulong,
pub rcx: ::c_ulong,
pub rdx: ::c_ulong,
pub rdi: ::c_ulong,
pub rsi: ::c_ulong,
pub rbp: ::c_ulong,
pub r8: ::c_ulong,
pub r9: ::c_ulong,
pub r10: ::c_ulong,
pub r11: ::c_ulong,
pub r12: ::c_ulong,
pub r13: ::c_ulong,
pub r14: ::c_ulong,
pub r15: ::c_ulong,
pub rsp: ::c_ulong,
pub rip: ::c_ulong,
pub rflags: ::c_ulong,
pub fpu: savefpu,
}
pub struct ucontext_t {
pub uc_link: *mut ucontext_t,
pub uc_sigmask: ::sigset_t,
pub uc_stack: ::stack_t,
pub uc_mcontext: mcontext_t,
}
}
cfg_if! {
if #[ cfg(feature = "extra_traits" )] {
impl PartialEq for fpu_state {
fn eq(&self , other: &fpu_state) -> bool {
self .control == other.control
&& self .status == other.status
&& self .tag == other.tag
&& self .opcode == other.opcode
&& self .rip == other.rip
&& self .rdp == other.rdp
&& self .mxcsr == other.mxcsr
&& self .mscsr_mask == other.mscsr_mask
&& self ._fpreg.iter().zip(other._fpreg.iter()).all(|(a, b)| a == b)
&& self ._xmm.iter().zip(other._xmm.iter()).all(|(a, b)| a == b)
&& self ._reserved_416_511.
iter().
zip(other._reserved_416_511.iter()).
all(|(a, b)| a == b)
}
}
impl Eq for fpu_state {}
impl ::fmt::Debug for fpu_state {
fn fmt(&self , f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("fpu_state" )
.field("control" , &self .control)
.field("status" , &self .status)
.field("tag" , &self .tag)
.field("opcode" , &self .opcode)
.field("rip" , &self .rip)
.field("rdp" , &self .rdp)
.field("mxcsr" , &self .mxcsr)
.field("mscsr_mask" , &self .mscsr_mask)
// FIXME: .field("_fpreg", &self._fpreg)
// FIXME: .field("_xmm", &self._xmm)
// FIXME: .field("_reserved_416_511", &self._reserved_416_511)
.finish()
}
}
impl ::hash::Hash for fpu_state {
fn hash<H: ::hash::Hasher>(&self , state: &mut H) {
self .control.hash(state);
self .status.hash(state);
self .tag.hash(state);
self .opcode.hash(state);
self .rip.hash(state);
self .rdp.hash(state);
self .mxcsr.hash(state);
self .mscsr_mask.hash(state);
self ._fpreg.hash(state);
self ._xmm.hash(state);
self ._reserved_416_511.hash(state);
}
}
impl PartialEq for xstate_hdr {
fn eq(&self , other: &xstate_hdr) -> bool {
self .bv == other.bv
&& self .xcomp_bv == other.xcomp_bv
&& self ._reserved.iter().zip(other._reserved.iter()).all(|(a, b)| a == b)
}
}
impl Eq for xstate_hdr {}
impl ::fmt::Debug for xstate_hdr {
fn fmt(&self , f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("xstate_hdr" )
.field("bv" , &self .bv)
.field("xcomp_bv" , &self .xcomp_bv)
// FIXME: .field("_reserved", &field._reserved)
.finish()
}
}
impl ::hash::Hash for xstate_hdr {
fn hash<H: ::hash::Hasher>(&self , state: &mut H) {
self .bv.hash(state);
self .xcomp_bv.hash(state);
self ._reserved.hash(state);
}
}
impl PartialEq for savefpu {
fn eq(&self , other: &savefpu) -> bool {
self .fp_fxsave == other.fp_fxsave
&& self .fp_xstate == other.fp_xstate
&& self ._fp_ymm.iter().zip(other._fp_ymm.iter()).all(|(a, b)| a == b)
}
}
impl Eq for savefpu {}
impl ::fmt::Debug for savefpu {
fn fmt(&self , f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("savefpu" )
.field("fp_fxsave" , &self .fp_fxsave)
.field("fp_xstate" , &self .fp_xstate)
// FIXME: .field("_fp_ymm", &field._fp_ymm)
.finish()
}
}
impl ::hash::Hash for savefpu {
fn hash<H: ::hash::Hasher>(&self , state: &mut H) {
self .fp_fxsave.hash(state);
self .fp_xstate.hash(state);
self ._fp_ymm.hash(state);
}
}
impl PartialEq for mcontext_t {
fn eq(&self , other: &mcontext_t) -> bool {
self .rax == other.rax
&& self .rbx == other.rbx
&& self .rbx == other.rbx
&& self .rcx == other.rcx
&& self .rdx == other.rdx
&& self .rdi == other.rdi
&& self .rsi == other.rsi
&& self .r8 == other.r8
&& self .r9 == other.r9
&& self .r10 == other.r10
&& self .r11 == other.r11
&& self .r12 == other.r12
&& self .r13 == other.r13
&& self .r14 == other.r14
&& self .r15 == other.r15
&& self .rsp == other.rsp
&& self .rip == other.rip
&& self .rflags == other.rflags
&& self .fpu == other.fpu
}
}
impl Eq for mcontext_t {}
impl ::fmt::Debug for mcontext_t {
fn fmt(&self , f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("mcontext_t" )
.field("rax" , &self .rax)
.field("rbx" , &self .rbx)
.field("rcx" , &self .rcx)
.field("rdx" , &self .rdx)
.field("rdi" , &self .rdi)
.field("rsi" , &self .rsi)
.field("rbp" , &self .rbp)
.field("r8" , &self .r8)
.field("r9" , &self .r9)
.field("r10" , &self .r10)
.field("r11" , &self .r11)
.field("r12" , &self .r12)
.field("r13" , &self .r13)
.field("r14" , &self .r14)
.field("r15" , &self .r15)
.field("rsp" , &self .rsp)
.field("rip" , &self .rip)
.field("rflags" , &self .rflags)
.field("fpu" , &self .fpu)
.finish()
}
}
impl ::hash::Hash for mcontext_t {
fn hash<H: ::hash::Hasher>(&self , state: &mut H) {
self .rax.hash(state);
self .rbx.hash(state);
self .rcx.hash(state);
self .rdx.hash(state);
self .rdi.hash(state);
self .rsi.hash(state);
self .rbp.hash(state);
self .r8.hash(state);
self .r9.hash(state);
self .r10.hash(state);
self .r11.hash(state);
self .r12.hash(state);
self .r13.hash(state);
self .r14.hash(state);
self .r15.hash(state);
self .rsp.hash(state);
self .rip.hash(state);
self .rflags.hash(state);
self .fpu.hash(state);
}
}
impl PartialEq for ucontext_t {
fn eq(&self , other: &ucontext_t) -> bool {
self .uc_link == other.uc_link
&& self .uc_sigmask == other.uc_sigmask
&& self .uc_stack == other.uc_stack
&& self .uc_mcontext == other.uc_mcontext
}
}
impl Eq for ucontext_t {}
impl ::fmt::Debug for ucontext_t {
fn fmt(&self , f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("ucontext_t" )
.field("uc_link" , &self .uc_link)
.field("uc_sigmask" , &self .uc_sigmask)
.field("uc_stack" , &self .uc_stack)
.field("uc_mcontext" , &self .uc_mcontext)
.finish()
}
}
impl ::hash::Hash for ucontext_t {
fn hash<H: ::hash::Hasher>(&self , state: &mut H) {
self .uc_link.hash(state);
self .uc_sigmask.hash(state);
self .uc_stack.hash(state);
self .uc_mcontext.hash(state);
}
}
}
}
Messung V0.5 in Prozent C=99 H=100 G=99
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-22)
¤
*© Formatika GbR, Deutschland