use alloc::vec::Vec; use crate::xhci::data_structures::{EventRingSegmentTable, TrbRing}; pub struct EventRing { segment_table: EventRingSegmentTable, segments: Vec, } 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 } }