2014-07-11 11:18:23 +02:00
|
|
|
#pragma once
|
2014-06-25 00:38:34 +02:00
|
|
|
|
2016-04-14 00:23:53 +02:00
|
|
|
#include "sys_sync.h"
|
2015-06-19 17:49:38 +02:00
|
|
|
|
2014-09-03 18:33:30 +02:00
|
|
|
enum : u64
|
|
|
|
|
{
|
2015-07-10 16:45:16 +02:00
|
|
|
SYS_VM_STATE_INVALID = 0ull,
|
|
|
|
|
SYS_VM_STATE_UNUSED = 1ull,
|
|
|
|
|
SYS_VM_STATE_ON_MEMORY = 2ull,
|
|
|
|
|
SYS_VM_STATE_STORED = 4ull,
|
2014-09-03 18:33:30 +02:00
|
|
|
};
|
2014-06-25 00:38:34 +02:00
|
|
|
|
2015-07-10 16:45:16 +02:00
|
|
|
struct sys_vm_statistics_t
|
2014-09-03 18:33:30 +02:00
|
|
|
{
|
|
|
|
|
be_t<u64> page_fault_ppu; // Number of bad virtual memory accesses from a PPU thread.
|
|
|
|
|
be_t<u64> page_fault_spu; // Number of bad virtual memory accesses from a SPU thread.
|
|
|
|
|
be_t<u64> page_in; // Number of virtual memory backup reading operations.
|
|
|
|
|
be_t<u64> page_out; // Number of virtual memory backup writing operations.
|
|
|
|
|
be_t<u32> pmem_total; // Total physical memory allocated for the virtual memory area.
|
|
|
|
|
be_t<u32> pmem_used; // Physical memory in use by the virtual memory area.
|
|
|
|
|
be_t<u64> timestamp;
|
2014-06-25 00:38:34 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// SysCalls
|
2015-07-10 16:45:16 +02:00
|
|
|
s32 sys_vm_memory_map(u32 vsize, u32 psize, u32 cid, u64 flag, u64 policy, vm::ptr<u32> addr);
|
2014-06-25 00:38:34 +02:00
|
|
|
s32 sys_vm_unmap(u32 addr);
|
|
|
|
|
s32 sys_vm_append_memory(u32 addr, u32 size);
|
|
|
|
|
s32 sys_vm_return_memory(u32 addr, u32 size);
|
|
|
|
|
s32 sys_vm_lock(u32 addr, u32 size);
|
|
|
|
|
s32 sys_vm_unlock(u32 addr, u32 size);
|
|
|
|
|
s32 sys_vm_touch(u32 addr, u32 size);
|
|
|
|
|
s32 sys_vm_flush(u32 addr, u32 size);
|
|
|
|
|
s32 sys_vm_invalidate(u32 addr, u32 size);
|
|
|
|
|
s32 sys_vm_store(u32 addr, u32 size);
|
|
|
|
|
s32 sys_vm_sync(u32 addr, u32 size);
|
2014-09-03 18:33:30 +02:00
|
|
|
s32 sys_vm_test(u32 addr, u32 size, vm::ptr<u64> result);
|
2015-07-10 16:45:16 +02:00
|
|
|
s32 sys_vm_get_statistics(u32 addr, vm::ptr<sys_vm_statistics_t> stat);
|