rstubs::arch::int::idt

Struct Entry

source
#[repr(C)]
pub struct Entry<F> { pointer_low: u16, code_segment: SegmentSelector, options: EntryOptions, pointer_middle: u16, phantom: PhantomData<F>, }
Expand description

An Interrupt Descriptor Table entry.

The generic parameter can either be HandlerFunc or HandlerFuncWithErrCode, depending on the interrupt vector.

Fields§

§pointer_low: u16§code_segment: SegmentSelector§options: EntryOptions§pointer_middle: u16§phantom: PhantomData<F>

Implementations§

source§

impl<F> Entry<F>

source

pub const fn missing() -> Self

Creates a non-present IDT entry (but sets the must-be-one bits).

source

fn set_handler_addr(&mut self, addr: u32) -> &mut EntryOptions

Set the handler address for the IDT entry and sets the present bit.

For the code selector field, this function uses the code segment selector currently active in the CPU.

The function returns a mutable reference to the entry’s options that allows further customization.

source§

impl Entry<unsafe extern "x86-interrupt" fn(_: InterruptStack)>

source

pub fn set_handler_fn( &mut self, handler: unsafe extern "x86-interrupt" fn(_: InterruptStack), ) -> &mut EntryOptions

Set the handler function for the IDT entry and sets the present bit.

For the code selector field, this function uses the code segment selector currently active in the CPU.

The function returns a mutable reference to the entry’s options that allows further customization.

source§

impl Entry<unsafe extern "x86-interrupt" fn(_: InterruptStack, error_code: u32)>

source

pub fn set_handler_fn( &mut self, handler: unsafe extern "x86-interrupt" fn(_: InterruptStack, error_code: u32), ) -> &mut EntryOptions

Set the handler function for the IDT entry and sets the present bit.

For the code selector field, this function uses the code segment selector currently active in the CPU.

The function returns a mutable reference to the entry’s options that allows further customization.

source§

impl Entry<unsafe extern "x86-interrupt" fn(_: InterruptStack, error_code: PageFaultError)>

source

pub fn set_handler_fn( &mut self, handler: unsafe extern "x86-interrupt" fn(_: InterruptStack, error_code: PageFaultError), ) -> &mut EntryOptions

Set the handler function for the IDT entry and sets the present bit.

For the code selector field, this function uses the code segment selector currently active in the CPU.

The function returns a mutable reference to the entry’s options that allows further customization.

source§

impl Entry<unsafe extern "x86-interrupt" fn(_: InterruptStack) -> !>

source

pub fn set_handler_fn( &mut self, handler: unsafe extern "x86-interrupt" fn(_: InterruptStack) -> !, ) -> &mut EntryOptions

Set the handler function for the IDT entry and sets the present bit.

For the code selector field, this function uses the code segment selector currently active in the CPU.

The function returns a mutable reference to the entry’s options that allows further customization.

source§

impl Entry<unsafe extern "x86-interrupt" fn(_: InterruptStack, error_code: u32) -> !>

source

pub fn set_handler_fn( &mut self, handler: unsafe extern "x86-interrupt" fn(_: InterruptStack, error_code: u32) -> !, ) -> &mut EntryOptions

Set the handler function for the IDT entry and sets the present bit.

For the code selector field, this function uses the code segment selector currently active in the CPU.

The function returns a mutable reference to the entry’s options that allows further customization.

Trait Implementations§

source§

impl<F: Clone> Clone for Entry<F>

source§

fn clone(&self) -> Entry<F>

Returns a copy of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for Entry<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: PartialEq> PartialEq for Entry<F>

source§

fn eq(&self, other: &Entry<F>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<F: Copy> Copy for Entry<F>

source§

impl<F> StructuralPartialEq for Entry<F>

Auto Trait Implementations§

§

impl<F> Freeze for Entry<F>

§

impl<F> RefUnwindSafe for Entry<F>
where F: RefUnwindSafe,

§

impl<F> Send for Entry<F>
where F: Send,

§

impl<F> Sync for Entry<F>
where F: Sync,

§

impl<F> Unpin for Entry<F>
where F: Unpin,

§

impl<F> UnwindSafe for Entry<F>
where F: UnwindSafe,

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.