Struct rstubs::arch::int::idt::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 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

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

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

This method 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> 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
§

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
§

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.

§

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.