⚠️ VeridianOS Kernel Documentation - This is low-level kernel code. All functions are unsafe unless explicitly marked otherwise. no_std

EventRing

Struct EventRing 

Source
pub struct EventRing { /* private fields */ }
Expand description

Event Ring: the host controller enqueues event TRBs here

Implementations§

Source§

impl EventRing

Source

pub fn new(segment_phys: u64, capacity: usize) -> Self

Create a new event ring

Source

pub unsafe fn dequeue(&mut self) -> Option<Trb>

Dequeue the next event TRB if one is available.

Returns Some(trb) if the cycle bit of the TRB at the dequeue pointer matches our expected cycle state, or None if no event is pending.

§Safety

The caller must ensure the event ring segment is valid memory.

Source

pub fn erdp_value(&self) -> u64

Get the current dequeue pointer for writing to ERDP

Auto Trait Implementations§

§

impl Freeze for EventRing

§

impl RefUnwindSafe for EventRing

§

impl Send for EventRing

§

impl Sync for EventRing

§

impl Unpin for EventRing

§

impl UnwindSafe for EventRing

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.