From 59b1989b9711f569010fc52c52ff77de3d7da074 Mon Sep 17 00:00:00 2001 From: KeatonTheBot Date: Sat, 14 Feb 2026 12:32:55 -0600 Subject: [PATCH] misc: Use nint instead of IntPtr --- src/ARMeilleure/Translation/Delegates.cs | 2 +- src/ARMeilleure/Translation/EmitterContext.cs | 2 +- src/LibKenjinx/Android/Interop.cs | 4 +- src/LibKenjinx/Android/Jni/Delegates.cs | 6 +- .../Android/Jni/Identifiers/JFieldId.cs | 2 +- .../Android/Jni/Identifiers/JMethodId.cs | 2 +- src/LibKenjinx/Android/Jni/JniHelper.cs | 44 +- .../Android/Jni/Pointers/JEnvRef.cs | 4 +- .../Android/Jni/Pointers/JavaVMRef.cs | 2 +- .../Android/Jni/References/JObjectLocalRef.cs | 2 +- .../Android/Jni/Values/JEnvValue.cs | 2 +- .../Android/Jni/Values/JInvokeInterface.cs | 16 +- .../Android/Jni/Values/JNativeInterface.cs | 466 +++++++++--------- .../Android/Jni/Values/JNativeMethod.cs | 2 +- .../Android/Jni/Values/JavaVMInitArgs.cs | 2 +- .../Android/Jni/Values/JavaVMOption.cs | 2 +- .../Android/Jni/Values/JavaVMValue.cs | 2 +- src/LibKenjinx/Android/JniExportedMethods.cs | 54 +- src/LibKenjinx/LibKenjinx.Graphics.cs | 12 +- src/LibKenjinx/LibKenjinx.Native.cs | 48 +- src/LibKenjinx/LibKenjinx.NativeHelpers.cs | 4 +- src/LibKenjinx/OpenTKBindingsContext.cs | 8 +- src/LibKenjinx/VulkanLoader.cs | 20 +- .../Jit/MemoryManagerHostNoMirror.cs | 4 +- src/Ryujinx.Cpu/Nce/MemoryManagerNative.cs | 4 +- src/Ryujinx.Cpu/Nce/NceCpuContext.cs | 6 +- src/Ryujinx.Cpu/Nce/NceExecutionContext.cs | 10 +- src/Ryujinx.Cpu/Nce/NceMemoryBlock.cs | 2 +- src/Ryujinx.Cpu/Nce/NceNativeContext.cs | 8 +- src/Ryujinx.Cpu/Nce/NceNativeInterface.cs | 10 +- src/Ryujinx.Cpu/Nce/NcePatcher.cs | 4 +- src/Ryujinx.Cpu/Nce/NceThreadPal.cs | 4 +- src/Ryujinx.Cpu/Nce/NceThreadPalAndroid.cs | 6 +- src/Ryujinx.Cpu/Nce/NceThreadPalUnix.cs | 14 +- src/Ryujinx.Cpu/Nce/NceThreadTable.cs | 18 +- src/Ryujinx.Cpu/Signal/NativeSignalHandler.cs | 4 +- .../Signal/UnixSignalHandlerRegistration.cs | 20 +- src/Ryujinx.Memory/MemoryManagementUnix.cs | 4 +- src/Ryujinx.Memory/MemoryManagerUnixHelper.cs | 2 +- 39 files changed, 414 insertions(+), 414 deletions(-) diff --git a/src/ARMeilleure/Translation/Delegates.cs b/src/ARMeilleure/Translation/Delegates.cs index d88c76726..0616f3812 100644 --- a/src/ARMeilleure/Translation/Delegates.cs +++ b/src/ARMeilleure/Translation/Delegates.cs @@ -403,7 +403,7 @@ namespace ARMeilleure.Translation #if ANDROID if (_androidDelegates.TryGetValue(key, out Delegate del)) { - IntPtr funcPtr = Marshal.GetFunctionPointerForDelegate(del); + nint funcPtr = Marshal.GetFunctionPointerForDelegate(del); _delegates.Add(key, new DelegateInfo(funcPtr)); return; } diff --git a/src/ARMeilleure/Translation/EmitterContext.cs b/src/ARMeilleure/Translation/EmitterContext.cs index 9ff6b5b1c..7e3090310 100644 --- a/src/ARMeilleure/Translation/EmitterContext.cs +++ b/src/ARMeilleure/Translation/EmitterContext.cs @@ -100,7 +100,7 @@ namespace ARMeilleure.Translation #if ANDROID // For Android, use the Delegates class to get the function pointer int index = Delegates.GetDelegateIndex(info); - IntPtr funcPtr = Delegates.GetDelegateFuncPtrByIndex(index); + nint funcPtr = Delegates.GetDelegateFuncPtrByIndex(index); #else // For other platforms, use direct method handle approach nint funcPtr = info.MethodHandle.GetFunctionPointer(); diff --git a/src/LibKenjinx/Android/Interop.cs b/src/LibKenjinx/Android/Interop.cs index 47db849fa..b5abe0194 100644 --- a/src/LibKenjinx/Android/Interop.cs +++ b/src/LibKenjinx/Android/Interop.cs @@ -190,11 +190,11 @@ namespace LibKenjinx.Android public void Dispose() { - if (Pointer != IntPtr.Zero) + if (Pointer != nint.Zero) { Marshal.FreeHGlobal(Pointer); } - Pointer = IntPtr.Zero; + Pointer = nint.Zero; } } diff --git a/src/LibKenjinx/Android/Jni/Delegates.cs b/src/LibKenjinx/Android/Jni/Delegates.cs index 93dc19063..3f0aae62f 100644 --- a/src/LibKenjinx/Android/Jni/Delegates.cs +++ b/src/LibKenjinx/Android/Jni/Delegates.cs @@ -205,12 +205,12 @@ internal delegate void ExceptionDescribeDelegate(JEnvRef env); internal delegate void ExceptionClearDelegate(JEnvRef env); internal delegate void FatalErrorDelegate(JEnvRef env, ReadOnlyValPtr messageChars0); internal delegate JBoolean ExceptionCheckDelegate(JEnvRef env); -internal delegate JObjectLocalRef NewDirectByteBufferDelegate(JEnvRef env, IntPtr address, Int64 capacity); -internal delegate IntPtr GetDirectBufferAddressDelegate(JEnvRef env, JObjectLocalRef buffObj); +internal delegate JObjectLocalRef NewDirectByteBufferDelegate(JEnvRef env, nint address, Int64 capacity); +internal delegate nint GetDirectBufferAddressDelegate(JEnvRef env, JObjectLocalRef buffObj); internal delegate Int64 GetDirectBufferCapacityDelegate(JEnvRef env, JObjectLocalRef buffObj); internal delegate JClassLocalRef DefineClassDelegate(JEnvRef env, ReadOnlyValPtr nameChars0, - JObjectLocalRef loader, IntPtr binaryData, Int32 len); + JObjectLocalRef loader, nint binaryData, Int32 len); internal delegate JClassLocalRef FindClassDelegate(JEnvRef env, ReadOnlyValPtr nameChars0); diff --git a/src/LibKenjinx/Android/Jni/Identifiers/JFieldId.cs b/src/LibKenjinx/Android/Jni/Identifiers/JFieldId.cs index 610a2ebe2..fb68ee9ad 100644 --- a/src/LibKenjinx/Android/Jni/Identifiers/JFieldId.cs +++ b/src/LibKenjinx/Android/Jni/Identifiers/JFieldId.cs @@ -6,7 +6,7 @@ namespace LibKenjinx.Jni.Identifiers public readonly struct JFieldId : IEquatable { #pragma warning disable 0649 - private readonly IntPtr _value; + private readonly nint _value; #pragma warning restore 0649 #region Public Methods diff --git a/src/LibKenjinx/Android/Jni/Identifiers/JMethodId.cs b/src/LibKenjinx/Android/Jni/Identifiers/JMethodId.cs index 507c9f993..6b6e21459 100644 --- a/src/LibKenjinx/Android/Jni/Identifiers/JMethodId.cs +++ b/src/LibKenjinx/Android/Jni/Identifiers/JMethodId.cs @@ -6,7 +6,7 @@ namespace LibKenjinx.Jni.Identifiers public readonly struct JMethodId : IEquatable { #pragma warning disable 0649 - private readonly IntPtr _value; + private readonly nint _value; #pragma warning restore 0649 #region Public Methods diff --git a/src/LibKenjinx/Android/Jni/JniHelper.cs b/src/LibKenjinx/Android/Jni/JniHelper.cs index 058e67a5f..e06721613 100644 --- a/src/LibKenjinx/Android/Jni/JniHelper.cs +++ b/src/LibKenjinx/Android/Jni/JniHelper.cs @@ -17,7 +17,7 @@ namespace LibKenjinx.Jni ref JavaVMValue value = ref javaVm.VirtualMachine; ref JInvokeInterface jInvoke = ref value.Functions; - IntPtr getEnvPtr = jInvoke.GetEnvPointer; + nint getEnvPtr = jInvoke.GetEnvPointer; GetEnvDelegate getEnv = getEnvPtr.GetUnsafeDelegate()!; if (getEnv(javaVm, out JEnvRef jEnv, JniVersion) == JResult.Ok) @@ -27,7 +27,7 @@ namespace LibKenjinx.Jni } JavaVMAttachArgs args = new() { Version = JniVersion, Name = threadName.ValuePointer, }; - IntPtr attachCurrentThreadPtr = jInvoke.AttachCurrentThreadPointer; + nint attachCurrentThreadPtr = jInvoke.AttachCurrentThreadPointer; AttachCurrentThreadDelegate attachCurrentThread = attachCurrentThreadPtr.GetUnsafeDelegate()!; @@ -40,7 +40,7 @@ namespace LibKenjinx.Jni ref JInvokeInterface jInvoke = ref value.Functions; JavaVMAttachArgs args = new() { Version = JniVersion, Name = daemonName.ValuePointer, }; - IntPtr attachCurrentThreadAsDaemonPtr = jInvoke.AttachCurrentThreadAsDaemonPointer; + nint attachCurrentThreadAsDaemonPtr = jInvoke.AttachCurrentThreadAsDaemonPointer; AttachCurrentThreadAsDaemonDelegate attachCurrentThreadAsDaemon = attachCurrentThreadAsDaemonPtr.GetUnsafeDelegate()!; @@ -51,7 +51,7 @@ namespace LibKenjinx.Jni ref JavaVMValue value = ref javaVm.VirtualMachine; ref JInvokeInterface jInvoke = ref value.Functions; - IntPtr detachCurrentThreadPtr = jInvoke.DetachCurrentThreadPointer; + nint detachCurrentThreadPtr = jInvoke.DetachCurrentThreadPointer; DetachCurrentThreadDelegate detachCurrentThread = detachCurrentThreadPtr.GetUnsafeDelegate()!; @@ -62,14 +62,14 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr findClassPtr = jInterface.FindClassPointer; + nint findClassPtr = jInterface.FindClassPointer; FindClassDelegate findClass = findClassPtr.GetUnsafeDelegate()!; JClassLocalRef jClass = findClass(jEnv, className.ValuePointer); if (ExceptionCheck(jEnv)) return default; - IntPtr newGlobalRefPtr = jInterface.NewGlobalRefPointer; + nint newGlobalRefPtr = jInterface.NewGlobalRefPointer; NewGlobalRefDelegate newGlobalRef = newGlobalRefPtr.GetUnsafeDelegate()!; JGlobalRef jGlobal = newGlobalRef(jEnv, (JObjectLocalRef)jClass); @@ -82,7 +82,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr deleteLocalRefPtr = jInterface.DeleteLocalRefPointer; + nint deleteLocalRefPtr = jInterface.DeleteLocalRefPointer; DeleteLocalRefDelegate deleteLocalRef = deleteLocalRefPtr.GetUnsafeDelegate()!; deleteLocalRef(jEnv, jObject); @@ -92,7 +92,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr deleteGlobalRefPtr = jInterface.DeleteGlobalRefPointer; + nint deleteGlobalRefPtr = jInterface.DeleteGlobalRefPointer; DeleteGlobalRefDelegate deleteGlobalRef = deleteGlobalRefPtr.GetUnsafeDelegate()!; deleteGlobalRef(jEnv, jObject); @@ -102,7 +102,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr deleteWeakGlobalRefPtr = jInterface.DeleteWeakGlobalRefPointer; + nint deleteWeakGlobalRefPtr = jInterface.DeleteWeakGlobalRefPointer; DeleteWeakGlobalRefDelegate deleteWeakGlobalRef = deleteWeakGlobalRefPtr.GetUnsafeDelegate()!; @@ -113,7 +113,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr newStringPtr = jInterface.NewStringPointer; + nint newStringPtr = jInterface.NewStringPointer; NewStringDelegate newString = newStringPtr.GetUnsafeDelegate()!; using IReadOnlyFixedMemory.IDisposable ctx = textValue.AsMemory().GetFixedContext(); JStringLocalRef jString = newString(jEnv, ctx.ValuePointer, ctx.Values.Length); @@ -125,7 +125,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr newWeakGlobalRefPtr = jInterface.NewWeakGlobalRefPointer; + nint newWeakGlobalRefPtr = jInterface.NewWeakGlobalRefPointer; NewWeakGlobalRefDelegate newWeakGlobalRef = newWeakGlobalRefPtr.GetUnsafeDelegate()!; JWeakRef jWeak = newWeakGlobalRef(jEnv, jObject); @@ -136,13 +136,13 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr exceptionCheckPtr = jInterface.ExceptionCheckPointer; + nint exceptionCheckPtr = jInterface.ExceptionCheckPointer; ExceptionCheckDelegate exceptionCheck = exceptionCheckPtr.GetUnsafeDelegate()!; if (!exceptionCheck(jEnv)) return false; - IntPtr exceptionDescribePtr = jInterface.ExceptionDescribePointer; - IntPtr exceptionClearPtr = jInterface.ExceptionClearPointer; + nint exceptionDescribePtr = jInterface.ExceptionDescribePointer; + nint exceptionClearPtr = jInterface.ExceptionClearPointer; ExceptionDescribeDelegate exceptionDescribe = exceptionDescribePtr.GetUnsafeDelegate()!; @@ -157,7 +157,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr getJavaVmPtr = jInterface.GetJavaVMPointer; + nint getJavaVmPtr = jInterface.GetJavaVMPointer; GetVirtualMachineDelegate getJavaVm = getJavaVmPtr.GetUnsafeDelegate()!; return getJavaVm(jEnv, out JavaVMRef javaVm) == JResult.Ok ? javaVm : null; } @@ -166,7 +166,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr isSameObjectPtr = jInterface.IsSameObjectPointer; + nint isSameObjectPtr = jInterface.IsSameObjectPointer; IsSameObjectDelegate isSameObject = isSameObjectPtr.GetUnsafeDelegate()!; JBoolean result = isSameObject(jEnv, (JObjectLocalRef)jWeak, default); return !ExceptionCheck(jEnv) ? !result : null; @@ -177,7 +177,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr getMethodIdPtr = jInterface.GetMethodIdPointer; + nint getMethodIdPtr = jInterface.GetMethodIdPointer; GetMethodIdDelegate getMethodId = getMethodIdPtr.GetUnsafeDelegate()!; JMethodId methodId = getMethodId(jEnv, jClass, methodName.ValuePointer, descriptor.ValuePointer); return !ExceptionCheck(jEnv) ? methodId : null; @@ -188,7 +188,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr getStaticMethodIdPtr = jInterface.GetStaticMethodIdPointer; + nint getStaticMethodIdPtr = jInterface.GetStaticMethodIdPointer; GetStaticMethodIdDelegate getStaticMethodId = getStaticMethodIdPtr.GetUnsafeDelegate()!; JMethodId jMethodId = getStaticMethodId(jEnv, jClass, methodName.ValuePointer, descriptor.ValuePointer); @@ -200,7 +200,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr callStaticVoidMethodPtr = jInterface.CallStaticVoidMethodAPointer; + nint callStaticVoidMethodPtr = jInterface.CallStaticVoidMethodAPointer; CallStaticVoidMethodADelegate callStaticVoidMethod = callStaticVoidMethodPtr.GetUnsafeDelegate()!; @@ -213,7 +213,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr callStaticObjectMethodPtr = jInterface.CallStaticObjectMethodAPointer; + nint callStaticObjectMethodPtr = jInterface.CallStaticObjectMethodAPointer; CallStaticObjectMethodADelegate callStaticObjectMethod = callStaticObjectMethodPtr.GetUnsafeDelegate()!; @@ -227,7 +227,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr callStaticLongMethodPtr = jInterface.CallStaticLongMethodAPointer; + nint callStaticLongMethodPtr = jInterface.CallStaticLongMethodAPointer; CallStaticLongMethodADelegate callStaticLongMethod = callStaticLongMethodPtr.GetUnsafeDelegate()!; @@ -240,7 +240,7 @@ namespace LibKenjinx.Jni ref readonly JEnvValue value = ref jEnv.Environment; ref JNativeInterface jInterface = ref value.Functions; - IntPtr callVoidMethodPtr = jInterface.CallVoidMethodAPointer; + nint callVoidMethodPtr = jInterface.CallVoidMethodAPointer; CallVoidMethodADelegate callVoidMethod = callVoidMethodPtr.GetUnsafeDelegate()!; using IReadOnlyFixedMemory.IDisposable fArgs = args.AsMemory().GetFixedContext(); diff --git a/src/LibKenjinx/Android/Jni/Pointers/JEnvRef.cs b/src/LibKenjinx/Android/Jni/Pointers/JEnvRef.cs index 978fd9c41..9b382ae0f 100644 --- a/src/LibKenjinx/Android/Jni/Pointers/JEnvRef.cs +++ b/src/LibKenjinx/Android/Jni/Pointers/JEnvRef.cs @@ -8,10 +8,10 @@ namespace LibKenjinx.Jni.Pointers public readonly struct JEnvRef : IEquatable { #pragma warning disable 0649 - private readonly IntPtr _value; + private readonly nint _value; #pragma warning restore 0649 - public JEnvRef(IntPtr val) + public JEnvRef(nint val) { _value = val; } diff --git a/src/LibKenjinx/Android/Jni/Pointers/JavaVMRef.cs b/src/LibKenjinx/Android/Jni/Pointers/JavaVMRef.cs index a817e09dd..76f523056 100644 --- a/src/LibKenjinx/Android/Jni/Pointers/JavaVMRef.cs +++ b/src/LibKenjinx/Android/Jni/Pointers/JavaVMRef.cs @@ -8,7 +8,7 @@ namespace LibKenjinx.Jni.Pointers; public readonly struct JavaVMRef : IEquatable { #pragma warning disable 0649 - private readonly IntPtr _value; + private readonly nint _value; #pragma warning restore 0649 #region Operators diff --git a/src/LibKenjinx/Android/Jni/References/JObjectLocalRef.cs b/src/LibKenjinx/Android/Jni/References/JObjectLocalRef.cs index 020e615c0..846d38655 100644 --- a/src/LibKenjinx/Android/Jni/References/JObjectLocalRef.cs +++ b/src/LibKenjinx/Android/Jni/References/JObjectLocalRef.cs @@ -6,7 +6,7 @@ namespace LibKenjinx.Jni.References public readonly struct JObjectLocalRef : IEquatable { #pragma warning disable 0649 - private readonly IntPtr _value; + private readonly nint _value; #pragma warning restore 0649 #region Public Methods diff --git a/src/LibKenjinx/Android/Jni/Values/JEnvValue.cs b/src/LibKenjinx/Android/Jni/Values/JEnvValue.cs index c5db76bc2..70c2f762a 100644 --- a/src/LibKenjinx/Android/Jni/Values/JEnvValue.cs +++ b/src/LibKenjinx/Android/Jni/Values/JEnvValue.cs @@ -6,7 +6,7 @@ namespace LibKenjinx.Jni.Values internal readonly struct JEnvValue : IEquatable { #pragma warning disable 0649 - private readonly IntPtr _value; + private readonly nint _value; #pragma warning restore 0649 #region Operators diff --git a/src/LibKenjinx/Android/Jni/Values/JInvokeInterface.cs b/src/LibKenjinx/Android/Jni/Values/JInvokeInterface.cs index 5230d76e7..b5a4fe3ab 100644 --- a/src/LibKenjinx/Android/Jni/Values/JInvokeInterface.cs +++ b/src/LibKenjinx/Android/Jni/Values/JInvokeInterface.cs @@ -7,14 +7,14 @@ namespace LibKenjinx.Jni.Values public readonly struct JInvokeInterface { #pragma warning disable 0169 - private readonly IntPtr _reserved0; - private readonly IntPtr _reserved1; - private readonly IntPtr _reserved2; + private readonly nint _reserved0; + private readonly nint _reserved1; + private readonly nint _reserved2; #pragma warning restore 0169 - internal IntPtr DestroyJavaVMPointer { get; init; } - internal IntPtr AttachCurrentThreadPointer { get; init; } - internal IntPtr DetachCurrentThreadPointer { get; init; } - internal IntPtr GetEnvPointer { get; init; } - internal IntPtr AttachCurrentThreadAsDaemonPointer { get; init; } + internal nint DestroyJavaVMPointer { get; init; } + internal nint AttachCurrentThreadPointer { get; init; } + internal nint DetachCurrentThreadPointer { get; init; } + internal nint GetEnvPointer { get; init; } + internal nint AttachCurrentThreadAsDaemonPointer { get; init; } } } diff --git a/src/LibKenjinx/Android/Jni/Values/JNativeInterface.cs b/src/LibKenjinx/Android/Jni/Values/JNativeInterface.cs index b307fbb33..e9092e12d 100644 --- a/src/LibKenjinx/Android/Jni/Values/JNativeInterface.cs +++ b/src/LibKenjinx/Android/Jni/Values/JNativeInterface.cs @@ -10,238 +10,238 @@ namespace LibKenjinx.Jni.Values; public readonly struct JNativeInterface { #pragma warning disable 0169 - private readonly IntPtr _reserved0; - private readonly IntPtr _reserved1; - private readonly IntPtr _reserved2; - private readonly IntPtr _reserved3; + private readonly nint _reserved0; + private readonly nint _reserved1; + private readonly nint _reserved2; + private readonly nint _reserved3; #pragma warning restore 0169 - internal readonly IntPtr GetVersionPointer { get; init; } - internal readonly IntPtr DefineClassPointer { get; init; } - internal readonly IntPtr FindClassPointer { get; init; } - internal readonly IntPtr FromReflectedMethodPointer { get; init; } - internal readonly IntPtr FromReflectedFieldPointer { get; init; } - internal readonly IntPtr ToReflectedMethodPointer { get; init; } - internal readonly IntPtr GetSuperclassPointer { get; init; } - internal readonly IntPtr IsAssignableFromPointer { get; init; } - internal readonly IntPtr ToReflectedFieldPointer { get; init; } - internal readonly IntPtr ThrowPointer { get; init; } - internal readonly IntPtr ThrowNewPointer { get; init; } - internal readonly IntPtr ExceptionOccurredPointer { get; init; } - internal readonly IntPtr ExceptionDescribePointer { get; init; } - internal readonly IntPtr ExceptionClearPointer { get; init; } - internal readonly IntPtr FatalErrorPointer { get; init; } - internal readonly IntPtr PushLocalFramePointer { get; init; } - internal readonly IntPtr PopLocalFramePointer { get; init; } - internal readonly IntPtr NewGlobalRefPointer { get; init; } - internal readonly IntPtr DeleteGlobalRefPointer { get; init; } - internal readonly IntPtr DeleteLocalRefPointer { get; init; } - internal readonly IntPtr IsSameObjectPointer { get; init; } - internal readonly IntPtr NewLocalRefPointer { get; init; } - internal readonly IntPtr EnsureLocalCapacityPointer { get; init; } - internal readonly IntPtr AllocObjectPointer { get; init; } - internal readonly IntPtr NewObjectPointer { get; init; } - internal readonly IntPtr NewObjectVPointer { get; init; } - internal readonly IntPtr NewObjectAPointer { get; init; } - internal readonly IntPtr GetObjectClassPointer { get; init; } - internal readonly IntPtr IsInstanceOfPointer { get; init; } - internal readonly IntPtr GetMethodIdPointer { get; init; } - private readonly IntPtr CallObjectMethodPointer { get; init; } - private readonly IntPtr CallObjectMethodVPointer { get; init; } - internal readonly IntPtr CallObjectMethodAPointer { get; init; } - private readonly IntPtr CallBooleanMethodPointer { get; init; } - private readonly IntPtr CallBooleanMethodVPointer { get; init; } - internal readonly IntPtr CallBooleanMethodAPointer { get; init; } - private readonly IntPtr CallByteMethodPointer { get; init; } - private readonly IntPtr CallByteMethodVPointer { get; init; } - internal readonly IntPtr CallByteMethodAPointer { get; init; } - private readonly IntPtr CallCharMethodPointer { get; init; } - private readonly IntPtr CallCharMethodVPointer { get; init; } - internal readonly IntPtr CallCharMethodAPointer { get; init; } - private readonly IntPtr CallShortMethodPointer { get; init; } - private readonly IntPtr CallShortMethodVPointer { get; init; } - internal readonly IntPtr CallShortMethodAPointer { get; init; } - private readonly IntPtr CallIntMethodPointer { get; init; } - private readonly IntPtr CallIntMethodVPointer { get; init; } - internal readonly IntPtr CallIntMethodAPointer { get; init; } - private readonly IntPtr CallLongMethodPointer { get; init; } - private readonly IntPtr CallLongMethodVPointer { get; init; } - internal readonly IntPtr CallLongMethodAPointer { get; init; } - private readonly IntPtr CallFloatMethodPointer { get; init; } - private readonly IntPtr CallFloatMethodVPointer { get; init; } - internal readonly IntPtr CallFloatMethodAPointer { get; init; } - private readonly IntPtr CallDoubleMethodPointer { get; init; } - private readonly IntPtr CallDoubleMethodVPointer { get; init; } - internal readonly IntPtr CallDoubleMethodAPointer { get; init; } - private readonly IntPtr CallVoidMethodPointer { get; init; } - private readonly IntPtr CallVoidMethodVPointer { get; init; } - internal readonly IntPtr CallVoidMethodAPointer { get; init; } - private readonly IntPtr CallNonVirtualObjectMethodPointer { get; init; } - private readonly IntPtr CallNonVirtualObjectMethodVPointer { get; init; } - internal readonly IntPtr CallNonVirtualObjectMethodAPointer { get; init; } - private readonly IntPtr CallNonVirtualBooleanMethodPointer { get; init; } - private readonly IntPtr CallNonVirtualBooleanMethodVPointer { get; init; } - internal readonly IntPtr CallNonVirtualBooleanMethodAPointer { get; init; } - private readonly IntPtr CallNonVirtualByteMethodPointer { get; init; } - private readonly IntPtr CallNonVirtualByteMethodVPointer { get; init; } - internal readonly IntPtr CallNonVirtualByteMethodAPointer { get; init; } - private readonly IntPtr CallNonVirtualCharMethodPointer { get; init; } - private readonly IntPtr CallNonVirtualCharMethodVPointer { get; init; } - internal readonly IntPtr CallNonVirtualCharMethodAPointer { get; init; } - private readonly IntPtr CallNonVirtualShortMethodPointer { get; init; } - private readonly IntPtr CallNonVirtualShortMethodVPointer { get; init; } - internal readonly IntPtr CallNonVirtualShortMethodAPointer { get; init; } - private readonly IntPtr CallNonVirtualIntMethodPointer { get; init; } - private readonly IntPtr CallNonVirtualIntMethodVPointer { get; init; } - internal readonly IntPtr CallNonVirtualIntMethodAPointer { get; init; } - private readonly IntPtr CallNonVirtualLongMethodPointer { get; init; } - private readonly IntPtr CallNonVirtualLongMethodVPointer { get; init; } - internal readonly IntPtr CallNonVirtualLongMethodAPointer { get; init; } - private readonly IntPtr CallNonVirtualFloatMethodPointer { get; init; } - private readonly IntPtr CallNonVirtualFloatMethodVPointer { get; init; } - internal readonly IntPtr CallNonVirtualFloatMethodAPointer { get; init; } - private readonly IntPtr CallNonVirtualDoubleMethodPointer { get; init; } - private readonly IntPtr CallNonVirtualDoubleMethodVPointer { get; init; } - internal readonly IntPtr CallNonVirtualDoubleMethodAPointer { get; init; } - private readonly IntPtr CallNonVirtualVoidMethodPointer { get; init; } - private readonly IntPtr CallNonVirtualVoidMethodVPointer { get; init; } - internal readonly IntPtr CallNonVirtualVoidMethodAPointer { get; init; } - internal readonly IntPtr GetFieldIdPointer { get; init; } - internal readonly IntPtr GetObjectFieldPointer { get; init; } - internal readonly IntPtr GetBooleanFieldPointer { get; init; } - internal readonly IntPtr GetByteFieldPointer { get; init; } - internal readonly IntPtr GetCharFieldPointer { get; init; } - internal readonly IntPtr GetShortFieldPointer { get; init; } - internal readonly IntPtr GetIntFieldPointer { get; init; } - internal readonly IntPtr GetLongFieldPointer { get; init; } - internal readonly IntPtr GetFloatFieldPointer { get; init; } - internal readonly IntPtr GetDoubleFieldPointer { get; init; } - internal readonly IntPtr SetObjectFieldPointer { get; init; } - internal readonly IntPtr SetBooleanFieldPointer { get; init; } - internal readonly IntPtr SetByteFieldPointer { get; init; } - internal readonly IntPtr SetCharFieldPointer { get; init; } - internal readonly IntPtr SetShortFieldPointer { get; init; } - internal readonly IntPtr SetIntFieldPointer { get; init; } - internal readonly IntPtr SetLongFieldPointer { get; init; } - internal readonly IntPtr SetFloatFieldPointer { get; init; } - internal readonly IntPtr SetDoubleFieldPointer { get; init; } - internal readonly IntPtr GetStaticMethodIdPointer { get; init; } - private readonly IntPtr CallStaticObjectMethodPointer { get; init; } - private readonly IntPtr CallStaticObjectMethodVPointer { get; init; } - internal readonly IntPtr CallStaticObjectMethodAPointer { get; init; } - private readonly IntPtr CallStaticBooleanMethodPointer { get; init; } - private readonly IntPtr CallStaticBooleanMethodVPointer { get; init; } - internal readonly IntPtr CallStaticBooleanMethodAPointer { get; init; } - private readonly IntPtr CallStaticByteMethodPointer { get; init; } - private readonly IntPtr CallStaticByteMethodVPointer { get; init; } - internal readonly IntPtr CallStaticByteMethodAPointer { get; init; } - private readonly IntPtr CallStaticCharMethodPointer { get; init; } - private readonly IntPtr CallStaticCharMethodVPointer { get; init; } - internal readonly IntPtr CallStaticCharMethodAPointer { get; init; } - private readonly IntPtr CallStaticShortMethodPointer { get; init; } - private readonly IntPtr CallStaticShortMethodVPointer { get; init; } - internal readonly IntPtr CallStaticShortMethodAPointer { get; init; } - private readonly IntPtr CallStaticIntMethodPointer { get; init; } - private readonly IntPtr CallStaticIntMethodVPointer { get; init; } - internal readonly IntPtr CallStaticIntMethodAPointer { get; init; } - private readonly IntPtr CallStaticLongMethodPointer { get; init; } - private readonly IntPtr CallStaticLongMethodVPointer { get; init; } - internal readonly IntPtr CallStaticLongMethodAPointer { get; init; } - private readonly IntPtr CallStaticFloatMethodPointer { get; init; } - private readonly IntPtr CallStaticFloatMethodVPointer { get; init; } - internal readonly IntPtr CallStaticFloatMethodAPointer { get; init; } - private readonly IntPtr CallStaticDoubleMethodPointer { get; init; } - private readonly IntPtr CallStaticDoubleMethodVPointer { get; init; } - internal readonly IntPtr CallStaticDoubleMethodAPointer { get; init; } - private readonly IntPtr CallStaticVoidMethodPointer { get; init; } - private readonly IntPtr CallStaticVoidMethodVPointer { get; init; } - internal readonly IntPtr CallStaticVoidMethodAPointer { get; init; } - internal readonly IntPtr GetStaticFieldIdPointer { get; init; } - internal readonly IntPtr GetStaticObjectFieldPointer { get; init; } - internal readonly IntPtr GetStaticBooleanFieldPointer { get; init; } - internal readonly IntPtr GetStaticByteFieldPointer { get; init; } - internal readonly IntPtr GetStaticCharFieldPointer { get; init; } - internal readonly IntPtr GetStaticShortFieldPointer { get; init; } - internal readonly IntPtr GetStaticIntFieldPointer { get; init; } - internal readonly IntPtr GetStaticLongFieldPointer { get; init; } - internal readonly IntPtr GetStaticFloatFieldPointer { get; init; } - internal readonly IntPtr GetStaticDoubleFieldPointer { get; init; } - internal readonly IntPtr SetStaticObjectFieldPointer { get; init; } - internal readonly IntPtr SetStaticBooleanFieldPointer { get; init; } - internal readonly IntPtr SetStaticByteFieldPointer { get; init; } - internal readonly IntPtr SetStaticCharFieldPointer { get; init; } - internal readonly IntPtr SetStaticShortFieldPointer { get; init; } - internal readonly IntPtr SetStaticIntFieldPointer { get; init; } - internal readonly IntPtr SetStaticLongFieldPointer { get; init; } - internal readonly IntPtr SetStaticFloatFieldPointer { get; init; } - internal readonly IntPtr SetStaticDoubleFieldPointer { get; init; } - internal readonly IntPtr NewStringPointer { get; init; } - internal readonly IntPtr GetStringLengthPointer { get; init; } - internal readonly IntPtr GetStringCharsPointer { get; init; } - internal readonly IntPtr ReleaseStringCharsPointer { get; init; } - internal readonly IntPtr NewStringUtfPointer { get; init; } - internal readonly IntPtr GetStringUtfLengthPointer { get; init; } - internal readonly IntPtr GetStringUtfCharsPointer { get; init; } - internal readonly IntPtr ReleaseStringUtfCharsPointer { get; init; } - internal readonly IntPtr GetArrayLengthPointer { get; init; } - internal readonly IntPtr NewObjectArrayPointer { get; init; } - internal readonly IntPtr GetObjectArrayElementPointer { get; init; } - internal readonly IntPtr SetObjectArrayElementPointer { get; init; } - internal readonly IntPtr NewBooleanArrayPointer { get; init; } - internal readonly IntPtr NewByteArrayPointer { get; init; } - internal readonly IntPtr NewCharArrayPointer { get; init; } - internal readonly IntPtr NewShortArrayPointer { get; init; } - internal readonly IntPtr NewIntArrayPointer { get; init; } - internal readonly IntPtr NewLongArrayPointer { get; init; } - internal readonly IntPtr NewFloatArrayPointer { get; init; } - internal readonly IntPtr NewDoubleArrayPointer { get; init; } - internal readonly IntPtr GetBooleanArrayElementsPointer { get; init; } - internal readonly IntPtr GetByteArrayElementsPointer { get; init; } - internal readonly IntPtr GetCharArrayElementsPointer { get; init; } - internal readonly IntPtr GetShortArrayElementsPointer { get; init; } - internal readonly IntPtr GetIntArrayElementsPointer { get; init; } - internal readonly IntPtr GetLongArrayElementsPointer { get; init; } - internal readonly IntPtr GetFloatArrayElementsPointer { get; init; } - internal readonly IntPtr GetDoubleArrayElementsPointer { get; init; } - internal readonly IntPtr ReleaseBooleanArrayElementsPointer { get; init; } - internal readonly IntPtr ReleaseByteArrayElementsPointer { get; init; } - internal readonly IntPtr ReleaseCharArrayElementsPointer { get; init; } - internal readonly IntPtr ReleaseShortArrayElementsPointer { get; init; } - internal readonly IntPtr ReleaseIntArrayElementsPointer { get; init; } - internal readonly IntPtr ReleaseLongArrayElementsPointer { get; init; } - internal readonly IntPtr ReleaseFloatArrayElementsPointer { get; init; } - internal readonly IntPtr ReleaseDoubleArrayElementsPointer { get; init; } - internal readonly IntPtr GetBooleanArrayRegionPointer { get; init; } - internal readonly IntPtr GetByteArrayRegionPointer { get; init; } - internal readonly IntPtr GetCharArrayRegionPointer { get; init; } - internal readonly IntPtr GetShortArrayRegionPointer { get; init; } - internal readonly IntPtr GetIntArrayRegionPointer { get; init; } - internal readonly IntPtr GetLongArrayRegionPointer { get; init; } - internal readonly IntPtr GetFloatArrayRegionPointer { get; init; } - internal readonly IntPtr GetDoubleArrayRegionPointer { get; init; } - internal readonly IntPtr SetBooleanArrayRegionPointer { get; init; } - internal readonly IntPtr SetByteArrayRegionPointer { get; init; } - internal readonly IntPtr SetCharArrayRegionPointer { get; init; } - internal readonly IntPtr SetShortArrayRegionPointer { get; init; } - internal readonly IntPtr SetIntArrayRegionPointer { get; init; } - internal readonly IntPtr SetLongArrayRegionPointer { get; init; } - internal readonly IntPtr SetFloatArrayRegionPointer { get; init; } - internal readonly IntPtr SetDoubleArrayRegionPointer { get; init; } - internal readonly IntPtr RegisterNativesPointer { get; init; } - internal readonly IntPtr UnregisterNativesPointer { get; init; } - internal readonly IntPtr MonitorEnterPointer { get; init; } - internal readonly IntPtr MonitorExitPointer { get; init; } - internal readonly IntPtr GetJavaVMPointer { get; init; } - internal readonly IntPtr GetStringRegionPointer { get; init; } - internal readonly IntPtr GetStringUtfRegionPointer { get; init; } - internal readonly IntPtr GetPrimitiveArrayCriticalPointer { get; init; } - internal readonly IntPtr ReleasePrimitiveArrayCriticalPointer { get; init; } - internal readonly IntPtr GetStringCriticalPointer { get; init; } - internal readonly IntPtr ReleaseStringCriticalPointer { get; init; } - internal readonly IntPtr NewWeakGlobalRefPointer { get; init; } - internal readonly IntPtr DeleteWeakGlobalRefPointer { get; init; } - internal readonly IntPtr ExceptionCheckPointer { get; init; } - internal readonly IntPtr NewDirectByteBufferPointer { get; init; } - internal readonly IntPtr GetDirectBufferAddressPointer { get; init; } - internal readonly IntPtr GetDirectBufferCapacityPointer { get; init; } - internal readonly IntPtr GetObjectRefTypePointer { get; init; } + internal readonly nint GetVersionPointer { get; init; } + internal readonly nint DefineClassPointer { get; init; } + internal readonly nint FindClassPointer { get; init; } + internal readonly nint FromReflectedMethodPointer { get; init; } + internal readonly nint FromReflectedFieldPointer { get; init; } + internal readonly nint ToReflectedMethodPointer { get; init; } + internal readonly nint GetSuperclassPointer { get; init; } + internal readonly nint IsAssignableFromPointer { get; init; } + internal readonly nint ToReflectedFieldPointer { get; init; } + internal readonly nint ThrowPointer { get; init; } + internal readonly nint ThrowNewPointer { get; init; } + internal readonly nint ExceptionOccurredPointer { get; init; } + internal readonly nint ExceptionDescribePointer { get; init; } + internal readonly nint ExceptionClearPointer { get; init; } + internal readonly nint FatalErrorPointer { get; init; } + internal readonly nint PushLocalFramePointer { get; init; } + internal readonly nint PopLocalFramePointer { get; init; } + internal readonly nint NewGlobalRefPointer { get; init; } + internal readonly nint DeleteGlobalRefPointer { get; init; } + internal readonly nint DeleteLocalRefPointer { get; init; } + internal readonly nint IsSameObjectPointer { get; init; } + internal readonly nint NewLocalRefPointer { get; init; } + internal readonly nint EnsureLocalCapacityPointer { get; init; } + internal readonly nint AllocObjectPointer { get; init; } + internal readonly nint NewObjectPointer { get; init; } + internal readonly nint NewObjectVPointer { get; init; } + internal readonly nint NewObjectAPointer { get; init; } + internal readonly nint GetObjectClassPointer { get; init; } + internal readonly nint IsInstanceOfPointer { get; init; } + internal readonly nint GetMethodIdPointer { get; init; } + private readonly nint CallObjectMethodPointer { get; init; } + private readonly nint CallObjectMethodVPointer { get; init; } + internal readonly nint CallObjectMethodAPointer { get; init; } + private readonly nint CallBooleanMethodPointer { get; init; } + private readonly nint CallBooleanMethodVPointer { get; init; } + internal readonly nint CallBooleanMethodAPointer { get; init; } + private readonly nint CallByteMethodPointer { get; init; } + private readonly nint CallByteMethodVPointer { get; init; } + internal readonly nint CallByteMethodAPointer { get; init; } + private readonly nint CallCharMethodPointer { get; init; } + private readonly nint CallCharMethodVPointer { get; init; } + internal readonly nint CallCharMethodAPointer { get; init; } + private readonly nint CallShortMethodPointer { get; init; } + private readonly nint CallShortMethodVPointer { get; init; } + internal readonly nint CallShortMethodAPointer { get; init; } + private readonly nint CallIntMethodPointer { get; init; } + private readonly nint CallIntMethodVPointer { get; init; } + internal readonly nint CallIntMethodAPointer { get; init; } + private readonly nint CallLongMethodPointer { get; init; } + private readonly nint CallLongMethodVPointer { get; init; } + internal readonly nint CallLongMethodAPointer { get; init; } + private readonly nint CallFloatMethodPointer { get; init; } + private readonly nint CallFloatMethodVPointer { get; init; } + internal readonly nint CallFloatMethodAPointer { get; init; } + private readonly nint CallDoubleMethodPointer { get; init; } + private readonly nint CallDoubleMethodVPointer { get; init; } + internal readonly nint CallDoubleMethodAPointer { get; init; } + private readonly nint CallVoidMethodPointer { get; init; } + private readonly nint CallVoidMethodVPointer { get; init; } + internal readonly nint CallVoidMethodAPointer { get; init; } + private readonly nint CallNonVirtualObjectMethodPointer { get; init; } + private readonly nint CallNonVirtualObjectMethodVPointer { get; init; } + internal readonly nint CallNonVirtualObjectMethodAPointer { get; init; } + private readonly nint CallNonVirtualBooleanMethodPointer { get; init; } + private readonly nint CallNonVirtualBooleanMethodVPointer { get; init; } + internal readonly nint CallNonVirtualBooleanMethodAPointer { get; init; } + private readonly nint CallNonVirtualByteMethodPointer { get; init; } + private readonly nint CallNonVirtualByteMethodVPointer { get; init; } + internal readonly nint CallNonVirtualByteMethodAPointer { get; init; } + private readonly nint CallNonVirtualCharMethodPointer { get; init; } + private readonly nint CallNonVirtualCharMethodVPointer { get; init; } + internal readonly nint CallNonVirtualCharMethodAPointer { get; init; } + private readonly nint CallNonVirtualShortMethodPointer { get; init; } + private readonly nint CallNonVirtualShortMethodVPointer { get; init; } + internal readonly nint CallNonVirtualShortMethodAPointer { get; init; } + private readonly nint CallNonVirtualIntMethodPointer { get; init; } + private readonly nint CallNonVirtualIntMethodVPointer { get; init; } + internal readonly nint CallNonVirtualIntMethodAPointer { get; init; } + private readonly nint CallNonVirtualLongMethodPointer { get; init; } + private readonly nint CallNonVirtualLongMethodVPointer { get; init; } + internal readonly nint CallNonVirtualLongMethodAPointer { get; init; } + private readonly nint CallNonVirtualFloatMethodPointer { get; init; } + private readonly nint CallNonVirtualFloatMethodVPointer { get; init; } + internal readonly nint CallNonVirtualFloatMethodAPointer { get; init; } + private readonly nint CallNonVirtualDoubleMethodPointer { get; init; } + private readonly nint CallNonVirtualDoubleMethodVPointer { get; init; } + internal readonly nint CallNonVirtualDoubleMethodAPointer { get; init; } + private readonly nint CallNonVirtualVoidMethodPointer { get; init; } + private readonly nint CallNonVirtualVoidMethodVPointer { get; init; } + internal readonly nint CallNonVirtualVoidMethodAPointer { get; init; } + internal readonly nint GetFieldIdPointer { get; init; } + internal readonly nint GetObjectFieldPointer { get; init; } + internal readonly nint GetBooleanFieldPointer { get; init; } + internal readonly nint GetByteFieldPointer { get; init; } + internal readonly nint GetCharFieldPointer { get; init; } + internal readonly nint GetShortFieldPointer { get; init; } + internal readonly nint GetIntFieldPointer { get; init; } + internal readonly nint GetLongFieldPointer { get; init; } + internal readonly nint GetFloatFieldPointer { get; init; } + internal readonly nint GetDoubleFieldPointer { get; init; } + internal readonly nint SetObjectFieldPointer { get; init; } + internal readonly nint SetBooleanFieldPointer { get; init; } + internal readonly nint SetByteFieldPointer { get; init; } + internal readonly nint SetCharFieldPointer { get; init; } + internal readonly nint SetShortFieldPointer { get; init; } + internal readonly nint SetIntFieldPointer { get; init; } + internal readonly nint SetLongFieldPointer { get; init; } + internal readonly nint SetFloatFieldPointer { get; init; } + internal readonly nint SetDoubleFieldPointer { get; init; } + internal readonly nint GetStaticMethodIdPointer { get; init; } + private readonly nint CallStaticObjectMethodPointer { get; init; } + private readonly nint CallStaticObjectMethodVPointer { get; init; } + internal readonly nint CallStaticObjectMethodAPointer { get; init; } + private readonly nint CallStaticBooleanMethodPointer { get; init; } + private readonly nint CallStaticBooleanMethodVPointer { get; init; } + internal readonly nint CallStaticBooleanMethodAPointer { get; init; } + private readonly nint CallStaticByteMethodPointer { get; init; } + private readonly nint CallStaticByteMethodVPointer { get; init; } + internal readonly nint CallStaticByteMethodAPointer { get; init; } + private readonly nint CallStaticCharMethodPointer { get; init; } + private readonly nint CallStaticCharMethodVPointer { get; init; } + internal readonly nint CallStaticCharMethodAPointer { get; init; } + private readonly nint CallStaticShortMethodPointer { get; init; } + private readonly nint CallStaticShortMethodVPointer { get; init; } + internal readonly nint CallStaticShortMethodAPointer { get; init; } + private readonly nint CallStaticIntMethodPointer { get; init; } + private readonly nint CallStaticIntMethodVPointer { get; init; } + internal readonly nint CallStaticIntMethodAPointer { get; init; } + private readonly nint CallStaticLongMethodPointer { get; init; } + private readonly nint CallStaticLongMethodVPointer { get; init; } + internal readonly nint CallStaticLongMethodAPointer { get; init; } + private readonly nint CallStaticFloatMethodPointer { get; init; } + private readonly nint CallStaticFloatMethodVPointer { get; init; } + internal readonly nint CallStaticFloatMethodAPointer { get; init; } + private readonly nint CallStaticDoubleMethodPointer { get; init; } + private readonly nint CallStaticDoubleMethodVPointer { get; init; } + internal readonly nint CallStaticDoubleMethodAPointer { get; init; } + private readonly nint CallStaticVoidMethodPointer { get; init; } + private readonly nint CallStaticVoidMethodVPointer { get; init; } + internal readonly nint CallStaticVoidMethodAPointer { get; init; } + internal readonly nint GetStaticFieldIdPointer { get; init; } + internal readonly nint GetStaticObjectFieldPointer { get; init; } + internal readonly nint GetStaticBooleanFieldPointer { get; init; } + internal readonly nint GetStaticByteFieldPointer { get; init; } + internal readonly nint GetStaticCharFieldPointer { get; init; } + internal readonly nint GetStaticShortFieldPointer { get; init; } + internal readonly nint GetStaticIntFieldPointer { get; init; } + internal readonly nint GetStaticLongFieldPointer { get; init; } + internal readonly nint GetStaticFloatFieldPointer { get; init; } + internal readonly nint GetStaticDoubleFieldPointer { get; init; } + internal readonly nint SetStaticObjectFieldPointer { get; init; } + internal readonly nint SetStaticBooleanFieldPointer { get; init; } + internal readonly nint SetStaticByteFieldPointer { get; init; } + internal readonly nint SetStaticCharFieldPointer { get; init; } + internal readonly nint SetStaticShortFieldPointer { get; init; } + internal readonly nint SetStaticIntFieldPointer { get; init; } + internal readonly nint SetStaticLongFieldPointer { get; init; } + internal readonly nint SetStaticFloatFieldPointer { get; init; } + internal readonly nint SetStaticDoubleFieldPointer { get; init; } + internal readonly nint NewStringPointer { get; init; } + internal readonly nint GetStringLengthPointer { get; init; } + internal readonly nint GetStringCharsPointer { get; init; } + internal readonly nint ReleaseStringCharsPointer { get; init; } + internal readonly nint NewStringUtfPointer { get; init; } + internal readonly nint GetStringUtfLengthPointer { get; init; } + internal readonly nint GetStringUtfCharsPointer { get; init; } + internal readonly nint ReleaseStringUtfCharsPointer { get; init; } + internal readonly nint GetArrayLengthPointer { get; init; } + internal readonly nint NewObjectArrayPointer { get; init; } + internal readonly nint GetObjectArrayElementPointer { get; init; } + internal readonly nint SetObjectArrayElementPointer { get; init; } + internal readonly nint NewBooleanArrayPointer { get; init; } + internal readonly nint NewByteArrayPointer { get; init; } + internal readonly nint NewCharArrayPointer { get; init; } + internal readonly nint NewShortArrayPointer { get; init; } + internal readonly nint NewIntArrayPointer { get; init; } + internal readonly nint NewLongArrayPointer { get; init; } + internal readonly nint NewFloatArrayPointer { get; init; } + internal readonly nint NewDoubleArrayPointer { get; init; } + internal readonly nint GetBooleanArrayElementsPointer { get; init; } + internal readonly nint GetByteArrayElementsPointer { get; init; } + internal readonly nint GetCharArrayElementsPointer { get; init; } + internal readonly nint GetShortArrayElementsPointer { get; init; } + internal readonly nint GetIntArrayElementsPointer { get; init; } + internal readonly nint GetLongArrayElementsPointer { get; init; } + internal readonly nint GetFloatArrayElementsPointer { get; init; } + internal readonly nint GetDoubleArrayElementsPointer { get; init; } + internal readonly nint ReleaseBooleanArrayElementsPointer { get; init; } + internal readonly nint ReleaseByteArrayElementsPointer { get; init; } + internal readonly nint ReleaseCharArrayElementsPointer { get; init; } + internal readonly nint ReleaseShortArrayElementsPointer { get; init; } + internal readonly nint ReleaseIntArrayElementsPointer { get; init; } + internal readonly nint ReleaseLongArrayElementsPointer { get; init; } + internal readonly nint ReleaseFloatArrayElementsPointer { get; init; } + internal readonly nint ReleaseDoubleArrayElementsPointer { get; init; } + internal readonly nint GetBooleanArrayRegionPointer { get; init; } + internal readonly nint GetByteArrayRegionPointer { get; init; } + internal readonly nint GetCharArrayRegionPointer { get; init; } + internal readonly nint GetShortArrayRegionPointer { get; init; } + internal readonly nint GetIntArrayRegionPointer { get; init; } + internal readonly nint GetLongArrayRegionPointer { get; init; } + internal readonly nint GetFloatArrayRegionPointer { get; init; } + internal readonly nint GetDoubleArrayRegionPointer { get; init; } + internal readonly nint SetBooleanArrayRegionPointer { get; init; } + internal readonly nint SetByteArrayRegionPointer { get; init; } + internal readonly nint SetCharArrayRegionPointer { get; init; } + internal readonly nint SetShortArrayRegionPointer { get; init; } + internal readonly nint SetIntArrayRegionPointer { get; init; } + internal readonly nint SetLongArrayRegionPointer { get; init; } + internal readonly nint SetFloatArrayRegionPointer { get; init; } + internal readonly nint SetDoubleArrayRegionPointer { get; init; } + internal readonly nint RegisterNativesPointer { get; init; } + internal readonly nint UnregisterNativesPointer { get; init; } + internal readonly nint MonitorEnterPointer { get; init; } + internal readonly nint MonitorExitPointer { get; init; } + internal readonly nint GetJavaVMPointer { get; init; } + internal readonly nint GetStringRegionPointer { get; init; } + internal readonly nint GetStringUtfRegionPointer { get; init; } + internal readonly nint GetPrimitiveArrayCriticalPointer { get; init; } + internal readonly nint ReleasePrimitiveArrayCriticalPointer { get; init; } + internal readonly nint GetStringCriticalPointer { get; init; } + internal readonly nint ReleaseStringCriticalPointer { get; init; } + internal readonly nint NewWeakGlobalRefPointer { get; init; } + internal readonly nint DeleteWeakGlobalRefPointer { get; init; } + internal readonly nint ExceptionCheckPointer { get; init; } + internal readonly nint NewDirectByteBufferPointer { get; init; } + internal readonly nint GetDirectBufferAddressPointer { get; init; } + internal readonly nint GetDirectBufferCapacityPointer { get; init; } + internal readonly nint GetObjectRefTypePointer { get; init; } } diff --git a/src/LibKenjinx/Android/Jni/Values/JNativeMethod.cs b/src/LibKenjinx/Android/Jni/Values/JNativeMethod.cs index edeae9d04..45c7a6b22 100644 --- a/src/LibKenjinx/Android/Jni/Values/JNativeMethod.cs +++ b/src/LibKenjinx/Android/Jni/Values/JNativeMethod.cs @@ -7,5 +7,5 @@ public readonly struct JNativeMethod { internal ReadOnlyValPtr Name { get; init; } internal ReadOnlyValPtr Signature { get; init; } - internal IntPtr Pointer { get; init; } + internal nint Pointer { get; init; } } diff --git a/src/LibKenjinx/Android/Jni/Values/JavaVMInitArgs.cs b/src/LibKenjinx/Android/Jni/Values/JavaVMInitArgs.cs index 94b6065ad..3c0b446cf 100644 --- a/src/LibKenjinx/Android/Jni/Values/JavaVMInitArgs.cs +++ b/src/LibKenjinx/Android/Jni/Values/JavaVMInitArgs.cs @@ -6,7 +6,7 @@ namespace LibKenjinx.Jni.Values { internal Int32 Version { get; init; } internal Int32 OptionsLenght { get; init; } - internal IntPtr Options { get; init; } + internal nint Options { get; init; } internal Boolean IgnoreUnrecognized { get; init; } } } diff --git a/src/LibKenjinx/Android/Jni/Values/JavaVMOption.cs b/src/LibKenjinx/Android/Jni/Values/JavaVMOption.cs index ca4314306..87393bd2d 100644 --- a/src/LibKenjinx/Android/Jni/Values/JavaVMOption.cs +++ b/src/LibKenjinx/Android/Jni/Values/JavaVMOption.cs @@ -6,5 +6,5 @@ namespace LibKenjinx.Jni.Values; public readonly struct JavaVMOption { internal ReadOnlyValPtr Name { get; init; } - internal IntPtr ExtraInfo { get; init; } + internal nint ExtraInfo { get; init; } } diff --git a/src/LibKenjinx/Android/Jni/Values/JavaVMValue.cs b/src/LibKenjinx/Android/Jni/Values/JavaVMValue.cs index 58524021a..3b690ee35 100644 --- a/src/LibKenjinx/Android/Jni/Values/JavaVMValue.cs +++ b/src/LibKenjinx/Android/Jni/Values/JavaVMValue.cs @@ -6,7 +6,7 @@ namespace LibKenjinx.Jni.Values; internal readonly struct JavaVMValue : IEquatable { #pragma warning disable 0649 - private readonly IntPtr _value; + private readonly nint _value; #pragma warning restore 0649 #region Operators diff --git a/src/LibKenjinx/Android/JniExportedMethods.cs b/src/LibKenjinx/Android/JniExportedMethods.cs index aafa65725..3219349fe 100644 --- a/src/LibKenjinx/Android/JniExportedMethods.cs +++ b/src/LibKenjinx/Android/JniExportedMethods.cs @@ -292,10 +292,10 @@ namespace LibKenjinx [DllImport("libkenjinxjni")] internal extern static void setCurrentTransform(long native_window, int transform); - public delegate IntPtr JniCreateSurface(IntPtr native_surface, IntPtr instance); + public delegate nint JniCreateSurface(nint native_surface, nint instance); [UnmanagedCallersOnly(EntryPoint = "javaInitialize")] - public unsafe static bool JniInitialize(IntPtr jpathId, IntPtr jniEnv) + public unsafe static bool JniInitialize(nint jpathId, nint jniEnv) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); PlatformInfo.IsBionic = true; @@ -339,7 +339,7 @@ namespace LibKenjinx bool enableInternetAccess, bool enableFsIntegrityChecks, int fsGlobalAccessLogMode, - IntPtr timeZonePtr, + nint timeZonePtr, bool ignoreMissingServices) { debug_break(4); @@ -405,7 +405,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "deviceGetDlcContentList")] - public static IntPtr JniGetDlcContentListNative(IntPtr pathPtr, long titleId) + public static nint JniGetDlcContentListNative(nint pathPtr, long titleId) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var list = GetDlcContentList(Marshal.PtrToStringAnsi(pathPtr) ?? "", (ulong)titleId); @@ -414,7 +414,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "deviceGetDlcTitleId")] - public static long JniGetDlcTitleIdNative(IntPtr pathPtr, IntPtr ncaPath) + public static long JniGetDlcTitleIdNative(nint pathPtr, nint ncaPath) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); return Marshal.StringToHGlobalAnsi(GetDlcTitleId(Marshal.PtrToStringAnsi(pathPtr) ?? "", Marshal.PtrToStringAnsi(ncaPath) ?? "")); @@ -457,13 +457,13 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "deviceVerifyFirmware")] - public static IntPtr JniVerifyFirmware(int descriptor, bool isXci) + public static nint JniVerifyFirmware(int descriptor, bool isXci) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var stream = OpenFile(descriptor); - IntPtr stringHandle = 0; + nint stringHandle = 0; string? version = "0.0"; try @@ -494,7 +494,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "deviceGetInstalledFirmwareVersion")] - public static IntPtr JniGetInstalledFirmwareVersion() + public static nint JniGetInstalledFirmwareVersion() { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); @@ -544,12 +544,12 @@ namespace LibKenjinx for (int i = 0; i < extensionsLength; i++) { - extensions.Add(Marshal.PtrToStringAnsi((IntPtr)extensionsArray[i])); + extensions.Add(Marshal.PtrToStringAnsi((nint)extensionsArray[i])); } if (driverHandle != 0) { - VulkanLoader = new VulkanLoader((IntPtr)driverHandle); + VulkanLoader = new VulkanLoader((nint)driverHandle); } CreateSurface createSurfaceFunc = instance => @@ -595,7 +595,7 @@ namespace LibKenjinx return (nint)surface.Handle; } - return IntPtr.Zero; + return nint.Zero; }; return InitializeGraphicsRenderer(GraphicsBackend.Vulkan, createSurfaceFunc, extensions.ToArray()); @@ -638,7 +638,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "deviceGetGameInfo")] - public unsafe static void JniGetGameInfo(int fileDescriptor, IntPtr extension, IntPtr infoPtr) + public unsafe static void JniGetGameInfo(int fileDescriptor, nint extension, nint infoPtr) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); using var stream = OpenFile(fileDescriptor); @@ -740,7 +740,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "userGetOpenedUser")] - public static IntPtr JniGetOpenedUser() + public static nint JniGetOpenedUser() { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var userId = GetOpenedUser(); @@ -750,7 +750,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "userGetUserPicture")] - public static IntPtr JniGetUserPicture(IntPtr userIdPtr) + public static nint JniGetUserPicture(nint userIdPtr) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; @@ -759,7 +759,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "userSetUserPicture")] - public static void JniGetUserPicture(IntPtr userIdPtr, IntPtr picturePtr) + public static void JniGetUserPicture(nint userIdPtr, nint picturePtr) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; @@ -769,7 +769,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "userGetUserName")] - public static IntPtr JniGetUserName(IntPtr userIdPtr) + public static nint JniGetUserName(nint userIdPtr) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; @@ -778,7 +778,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "userSetUserName")] - public static void JniSetUserName(IntPtr userIdPtr, IntPtr userNamePtr) + public static void JniSetUserName(nint userIdPtr, nint userNamePtr) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; @@ -788,7 +788,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "userGetAllUsers")] - public static IntPtr JniGetAllUsers() + public static nint JniGetAllUsers() { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var users = GetAllUsers(); @@ -797,7 +797,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "userAddUser")] - public static void JniAddUser(IntPtr userNamePtr, IntPtr picturePtr) + public static void JniAddUser(nint userNamePtr, nint picturePtr) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var userName = Marshal.PtrToStringAnsi(userNamePtr) ?? ""; @@ -807,7 +807,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "userDeleteUser")] - public static void JniDeleteUser(IntPtr userIdPtr) + public static void JniDeleteUser(nint userIdPtr) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; @@ -838,13 +838,13 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "uiHandlerSetResponse")] - public static void JniSetUiHandlerResponse(bool isOkPressed, IntPtr input) + public static void JniSetUiHandlerResponse(bool isOkPressed, nint input) { SetUiHandlerResponse(isOkPressed, Marshal.PtrToStringAnsi(input) ?? ""); } [UnmanagedCallersOnly(EntryPoint = "userOpenUser")] - public static void JniOpenUser(IntPtr userIdPtr) + public static void JniOpenUser(nint userIdPtr) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; @@ -853,7 +853,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "userCloseUser")] - public static void JniCloseUser(IntPtr userIdPtr) + public static void JniCloseUser(nint userIdPtr) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; @@ -1044,9 +1044,9 @@ namespace LibKenjinx // ===== Amiibo JNI Exports ===== [UnmanagedCallersOnly(EntryPoint = "amiiboLoadBin")] - public static bool JniAmiiboLoadBin(IntPtr dataPtr, int length) + public static bool JniAmiiboLoadBin(nint dataPtr, int length) { - if (dataPtr == IntPtr.Zero || length <= 0) return false; + if (dataPtr == nint.Zero || length <= 0) return false; try { byte[] buf = new byte[length]; @@ -1072,10 +1072,10 @@ namespace LibKenjinx { [LibraryImport("liblog", StringMarshalling = StringMarshalling.Utf8)] - private static partial void __android_log_print(LogLevel level, string? tag, string format, string args, IntPtr ptr); + private static partial void __android_log_print(LogLevel level, string? tag, string format, string args, nint ptr); internal static void AndroidLogPrint(LogLevel level, string? tag, string message) => - __android_log_print(level, tag, "%s", message, IntPtr.Zero); + __android_log_print(level, tag, "%s", message, nint.Zero); internal enum LogLevel { diff --git a/src/LibKenjinx/LibKenjinx.Graphics.cs b/src/LibKenjinx/LibKenjinx.Graphics.cs index 2235604f0..7f0e1d14e 100644 --- a/src/LibKenjinx/LibKenjinx.Graphics.cs +++ b/src/LibKenjinx/LibKenjinx.Graphics.cs @@ -26,8 +26,8 @@ namespace LibKenjinx private static bool _enableGraphicsLogging; public delegate void SwapBuffersCallback(); - public delegate IntPtr GetProcAddress(string name); - public delegate IntPtr CreateSurface(IntPtr instance); + public delegate nint GetProcAddress(string name); + public delegate nint CreateSurface(nint instance); public static IRenderer? Renderer { get; set; } public static GraphicsConfiguration GraphicsConfiguration { get; private set; } @@ -278,10 +278,10 @@ namespace LibKenjinx public struct NativeGraphicsInterop { - public IntPtr GlGetProcAddress; - public IntPtr VkNativeContextLoader; - public IntPtr VkCreateSurface; - public IntPtr VkRequiredExtensions; + public nint GlGetProcAddress; + public nint VkNativeContextLoader; + public nint VkCreateSurface; + public nint VkRequiredExtensions; public int VkRequiredExtensionsCount; } } diff --git a/src/LibKenjinx/LibKenjinx.Native.cs b/src/LibKenjinx/LibKenjinx.Native.cs index 037b1da25..919039906 100644 --- a/src/LibKenjinx/LibKenjinx.Native.cs +++ b/src/LibKenjinx/LibKenjinx.Native.cs @@ -32,7 +32,7 @@ namespace LibKenjinx bool enableInternetAccess, bool enableFsIntegrityChecks, int fsGlobalAccessLogMode, - IntPtr timeZone, + nint timeZone, bool ignoreMissingServices) { return InitializeDevice(memoryManagerMode, @@ -59,7 +59,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "device_load")] - public static bool LoadApplicationNative(IntPtr pathPtr) + public static bool LoadApplicationNative(nint pathPtr) { if (SwitchDevice?.EmulationContext == null) { @@ -80,14 +80,14 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "device_get_installed_firmware_version")] - public static IntPtr GetInstalledFirmwareVersionNative() + public static nint GetInstalledFirmwareVersionNative() { var result = GetInstalledFirmwareVersion(); return Marshal.StringToHGlobalAnsi(result); } [UnmanagedCallersOnly(EntryPoint = "initialize")] - public static bool InitializeNative(IntPtr basePathPtr) + public static bool InitializeNative(nint basePathPtr) { var path = Marshal.PtrToStringAnsi(basePathPtr); @@ -119,14 +119,14 @@ namespace LibKenjinx } List extensions = []; - var extPtr = (IntPtr*)nativeGraphicsInterop.VkRequiredExtensions; + var extPtr = (nint*)nativeGraphicsInterop.VkRequiredExtensions; for (int i = 0; i < nativeGraphicsInterop.VkRequiredExtensionsCount; i++) { var ptr = extPtr[i]; extensions.Add(Marshal.PtrToStringAnsi(ptr) ?? string.Empty); } - CreateSurface? createSurfaceFunc = nativeGraphicsInterop.VkCreateSurface == IntPtr.Zero ? default : Marshal.GetDelegateForFunctionPointer(nativeGraphicsInterop.VkCreateSurface); + CreateSurface? createSurfaceFunc = nativeGraphicsInterop.VkCreateSurface == nint.Zero ? default : Marshal.GetDelegateForFunctionPointer(nativeGraphicsInterop.VkCreateSurface); return InitializeGraphicsRenderer(graphicsBackend, createSurfaceFunc, extensions.ToArray()); } @@ -155,13 +155,13 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "graphics_renderer_set_swap_buffer_callback")] - public static void SetSwapBuffersCallbackNative(IntPtr swapBuffersCallback) + public static void SetSwapBuffersCallbackNative(nint swapBuffersCallback) { _swapBuffersCallback = Marshal.GetDelegateForFunctionPointer(swapBuffersCallback); } [UnmanagedCallersOnly(EntryPoint = "get_game_info")] - public static GameInfoNative GetGameInfoNative(int descriptor, IntPtr extensionPtr) + public static GameInfoNative GetGameInfoNative(int descriptor, nint extensionPtr) { var extension = Marshal.PtrToStringAnsi(extensionPtr); var stream = OpenFile(descriptor); @@ -232,7 +232,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "input_connect_gamepad")] - public static IntPtr ConnectGamepadNative(int index) + public static nint ConnectGamepadNative(int index) { return ConnectGamepad(index); } @@ -273,7 +273,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "device_get_dlc_content_list")] - public static IntPtr GetDlcContentListNative(IntPtr pathPtr, long titleId) + public static nint GetDlcContentListNative(nint pathPtr, long titleId) { var list = GetDlcContentList(Marshal.PtrToStringAnsi(pathPtr) ?? "", (ulong)titleId); @@ -281,7 +281,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "device_get_dlc_title_id")] - public static long GetDlcTitleIdNative(IntPtr pathPtr, IntPtr ncaPath) + public static long GetDlcTitleIdNative(nint pathPtr, nint ncaPath) { return Marshal.StringToHGlobalAnsi(GetDlcTitleId(Marshal.PtrToStringAnsi(pathPtr) ?? "", Marshal.PtrToStringAnsi(ncaPath) ?? "")); } @@ -319,11 +319,11 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "device_verify_firmware")] - public static IntPtr VerifyFirmwareNative(int descriptor, bool isXci) + public static nint VerifyFirmwareNative(int descriptor, bool isXci) { var stream = OpenFile(descriptor); - IntPtr stringHandle = 0; + nint stringHandle = 0; string? version = "0.0"; try @@ -356,7 +356,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "device_get_game_info")] - public unsafe static void GetGameInfoNative(int fileDescriptor, IntPtr extension, IntPtr infoPtr) + public unsafe static void GetGameInfoNative(int fileDescriptor, nint extension, nint infoPtr) { using var stream = OpenFile(fileDescriptor); var ext = Marshal.PtrToStringAnsi(extension); @@ -373,7 +373,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "user_get_opened_user")] - public static IntPtr GetOpenedUserNative() + public static nint GetOpenedUserNative() { var userId = GetOpenedUser(); var ptr = Marshal.StringToHGlobalAnsi(userId); @@ -382,7 +382,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "user_get_user_picture")] - public static IntPtr GetUserPictureNative(IntPtr userIdPtr) + public static nint GetUserPictureNative(nint userIdPtr) { var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; @@ -390,7 +390,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "user_set_user_picture")] - public static void SetUserPictureNative(IntPtr userIdPtr, IntPtr picturePtr) + public static void SetUserPictureNative(nint userIdPtr, nint picturePtr) { var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; var picture = Marshal.PtrToStringAnsi(picturePtr) ?? ""; @@ -399,7 +399,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "user_get_user_name")] - public static IntPtr GetUserNameNative(IntPtr userIdPtr) + public static nint GetUserNameNative(nint userIdPtr) { var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; @@ -407,7 +407,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "user_set_user_name")] - public static void SetUserNameNative(IntPtr userIdPtr, IntPtr userNamePtr) + public static void SetUserNameNative(nint userIdPtr, nint userNamePtr) { var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; var userName = Marshal.PtrToStringAnsi(userNamePtr) ?? ""; @@ -416,7 +416,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "user_get_all_users")] - public static IntPtr GetAllUsersNative() + public static nint GetAllUsersNative() { var users = GetAllUsers(); @@ -424,7 +424,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "user_add_user")] - public static void AddUserNative(IntPtr userNamePtr, IntPtr picturePtr) + public static void AddUserNative(nint userNamePtr, nint picturePtr) { var userName = Marshal.PtrToStringAnsi(userNamePtr) ?? ""; var picture = Marshal.PtrToStringAnsi(picturePtr) ?? ""; @@ -433,7 +433,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "user_delete_user")] - public static void DeleteUserNative(IntPtr userIdPtr) + public static void DeleteUserNative(nint userIdPtr) { var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; @@ -441,7 +441,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "user_open_user")] - public static void OpenUserNative(IntPtr userIdPtr) + public static void OpenUserNative(nint userIdPtr) { var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; @@ -449,7 +449,7 @@ namespace LibKenjinx } [UnmanagedCallersOnly(EntryPoint = "user_close_user")] - public static void CloseUserNative(IntPtr userIdPtr) + public static void CloseUserNative(nint userIdPtr) { var userId = Marshal.PtrToStringAnsi(userIdPtr) ?? ""; diff --git a/src/LibKenjinx/LibKenjinx.NativeHelpers.cs b/src/LibKenjinx/LibKenjinx.NativeHelpers.cs index 52ff4e5a7..6c041b49d 100644 --- a/src/LibKenjinx/LibKenjinx.NativeHelpers.cs +++ b/src/LibKenjinx/LibKenjinx.NativeHelpers.cs @@ -9,9 +9,9 @@ namespace LibKenjinx { public static partial class LibKenjinx { - private unsafe static IntPtr CreateStringArray(List strings) + private unsafe static nint CreateStringArray(List strings) { - uint size = (uint)(Marshal.SizeOf() * (strings.Count + 1)); + uint size = (uint)(Marshal.SizeOf() * (strings.Count + 1)); var array = (char**)Marshal.AllocHGlobal((int)size); Unsafe.InitBlockUnaligned(array, 0, size); diff --git a/src/LibKenjinx/OpenTKBindingsContext.cs b/src/LibKenjinx/OpenTKBindingsContext.cs index 18438b6e5..533e060fe 100644 --- a/src/LibKenjinx/OpenTKBindingsContext.cs +++ b/src/LibKenjinx/OpenTKBindingsContext.cs @@ -5,16 +5,16 @@ namespace LibKenjinx.Shared { public class OpenTKBindingsContext : IBindingsContext { - private readonly Func _getProcAddress; + private readonly Func _getProcAddress; - public OpenTKBindingsContext(Func getProcAddress) + public OpenTKBindingsContext(Func getProcAddress) { _getProcAddress = getProcAddress; } - public IntPtr GetProcAddress(string procName) + public nint GetProcAddress(string procName) { return _getProcAddress(procName); } } -} \ No newline at end of file +} diff --git a/src/LibKenjinx/VulkanLoader.cs b/src/LibKenjinx/VulkanLoader.cs index ad145d58f..fadc4b5c9 100644 --- a/src/LibKenjinx/VulkanLoader.cs +++ b/src/LibKenjinx/VulkanLoader.cs @@ -8,27 +8,27 @@ namespace LibKenjinx { public class VulkanLoader : IDisposable { - private delegate IntPtr GetInstanceProcAddress(IntPtr instance, IntPtr name); - private delegate IntPtr GetDeviceProcAddress(IntPtr device, IntPtr name); + private delegate nint GetInstanceProcAddress(nint instance, nint name); + private delegate nint GetDeviceProcAddress(nint device, nint name); - private IntPtr _loadedLibrary = IntPtr.Zero; + private nint _loadedLibrary = nint.Zero; private GetInstanceProcAddress _getInstanceProcAddr; private GetDeviceProcAddress _getDeviceProcAddr; public void Dispose() { - if (_loadedLibrary != IntPtr.Zero) + if (_loadedLibrary != nint.Zero) { NativeLibrary.Free(_loadedLibrary); - _loadedLibrary = IntPtr.Zero; + _loadedLibrary = nint.Zero; } } - public VulkanLoader(IntPtr driver) + public VulkanLoader(nint driver) { _loadedLibrary = driver; - if (_loadedLibrary != IntPtr.Zero) + if (_loadedLibrary != nint.Zero) { var instanceGetProc = NativeLibrary.GetExport(_loadedLibrary, "vkGetInstanceProcAddr"); var deviceProc = NativeLibrary.GetExport(_loadedLibrary, "vkGetDeviceProcAddr"); @@ -41,7 +41,7 @@ namespace LibKenjinx public unsafe Vk GetApi() { - if (_loadedLibrary == IntPtr.Zero) + if (_loadedLibrary == nint.Zero) { return Vk.GetApi(); } @@ -60,12 +60,12 @@ namespace LibKenjinx if (ptr == default) { - ptr = _getInstanceProcAddr(IntPtr.Zero, xPtr); + ptr = _getInstanceProcAddr(nint.Zero, xPtr); if (ptr == default) { var currentDevice = ret.CurrentDevice.GetValueOrDefault().Handle; - if (currentDevice != IntPtr.Zero) + if (currentDevice != nint.Zero) { ptr = _getDeviceProcAddr(currentDevice, xPtr); } diff --git a/src/Ryujinx.Cpu/Jit/MemoryManagerHostNoMirror.cs b/src/Ryujinx.Cpu/Jit/MemoryManagerHostNoMirror.cs index 743956271..cccc17fda 100644 --- a/src/Ryujinx.Cpu/Jit/MemoryManagerHostNoMirror.cs +++ b/src/Ryujinx.Cpu/Jit/MemoryManagerHostNoMirror.cs @@ -31,7 +31,7 @@ namespace Ryujinx.Cpu.Jit /// public bool UsesPrivateAllocations => false; - public IntPtr PageTablePointer => _addressSpace.Pointer; + public nint PageTablePointer => _addressSpace.Pointer; public MemoryManagerType Type => _unsafeMode ? MemoryManagerType.HostMappedUnsafe : MemoryManagerType.HostMapped; @@ -186,7 +186,7 @@ namespace Ryujinx.Cpu.Jit for (int i = 0; i < regions.Length; i++) { var guestRegion = guestRegions[i]; - IntPtr pointer = _backingMemory.GetPointer(guestRegion.Address, guestRegion.Size); + nint pointer = _backingMemory.GetPointer(guestRegion.Address, guestRegion.Size); regions[i] = new HostMemoryRange((nuint)(ulong)pointer, guestRegion.Size); } diff --git a/src/Ryujinx.Cpu/Nce/MemoryManagerNative.cs b/src/Ryujinx.Cpu/Nce/MemoryManagerNative.cs index cbb3fd2b4..3ea0a1a61 100644 --- a/src/Ryujinx.Cpu/Nce/MemoryManagerNative.cs +++ b/src/Ryujinx.Cpu/Nce/MemoryManagerNative.cs @@ -26,7 +26,7 @@ namespace Ryujinx.Cpu.Nce /// public bool UsesPrivateAllocations => false; - public IntPtr PageTablePointer => IntPtr.Zero; + public nint PageTablePointer => nint.Zero; public ulong ReservedSize => (ulong)_addressSpace.Pointer.ToInt64(); @@ -174,7 +174,7 @@ namespace Ryujinx.Cpu.Nce for (int i = 0; i < regions.Length; i++) { var guestRegion = guestRegions[i]; - IntPtr pointer = _backingMemory.GetPointer(guestRegion.Address, guestRegion.Size); + nint pointer = _backingMemory.GetPointer(guestRegion.Address, guestRegion.Size); regions[i] = new HostMemoryRange((nuint)(ulong)pointer, guestRegion.Size); } diff --git a/src/Ryujinx.Cpu/Nce/NceCpuContext.cs b/src/Ryujinx.Cpu/Nce/NceCpuContext.cs index 154ffd5bf..927496414 100644 --- a/src/Ryujinx.Cpu/Nce/NceCpuContext.cs +++ b/src/Ryujinx.Cpu/Nce/NceCpuContext.cs @@ -58,8 +58,8 @@ namespace Ryujinx.Cpu.Nce } } - private delegate void ThreadStart(IntPtr nativeContextPtr); - private delegate IntPtr GetTpidrEl0(); + private delegate void ThreadStart(nint nativeContextPtr); + private delegate nint GetTpidrEl0(); private static MemoryBlock _codeBlock; private static ThreadStart _threadStart; private static GetTpidrEl0 _getTpidrEl0; @@ -80,7 +80,7 @@ namespace Ryujinx.Cpu.Nce MemoryBlock codeBlock = null; - NativeSignalHandler.InitializeSignalHandler((IntPtr oldSignalHandlerSegfaultPtr, IntPtr signalHandlerPtr) => + NativeSignalHandler.InitializeSignalHandler((nint oldSignalHandlerSegfaultPtr, nint signalHandlerPtr) => { uint[] ehWrapperCode = NcePatcher.GenerateWrapperExceptionHandler(oldSignalHandlerSegfaultPtr, signalHandlerPtr); ulong ehWrapperCodeOffset = codeWriter.Write(ehWrapperCode); diff --git a/src/Ryujinx.Cpu/Nce/NceExecutionContext.cs b/src/Ryujinx.Cpu/Nce/NceExecutionContext.cs index 37069939e..492ee3371 100644 --- a/src/Ryujinx.Cpu/Nce/NceExecutionContext.cs +++ b/src/Ryujinx.Cpu/Nce/NceExecutionContext.cs @@ -14,7 +14,7 @@ namespace Ryujinx.Cpu.Nce private readonly NceNativeContext _context; private readonly ExceptionCallbacks _exceptionCallbacks; - internal IntPtr NativeContextPtr => _context.BasePtr; + internal nint NativeContextPtr => _context.BasePtr; public ulong Pc => 0UL; @@ -70,7 +70,7 @@ namespace Ryujinx.Cpu.Nce public NceExecutionContext(ExceptionCallbacks exceptionCallbacks) { _svcHandler = OnSupervisorCall; - IntPtr svcHandlerPtr = Marshal.GetFunctionPointerForDelegate(_svcHandler); + nint svcHandlerPtr = Marshal.GetFunctionPointerForDelegate(_svcHandler); _context = new NceNativeContext(); @@ -108,7 +108,7 @@ namespace Ryujinx.Cpu.Nce public void Exit() { - _context.GetStorage().HostThreadHandle = IntPtr.Zero; + _context.GetStorage().HostThreadHandle = nint.Zero; UnregisterAlternateStack(); } @@ -143,8 +143,8 @@ namespace Ryujinx.Cpu.Nce public void RequestInterrupt() { - IntPtr threadHandle = _context.GetStorage().HostThreadHandle; - if (threadHandle != IntPtr.Zero) + nint threadHandle = _context.GetStorage().HostThreadHandle; + if (threadHandle != nint.Zero) { // Bit 0 set means that the thread is currently running managed code. // Bit 1 set means that an interrupt was requested for the thread. diff --git a/src/Ryujinx.Cpu/Nce/NceMemoryBlock.cs b/src/Ryujinx.Cpu/Nce/NceMemoryBlock.cs index 7bf180eb4..19f59149e 100644 --- a/src/Ryujinx.Cpu/Nce/NceMemoryBlock.cs +++ b/src/Ryujinx.Cpu/Nce/NceMemoryBlock.cs @@ -8,7 +8,7 @@ namespace Ryujinx.Cpu.Nce { private readonly MemoryBlock _impl; - public IntPtr Pointer => _impl.Pointer; + public nint Pointer => _impl.Pointer; public NceMemoryBlock(ulong size, MemoryAllocationFlags flags) { diff --git a/src/Ryujinx.Cpu/Nce/NceNativeContext.cs b/src/Ryujinx.Cpu/Nce/NceNativeContext.cs index a7d5f4eec..3f3d2ce5d 100644 --- a/src/Ryujinx.Cpu/Nce/NceNativeContext.cs +++ b/src/Ryujinx.Cpu/Nce/NceNativeContext.cs @@ -20,16 +20,16 @@ namespace Ryujinx.Cpu.Nce public uint Fpsr; public uint InManaged; public ulong HostSp; - public IntPtr HostThreadHandle; + public nint HostThreadHandle; public ulong TempStorage; - public IntPtr SvcCallHandler; + public nint SvcCallHandler; } private static NativeCtxStorage _dummyStorage = new(); private readonly MemoryBlock _block; - public IntPtr BasePtr => _block.Pointer; + public nint BasePtr => _block.Pointer; public NceNativeContext() { @@ -95,4 +95,4 @@ namespace Ryujinx.Cpu.Nce public void Dispose() => _block.Dispose(); } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Cpu/Nce/NceNativeInterface.cs b/src/Ryujinx.Cpu/Nce/NceNativeInterface.cs index 843af8b5c..77e0abbbc 100644 --- a/src/Ryujinx.Cpu/Nce/NceNativeInterface.cs +++ b/src/Ryujinx.Cpu/Nce/NceNativeInterface.cs @@ -9,8 +9,8 @@ namespace Ryujinx.Cpu.Nce private delegate bool SuspendThreadHandlerDelegate(); private static GetTickCounterDelegate _getTickCounter; private static SuspendThreadHandlerDelegate _suspendThreadHandler; - private static IntPtr _getTickCounterPtr; - private static IntPtr _suspendThreadHandlerPtr; + private static nint _getTickCounterPtr; + private static nint _suspendThreadHandlerPtr; [ThreadStatic] private static NceExecutionContext _context; @@ -42,14 +42,14 @@ namespace Ryujinx.Cpu.Nce return _context.OnInterrupt(); } - public static IntPtr GetTickCounterAccessFunctionPointer() + public static nint GetTickCounterAccessFunctionPointer() { return _getTickCounterPtr; } - public static IntPtr GetSuspendThreadHandlerFunctionPointer() + public static nint GetSuspendThreadHandlerFunctionPointer() { return _suspendThreadHandlerPtr; } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Cpu/Nce/NcePatcher.cs b/src/Ryujinx.Cpu/Nce/NcePatcher.cs index dc57bc327..e3ca0d00a 100644 --- a/src/Ryujinx.Cpu/Nce/NcePatcher.cs +++ b/src/Ryujinx.Cpu/Nce/NcePatcher.cs @@ -425,7 +425,7 @@ namespace Ryujinx.Cpu.Nce return asm.GetCode(); } - internal static uint[] GenerateWrapperExceptionHandler(IntPtr oldSignalHandlerSegfaultPtr, IntPtr signalHandlerPtr) + internal static uint[] GenerateWrapperExceptionHandler(nint oldSignalHandlerSegfaultPtr, nint signalHandlerPtr) { Assembler asm = new(); @@ -600,4 +600,4 @@ namespace Ryujinx.Cpu.Nce return new RegisterSaveRestore((int)IntCalleeSavedRegsMask, unchecked((int)FpCalleeSavedRegsMask), OperandType.FP64, hasCall: true); } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Cpu/Nce/NceThreadPal.cs b/src/Ryujinx.Cpu/Nce/NceThreadPal.cs index 89b486c93..20259f3b2 100644 --- a/src/Ryujinx.Cpu/Nce/NceThreadPal.cs +++ b/src/Ryujinx.Cpu/Nce/NceThreadPal.cs @@ -10,7 +10,7 @@ namespace Ryujinx.Cpu.Nce public static int UnixSuspendSignal => OperatingSystem.IsMacOS() ? SigUsr2MacOS : SigUsr2Linux; - public static IntPtr GetCurrentThreadHandle() + public static nint GetCurrentThreadHandle() { if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || PlatformInfo.IsBionic) { @@ -22,7 +22,7 @@ namespace Ryujinx.Cpu.Nce } } - public static void SuspendThread(IntPtr handle) + public static void SuspendThread(nint handle) { if (PlatformInfo.IsBionic) { diff --git a/src/Ryujinx.Cpu/Nce/NceThreadPalAndroid.cs b/src/Ryujinx.Cpu/Nce/NceThreadPalAndroid.cs index 65bfd1bfb..f2527b4e0 100644 --- a/src/Ryujinx.Cpu/Nce/NceThreadPalAndroid.cs +++ b/src/Ryujinx.Cpu/Nce/NceThreadPalAndroid.cs @@ -6,9 +6,9 @@ namespace Ryujinx.Cpu.Nce static class NceThreadPalAndroid { [DllImport("libc", SetLastError = true)] - private static extern int pthread_kill(IntPtr thread, int sig); + private static extern int pthread_kill(nint thread, int sig); - public static void SuspendThread(IntPtr handle) + public static void SuspendThread(nint handle) { int result = pthread_kill(handle, NceThreadPal.UnixSuspendSignal); if (result != 0) @@ -17,4 +17,4 @@ namespace Ryujinx.Cpu.Nce } } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Cpu/Nce/NceThreadPalUnix.cs b/src/Ryujinx.Cpu/Nce/NceThreadPalUnix.cs index 9f4877615..b2bb5fbb4 100644 --- a/src/Ryujinx.Cpu/Nce/NceThreadPalUnix.cs +++ b/src/Ryujinx.Cpu/Nce/NceThreadPalUnix.cs @@ -6,26 +6,26 @@ namespace Ryujinx.Cpu.Nce static class NceThreadPalUnix { [DllImport("libc", SetLastError = true)] - private static extern IntPtr pthread_self(); + private static extern nint pthread_self(); [DllImport("libc", SetLastError = true)] - private static extern int pthread_threadid_np(IntPtr arg0, out ulong tid); + private static extern int pthread_threadid_np(nint arg0, out ulong tid); [DllImport("libpthread", SetLastError = true)] - private static extern int pthread_kill(IntPtr thread, int sig); + private static extern int pthread_kill(nint thread, int sig); - public static IntPtr GetCurrentThreadHandle() + public static nint GetCurrentThreadHandle() { return pthread_self(); } public static ulong GetCurrentThreadId() { - pthread_threadid_np(IntPtr.Zero, out ulong tid); + pthread_threadid_np(nint.Zero, out ulong tid); return tid; } - public static void SuspendThread(IntPtr handle) + public static void SuspendThread(nint handle) { int result = pthread_kill(handle, NceThreadPal.UnixSuspendSignal); if (result != 0) @@ -34,4 +34,4 @@ namespace Ryujinx.Cpu.Nce } } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Cpu/Nce/NceThreadTable.cs b/src/Ryujinx.Cpu/Nce/NceThreadTable.cs index 8fe39b7bd..a8eb522aa 100644 --- a/src/Ryujinx.Cpu/Nce/NceThreadTable.cs +++ b/src/Ryujinx.Cpu/Nce/NceThreadTable.cs @@ -10,10 +10,10 @@ namespace Ryujinx.Cpu.Nce private struct Entry { - public IntPtr ThreadId; - public IntPtr NativeContextPtr; + public nint ThreadId; + public nint NativeContextPtr; - public Entry(IntPtr threadId, IntPtr nativeContextPtr) + public Entry(nint threadId, nint nativeContextPtr) { ThreadId = threadId; NativeContextPtr = nativeContextPtr; @@ -22,7 +22,7 @@ namespace Ryujinx.Cpu.Nce private static MemoryBlock _block; - public static IntPtr EntriesPointer => _block.Pointer + 8; + public static nint EntriesPointer => _block.Pointer + 8; static NceThreadTable() { @@ -30,7 +30,7 @@ namespace Ryujinx.Cpu.Nce _block.Write(0UL, 0UL); } - public static int Register(IntPtr threadId, IntPtr nativeContextPtr) + public static int Register(nint threadId, nint nativeContextPtr) { Span entries = GetStorage(); @@ -40,7 +40,7 @@ namespace Ryujinx.Cpu.Nce for (int i = 0; i < MaxThreads; i++) { - if (entries[i].ThreadId == IntPtr.Zero) + if (entries[i].ThreadId == nint.Zero) { entries[i] = new Entry(threadId, nativeContextPtr); @@ -63,7 +63,7 @@ namespace Ryujinx.Cpu.Nce lock (_block) { - if (entries[tableIndex].ThreadId != IntPtr.Zero) + if (entries[tableIndex].ThreadId != nint.Zero) { entries[tableIndex] = default; @@ -71,7 +71,7 @@ namespace Ryujinx.Cpu.Nce for (int i = (int)currentThreadCount - 1; i >= 0; i--) { - if (entries[i].ThreadId != IntPtr.Zero) + if (entries[i].ThreadId != nint.Zero) { break; } @@ -94,4 +94,4 @@ namespace Ryujinx.Cpu.Nce return new Span((void*)_block.GetPointer(8UL, (ulong)Unsafe.SizeOf() * MaxThreads), MaxThreads); } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Cpu/Signal/NativeSignalHandler.cs b/src/Ryujinx.Cpu/Signal/NativeSignalHandler.cs index 5bc4cd424..f00d3f770 100644 --- a/src/Ryujinx.Cpu/Signal/NativeSignalHandler.cs +++ b/src/Ryujinx.Cpu/Signal/NativeSignalHandler.cs @@ -128,7 +128,7 @@ namespace Ryujinx.Cpu.Signal } } - public static void InstallUnixAlternateStackForCurrentThread(IntPtr stackPtr, ulong stackSize) + public static void InstallUnixAlternateStackForCurrentThread(nint stackPtr, ulong stackSize) { UnixSignalHandlerRegistration.RegisterAlternateStack(stackPtr, stackSize); } @@ -138,7 +138,7 @@ namespace Ryujinx.Cpu.Signal UnixSignalHandlerRegistration.UnregisterAlternateStack(); } - public static void InstallUnixSignalHandler(int sigNum, IntPtr action) + public static void InstallUnixSignalHandler(int sigNum, nint action) { UnixSignalHandlerRegistration.RegisterExceptionHandler(sigNum, action); } diff --git a/src/Ryujinx.Cpu/Signal/UnixSignalHandlerRegistration.cs b/src/Ryujinx.Cpu/Signal/UnixSignalHandlerRegistration.cs index 1d68b91ab..0d3cfc9b4 100644 --- a/src/Ryujinx.Cpu/Signal/UnixSignalHandlerRegistration.cs +++ b/src/Ryujinx.Cpu/Signal/UnixSignalHandlerRegistration.cs @@ -28,17 +28,17 @@ namespace Ryujinx.Cpu.Signal public struct SigActionBionic { public int sa_flags; - public IntPtr sa_handler; + public nint sa_handler; public SigSet sa_mask; - public IntPtr sa_restorer; + public nint sa_restorer; } [StructLayout(LayoutKind.Sequential, Pack = 8)] public struct Stack { - public IntPtr ss_sp; + public nint ss_sp; public int ss_flags; - public IntPtr ss_size; + public nint ss_size; } private const int SIGSEGV = 11; @@ -58,7 +58,7 @@ namespace Ryujinx.Cpu.Signal private static partial int sigaction(int signum, nint sigAction, out SigAction oldAction); [SupportedOSPlatform("android"), LibraryImport("libc", SetLastError = true)] - private static partial int sigaction(int signum, IntPtr sigAction, out SigActionBionic oldAction); + private static partial int sigaction(int signum, nint sigAction, out SigActionBionic oldAction); [LibraryImport("libc", SetLastError = true)] private static partial int sigemptyset(ref SigSet set); @@ -152,13 +152,13 @@ namespace Ryujinx.Cpu.Signal return old; } - public static void RegisterAlternateStack(IntPtr stackPtr, ulong stackSize) + public static void RegisterAlternateStack(nint stackPtr, ulong stackSize) { Stack stack = new() { ss_sp = stackPtr, ss_flags = SS_AUTODISARM, - ss_size = (IntPtr)stackSize + ss_size = (nint)stackSize }; int result = sigaltstack(ref stack, out _); @@ -184,7 +184,7 @@ namespace Ryujinx.Cpu.Signal } } - public static void RegisterExceptionHandler(int sigNum, IntPtr action) + public static void RegisterExceptionHandler(int sigNum, nint action) { int result; @@ -200,7 +200,7 @@ namespace Ryujinx.Cpu.Signal result = sigaction(sigNum, ref sig, out SigActionBionic oldu); - if (oldu.sa_handler != IntPtr.Zero) + if (oldu.sa_handler != nint.Zero) { throw new InvalidOperationException($"SIG{sigNum} is already in use."); } @@ -222,7 +222,7 @@ namespace Ryujinx.Cpu.Signal result = sigaction(sigNum, ref sig, out SigAction oldu); - if (oldu.sa_handler != IntPtr.Zero) + if (oldu.sa_handler != nint.Zero) { throw new InvalidOperationException($"SIG{sigNum} is already in use."); } diff --git a/src/Ryujinx.Memory/MemoryManagementUnix.cs b/src/Ryujinx.Memory/MemoryManagementUnix.cs index b1f68f7f7..6a92e3b2d 100644 --- a/src/Ryujinx.Memory/MemoryManagementUnix.cs +++ b/src/Ryujinx.Memory/MemoryManagementUnix.cs @@ -165,7 +165,7 @@ namespace Ryujinx.Memory fixed (byte* pMemName = memName) { - fd = ASharedMemory_create((IntPtr)pMemName, (nuint)size); + fd = ASharedMemory_create((nint)pMemName, (nuint)size); if (fd <= 0) { throw new OutOfMemoryException(); @@ -173,7 +173,7 @@ namespace Ryujinx.Memory } // ASharedMemory_create handle ftruncate for us. - return (IntPtr)fd; + return (nint)fd; } else { diff --git a/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs b/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs index 1417406b3..536ff972e 100644 --- a/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs +++ b/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs @@ -91,7 +91,7 @@ namespace Ryujinx.Memory public static partial int shm_unlink(nint name); [DllImport("android")] - internal static extern int ASharedMemory_create(IntPtr name, nuint size); + internal static extern int ASharedMemory_create(nint name, nuint size); private static int MmapFlagsToSystemFlags(MmapFlags flags) {