Struct madt::Madt

source ·
pub struct Madt<'t> { /* private fields */ }
Expand description

A wrapper around the MADT ACPI table (Multiple APIC Descriptor Table), which contains details about multicore and interrupt configuration.

You most likely only care about the iter() method, though other fields of the MADT are accessible.

Implementations§

source§

impl<'t> Madt<'t>

source

pub fn get(acpi_tables: &'t AcpiTables) -> Option<Madt<'t>>

Finds the MADT in the given AcpiTables and returns a reference to it.

source

pub fn bsp_init(&self, page_table: &mut PageTable) -> Result<(), &'static str>

Performs initialization functions of the IOAPIC and bootstrap processor.

Important Note

This should only be called once from the initial bootstrap processor (the first core to run).

source

pub fn iter(&self) -> MadtIter<'_>

Returns an Iterator over the MADT’s entries, which are variable in both number and size.

source

pub fn sdt(&self) -> &Sdt

Returns a reference to the Sdt header in this MADT table.

source

pub fn local_apic_phys_addr(&self) -> u32

Returns the Local APIC physical address value in this MADT table.

source

pub fn flags(&self) -> u32

Returns the flags value in this MADT table.

Auto Trait Implementations§

§

impl<'t> RefUnwindSafe for Madt<'t>

§

impl<'t> Send for Madt<'t>

§

impl<'t> Sync for Madt<'t>

§

impl<'t> Unpin for Madt<'t>

§

impl<'t> UnwindSafe for Madt<'t>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

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, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.