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: [usize; 61],
ma: Option<&MemAffinity>,
dmem: &Dmem,
) -> Result<Arc<Self>, VmError>
pub fn new( phys_avail: [usize; 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 UnsafeUnpin 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