[][src]Struct sunrise_libuser::types::SharedMemory

#[repr(transparent)]pub struct SharedMemory(pub Handle);

A handle to memory that may be mapped in multiple processes at the same time.

Special care should be used to ensure multiple processes do not write to the memory at the same time, or only does so through the use of atomic operations. Otherwise, UB will occur!

Implementations

impl SharedMemory[src]

pub fn new(
    length: usize,
    myperm: MemoryPermissions,
    otherperm: MemoryPermissions
) -> Result<SharedMemory, Error>
[src]

Creates a new Shared Memory handle. The physical memory underlying this shared memory will span length bytes.

Myperm and otherperm are masks of which permissions are allowed when mapping the shared memory in the current process and other processes respectively.

pub fn map(
    self,
    addr: usize,
    size: usize,
    perm: MemoryPermissions
) -> Result<MappedSharedMemory, Error>
[src]

Maps the current shared memory at the given address, consuming the handle and returning a MappedMemoryRegion. Note that the size must be equal to the length of the SharedMemory.

Trait Implementations

impl Debug for SharedMemory[src]

Auto Trait Implementations

impl RefUnwindSafe for SharedMemory

impl Send for SharedMemory

impl Sync for SharedMemory

impl Unpin for SharedMemory

impl UnwindSafe for SharedMemory

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> SizedIPCBuffer for 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.