pub struct SignalStackFrame {
pub siginfo_bytes: [u8; 128],
pub context: ucontext,
/* private fields */
}Expand description
A SignalStackFrame contains all the state that is stored on the stack prior
to executing a signal handler.
The ordering of the fields is significant, as it is part of the syscall ABI. In particular, restorer_address must be the first field, since that is where the signal handler will return after it finishes executing.
Fields§
§siginfo_bytes: [u8; 128]Information about the signal.
context: ucontextThe state of the thread at the time the signal was handled.
Implementations§
Source§impl SignalStackFrame
impl SignalStackFrame
pub fn new( _task: &Task, arch_width: ArchWidth, registers: &RegisterState, extended_pstate: &ExtendedPstateState, signal_state: &SignalState, siginfo: &SignalInfo, action: sigaction_t, stack_pointer: UserAddress, ) -> Result<SignalStackFrame, Errno>
pub fn as_bytes(&self) -> &[u8; 1280]
pub fn from_bytes(bytes: [u8; 1280]) -> SignalStackFrame
pub fn get_signal_mask(&self) -> SigSet
Auto Trait Implementations§
impl Freeze for SignalStackFrame
impl RefUnwindSafe for SignalStackFrame
impl Send for SignalStackFrame
impl Sync for SignalStackFrame
impl Unpin for SignalStackFrame
impl UnwindSafe for SignalStackFrame
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
Converts the given service transport handle of type
T to [Self]Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T, U> MultiArchFrom<T> for Uwhere
U: From<T>,
impl<T, U> MultiArchFrom<T> for Uwhere
U: From<T>,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T, U> TryIntoExt<U> for Twhere
U: TryFromExt<T>,
impl<T, U> TryIntoExt<U> for Twhere
U: TryFromExt<T>,
type Error = <U as TryFromExt<T>>::Error
§fn try_into_ext(self) -> Result<U, <T as TryIntoExt<U>>::Error>
fn try_into_ext(self) -> Result<U, <T as TryIntoExt<U>>::Error>
Tries to perform the conversion.