misc: Replace references to IntPtr/UIntPtr with nint/nuint + code cleanups.

This commit is contained in:
Evan Husted
2024-10-26 08:46:41 -05:00
parent a09d314817
commit dfb4854d19
172 changed files with 902 additions and 914 deletions

View File

@ -14,7 +14,7 @@ namespace Ryujinx.Cpu.Signal
public int IsActive;
public nuint RangeAddress;
public nuint RangeEndAddress;
public IntPtr ActionPointer;
public nint ActionPointer;
}
[InlineArray(NativeSignalHandlerGenerator.MaxTrackedRanges)]
@ -54,8 +54,8 @@ namespace Ryujinx.Cpu.Signal
static class NativeSignalHandler
{
private static readonly IntPtr _handlerConfig;
private static IntPtr _signalHandlerPtr;
private static readonly nint _handlerConfig;
private static nint _signalHandlerPtr;
private static MemoryBlock _codeBlock;
@ -70,7 +70,7 @@ namespace Ryujinx.Cpu.Signal
config = new SignalHandlerConfig();
}
public static void InitializeSignalHandler(Func<IntPtr, IntPtr, IntPtr> customSignalHandlerFactory = null)
public static void InitializeSignalHandler(Func<nint, nint, nint> customSignalHandlerFactory = null)
{
if (_initialized)
{
@ -111,7 +111,7 @@ namespace Ryujinx.Cpu.Signal
if (customSignalHandlerFactory != null)
{
_signalHandlerPtr = customSignalHandlerFactory(IntPtr.Zero, _signalHandlerPtr);
_signalHandlerPtr = customSignalHandlerFactory(nint.Zero, _signalHandlerPtr);
}
WindowsSignalHandlerRegistration.RegisterExceptionHandler(_signalHandlerPtr);
@ -121,7 +121,7 @@ namespace Ryujinx.Cpu.Signal
}
}
private static IntPtr MapCode(ReadOnlySpan<byte> code)
private static nint MapCode(ReadOnlySpan<byte> code)
{
Debug.Assert(_codeBlock == null);
@ -139,7 +139,7 @@ namespace Ryujinx.Cpu.Signal
return ref Unsafe.AsRef<SignalHandlerConfig>((void*)_handlerConfig);
}
public static bool AddTrackedRegion(nuint address, nuint endAddress, IntPtr action)
public static bool AddTrackedRegion(nuint address, nuint endAddress, nint action)
{
Span<SignalHandlerRange> ranges = GetConfigRef().Ranges;

View File

@ -14,10 +14,10 @@ namespace Ryujinx.Cpu.Signal
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct SigAction
{
public IntPtr sa_handler;
public nint sa_handler;
public SigSet sa_mask;
public int sa_flags;
public IntPtr sa_restorer;
public nint sa_restorer;
}
private const int SIGSEGV = 11;
@ -28,14 +28,14 @@ namespace Ryujinx.Cpu.Signal
private static partial int sigaction(int signum, ref SigAction sigAction, out SigAction oldAction);
[LibraryImport("libc", SetLastError = true)]
private static partial int sigaction(int signum, IntPtr sigAction, out SigAction oldAction);
private static partial int sigaction(int signum, nint sigAction, out SigAction oldAction);
[LibraryImport("libc", SetLastError = true)]
private static partial int sigemptyset(ref SigSet set);
public static SigAction GetSegfaultExceptionHandler()
{
int result = sigaction(SIGSEGV, IntPtr.Zero, out SigAction old);
int result = sigaction(SIGSEGV, nint.Zero, out SigAction old);
if (result != 0)
{
@ -45,7 +45,7 @@ namespace Ryujinx.Cpu.Signal
return old;
}
public static SigAction RegisterExceptionHandler(IntPtr action)
public static SigAction RegisterExceptionHandler(nint action)
{
SigAction sig = new()
{

View File

@ -6,17 +6,17 @@ namespace Ryujinx.Cpu.Signal
static partial class WindowsSignalHandlerRegistration
{
[LibraryImport("kernel32.dll")]
private static partial IntPtr AddVectoredExceptionHandler(uint first, IntPtr handler);
private static partial nint AddVectoredExceptionHandler(uint first, nint handler);
[LibraryImport("kernel32.dll")]
private static partial ulong RemoveVectoredExceptionHandler(IntPtr handle);
private static partial ulong RemoveVectoredExceptionHandler(nint handle);
public static IntPtr RegisterExceptionHandler(IntPtr action)
public static nint RegisterExceptionHandler(nint action)
{
return AddVectoredExceptionHandler(1, action);
}
public static bool RemoveExceptionHandler(IntPtr handle)
public static bool RemoveExceptionHandler(nint handle)
{
return RemoveVectoredExceptionHandler(handle) != 0;
}