aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Kernel/Process/KTlsPageInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/Process/KTlsPageInfo.cs')
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Process/KTlsPageInfo.cs77
1 files changed, 0 insertions, 77 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/Process/KTlsPageInfo.cs b/Ryujinx.HLE/HOS/Kernel/Process/KTlsPageInfo.cs
deleted file mode 100644
index f55e3c10..00000000
--- a/Ryujinx.HLE/HOS/Kernel/Process/KTlsPageInfo.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-using Ryujinx.HLE.HOS.Kernel.Memory;
-
-namespace Ryujinx.HLE.HOS.Kernel.Process
-{
- class KTlsPageInfo
- {
- public const int TlsEntrySize = 0x200;
-
- public ulong PageVirtualAddress { get; }
- public ulong PagePhysicalAddress { get; }
-
- private readonly bool[] _isSlotFree;
-
- public KTlsPageInfo(ulong pageVirtualAddress, ulong pagePhysicalAddress)
- {
- PageVirtualAddress = pageVirtualAddress;
- PagePhysicalAddress = pagePhysicalAddress;
-
- _isSlotFree = new bool[KPageTableBase.PageSize / TlsEntrySize];
-
- for (int index = 0; index < _isSlotFree.Length; index++)
- {
- _isSlotFree[index] = true;
- }
- }
-
- public bool TryGetFreePage(out ulong address)
- {
- address = PageVirtualAddress;
-
- for (int index = 0; index < _isSlotFree.Length; index++)
- {
- if (_isSlotFree[index])
- {
- _isSlotFree[index] = false;
-
- return true;
- }
-
- address += TlsEntrySize;
- }
-
- address = 0;
-
- return false;
- }
-
- public bool IsFull()
- {
- bool hasFree = false;
-
- for (int index = 0; index < _isSlotFree.Length; index++)
- {
- hasFree |= _isSlotFree[index];
- }
-
- return !hasFree;
- }
-
- public bool IsEmpty()
- {
- bool allFree = true;
-
- for (int index = 0; index < _isSlotFree.Length; index++)
- {
- allFree &= _isSlotFree[index];
- }
-
- return allFree;
- }
-
- public void FreeTlsSlot(ulong address)
- {
- _isSlotFree[(address - PageVirtualAddress) / TlsEntrySize] = true;
- }
- }
-} \ No newline at end of file