sel4_virtio_hal_impl

Struct HalImpl

Source
pub struct HalImpl;

Implementations§

Source§

impl HalImpl

Source

pub fn init( dma_region_size: usize, dma_region_vaddr: usize, dma_region_paddr: usize, )

Trait Implementations§

Source§

impl Hal for HalImpl

Source§

fn dma_alloc( pages: usize, _direction: BufferDirection, ) -> (PhysAddr, NonNull<u8>)

Allocates and zeroes the given number of contiguous physical pages of DMA memory for VirtIO use. Read more
Source§

unsafe fn dma_dealloc(paddr: PhysAddr, _vaddr: NonNull<u8>, pages: usize) -> i32

Deallocates the given contiguous physical DMA memory pages. Read more
Source§

unsafe fn mmio_phys_to_virt(_paddr: PhysAddr, _size: usize) -> NonNull<u8>

Converts a physical address used for MMIO to a virtual address which the driver can access. Read more
Source§

unsafe fn share(buffer: NonNull<[u8]>, _direction: BufferDirection) -> PhysAddr

Shares the given memory range with the device, and returns the physical address that the device can use to access it. Read more
Source§

unsafe fn unshare( paddr: PhysAddr, buffer: NonNull<[u8]>, direction: BufferDirection, )

Unshares the given memory range from the device and (if necessary) copies it back to the original buffer. Read more

Auto Trait Implementations§

§

impl Freeze for HalImpl

§

impl RefUnwindSafe for HalImpl

§

impl Send for HalImpl

§

impl Sync for HalImpl

§

impl Unpin for HalImpl

§

impl UnwindSafe for HalImpl

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.