mirror of
https://github.com/Ryubing/Ryujinx.git
synced 2025-11-23 16:50:53 -05:00
[Ryujinx.HLE] Address dotnet-format issues (#5380)
* dotnet format style --severity info Some changes were manually reverted. * dotnet format analyzers --serverity info Some changes have been minimally adapted. * Restore a few unused methods and variables * Silence dotnet format IDE0060 warnings * Silence dotnet format IDE0052 warnings * Address or silence dotnet format IDE1006 warnings * Address dotnet format CA1816 warnings * Address or silence dotnet format CA2208 warnings * Address or silence dotnet format CA1806 and a few CA1854 warnings * Address dotnet format CA2211 warnings * Address dotnet format CA1822 warnings * Address or silence dotnet format CA1069 warnings * Make dotnet format succeed in style mode * Address or silence dotnet format CA2211 warnings * Address review comments * Address dotnet format CA2208 warnings properly * Make ProcessResult readonly * Address most dotnet format whitespace warnings * Apply dotnet format whitespace formatting A few of them have been manually reverted and the corresponding warning was silenced * Add previously silenced warnings back I have no clue how these disappeared * Revert formatting changes for while and for-loops * Format if-blocks correctly * Run dotnet format style after rebase * Run dotnet format whitespace after rebase * Run dotnet format style after rebase * Run dotnet format analyzers after rebase * Run dotnet format after rebase and remove unused usings - analyzers - style - whitespace * Disable 'prefer switch expression' rule * Add comments to disabled warnings * Fix a few disabled warnings * Fix naming rule violation, Convert shader properties to auto-property and convert values to const * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Start working on disabled warnings * Fix and silence a few dotnet-format warnings again * Run dotnet format after rebase * Use using declaration instead of block syntax * Address IDE0251 warnings * Address a few disabled IDE0060 warnings * Silence IDE0060 in .editorconfig * Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas" This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e. * dotnet format whitespace after rebase * First dotnet format pass * Fix naming rule violations * Fix typo * Add trailing commas, use targeted new and use array initializer * Fix build issues * Fix remaining build issues * Remove SuppressMessage for CA1069 where possible * Address dotnet format issues * Address formatting issues Co-authored-by: Ac_K <acoustik666@gmail.com> * Add GetHashCode implementation for RenderingSurfaceInfo * Explicitly silence CA1822 for every affected method in Syscall * Address formatting issues in Demangler.cs * Address review feedback Co-authored-by: Ac_K <acoustik666@gmail.com> * Revert marking service methods as static * Next dotnet format pass * Address review feedback --------- Co-authored-by: Ac_K <acoustik666@gmail.com>
This commit is contained in:
@@ -18,16 +18,16 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
[Service("ro:1")] // 7.0.0+
|
||||
class IRoInterface : DisposableIpcService
|
||||
{
|
||||
private const int MaxNrr = 0x40;
|
||||
private const int MaxNro = 0x40;
|
||||
private const int MaxMapRetries = 0x200;
|
||||
private const int MaxNrr = 0x40;
|
||||
private const int MaxNro = 0x40;
|
||||
private const int MaxMapRetries = 0x200;
|
||||
private const int GuardPagesSize = 0x4000;
|
||||
|
||||
private const uint NrrMagic = 0x3052524E;
|
||||
private const uint NroMagic = 0x304F524E;
|
||||
|
||||
private List<NrrInfo> _nrrInfos;
|
||||
private List<NroInfo> _nroInfos;
|
||||
private readonly List<NrrInfo> _nrrInfos;
|
||||
private readonly List<NroInfo> _nroInfos;
|
||||
|
||||
private KProcess _owner;
|
||||
private IVirtualMemoryManager _ownerMm;
|
||||
@@ -36,8 +36,8 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
{
|
||||
_nrrInfos = new List<NrrInfo>(MaxNrr);
|
||||
_nroInfos = new List<NroInfo>(MaxNro);
|
||||
_owner = null;
|
||||
_ownerMm = null;
|
||||
_owner = null;
|
||||
_ownerMm = null;
|
||||
}
|
||||
|
||||
private ResultCode ParseNrr(out NrrInfo nrrInfo, ServiceCtx context, ulong nrrAddress, ulong nrrSize)
|
||||
@@ -64,7 +64,7 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
return ResultCode.InvalidSize;
|
||||
}
|
||||
|
||||
List<byte[]> hashes = new List<byte[]>();
|
||||
List<byte[]> hashes = new();
|
||||
|
||||
for (int i = 0; i < header.HashesCount; i++)
|
||||
{
|
||||
@@ -130,7 +130,7 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
return ResultCode.InvalidAddress;
|
||||
}
|
||||
|
||||
uint magic = _owner.CpuMemory.Read<uint>(nroAddress + 0x10);
|
||||
uint magic = _owner.CpuMemory.Read<uint>(nroAddress + 0x10);
|
||||
uint nroFileSize = _owner.CpuMemory.Read<uint>(nroAddress + 0x18);
|
||||
|
||||
if (magic != NroMagic || nroSize != nroFileSize)
|
||||
@@ -142,7 +142,7 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
|
||||
_owner.CpuMemory.Read(nroAddress, nroData);
|
||||
|
||||
MemoryStream stream = new MemoryStream(nroData);
|
||||
MemoryStream stream = new(nroData);
|
||||
|
||||
byte[] nroHash = SHA256.HashData(stream);
|
||||
|
||||
@@ -158,19 +158,19 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
|
||||
stream.Position = 0;
|
||||
|
||||
NroExecutable nro = new NroExecutable(stream.AsStorage(), nroAddress, bssAddress);
|
||||
NroExecutable nro = new(stream.AsStorage(), nroAddress, bssAddress);
|
||||
|
||||
// Check if everything is page align.
|
||||
if ((nro.Text.Length & 0xFFF) != 0 || (nro.Ro.Length & 0xFFF) != 0 ||
|
||||
(nro.Data.Length & 0xFFF) != 0 || (nro.BssSize & 0xFFF) != 0)
|
||||
(nro.Data.Length & 0xFFF) != 0 || (nro.BssSize & 0xFFF) != 0)
|
||||
{
|
||||
return ResultCode.InvalidNro;
|
||||
}
|
||||
|
||||
// Check if everything is contiguous.
|
||||
if (nro.RoOffset != nro.TextOffset + nro.Text.Length ||
|
||||
nro.DataOffset != nro.RoOffset + nro.Ro.Length ||
|
||||
nroFileSize != nro.DataOffset + nro.Data.Length)
|
||||
if (nro.RoOffset != nro.TextOffset + nro.Text.Length ||
|
||||
nro.DataOffset != nro.RoOffset + nro.Ro.Length ||
|
||||
nroFileSize != nro.DataOffset + nro.Data.Length)
|
||||
{
|
||||
return ResultCode.InvalidNro;
|
||||
}
|
||||
@@ -316,7 +316,7 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
private Result SetNroMemoryPermissions(KProcess process, IExecutable relocatableObject, ulong baseAddress)
|
||||
{
|
||||
ulong textStart = baseAddress + relocatableObject.TextOffset;
|
||||
ulong roStart = baseAddress + relocatableObject.RoOffset;
|
||||
ulong roStart = baseAddress + relocatableObject.RoOffset;
|
||||
ulong dataStart = baseAddress + relocatableObject.DataOffset;
|
||||
|
||||
ulong bssStart = dataStart + (ulong)relocatableObject.Data.Length;
|
||||
@@ -324,7 +324,7 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
ulong bssEnd = BitUtils.AlignUp<ulong>(bssStart + relocatableObject.BssSize, KPageTableBase.PageSize);
|
||||
|
||||
process.CpuMemory.Write(textStart, relocatableObject.Text);
|
||||
process.CpuMemory.Write(roStart, relocatableObject.Ro);
|
||||
process.CpuMemory.Write(roStart, relocatableObject.Ro);
|
||||
process.CpuMemory.Write(dataStart, relocatableObject.Data);
|
||||
|
||||
MemoryHelper.FillWithZeros(process.CpuMemory, bssStart, (int)(bssEnd - bssStart));
|
||||
@@ -381,9 +381,9 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
private ResultCode UnmapNroFromInfo(NroInfo info)
|
||||
{
|
||||
ulong textSize = (ulong)info.Executable.Text.Length;
|
||||
ulong roSize = (ulong)info.Executable.Ro.Length;
|
||||
ulong roSize = (ulong)info.Executable.Ro.Length;
|
||||
ulong dataSize = (ulong)info.Executable.Data.Length;
|
||||
ulong bssSize = (ulong)info.Executable.BssSize;
|
||||
ulong bssSize = (ulong)info.Executable.BssSize;
|
||||
|
||||
Result result = Result.Success;
|
||||
|
||||
@@ -434,17 +434,16 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
context.RequestData.ReadUInt64();
|
||||
|
||||
ulong nroHeapAddress = context.RequestData.ReadUInt64();
|
||||
ulong nroSize = context.RequestData.ReadUInt64();
|
||||
ulong nroSize = context.RequestData.ReadUInt64();
|
||||
ulong bssHeapAddress = context.RequestData.ReadUInt64();
|
||||
ulong bssSize = context.RequestData.ReadUInt64();
|
||||
ulong bssSize = context.RequestData.ReadUInt64();
|
||||
|
||||
ulong nroMappedAddress = 0;
|
||||
|
||||
if (result == ResultCode.Success)
|
||||
{
|
||||
NroInfo info;
|
||||
|
||||
result = ParseNro(out info, context, nroHeapAddress, nroSize, bssHeapAddress, bssSize);
|
||||
result = ParseNro(out NroInfo info, context, nroHeapAddress, nroSize, bssHeapAddress, bssSize);
|
||||
|
||||
if (result == ResultCode.Success)
|
||||
{
|
||||
@@ -503,12 +502,11 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
context.RequestData.ReadUInt64();
|
||||
|
||||
ulong nrrAddress = context.RequestData.ReadUInt64();
|
||||
ulong nrrSize = context.RequestData.ReadUInt64();
|
||||
ulong nrrSize = context.RequestData.ReadUInt64();
|
||||
|
||||
if (result == ResultCode.Success)
|
||||
{
|
||||
NrrInfo info;
|
||||
result = ParseNrr(out info, context, nrrAddress, nrrSize);
|
||||
result = ParseNrr(out NrrInfo info, context, nrrAddress, nrrSize);
|
||||
|
||||
if (result == ResultCode.Success)
|
||||
{
|
||||
@@ -599,4 +597,4 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,26 +2,26 @@
|
||||
{
|
||||
enum ResultCode
|
||||
{
|
||||
ModuleId = 22,
|
||||
ModuleId = 22,
|
||||
ErrorCodeShift = 9,
|
||||
|
||||
Success = 0,
|
||||
|
||||
InsufficientAddressSpace = (2 << ErrorCodeShift) | ModuleId,
|
||||
AlreadyLoaded = (3 << ErrorCodeShift) | ModuleId,
|
||||
InvalidNro = (4 << ErrorCodeShift) | ModuleId,
|
||||
InvalidNrr = (6 << ErrorCodeShift) | ModuleId,
|
||||
TooManyNro = (7 << ErrorCodeShift) | ModuleId,
|
||||
TooManyNrr = (8 << ErrorCodeShift) | ModuleId,
|
||||
NotAuthorized = (9 << ErrorCodeShift) | ModuleId,
|
||||
AlreadyLoaded = (3 << ErrorCodeShift) | ModuleId,
|
||||
InvalidNro = (4 << ErrorCodeShift) | ModuleId,
|
||||
InvalidNrr = (6 << ErrorCodeShift) | ModuleId,
|
||||
TooManyNro = (7 << ErrorCodeShift) | ModuleId,
|
||||
TooManyNrr = (8 << ErrorCodeShift) | ModuleId,
|
||||
NotAuthorized = (9 << ErrorCodeShift) | ModuleId,
|
||||
|
||||
InvalidNrrType = (10 << ErrorCodeShift) | ModuleId,
|
||||
InvalidNrrType = (10 << ErrorCodeShift) | ModuleId,
|
||||
|
||||
InvalidAddress = (1025 << ErrorCodeShift) | ModuleId,
|
||||
InvalidSize = (1026 << ErrorCodeShift) | ModuleId,
|
||||
NotLoaded = (1028 << ErrorCodeShift) | ModuleId,
|
||||
NotRegistered = (1029 << ErrorCodeShift) | ModuleId,
|
||||
InvalidSession = (1030 << ErrorCodeShift) | ModuleId,
|
||||
InvalidProcess = (1031 << ErrorCodeShift) | ModuleId,
|
||||
InvalidAddress = (1025 << ErrorCodeShift) | ModuleId,
|
||||
InvalidSize = (1026 << ErrorCodeShift) | ModuleId,
|
||||
NotLoaded = (1028 << ErrorCodeShift) | ModuleId,
|
||||
NotRegistered = (1029 << ErrorCodeShift) | ModuleId,
|
||||
InvalidSession = (1030 << ErrorCodeShift) | ModuleId,
|
||||
InvalidProcess = (1031 << ErrorCodeShift) | ModuleId,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,30 +6,30 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
{
|
||||
public NroExecutable Executable { get; private set; }
|
||||
|
||||
public byte[] Hash { get; private set; }
|
||||
public ulong NroAddress { get; private set; }
|
||||
public ulong NroSize { get; private set; }
|
||||
public ulong BssAddress { get; private set; }
|
||||
public ulong BssSize { get; private set; }
|
||||
public ulong TotalSize { get; private set; }
|
||||
public ulong NroMappedAddress { get; set; }
|
||||
public byte[] Hash { get; private set; }
|
||||
public ulong NroAddress { get; private set; }
|
||||
public ulong NroSize { get; private set; }
|
||||
public ulong BssAddress { get; private set; }
|
||||
public ulong BssSize { get; private set; }
|
||||
public ulong TotalSize { get; private set; }
|
||||
public ulong NroMappedAddress { get; set; }
|
||||
|
||||
public NroInfo(
|
||||
NroExecutable executable,
|
||||
byte[] hash,
|
||||
ulong nroAddress,
|
||||
ulong nroSize,
|
||||
ulong bssAddress,
|
||||
ulong bssSize,
|
||||
ulong totalSize)
|
||||
NroExecutable executable,
|
||||
byte[] hash,
|
||||
ulong nroAddress,
|
||||
ulong nroSize,
|
||||
ulong bssAddress,
|
||||
ulong bssSize,
|
||||
ulong totalSize)
|
||||
{
|
||||
Executable = executable;
|
||||
Hash = hash;
|
||||
Hash = hash;
|
||||
NroAddress = nroAddress;
|
||||
NroSize = nroSize;
|
||||
NroSize = nroSize;
|
||||
BssAddress = bssAddress;
|
||||
BssSize = bssSize;
|
||||
TotalSize = totalSize;
|
||||
BssSize = bssSize;
|
||||
TotalSize = totalSize;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,15 +4,15 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
{
|
||||
class NrrInfo
|
||||
{
|
||||
public NrrHeader Header { get; private set; }
|
||||
public List<byte[]> Hashes { get; private set; }
|
||||
public ulong NrrAddress { get; private set; }
|
||||
public NrrHeader Header { get; private set; }
|
||||
public List<byte[]> Hashes { get; private set; }
|
||||
public ulong NrrAddress { get; private set; }
|
||||
|
||||
public NrrInfo(ulong nrrAddress, NrrHeader header, List<byte[]> hashes)
|
||||
{
|
||||
NrrAddress = nrrAddress;
|
||||
Header = header;
|
||||
Hashes = hashes;
|
||||
Header = header;
|
||||
Hashes = hashes;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user