forked from Mirror/Ryujinx
Add InfoType.MesosphereCurrentProcess (#3792)
* Add InfoType.MesosphereCurrentProcess * Make outHandle inlined Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
This commit is contained in:
parent
5c0fb0cec3
commit
aedfadaaf7
2 changed files with 29 additions and 1 deletions
|
@ -28,6 +28,7 @@
|
|||
UsedNonSystemMemorySize,
|
||||
IsApplication,
|
||||
FreeThreadCount,
|
||||
ThreadTickCount
|
||||
ThreadTickCount,
|
||||
MesosphereCurrentProcess = 65001
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2107,6 +2107,33 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
|||
break;
|
||||
}
|
||||
|
||||
case InfoType.MesosphereCurrentProcess:
|
||||
{
|
||||
if (handle != 0)
|
||||
{
|
||||
return KernelResult.InvalidHandle;
|
||||
}
|
||||
|
||||
if ((ulong)subId != 0)
|
||||
{
|
||||
return KernelResult.InvalidCombination;
|
||||
}
|
||||
|
||||
KProcess currentProcess = KernelStatic.GetCurrentProcess();
|
||||
KHandleTable handleTable = currentProcess.HandleTable;
|
||||
|
||||
KernelResult result = handleTable.GenerateHandle(currentProcess, out int outHandle);
|
||||
|
||||
if (result != KernelResult.Success)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
value = (ulong)outHandle;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default: return KernelResult.InvalidEnumValue;
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue