Implement svc 0x04, 0x06, 0x53

This commit is contained in:
TuxSH 2017-03-12 23:21:29 +01:00
parent 636dfb2f1d
commit 56de1545be
2 changed files with 40 additions and 2 deletions

View File

@ -511,7 +511,15 @@ Result svcQueryProcessMemory(MemInfo* info, PageInfo* out, Handle process, u32 a
Result svcInvalidateProcessDataCache(Handle process, void* addr, u32 size);
/**
* @brief Flushes a process's data cache.
* @brief Cleans a process's data cache.
* @param process Handle of the process.
* @param addr Address to clean.
* @param size Size of the memory to clean.
*/
Result svcStoreProcessDataCache(Handle process, void* addr, u32 size);
/**
* @brief Flushes (cleans and invalidates) a process's data cache.
* @param process Handle of the process.
* @param addr Address to flush.
* @param size Size of the memory to flush.
@ -605,6 +613,14 @@ Result svcCreateCodeSet(Handle* out, const CodeSetInfo *info, void* code_ptr, vo
*/
Result svcCreateProcess(Handle* out, Handle codeset, const u32 *arm11kernelcaps, u32 arm11kernelcaps_num);
/**
* @brief Gets a process's affinity mask.
* @param[out] affinitymask Pointer to store the affinity masks.
* @param process Handle of the process.
* @param processorcount Number of processors.
*/
Result svcGetProcessAffinityMask(u8* affinitymask, Handle process, s32 processorcount);
/**
* @brief Sets a process's affinity mask.
* @param process Handle of the process.
@ -613,10 +629,17 @@ Result svcCreateProcess(Handle* out, Handle codeset, const u32 *arm11kernelcaps,
*/
Result svcSetProcessAffinityMask(Handle process, const u8* affinitymask, s32 processorcount);
/**
* Gets a process's ideal processor.
* @param[out] processorid Pointer to store the ID of the process's ideal processor.
* @param process Handle of the process.
*/
Result svcGetProcessIdealProcessor(s32 *processorid, Handle process);
/**
* Sets a process's ideal processor.
* @param process Handle of the process.
* @param processorid ID of the thread's ideal processor.
* @param processorid ID of the process's ideal processor.
*/
Result svcSetProcessIdealProcessor(Handle process, s32 processorid);

View File

@ -37,10 +37,21 @@ SVC_BEGIN svcExitProcess
svc 0x03
bx lr
SVC_BEGIN svcGetProcessAffinityMask
svc 0x04
bx lr
SVC_BEGIN svcSetProcessAffinityMask
svc 0x05
bx lr
SVC_BEGIN svcGetProcessIdealProcessor
str r0, [sp, #-0x4]!
svc 0x06
ldr r3, [sp], #4
str r1, [r3]
bx lr
SVC_BEGIN svcSetProcessIdealProcessor
svc 0x07
bx lr
@ -372,6 +383,10 @@ SVC_BEGIN svcInvalidateProcessDataCache
svc 0x52
bx lr
SVC_BEGIN svcStoreProcessDataCache
svc 0x53
bx lr
SVC_BEGIN svcFlushProcessDataCache
svc 0x54
bx lr