kernel/svc: Correct output parameter for svcGetProcessId

svcGetProcessId's out parameter is a pointer to a 64-bit value, not a
32-bit one.
master
Lioncash 2018-12-18 22:30:53 +07:00
parent 9b3a38e3d3
commit 43e1189688
2 changed files with 10 additions and 2 deletions

@ -365,7 +365,7 @@ static ResultCode GetThreadId(u32* thread_id, Handle thread_handle) {
}
/// Get the ID of the specified process
static ResultCode GetProcessId(u32* process_id, Handle process_handle) {
static ResultCode GetProcessId(u64* process_id, Handle process_handle) {
LOG_TRACE(Kernel_SVC, "called process=0x{:08X}", process_handle);
const auto& handle_table = Core::CurrentProcess()->GetHandleTable();

@ -73,7 +73,15 @@ void SvcWrap() {
template <ResultCode func(u32*, u64)>
void SvcWrap() {
u32 param_1 = 0;
u32 retval = func(&param_1, Param(1)).raw;
const u32 retval = func(&param_1, Param(1)).raw;
Core::CurrentArmInterface().SetReg(1, param_1);
FuncReturn(retval);
}
template <ResultCode func(u64*, u32)>
void SvcWrap() {
u64 param_1 = 0;
const u32 retval = func(&param_1, static_cast<u32>(Param(1))).raw;
Core::CurrentArmInterface().SetReg(1, param_1);
FuncReturn(retval);
}