Added svcSetProcessMemoryPermission and svcMapProcessCodeMemory/svcUnmapProcessCodeMemory. Added PERM_X.

This commit is contained in:
yellows8 2018-01-13 23:49:54 -05:00
parent 197b1900a1
commit eec1fc2fcc
3 changed files with 19 additions and 0 deletions

View File

@ -77,7 +77,10 @@ Result svcQueryDebugProcessMemory(MemoryInfo* meminfo_ptr, u32* pageinfo, Handle
Result svcReadDebugProcessMemory(void* buffer, Handle debug, u64 addr, u64 size);
Result svcWriteDebugProcessMemory(Handle debug, void* buffer, u64 addr, u64 size);
Result svcManageNamedPort(Handle* portServer, const char* name, s32 maxSessions);
Result svcSetProcessMemoryPermission(Handle proc, u64 addr, u64 size, u32 perm);
Result svcMapProcessMemory(void* dst, Handle proc, u64 src, u64 size);
Result svcMapProcessCodeMemory(Handle proc, u64 dst, u64 src, u64 size);
Result svcUnmapProcessCodeMemory(Handle proc, u64 dst, u64 src, u64 size);
Result svcCreateProcess(Handle* out, void* proc_info, u32* caps, u64 cap_num);
Result svcStartProcess(Handle proc, s32 main_prio, s32 default_cpu, u32 stack_size);
u64 svcCallSecureMonitor(SecmonArgs* regs);

View File

@ -48,6 +48,7 @@ typedef enum {
PERM_NONE = 0,
PERM_R = 1,
PERM_W = 2,
PERM_X = 4,
PERM_RW = PERM_R | PERM_W,
PERM_DONTCARE = 0x10000000
} Permission;

View File

@ -324,11 +324,26 @@ SVC_BEGIN svcManageNamedPort
ret
SVC_END
SVC_BEGIN svcSetProcessMemoryPermission
svc 0x73
ret
SVC_END
SVC_BEGIN svcMapProcessMemory
svc 0x74
ret
SVC_END
SVC_BEGIN svcMapProcessCodeMemory
svc 0x77
ret
SVC_END
SVC_BEGIN svcUnmapProcessCodeMemory
svc 0x78
ret
SVC_END
SVC_BEGIN svcCreateProcess
str x0, [sp, #-16]!
svc 0x79