pub struct MemoryObject {
pub id: KernelObjectId,
pub owner: KernelObjectId,
pub inner: Spinlock<Inner>,
}
Fields§
§id: KernelObjectId
§owner: KernelObjectId
§inner: Spinlock<Inner>
Implementations§
Source§impl MemoryObject
impl MemoryObject
pub fn new( owner: KernelObjectId, physical_address: PAddr, size: usize, flags: Flags, ) -> Arc<MemoryObject>
pub fn from_boot_info( owner: KernelObjectId, segment: &Segment, ) -> Arc<MemoryObject>
Sourcepub unsafe fn extend(&self, extend_by: usize, new_backing: PAddr)
pub unsafe fn extend(&self, extend_by: usize, new_backing: PAddr)
Extend this MemoryObject
by extend_by
bytes. The new portion of the object is backed
by physical memory starting at new_backing
.
§Note
Note that this does not map the new portion of the object into address spaces that this memory object is already mapped into.
pub fn size(&self) -> usize
pub fn flags(&self) -> Flags
Trait Implementations§
Source§impl Debug for MemoryObject
impl Debug for MemoryObject
Source§impl KernelObject for MemoryObject
impl KernelObject for MemoryObject
fn id(&self) -> KernelObjectId
fn typ(&self) -> KernelObjectType
Source§impl PartialEq for MemoryObject
impl PartialEq for MemoryObject
Auto Trait Implementations§
impl !Freeze for MemoryObject
impl !RefUnwindSafe for MemoryObject
impl Send for MemoryObject
impl Sync for MemoryObject
impl Unpin for MemoryObject
impl UnwindSafe for MemoryObject
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can then be
further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<dyn Any>
. Rc<dyn Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Anydyn Any
. This is needed since Rust cannot
generate &Anydyn Any
’s vtable from &Trait
’s.Source§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 &Anydyn Any
. This is needed since Rust cannot
generate &mut dyn Any
’s vtable from &mut Trait
’s.