pub struct Vm {
phys: PhysAllocator,
pages: Vec<Arc<VmPage>>,
stats: [Mutex<VmStats>; 2],
pagers: [Weak<Proc>; 2],
pages_deficit: [AtomicUsize; 2],
}Expand description
Implementation of Virtual Memory system.
Fields§
§phys: PhysAllocator§pages: Vec<Arc<VmPage>>§stats: [Mutex<VmStats>; 2]§pagers: [Weak<Proc>; 2]§pages_deficit: [AtomicUsize; 2]Implementations§
Source§impl Vm
impl Vm
Sourcepub fn new(
phys_avail: [u64; 61],
ma: Option<&MemAffinity>,
dmem: &Dmem,
) -> Result<Arc<Self>, VmError>
pub fn new( phys_avail: [u64; 61], ma: Option<&MemAffinity>, dmem: &Dmem, ) -> Result<Arc<Self>, VmError>
Sourcepub fn alloc_page(
&self,
obj: Option<VmObject>,
pindex: usize,
flags: VmAlloc,
) -> Option<Arc<VmPage>>
pub fn alloc_page( &self, obj: Option<VmObject>, pindex: usize, flags: VmAlloc, ) -> Option<Arc<VmPage>>
Sourcefn free_page(&self, page: &Arc<VmPage>, order: usize)
fn free_page(&self, page: &Arc<VmPage>, order: usize)
page must not have active lock on any fields.
See vm_phys_free_pages on the Orbis for a reference.
§Reference offsets
| Version | Offset |
|---|---|
| PS4 11.00 | 0x15FCB0 |
Sourcefn spawn_pagers(&mut self)
fn spawn_pagers(&mut self)
See kick_pagedaemons on the Orbis for a reference.
§Reference offsets
| Version | Offset |
|---|---|
| PS4 11.00 | 0x3E0E40 |
Sourcefn wake_pager(&self, _: usize)
fn wake_pager(&self, _: usize)
See pagedaemon_wakeup on the Orbis for a reference.
§Reference offsets
| Version | Offset |
|---|---|
| PS4 11.00 | 0x3E0690 |
Auto Trait Implementations§
impl !Freeze for Vm
impl !RefUnwindSafe for Vm
impl Send for Vm
impl Sync for Vm
impl Unpin for Vm
impl !UnwindSafe for Vm
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