Struct zircon_object::vm::VmObject
source · [−]pub struct VmObject { /* private fields */ }
Expand description
Virtual memory containers
SYNOPSIS
A Virtual Memory Object (VMO) represents a contiguous region of virtual memory that may be mapped into multiple address spaces.
Implementations
sourceimpl VmObject
impl VmObject
sourcepub fn new_paged(pages: usize) -> Arc<Self>
pub fn new_paged(pages: usize) -> Arc<Self>
Create a new VMO backing on physical memory allocated in pages.
sourcepub fn new_paged_with_resizable(resizable: bool, pages: usize) -> Arc<Self>
pub fn new_paged_with_resizable(resizable: bool, pages: usize) -> Arc<Self>
Create a new VMO, which can be resizable, backing on physical memory allocated in pages.
sourcepub fn new_physical(paddr: PhysAddr, pages: usize) -> Arc<Self>
pub fn new_physical(paddr: PhysAddr, pages: usize) -> Arc<Self>
Create a new VMO representing a piece of contiguous physical memory.
sourcepub fn new_contiguous(pages: usize, align_log2: usize) -> ZxResult<Arc<Self>>
pub fn new_contiguous(pages: usize, align_log2: usize) -> ZxResult<Arc<Self>>
Create a VM object referring to a specific contiguous range of physical frame.
sourcepub fn create_child(
self: &Arc<Self>,
resizable: bool,
offset: usize,
len: usize
) -> ZxResult<Arc<Self>>
pub fn create_child(
self: &Arc<Self>,
resizable: bool,
offset: usize,
len: usize
) -> ZxResult<Arc<Self>>
Create a child VMO.
sourcepub fn create_slice(
self: &Arc<Self>,
offset: usize,
p_size: usize
) -> ZxResult<Arc<Self>>
pub fn create_slice(
self: &Arc<Self>,
offset: usize,
p_size: usize
) -> ZxResult<Arc<Self>>
Create a child slice as an VMO
sourcepub fn set_content_size_and_resize(
&self,
size: usize,
zero_until_offset: usize
) -> ZxResult<usize>
pub fn set_content_size_and_resize(
&self,
size: usize,
zero_until_offset: usize
) -> ZxResult<usize>
Set the size of the content stored in the VMO in bytes, resize vmo if needed
sourcepub fn content_size(&self) -> usize
pub fn content_size(&self) -> usize
Get the size of the content stored in the VMO in bytes.
sourcepub fn set_content_size(&self, size: usize) -> ZxResult
pub fn set_content_size(&self, size: usize) -> ZxResult
Get the size of the content stored in the VMO in bytes.
sourcepub fn set_cache_policy(&self, policy: CachePolicy) -> ZxResult
pub fn set_cache_policy(&self, policy: CachePolicy) -> ZxResult
Set the cache policy.
sourcepub fn append_mapping(&self, mapping: Weak<VmMapping>)
pub fn append_mapping(&self, mapping: Weak<VmMapping>)
Append a mapping to the VMO’s mapping list.
sourcepub fn remove_mapping(&self, mapping: Weak<VmMapping>)
pub fn remove_mapping(&self, mapping: Weak<VmMapping>)
Remove a mapping from the VMO’s mapping list.
Returns an estimate of the number of unique VmAspaces that this object is mapped into.
sourcepub fn is_resizable(&self) -> bool
pub fn is_resizable(&self) -> bool
Returns true if the object size can be changed.
sourcepub fn is_contiguous(&self) -> bool
pub fn is_contiguous(&self) -> bool
Returns true if the object is backed by a contiguous range of physical memory.
Trait Implementations
sourceimpl KernelObject for VmObject
impl KernelObject for VmObject
sourcefn signal_set(&self, signal: Signal)
fn signal_set(&self, signal: Signal)
Assert signal
.
sourcefn signal_clear(&self, signal: Signal)
fn signal_clear(&self, signal: Signal)
Deassert signal
.
sourcefn signal_change(&self, clear: Signal, set: Signal)
fn signal_change(&self, clear: Signal, set: Signal)
Change signal status: first clear
then set
indicated bits. Read more
sourcefn add_signal_callback(&self, callback: SignalHandler)
fn add_signal_callback(&self, callback: SignalHandler)
Add callback
for signal status changes. Read more
sourcefn get_child(&self, _id: KoID) -> ZxResult<Arc<dyn KernelObject>>
fn get_child(&self, _id: KoID) -> ZxResult<Arc<dyn KernelObject>>
Attempt to find a child of the object with given KoID. Read more
If the object is related to another (such as the other end of a channel, or the parent of a job), returns the KoID of that object, otherwise returns zero. Read more
sourcefn allowed_signals(&self) -> Signal
fn allowed_signals(&self) -> Signal
Get object’s allowed signals.
Auto Trait Implementations
impl !RefUnwindSafe for VmObject
impl Send for VmObject
impl Sync for VmObject
impl Unpin for VmObject
impl !UnwindSafe for VmObject
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedAs for T
impl<T> CheckedAs for T
sourcefn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
sourcefn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
sourceimpl<T> OverflowingAs for T
impl<T> OverflowingAs for T
sourcefn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
sourcefn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
sourceimpl<T> SaturatingAs for T
impl<T> SaturatingAs for T
sourcefn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
sourcefn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
sourceimpl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
sourcefn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
sourcefn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
sourceimpl<T> WrappingAs for T
impl<T> WrappingAs for T
sourcefn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
sourcefn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.