Move solution and projects to src
This commit is contained in:
33
src/Ryujinx.HLE/HOS/Kernel/Threading/KThreadContext.cs
Normal file
33
src/Ryujinx.HLE/HOS/Kernel/Threading/KThreadContext.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using Ryujinx.Cpu;
|
||||
using Ryujinx.Horizon.Common;
|
||||
using System.Threading;
|
||||
|
||||
namespace Ryujinx.HLE.HOS.Kernel.Threading
|
||||
{
|
||||
class KThreadContext : IThreadContext
|
||||
{
|
||||
private readonly IExecutionContext _context;
|
||||
|
||||
public bool Running => _context.Running;
|
||||
public ulong TlsAddress => (ulong)_context.TpidrroEl0;
|
||||
|
||||
public ulong GetX(int index) => _context.GetX(index);
|
||||
|
||||
private int _locked;
|
||||
|
||||
public KThreadContext(IExecutionContext context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
|
||||
public bool Lock()
|
||||
{
|
||||
return Interlocked.Exchange(ref _locked, 1) == 0;
|
||||
}
|
||||
|
||||
public void Unlock()
|
||||
{
|
||||
Interlocked.Exchange(ref _locked, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user