diff options
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/Process/KTlsPageInfo.cs')
| -rw-r--r-- | Ryujinx.HLE/HOS/Kernel/Process/KTlsPageInfo.cs | 77 |
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 |
