acadia/rust/sys/voyageurs/src/xhci/event_ring.rs

25 lines
586 B
Rust

use alloc::vec::Vec;
use crate::xhci::data_structures::{EventRingSegmentTable, TrbRing};
pub struct EventRing {
segment_table: EventRingSegmentTable,
segments: Vec<TrbRing>,
}
impl EventRing {
pub fn new() -> Self {
let mut event_ring = Self {
segment_table: EventRingSegmentTable::new(1),
segments: [TrbRing::new(100)].into(),
};
event_ring.segment_table[0].from_trb_fing(&event_ring.segments[0]);
event_ring
}
pub fn segment_table(&self) -> &EventRingSegmentTable {
&self.segment_table
}
}