pub struct PcComponent<'a, I: InterruptService + 'a> { /* private fields */ }
Expand description
Implementations§
Source§impl<'a, I: InterruptService + 'a> PcComponent<'a, I>
impl<'a, I: InterruptService + 'a> PcComponent<'a, I>
Sourcepub unsafe fn new(pd: &'a mut PD, pt: &'a mut PT, int_svc: &'a I) -> Self
pub unsafe fn new(pd: &'a mut PD, pt: &'a mut PT, int_svc: &'a I) -> Self
Creates a new PcComponent
instance.
§Safety
It is unsafe to construct more than a single PcComponent
during the entire lifetime of the
kernel.
Before calling, memory must be identity-mapped. Otherwise, introduction of flat segmentation will cause the kernel’s code/data to move unexpectedly.
See x86::init
for further details.
Trait Implementations§
Source§impl<I: InterruptService + 'static> Component for PcComponent<'static, I>
impl<I: InterruptService + 'static> Component for PcComponent<'static, I>
Source§type StaticInput = (<SerialPortComponent as Component>::StaticInput, <SerialPortComponent as Component>::StaticInput, <SerialPortComponent as Component>::StaticInput, <SerialPortComponent as Component>::StaticInput, &'static mut MaybeUninit<Pc<'static, I>>)
type StaticInput = (<SerialPortComponent as Component>::StaticInput, <SerialPortComponent as Component>::StaticInput, <SerialPortComponent as Component>::StaticInput, <SerialPortComponent as Component>::StaticInput, &'static mut MaybeUninit<Pc<'static, I>>)
An optional type to specify the chip or board specific static memory
that a component needs to setup the output object(s). This is the memory
that
crate::static_buf!()
would normally setup, but generic
components cannot setup static buffers for types which are
chip-dependent, so those buffers have to be passed in manually, and the
Component::StaticInput
type makes this possible.Source§type Output = &'static Pc<'static, I>
type Output = &'static Pc<'static, I>
The type (e.g., capsule, peripheral) that this implementation of
Component
produces via Component::finalize()
. This is typically
a static reference (&'static
).Source§fn finalize(self, s: Self::StaticInput) -> Self::Output
fn finalize(self, s: Self::StaticInput) -> Self::Output
Auto Trait Implementations§
impl<'a, I> Freeze for PcComponent<'a, I>
impl<'a, I> RefUnwindSafe for PcComponent<'a, I>where
I: RefUnwindSafe,
impl<'a, I> Send for PcComponent<'a, I>where
I: Sync,
impl<'a, I> Sync for PcComponent<'a, I>where
I: Sync,
impl<'a, I> Unpin for PcComponent<'a, I>
impl<'a, I> !UnwindSafe for PcComponent<'a, I>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more