aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Kernel
diff options
context:
space:
mode:
authorAlex Barney <thealexbarney@gmail.com>2019-07-01 21:39:22 -0500
committerAc_K <Acoustik666@gmail.com>2019-07-02 04:39:22 +0200
commitb2b736abc2569ab5d8199da666aef8d8394844a0 (patch)
tree88bcc2ae4fb0d4161c95df2cd7edb12388de922a /Ryujinx.HLE/HOS/Kernel
parent10c74182babaf8cf6bedaeffd64c3109df4ea816 (diff)
Misc cleanup (#708)
* Fix typos * Remove unneeded using statements * Enforce var style more * Remove redundant qualifiers * Fix some indentation * Disable naming warnings on files with external enum names * Fix build * Mass find & replace for comments with no spacing * Standardize todo capitalization and for/if spacing
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel')
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Common/KernelInit.cs6
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Common/MersenneTwister.cs6
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Ipc/KBufferDescriptorTable.cs2
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Ipc/KClientPort.cs4
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Ipc/KClientSession.cs4
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Ipc/KServerSession.cs34
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Memory/KMemoryManager.cs94
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Memory/KMemoryRegionManager.cs26
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Process/HleProcessDebugger.cs10
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs34
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs6
-rw-r--r--Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcSystem.cs6
-rw-r--r--Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcTable.cs18
-rw-r--r--Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcThread.cs2
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Threading/HleScheduler.cs18
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs22
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Threading/KCriticalSection.cs6
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs34
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs2
-rw-r--r--Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs44
20 files changed, 188 insertions, 190 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/Common/KernelInit.cs b/Ryujinx.HLE/HOS/Kernel/Common/KernelInit.cs
index 2a2aa743..bbb75f18 100644
--- a/Ryujinx.HLE/HOS/Kernel/Common/KernelInit.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Common/KernelInit.cs
@@ -114,9 +114,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Common
nvServicesRg = new KMemoryArrangeRegion(nvServicesRgEnd - nvServicesRgSize, nvServicesRgSize);
appletRg = new KMemoryArrangeRegion(nvServicesRgEnd, appletRgSize);
- //Note: There is an extra region used by the kernel, however
- //since we are doing HLE we are not going to use that memory, so give all
- //the remaining memory space to services.
+ // Note: There is an extra region used by the kernel, however
+ // since we are doing HLE we are not going to use that memory, so give all
+ // the remaining memory space to services.
ulong serviceRgSize = nvServicesRg.Address - DramMemoryMap.SlabHeapEnd;
serviceRg = new KMemoryArrangeRegion(DramMemoryMap.SlabHeapEnd, serviceRgSize);
diff --git a/Ryujinx.HLE/HOS/Kernel/Common/MersenneTwister.cs b/Ryujinx.HLE/HOS/Kernel/Common/MersenneTwister.cs
index 6b686901..7f767c1c 100644
--- a/Ryujinx.HLE/HOS/Kernel/Common/MersenneTwister.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Common/MersenneTwister.cs
@@ -34,16 +34,16 @@ namespace Ryujinx.HLE.HOS.Kernel.Common
if (range == -1)
{
- //Increment would cause a overflow, special case.
+ // Increment would cause a overflow, special case.
return GenRandomNumber(2, 2, 32, 0xffffffffu, 0xffffffffu);
}
range++;
- //This is log2(Range) plus one.
+ // This is log2(Range) plus one.
int nextRangeLog2 = 64 - BitUtils.CountLeadingZeros64(range);
- //If Range is already power of 2, subtract one to use log2(Range) directly.
+ // If Range is already power of 2, subtract one to use log2(Range) directly.
int rangeLog2 = nextRangeLog2 - (BitUtils.IsPowerOfTwo64(range) ? 1 : 0);
int parts = rangeLog2 > 32 ? 2 : 1;
diff --git a/Ryujinx.HLE/HOS/Kernel/Ipc/KBufferDescriptorTable.cs b/Ryujinx.HLE/HOS/Kernel/Ipc/KBufferDescriptorTable.cs
index ac805bee..6aa211dd 100644
--- a/Ryujinx.HLE/HOS/Kernel/Ipc/KBufferDescriptorTable.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Ipc/KBufferDescriptorTable.cs
@@ -84,7 +84,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
ulong clientAddrTruncated = BitUtils.AlignDown(desc.ClientAddress, KMemoryManager.PageSize);
ulong clientAddrRounded = BitUtils.AlignUp (desc.ClientAddress, KMemoryManager.PageSize);
- //Check if address is not aligned, in this case we need to perform 2 copies.
+ // Check if address is not aligned, in this case we need to perform 2 copies.
if (clientAddrTruncated != clientAddrRounded)
{
ulong copySize = clientAddrRounded - desc.ClientAddress;
diff --git a/Ryujinx.HLE/HOS/Kernel/Ipc/KClientPort.cs b/Ryujinx.HLE/HOS/Kernel/Ipc/KClientPort.cs
index eaa4322d..901b0222 100644
--- a/Ryujinx.HLE/HOS/Kernel/Ipc/KClientPort.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Ipc/KClientPort.cs
@@ -16,8 +16,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
private object _countIncLock;
- //TODO: Remove that, we need it for now to allow HLE
- //SM implementation to work with the new IPC system.
+ // TODO: Remove that, we need it for now to allow HLE
+ // SM implementation to work with the new IPC system.
public IpcService Service { get; set; }
public KClientPort(Horizon system, KPort parent, int maxSessions) : base(system)
diff --git a/Ryujinx.HLE/HOS/Kernel/Ipc/KClientSession.cs b/Ryujinx.HLE/HOS/Kernel/Ipc/KClientSession.cs
index f139d3d4..a5109e96 100644
--- a/Ryujinx.HLE/HOS/Kernel/Ipc/KClientSession.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Ipc/KClientSession.cs
@@ -13,8 +13,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
public ChannelState State { get; set; }
- //TODO: Remove that, we need it for now to allow HLE
- //services implementation to work with the new IPC system.
+ // TODO: Remove that, we need it for now to allow HLE
+ // services implementation to work with the new IPC system.
public IpcService Service { get; set; }
public KClientSession(Horizon system, KSession parent) : base(system)
diff --git a/Ryujinx.HLE/HOS/Kernel/Ipc/KServerSession.cs b/Ryujinx.HLE/HOS/Kernel/Ipc/KServerSession.cs
index 5a45ff4a..7fba645f 100644
--- a/Ryujinx.HLE/HOS/Kernel/Ipc/KServerSession.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Ipc/KServerSession.cs
@@ -327,7 +327,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
uint offset;
- //Copy handles.
+ // Copy handles.
if (clientHeader.HasHandles)
{
if (clientHeader.MoveHandlesCount != 0)
@@ -399,7 +399,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
offset = 2;
}
- //Copy pointer/receive list buffers.
+ // Copy pointer/receive list buffers.
uint recvListDstOffset = 0;
for (int index = 0; index < clientHeader.PointerBuffersCount; index++)
@@ -455,7 +455,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
offset += 2;
}
- //Copy send, receive and exchange buffers.
+ // Copy send, receive and exchange buffers.
uint totalBuffersCount =
clientHeader.SendBuffersCount +
clientHeader.ReceiveBuffersCount +
@@ -551,7 +551,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
offset += 3;
}
- //Copy raw data.
+ // Copy raw data.
if (clientHeader.RawDataSizeInWords != 0)
{
ulong copySrc = clientMsg.Address + offset * 4;
@@ -683,13 +683,13 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
return KernelResult.InvalidCombination;
}
- //Read receive list.
+ // Read receive list.
ulong[] receiveList = GetReceiveList(
clientMsg,
clientHeader.ReceiveListType,
clientHeader.ReceiveListOffset);
- //Copy receive and exchange buffers.
+ // Copy receive and exchange buffers.
clientResult = request.BufferDescriptorTable.CopyBuffersToClient(clientProcess.MemoryManager);
if (clientResult != KernelResult.Success)
@@ -699,11 +699,11 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
return serverResult;
}
- //Copy header.
+ // Copy header.
System.Device.Memory.WriteUInt32((long)clientMsg.DramAddress + 0, serverHeader.Word0);
System.Device.Memory.WriteUInt32((long)clientMsg.DramAddress + 4, serverHeader.Word1);
- //Copy handles.
+ // Copy handles.
uint offset;
if (serverHeader.HasHandles)
@@ -763,7 +763,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
offset = 2;
}
- //Copy pointer/receive list buffers.
+ // Copy pointer/receive list buffers.
uint recvListDstOffset = 0;
for (int index = 0; index < serverHeader.PointerBuffersCount; index++)
@@ -811,7 +811,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
offset += 2;
}
- //Set send, receive and exchange buffer descriptors to zero.
+ // Set send, receive and exchange buffer descriptors to zero.
uint totalBuffersCount =
serverHeader.SendBuffersCount +
serverHeader.ReceiveBuffersCount +
@@ -828,7 +828,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
offset += 3;
}
- //Copy raw data.
+ // Copy raw data.
if (serverHeader.RawDataSizeInWords != 0)
{
ulong copyDst = clientMsg.Address + offset * 4;
@@ -861,7 +861,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
}
}
- //Unmap buffers from server.
+ // Unmap buffers from server.
clientResult = request.BufferDescriptorTable.UnmapServerBuffers(serverProcess.MemoryManager);
if (clientResult != KernelResult.Success)
@@ -1125,9 +1125,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
continue;
}
- //Client sessions can only be disconnected on async requests (because
- //the client would be otherwise blocked waiting for the response), so
- //we only need to handle the async case here.
+ // Client sessions can only be disconnected on async requests (because
+ // the client would be otherwise blocked waiting for the response), so
+ // we only need to handle the async case here.
if (request.AsyncEvent != null)
{
SendResultToAsyncRequestClient(request, KernelResult.PortRemoteClosed);
@@ -1204,7 +1204,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
private void WakeClientThread(KSessionRequest request, KernelResult result)
{
- //Wait client thread waiting for a response for the given request.
+ // Wait client thread waiting for a response for the given request.
if (request.AsyncEvent != null)
{
SendResultToAsyncRequestClient(request, result);
@@ -1237,7 +1237,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Ipc
private void WakeServerThreads(KernelResult result)
{
- //Wake all server threads waiting for requests.
+ // Wake all server threads waiting for requests.
System.CriticalSection.Enter();
foreach (KThread thread in WaitingThreads)
diff --git a/Ryujinx.HLE/HOS/Kernel/Memory/KMemoryManager.cs b/Ryujinx.HLE/HOS/Kernel/Memory/KMemoryManager.cs
index 7a40139c..448ae54c 100644
--- a/Ryujinx.HLE/HOS/Kernel/Memory/KMemoryManager.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Memory/KMemoryManager.cs
@@ -23,8 +23,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
private const int KMemoryBlockSize = 0x40;
- //We need 2 blocks for the case where a big block
- //needs to be split in 2, plus one block that will be the new one inserted.
+ // We need 2 blocks for the case where a big block
+ // needs to be split in 2, plus one block that will be the new one inserted.
private const int MaxBlocksNeededForInsertion = 2;
private LinkedList<KMemoryBlock> _blocks;
@@ -215,13 +215,13 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
if (CodeRegionStart - baseAddress >= addrSpaceEnd - CodeRegionEnd)
{
- //Has more space before the start of the code region.
+ // Has more space before the start of the code region.
mapBaseAddress = baseAddress;
mapAvailableSize = CodeRegionStart - baseAddress;
}
else
{
- //Has more space after the end of the code region.
+ // Has more space after the end of the code region.
mapBaseAddress = CodeRegionEnd;
mapAvailableSize = addrSpaceEnd - CodeRegionEnd;
}
@@ -250,8 +250,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
tlsIoRegion.AslrOffset = GetRandomValue(0, aslrMaxOffset >> 21) << 21;
}
- //Regions are sorted based on ASLR offset.
- //When ASLR is disabled, the order is Map, Heap, NewMap and TlsIo.
+ // Regions are sorted based on ASLR offset.
+ // When ASLR is disabled, the order is Map, Heap, NewMap and TlsIo.
aliasRegion.Start = mapBaseAddress + aliasRegion.AslrOffset;
aliasRegion.End = aliasRegion.Start + aliasRegion.Size;
heapRegion.Start = mapBaseAddress + heapRegion.AslrOffset;
@@ -336,8 +336,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
private KernelResult InitializeBlocks(ulong addrSpaceStart, ulong addrSpaceEnd)
{
- //First insertion will always need only a single block,
- //because there's nothing else to split.
+ // First insertion will always need only a single block,
+ // because there's nothing else to split.
if (!_blockAllocator.CanAllocate(1))
{
return KernelResult.OutOfResource;
@@ -466,13 +466,13 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
public KernelResult MapNormalMemory(long address, long size, MemoryPermission permission)
{
- //TODO.
+ // TODO.
return KernelResult.Success;
}
public KernelResult MapIoMemory(long address, long size, MemoryPermission permission)
{
- //TODO.
+ // TODO.
return KernelResult.Success;
}
@@ -696,7 +696,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
return result;
}
- //TODO: Missing some checks here.
+ // TODO: Missing some checks here.
if (!_blockAllocator.CanAllocate(MaxBlocksNeededForInsertion * 2))
{
@@ -730,7 +730,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
if (currentHeapSize <= size)
{
- //Expand.
+ // Expand.
ulong diffSize = size - currentHeapSize;
lock (_blocks)
@@ -800,7 +800,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
}
else
{
- //Shrink.
+ // Shrink.
ulong freeAddr = HeapRegionStart + size;
ulong diffSize = currentHeapSize - size;
@@ -1147,7 +1147,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
out _,
out MemoryAttribute attribute))
{
- //TODO: Missing checks.
+ // TODO: Missing checks.
if (!_blockAllocator.CanAllocate(MaxBlocksNeededForInsertion))
{
@@ -1225,8 +1225,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
{
MemoryState newState = oldState;
- //If writing into the code region is allowed, then we need
- //to change it to mutable.
+ // If writing into the code region is allowed, then we need
+ // to change it to mutable.
if ((permission & MemoryPermission.Write) != 0)
{
if (oldState == MemoryState.CodeStatic)
@@ -1362,8 +1362,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
lock (_blocks)
{
- //Scan, ensure that the region can be unmapped (all blocks are heap or
- //already unmapped), fill pages list for freeing memory.
+ // Scan, ensure that the region can be unmapped (all blocks are heap or
+ // already unmapped), fill pages list for freeing memory.
ulong heapMappedSize = 0;
KPageList pageList = new KPageList();
@@ -1400,7 +1400,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
return KernelResult.OutOfResource;
}
- //Try to unmap all the heap mapped memory inside range.
+ // Try to unmap all the heap mapped memory inside range.
KernelResult result = KernelResult.Success;
foreach (KMemoryInfo info in IterateOverRange(address, endAddr))
@@ -1416,7 +1416,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
if (result != KernelResult.Success)
{
- //If we failed to unmap, we need to remap everything back again.
+ // If we failed to unmap, we need to remap everything back again.
MapPhysicalMemory(pageList, address, blockAddress + blockSize);
break;
@@ -1508,7 +1508,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
MemoryAttribute attributeMask,
MemoryAttribute attributeExpected)
{
- //Client -> server.
+ // Client -> server.
return CopyDataFromOrToCurrentProcess(
size,
src,
@@ -1531,7 +1531,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
MemoryAttribute attributeExpected,
ulong src)
{
- //Server -> client.
+ // Server -> client.
return CopyDataFromOrToCurrentProcess(
size,
dst,
@@ -1731,7 +1731,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
foreach (KMemoryInfo info in IterateOverRange(address, endAddrRounded))
{
- //Check if the block state matches what we expect.
+ // Check if the block state matches what we expect.
if ((info.State & stateMask) != stateMask ||
(info.Permission & permission) != permission ||
(info.Attribute & attributeMask) != MemoryAttribute.None)
@@ -1830,12 +1830,12 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
ulong unusedSizeAfter;
- //When the start address is unaligned, we can't safely map the
- //first page as it would expose other undesirable information on the
- //target process. So, instead we allocate new pages, copy the data
- //inside the range, and then clear the remaining space.
- //The same also holds for the last page, if the end address
- //(address + size) is also not aligned.
+ // When the start address is unaligned, we can't safely map the
+ // first page as it would expose other undesirable information on the
+ // target process. So, instead we allocate new pages, copy the data
+ // inside the range, and then clear the remaining space.
+ // The same also holds for the last page, if the end address
+ // (address + size) is also not aligned.
if (copyData)
{
ulong unusedSizeBefore = address - addressTruncated;
@@ -1883,7 +1883,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
if (endAddrTruncated != endAddrRounded)
{
- //End is also not aligned...
+ // End is also not aligned...
dstLastPagePa = AllocateSinglePage(region, aslrDisabled);
if (dstLastPagePa == 0)
@@ -1980,9 +1980,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
for (int unit = MappingUnitSizes.Length - 1; unit >= 0 && va == 0; unit--)
{
- int alignemnt = MappingUnitSizes[unit];
+ int alignment = MappingUnitSizes[unit];
- va = AllocateVa(AliasRegionStart, regionPagesCount, neededPagesCount, alignemnt);
+ va = AllocateVa(AliasRegionStart, regionPagesCount, neededPagesCount, alignment);
}
if (va == 0)
@@ -2109,7 +2109,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
{
foreach (KMemoryInfo info in IterateOverRange(address, endAddrTruncated))
{
- //Check if the block state matches what we expect.
+ // Check if the block state matches what we expect.
if ((info.State & stateMask) != stateMask ||
(info.Attribute & attributeMask) != MemoryAttribute.IpcMapped)
{
@@ -2331,7 +2331,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
{
info = node.Value.GetInfo();
- //Check if the block state matches what we expect.
+ // Check if the block state matches what we expect.
if ( firstState != info.State ||
firstPermission != info.Permission ||
(info.Attribute & attributeMask) != attributeExpected ||
@@ -2367,7 +2367,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
{
foreach (KMemoryInfo info in IterateOverRange(address, address + size))
{
- //Check if the block state matches what we expect.
+ // Check if the block state matches what we expect.
if ((info.State & stateMask) != stateExpected ||
(info.Permission & permissionMask) != permissionExpected ||
(info.Attribute & attributeMask) != attributeExpected)
@@ -2404,9 +2404,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
MemoryPermission newPermission,
MemoryAttribute newAttribute)
{
- //Insert new block on the list only on areas where the state
- //of the block matches the state specified on the old* state
- //arguments, otherwise leave it as is.
+ // Insert new block on the list only on areas where the state
+ // of the block matches the state specified on the old* state
+ // arguments, otherwise leave it as is.
int oldCount = _blocks.Count;
oldAttribute |= MemoryAttribute.IpcAndDeviceMapped;
@@ -2451,7 +2451,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
newNode.Value.SetState(newPermission, newState, newAttribute);
- MergeEqualStateNeighbours(newNode);
+ MergeEqualStateNeighbors(newNode);
}
if (currEndAddr - 1 >= endAddr - 1)
@@ -2472,8 +2472,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
MemoryPermission permission = MemoryPermission.None,
MemoryAttribute attribute = MemoryAttribute.None)
{
- //Inserts new block at the list, replacing and spliting
- //existing blocks as needed.
+ // Inserts new block at the list, replacing and splitting
+ // existing blocks as needed.
int oldCount = _blocks.Count;
ulong endAddr = baseAddress + pagesCount * PageSize;
@@ -2505,7 +2505,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
newNode.Value.SetState(permission, state, attribute);
- MergeEqualStateNeighbours(newNode);
+ MergeEqualStateNeighbors(newNode);
}
if (currEndAddr - 1 >= endAddr - 1)
@@ -2537,9 +2537,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
BlockMutator blockMutate,
MemoryPermission permission = MemoryPermission.None)
{
- //Inserts new block at the list, replacing and spliting
- //existing blocks as needed, then calling the callback
- //function on the new block.
+ // Inserts new block at the list, replacing and splitting
+ // existing blocks as needed, then calling the callback
+ // function on the new block.
int oldCount = _blocks.Count;
ulong endAddr = baseAddress + pagesCount * PageSize;
@@ -2573,7 +2573,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
blockMutate(newBlock, permission);
- MergeEqualStateNeighbours(newNode);
+ MergeEqualStateNeighbors(newNode);
}
if (currEndAddr - 1 >= endAddr - 1)
@@ -2587,7 +2587,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
_blockAllocator.Count += _blocks.Count - oldCount;
}
- private void MergeEqualStateNeighbours(LinkedListNode<KMemoryBlock> node)
+ private void MergeEqualStateNeighbors(LinkedListNode<KMemoryBlock> node)
{
KMemoryBlock block = node.Value;
diff --git a/Ryujinx.HLE/HOS/Kernel/Memory/KMemoryRegionManager.cs b/Ryujinx.HLE/HOS/Kernel/Memory/KMemoryRegionManager.cs
index 92cef559..bb4989fc 100644
--- a/Ryujinx.HLE/HOS/Kernel/Memory/KMemoryRegionManager.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Memory/KMemoryRegionManager.cs
@@ -126,21 +126,21 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
ulong blockPagesCount = bestFitBlockSize / KMemoryManager.PageSize;
- //Check if this is the best fit for this page size.
- //If so, try allocating as much requested pages as possible.
+ // Check if this is the best fit for this page size.
+ // If so, try allocating as much requested pages as possible.
while (blockPagesCount <= pagesCount)
{
ulong address = AllocatePagesForOrder(blockIndex, backwards, bestFitBlockSize);
- //The address being zero means that no free space was found on that order,
- //just give up and try with the next one.
+ // The address being zero means that no free space was found on that order,
+ // just give up and try with the next one.
if (address == 0)
{
break;
}
- //Add new allocated page(s) to the pages list.
- //If an error occurs, then free all allocated pages and fail.
+ // Add new allocated page(s) to the pages list.
+ // If an error occurs, then free all allocated pages and fail.
KernelResult result = pageList.AddRange(address, blockPagesCount);
if (result != KernelResult.Success)
@@ -159,13 +159,13 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
}
}
- //Success case, all requested pages were allocated successfully.
+ // Success case, all requested pages were allocated successfully.
if (pagesCount == 0)
{
return KernelResult.Success;
}
- //Error case, free allocated pages and return out of memory.
+ // Error case, free allocated pages and return out of memory.
foreach (KPageNode pageNode in pageList)
{
FreePages(pageNode.Address, pageNode.PagesCount);
@@ -321,8 +321,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
if (address != 0)
{
- //If we are using a larger order than best fit, then we should
- //split it into smaller blocks.
+ // If we are using a larger order than best fit, then we should
+ // split it into smaller blocks.
ulong firstFreeBlockSize = 1UL << block.Order;
if (firstFreeBlockSize > bestFitBlockSize)
@@ -416,7 +416,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
}
}
- //Free inside aligned region.
+ // Free inside aligned region.
ulong baseAddress = addressRounded;
while (baseAddress < endAddrTruncated)
@@ -430,7 +430,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
int nextBlockIndex = blockIndex - 1;
- //Free region between Address and aligned region start.
+ // Free region between Address and aligned region start.
baseAddress = addressRounded;
for (blockIndex = nextBlockIndex; blockIndex >= 0; blockIndex--)
@@ -445,7 +445,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
}
}
- //Free region between aligned region end and End Address.
+ // Free region between aligned region end and End Address.
baseAddress = endAddrTruncated;
for (blockIndex = nextBlockIndex; blockIndex >= 0; blockIndex--)
diff --git a/Ryujinx.HLE/HOS/Kernel/Process/HleProcessDebugger.cs b/Ryujinx.HLE/HOS/Kernel/Process/HleProcessDebugger.cs
index d31f95b4..223bf5da 100644
--- a/Ryujinx.HLE/HOS/Kernel/Process/HleProcessDebugger.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Process/HleProcessDebugger.cs
@@ -1,10 +1,8 @@
using ChocolArm64.Memory;
using ChocolArm64.State;
-using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.Diagnostics.Demangler;
using Ryujinx.HLE.HOS.Kernel.Memory;
using Ryujinx.HLE.Loaders.Elf;
-using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -75,7 +73,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
}
}
- //TODO: ARM32.
+ // TODO: ARM32.
long framePointer = (long)threadState.X29;
trace.AppendLine($"Process: {_owner.Name}, PID: {_owner.Pid}");
@@ -89,8 +87,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
break;
}
- //Note: This is the return address, we need to subtract one instruction
- //worth of bytes to get the branch instruction address.
+ // Note: This is the return address, we need to subtract one instruction
+ // worth of bytes to get the branch instruction address.
AppendTrace(_owner.CpuMemory.ReadInt64(framePointer + 8) - 4);
framePointer = _owner.CpuMemory.ReadInt64(framePointer);
@@ -245,7 +243,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
long ehHdrEndOffset = memory.ReadInt32(mod0Offset + 0x14) + mod0Offset;
long modObjOffset = memory.ReadInt32(mod0Offset + 0x18) + mod0Offset;
- //TODO: Elf32.
+ // TODO: Elf32.
while (true)
{
long tagVal = memory.ReadInt64(dynamicOffset + 0);
diff --git a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs
index 909f6333..1b5a6772 100644
--- a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs
@@ -350,7 +350,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
private KernelResult ParseProcessInfo(ProcessCreationInfo creationInfo)
{
- //Ensure that the current kernel version is equal or above to the minimum required.
+ // Ensure that the current kernel version is equal or above to the minimum required.
uint requiredKernelVersionMajor = (uint)Capabilities.KernelReleaseVersion >> 19;
uint requiredKernelVersionMinor = ((uint)Capabilities.KernelReleaseVersion >> 15) & 0xf;
@@ -429,7 +429,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
if (_freeTlsPages.Count > 0)
{
- //If we have free TLS pages available, just use the first one.
+ // If we have free TLS pages available, just use the first one.
KTlsPageInfo pageInfo = _freeTlsPages.Values.First();
if (!pageInfo.TryGetFreePage(out address))
@@ -448,7 +448,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
}
else
{
- //Otherwise, we need to create a new one.
+ // Otherwise, we need to create a new one.
result = AllocateTlsPage(out KTlsPageInfo pageInfo);
if (result == KernelResult.Success)
@@ -522,7 +522,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
if (_fullTlsPages.TryGetValue(tlsPageAddr, out pageInfo))
{
- //TLS page was full, free slot and move to free pages tree.
+ // TLS page was full, free slot and move to free pages tree.
_fullTlsPages.Remove(tlsPageAddr);
_freeTlsPages.Add(tlsPageAddr, pageInfo);
@@ -538,8 +538,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
if (pageInfo.IsEmpty())
{
- //TLS page is now empty, we should ensure it is removed
- //from all trees, and free the memory it was using.
+ // TLS page is now empty, we should ensure it is removed
+ // from all trees, and free the memory it was using.
_freeTlsPages.Remove(tlsPageAddr);
System.CriticalSection.Leave();
@@ -574,7 +574,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
private void GenerateRandomEntropy()
{
- //TODO.
+ // TODO.
}
public KernelResult Start(int mainThreadPriority, ulong stackSize)
@@ -603,9 +603,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
ulong neededSize = stackSizeRounded + _imageSize;
- //Check if the needed size for the code and the stack will fit on the
- //memory usage capacity of this Process. Also check for possible overflow
- //on the above addition.
+ // Check if the needed size for the code and the stack will fit on the
+ // memory usage capacity of this Process. Also check for possible overflow
+ // on the above addition.
if (neededSize > _memoryUsageCapacity ||
neededSize < stackSizeRounded)
{
@@ -742,10 +742,10 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
SetState(newState);
- //TODO: We can't call KThread.Start from a non-guest thread.
- //We will need to make some changes to allow the creation of
- //dummy threads that will be used to initialize the current
- //thread on KCoreContext so that GetCurrentThread doesn't fail.
+ // TODO: We can't call KThread.Start from a non-guest thread.
+ // We will need to make some changes to allow the creation of
+ // dummy threads that will be used to initialize the current
+ // thread on KCoreContext so that GetCurrentThread doesn't fail.
/* Result = MainThread.Start();
if (Result != KernelResult.Success)
@@ -935,7 +935,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
if (shallTerminate)
{
- //UnpauseAndTerminateAllThreadsExcept(System.Scheduler.GetCurrentThread());
+ // UnpauseAndTerminateAllThreadsExcept(System.Scheduler.GetCurrentThread());
HandleTable.Destroy();
@@ -948,12 +948,12 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
private void UnpauseAndTerminateAllThreadsExcept(KThread thread)
{
- //TODO.
+ // TODO.
}
private void SignalExitForDebugEvent()
{
- //TODO: Debug events.
+ // TODO: Debug events.
}
private void SignalExit()
diff --git a/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs b/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs
index 964762bb..2396aea8 100644
--- a/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Process/KProcessCapabilities.cs
@@ -131,7 +131,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
int codeMask = 1 << (32 - BitUtils.CountLeadingZeros32(code + 1));
- //Check if the property was already set.
+ // Check if the property was already set.
if (((mask0 & codeMask) & 0x1e008) != 0)
{
return KernelResult.InvalidCombination;
@@ -223,7 +223,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
case 0x800:
{
- //TODO: GIC distributor check.
+ // TODO: GIC distributor check.
int irq0 = (cap >> 12) & 0x3ff;
int irq1 = (cap >> 22) & 0x3ff;
@@ -256,7 +256,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
case 0x4000:
{
- //Note: This check is bugged on kernel too, we are just replicating the bug here.
+ // Note: This check is bugged on kernel too, we are just replicating the bug here.
if ((KernelReleaseVersion >> 17) != 0 || cap < 0x80000)
{
return KernelResult.ReservedValue;
diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcSystem.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcSystem.cs
index efc10512..5f971131 100644
--- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcSystem.cs
+++ b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcSystem.cs
@@ -161,7 +161,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
process = thread.Owner;
}
- //TODO: KDebugEvent.
+ // TODO: KDebugEvent.
}
pid = process?.Pid ?? 0;
@@ -549,10 +549,10 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
switch (id)
{
- //Memory region capacity.
+ // Memory region capacity.
case 0: value = (long)region.Size; break;
- //Memory region free space.
+ // Memory region free space.
case 1:
{
ulong freePagesCount = region.GetFreePages();
diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcTable.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcTable.cs
index dd98e8a0..23934649 100644
--- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcTable.cs
+++ b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcTable.cs
@@ -151,10 +151,10 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
}
}
- //For functions returning output values, the first registers
- //are used to hold pointers where the value will be stored,
- //so they can't be used to pass argument and we must
- //skip them.
+ // For functions returning output values, the first registers
+ // are used to hold pointers where the value will be stored,
+ // so they can't be used to pass argument and we must
+ // skip them.
int byRefArgsCount = 0;
for (int index = 0; index < methodArgs.Length; index++)
@@ -165,7 +165,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
}
}
- //Print all the arguments for debugging purposes.
+ // Print all the arguments for debugging purposes.
int inputArgsCount = methodArgs.Length - byRefArgsCount;
generator.Emit(OpCodes.Ldc_I4_S, inputArgsCount);
@@ -200,7 +200,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
generator.Emit(OpCodes.Call, printArgsMethod);
- //Call the SVC function handler.
+ // Call the SVC function handler.
generator.Emit(OpCodes.Ldarg_0);
List<LocalBuilder> locals = new List<LocalBuilder>();
@@ -239,7 +239,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
Type retType = methodInfo.ReturnType;
- //Print result code.
+ // Print result code.
if (retType == typeof(KernelResult))
{
MethodInfo printResultMethod = typeof(SvcTable).GetMethod(nameof(PrintResult), staticNonPublic);
@@ -249,7 +249,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
generator.Emit(OpCodes.Call, printResultMethod);
}
- //Save return value into register X0 (when the method has a return value).
+ // Save return value into register X0 (when the method has a return value).
if (retType != typeof(void))
{
CheckIfTypeIsSupported(retType, svcName);
@@ -275,7 +275,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
generator.Emit(OpCodes.Stfld, GetStateFieldX(outRegIndex++));
}
- //Zero out the remaining unused registers.
+ // Zero out the remaining unused registers.
while (outRegIndex < SvcFuncMaxArguments)
{
generator.Emit(OpCodes.Ldarg_1);
diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcThread.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcThread.cs
index fa0b3a6c..e1f018c1 100644
--- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcThread.cs
+++ b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcThread.cs
@@ -175,7 +175,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
public KernelResult SetThreadPriority(int handle, int priority)
{
- //TODO: NPDM check.
+ // TODO: NPDM check.
KThread thread = _process.HandleTable.GetKThread(handle);
diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/HleScheduler.cs b/Ryujinx.HLE/HOS/Kernel/Threading/HleScheduler.cs
index d5dbb4d8..42eed26a 100644
--- a/Ryujinx.HLE/HOS/Kernel/Threading/HleScheduler.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Threading/HleScheduler.cs
@@ -68,8 +68,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (hasThreadExecuting)
{
- //If this is not the thread that is currently executing, we need
- //to request an interrupt to allow safely starting another thread.
+ // If this is not the thread that is currently executing, we need
+ // to request an interrupt to allow safely starting another thread.
if (!currentThread.Context.IsCurrentThread())
{
currentThread.Context.RequestInterrupt();
@@ -80,8 +80,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
CoreManager.Reset(currentThread.Context.Work);
}
- //Advance current core and try picking a thread,
- //keep advancing if it is null.
+ // Advance current core and try picking a thread,
+ // keep advancing if it is null.
for (int core = 0; core < 4; core++)
{
_currentCore = (_currentCore + 1) % CpuCoresCount;
@@ -100,8 +100,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
}
}
- //If nothing was running before, then we are on a "external"
- //HLE thread, we don't need to wait.
+ // If nothing was running before, then we are on a "external"
+ // HLE thread, we don't need to wait.
if (!hasThreadExecuting)
{
return;
@@ -114,9 +114,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
private void PreemptCurrentThread()
{
- //Preempts current thread every 10 milliseconds on a round-robin fashion,
- //when multi core scheduling is disabled, to try ensuring that all threads
- //gets a chance to run.
+ // Preempts current thread every 10 milliseconds on a round-robin fashion,
+ // when multi core scheduling is disabled, to try ensuring that all threads
+ // gets a chance to run.
while (_keepPreempting)
{
lock (CoreContexts)
diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs b/Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs
index b11df61e..166cf064 100644
--- a/Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Threading/KAddressArbiter.cs
@@ -207,7 +207,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
signaledThreads.Enqueue(thread);
- //If the count is <= 0, we should signal all threads waiting.
+ // If the count is <= 0, we should signal all threads waiting.
if (count >= 1 && --count == 0)
{
break;
@@ -234,7 +234,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
{
if (!KernelTransfer.UserToKernelInt32(_system, address, out mutexValue))
{
- //Invalid address.
+ // Invalid address.
requester.SignaledObj = null;
requester.ObjSyncResult = KernelResult.InvalidMemState;
@@ -243,12 +243,12 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (mutexValue != 0)
{
- //Update value to indicate there is a mutex waiter now.
+ // Update value to indicate there is a mutex waiter now.
newMutexValue = mutexValue | HasListenersMask;
}
else
{
- //No thread owning the mutex, assign to requesting thread.
+ // No thread owning the mutex, assign to requesting thread.
newMutexValue = requester.ThreadHandleForUserMutex;
}
}
@@ -256,7 +256,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (mutexValue == 0)
{
- //We now own the mutex.
+ // We now own the mutex.
requester.SignaledObj = null;
requester.ObjSyncResult = KernelResult.Success;
@@ -271,12 +271,12 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (mutexOwner != null)
{
- //Mutex already belongs to another thread, wait for it.
+ // Mutex already belongs to another thread, wait for it.
mutexOwner.AddMutexWaiter(requester);
}
else
{
- //Invalid mutex owner.
+ // Invalid mutex owner.
requester.SignaledObj = null;
requester.ObjSyncResult = KernelResult.InvalidHandle;
@@ -513,9 +513,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
int offset;
- //The value is decremented if the number of threads waiting is less
- //or equal to the Count of threads to be signaled, or Count is zero
- //or negative. It is incremented if there are no threads waiting.
+ // The value is decremented if the number of threads waiting is less
+ // or equal to the Count of threads to be signaled, or Count is zero
+ // or negative. It is incremented if there are no threads waiting.
int waitingCount = 0;
foreach (KThread thread in ArbiterThreads.Where(x => x.MutexAddress == address))
@@ -572,7 +572,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
{
signaledThreads.Enqueue(thread);
- //If the count is <= 0, we should signal all threads waiting.
+ // If the count is <= 0, we should signal all threads waiting.
if (count >= 1 && --count == 0)
{
break;
diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/KCriticalSection.cs b/Ryujinx.HLE/HOS/Kernel/Threading/KCriticalSection.cs
index 841d0d69..39c857b5 100644
--- a/Ryujinx.HLE/HOS/Kernel/Threading/KCriticalSection.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Threading/KCriticalSection.cs
@@ -57,17 +57,17 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (currentHleThread == null)
{
- //Nothing is running, we can perform the context switch immediately.
+ // Nothing is running, we can perform the context switch immediately.
coreContext.ContextSwitch();
}
else if (currentHleThread.IsCurrentThread())
{
- //Thread running on the current core, context switch will block.
+ // Thread running on the current core, context switch will block.
doContextSwitch = true;
}
else
{
- //Thread running on another core, request a interrupt.
+ // Thread running on another core, request a interrupt.
currentHleThread.RequestInterrupt();
}
}
diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs b/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs
index c9686df3..8d2cdfce 100644
--- a/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs
@@ -55,7 +55,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
KThread selectedThread = scheduledThreads.FirstOrDefault(x => x.DynamicPriority == prio);
- //Yield priority queue.
+ // Yield priority queue.
if (selectedThread != null)
{
SchedulingData.Reschedule(prio, core, selectedThread);
@@ -82,7 +82,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
}
}
- //If the candidate was scheduled after the current thread, then it's not worth it.
+ // If the candidate was scheduled after the current thread, then it's not worth it.
if (selectedThread == null || selectedThread.LastScheduledTime >= thread.LastScheduledTime)
{
yield return thread;
@@ -90,8 +90,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
}
}
- //Select candidate threads that could run on this core.
- //Only take into account threads that are not yet selected.
+ // Select candidate threads that could run on this core.
+ // Only take into account threads that are not yet selected.
KThread dst = SuitableCandidates().FirstOrDefault(x => x.DynamicPriority == prio);
if (dst != null)
@@ -101,8 +101,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
selectedThread = dst;
}
- //If the priority of the currently selected thread is lower than preemption priority,
- //then allow threads with lower priorities to be selected aswell.
+ // If the priority of the currently selected thread is lower than preemption priority,
+ // then allow threads with lower priorities to be selected aswell.
if (selectedThread != null && selectedThread.DynamicPriority > prio)
{
Func<KThread, bool> predicate = x => x.DynamicPriority >= selectedThread.DynamicPriority;
@@ -131,8 +131,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
for (int core = 0; core < CpuCoresCount; core++)
{
- //If the core is not idle (there's already a thread running on it),
- //then we don't need to attempt load balancing.
+ // If the core is not idle (there's already a thread running on it),
+ // then we don't need to attempt load balancing.
if (SchedulingData.ScheduledThreads(core).Any())
{
continue;
@@ -144,8 +144,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
KThread dst = null;
- //Select candidate threads that could run on this core.
- //Give preference to threads that are not yet selected.
+ // Select candidate threads that could run on this core.
+ // Give preference to threads that are not yet selected.
foreach (KThread thread in SchedulingData.SuggestedThreads(core))
{
if (thread.CurrentCore < 0 || thread != CoreContexts[thread.CurrentCore].SelectedThread)
@@ -158,11 +158,11 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
srcCoresHighestPrioThreads[srcCoresHighestPrioThreadsCount++] = thread.CurrentCore;
}
- //Not yet selected candidate found.
+ // Not yet selected candidate found.
if (dst != null)
{
- //Priorities < 2 are used for the kernel message dispatching
- //threads, we should skip load balancing entirely.
+ // Priorities < 2 are used for the kernel message dispatching
+ // threads, we should skip load balancing entirely.
if (dst.DynamicPriority >= 2)
{
SchedulingData.TransferToCore(dst.DynamicPriority, core, dst);
@@ -173,8 +173,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
continue;
}
- //All candiates are already selected, choose the best one
- //(the first one that doesn't make the source core idle if moved).
+ // All candidates are already selected, choose the best one
+ // (the first one that doesn't make the source core idle if moved).
for (int index = 0; index < srcCoresHighestPrioThreadsCount; index++)
{
int srcCore = srcCoresHighestPrioThreads[index];
@@ -183,8 +183,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (src != null)
{
- //Run the second thread on the queue on the source core,
- //move the first one to the current core.
+ // Run the second thread on the queue on the source core,
+ // move the first one to the current core.
KThread origSelectedCoreSrc = CoreContexts[srcCore].SelectedThread;
CoreContexts[srcCore].SelectThread(src);
diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs b/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs
index 327b0418..865551a2 100644
--- a/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Threading/KSynchronization.cs
@@ -20,7 +20,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
_system.CriticalSection.Enter();
- //Check if objects are already signaled before waiting.
+ // Check if objects are already signaled before waiting.
for (int index = 0; index < syncObjs.Length; index++)
{
if (!syncObjs[index].IsSignaled())
diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs b/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs
index ebde34ba..50c71ea9 100644
--- a/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs
@@ -276,7 +276,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
public void Exit()
{
- //TODO: Debug event.
+ // TODO: Debug event.
if (Owner != null)
{
@@ -352,7 +352,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (DynamicPriority < KScheduler.PrioritiesCount)
{
- //Move current thread to the end of the queue.
+ // Move current thread to the end of the queue.
_schedulingData.Reschedule(DynamicPriority, CurrentCore, this);
}
@@ -383,7 +383,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (DynamicPriority < KScheduler.PrioritiesCount)
{
- //Move current thread to the end of the queue.
+ // Move current thread to the end of the queue.
_schedulingData.Reschedule(prio, core, this);
Func<KThread, bool> predicate = x => x.DynamicPriority == prio;
@@ -407,8 +407,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
}
}
- //If the candidate was scheduled after the current thread, then it's not worth it,
- //unless the priority is higher than the current one.
+ // If the candidate was scheduled after the current thread, then it's not worth it,
+ // unless the priority is higher than the current one.
if (nextThreadOnCurrentQueue.LastScheduledTime >= thread.LastScheduledTime ||
nextThreadOnCurrentQueue.DynamicPriority < thread.DynamicPriority)
{
@@ -524,7 +524,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
{
if (pause)
{
- //Pause, the force pause flag should be clear (thread is NOT paused).
+ // Pause, the force pause flag should be clear (thread is NOT paused).
if ((_forcePauseFlags & ThreadSchedState.ThreadPauseFlag) == 0)
{
_forcePauseFlags |= ThreadSchedState.ThreadPauseFlag;
@@ -538,7 +538,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
}
else
{
- //Unpause, the force pause flag should be set (thread is paused).
+ // Unpause, the force pause flag should be set (thread is paused).
if ((_forcePauseFlags & ThreadSchedState.ThreadPauseFlag) != 0)
{
ThreadSchedState oldForcePauseFlags = _forcePauseFlags;
@@ -604,7 +604,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
bool useOverride = _affinityOverrideCount != 0;
- //The value -3 is "do not change the preferred core".
+ // The value -3 is "do not change the preferred core".
if (newCore == -3)
{
newCore = useOverride ? _preferredCoreOverride : PreferredCore;
@@ -766,7 +766,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
do
{
- //Skip all threads that are not waiting for this mutex.
+ // Skip all threads that are not waiting for this mutex.
while (currentNode != null && currentNode.Value.MutexAddress != mutexAddress)
{
currentNode = currentNode.Next;
@@ -785,12 +785,12 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (newMutexOwner != null)
{
- //New owner was already selected, re-insert on new owner list.
+ // New owner was already selected, re-insert on new owner list.
newMutexOwner.AddToMutexWaitersList(currentNode.Value);
}
else
{
- //New owner not selected yet, use current thread.
+ // New owner not selected yet, use current thread.
newMutexOwner = currentNode.Value;
}
@@ -812,9 +812,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
private void UpdatePriorityInheritance()
{
- //If any of the threads waiting for the mutex has
- //higher priority than the current thread, then
- //the current thread inherits that priority.
+ // If any of the threads waiting for the mutex has
+ // higher priority than the current thread, then
+ // the current thread inherits that priority.
int highestPriority = BasePriority;
if (_mutexWaiters.First != null)
@@ -837,7 +837,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (MutexOwner != null)
{
- //Remove and re-insert to ensure proper sorting based on new priority.
+ // Remove and re-insert to ensure proper sorting based on new priority.
MutexOwner._mutexWaiters.Remove(_mutexWaiterNode);
MutexOwner.AddToMutexWaitersList(this);
@@ -877,7 +877,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
if (oldFlags == ThreadSchedState.Running)
{
- //Was running, now it's stopped.
+ // Was running, now it's stopped.
if (CurrentCore >= 0)
{
_schedulingData.Unschedule(DynamicPriority, CurrentCore, this);
@@ -893,7 +893,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
}
else if (SchedFlags == ThreadSchedState.Running)
{
- //Was stopped, now it's running.
+ // Was stopped, now it's running.
if (CurrentCore >= 0)
{
_schedulingData.Schedule(DynamicPriority, CurrentCore, this);
@@ -918,7 +918,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
return;
}
- //Remove thread from the old priority queues.
+ // Remove thread from the old priority queues.
if (CurrentCore >= 0)
{
_schedulingData.Unschedule(oldPriority, CurrentCore, this);
@@ -932,7 +932,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
}
}
- //Add thread to the new priority queues.
+ // Add thread to the new priority queues.
KThread currentThread = _scheduler.GetCurrentThread();
if (CurrentCore >= 0)
@@ -965,7 +965,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
return;
}
- //Remove thread from the old priority queues.
+ // Remove thread from the old priority queues.
for (int core = 0; core < KScheduler.CpuCoresCount; core++)
{
if (((oldAffinityMask >> core) & 1) != 0)
@@ -981,7 +981,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
}
}
- //Add thread to the new priority queues.
+ // Add thread to the new priority queues.
for (int core = 0; core < KScheduler.CpuCoresCount; core++)
{
if (((AffinityMask >> core) & 1) != 0)
@@ -1069,7 +1069,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
System.CriticalSection.Enter();
- //Wake up all threads that may be waiting for a mutex being held by this thread.
+ // Wake up all threads that may be waiting for a mutex being held by this thread.
foreach (KThread thread in _mutexWaiters)
{
thread.MutexOwner = null;