use crate::types::SigSetExtended;
use super::UStack;
#[allow(missing_docs)]
#[repr(C)]
#[cfg_attr(
feature = "zerocopy",
derive(
zerocopy::FromBytes,
zerocopy::Immutable,
zerocopy::IntoBytes,
zerocopy::KnownLayout
)
)]
#[derive(Debug, Clone)]
pub struct MContext {
pub fault_address: usize,
pub gregs: [usize; 31],
pub sp: usize,
pub pc: usize,
pub pstate: usize,
pub __reserved: [usize; 512],
}
#[repr(C)]
#[cfg_attr(
feature = "zerocopy",
derive(
zerocopy::FromBytes,
zerocopy::Immutable,
// zerocopy::IntoBytes,
zerocopy::KnownLayout
)
)]
#[derive(Debug, Clone)]
pub struct UContext {
pub flags: usize,
pub link: usize,
pub stack: UStack,
pub sig_mask: SigSetExtended,
_pad0: usize,
pub regs: MContext,
}