[][src]Struct syscall::io::PhysBox

pub struct PhysBox { /* fields omitted */ }

An RAII guard of a physical memory allocation. Currently all physically allocated memory are page-aligned and take up at least 4k of space (on x86_64).

Implementations

impl PhysBox[src]

pub unsafe fn from_raw_parts(address: usize, size: usize) -> Self[src]

Construct a PhysBox from an address and a size.

Safety

This function is unsafe because when dropping, Self has to a valid allocation.

pub fn address(&self) -> usize[src]

Retrieve the byte address in physical memory, of this allocation.

pub fn size(&self) -> usize[src]

Retrieve the size in bytes of the alloc.

pub fn new_in_32bit_space(size: usize) -> Result<Self>[src]

Allocate physical memory that must reside in 32-bit space.

pub fn new_with_flags(size: usize, flags: PhysallocFlags) -> Result<Self>[src]

pub fn new_partial_allocation(
    size: usize,
    flags: PhysallocFlags,
    strategy: Option<PartialAllocStrategy>,
    min: usize
) -> Result<Self>
[src]

"Partially" allocate physical memory, in the sense that the allocation may be smaller than expected, but still with a minimum limit. This is particularly useful when the physical memory space is fragmented, and a device supports scatter-gather I/O. In that case, the driver can optimistically request e.g. 1 alloc of 1 MiB, with the minimum of 512 KiB. If that first allocation only returns half the size, the driver can do another allocation and then let the device use both buffers.

pub fn new(size: usize) -> Result<Self>[src]

Trait Implementations

impl Debug for PhysBox[src]

impl Drop for PhysBox[src]

Auto Trait Implementations

impl Send for PhysBox

impl Sync for PhysBox

impl Unpin for PhysBox

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.