forked from MeloNX/MeloNX
40 lines
1.1 KiB
C#
40 lines
1.1 KiB
C#
using System;
|
|
|
|
namespace Ryujinx.Cpu.Nce
|
|
{
|
|
static class NceThreadPal
|
|
{
|
|
private const int SigUsr2Linux = 12;
|
|
private const int SigUsr2MacOS = 31;
|
|
|
|
public static int UnixSuspendSignal => OperatingSystem.IsMacOS() ? SigUsr2MacOS : SigUsr2Linux;
|
|
|
|
public static IntPtr GetCurrentThreadHandle()
|
|
{
|
|
if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsBionic)
|
|
{
|
|
return NceThreadPalUnix.GetCurrentThreadHandle();
|
|
}
|
|
else
|
|
{
|
|
throw new PlatformNotSupportedException();
|
|
}
|
|
}
|
|
|
|
public static void SuspendThread(IntPtr handle)
|
|
{
|
|
if (Ryujinx.Common.SystemInfo.SystemInfo.IsBionic)
|
|
{
|
|
NceThreadPalAndroid.SuspendThread(handle);
|
|
}
|
|
else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS())
|
|
{
|
|
NceThreadPalUnix.SuspendThread(handle);
|
|
}
|
|
else
|
|
{
|
|
throw new PlatformNotSupportedException();
|
|
}
|
|
}
|
|
}
|
|
} |