mirror of
https://git.ryujinx.app/projects/Kenji-NX.git
synced 2026-09-20 17:51:13 +02:00
misc: Use nint instead of IntPtr
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -205,12 +205,12 @@ internal delegate void ExceptionDescribeDelegate(JEnvRef env);
|
||||
internal delegate void ExceptionClearDelegate(JEnvRef env);
|
||||
internal delegate void FatalErrorDelegate(JEnvRef env, ReadOnlyValPtr<Byte> 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<Byte> nameChars0,
|
||||
JObjectLocalRef loader, IntPtr binaryData, Int32 len);
|
||||
JObjectLocalRef loader, nint binaryData, Int32 len);
|
||||
|
||||
internal delegate JClassLocalRef FindClassDelegate(JEnvRef env, ReadOnlyValPtr<Byte> nameChars0);
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace LibKenjinx.Jni.Identifiers
|
||||
public readonly struct JFieldId : IEquatable<JFieldId>
|
||||
{
|
||||
#pragma warning disable 0649
|
||||
private readonly IntPtr _value;
|
||||
private readonly nint _value;
|
||||
#pragma warning restore 0649
|
||||
|
||||
#region Public Methods
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace LibKenjinx.Jni.Identifiers
|
||||
public readonly struct JMethodId : IEquatable<JMethodId>
|
||||
{
|
||||
#pragma warning disable 0649
|
||||
private readonly IntPtr _value;
|
||||
private readonly nint _value;
|
||||
#pragma warning restore 0649
|
||||
|
||||
#region Public Methods
|
||||
|
||||
@@ -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<GetEnvDelegate>()!;
|
||||
|
||||
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<AttachCurrentThreadDelegate>()!;
|
||||
|
||||
@@ -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<AttachCurrentThreadAsDaemonDelegate>()!;
|
||||
|
||||
@@ -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<DetachCurrentThreadDelegate>()!;
|
||||
|
||||
@@ -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<FindClassDelegate>()!;
|
||||
JClassLocalRef jClass = findClass(jEnv, className.ValuePointer);
|
||||
|
||||
if (ExceptionCheck(jEnv))
|
||||
return default;
|
||||
|
||||
IntPtr newGlobalRefPtr = jInterface.NewGlobalRefPointer;
|
||||
nint newGlobalRefPtr = jInterface.NewGlobalRefPointer;
|
||||
NewGlobalRefDelegate newGlobalRef = newGlobalRefPtr.GetUnsafeDelegate<NewGlobalRefDelegate>()!;
|
||||
|
||||
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<DeleteLocalRefDelegate>()!;
|
||||
|
||||
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<DeleteGlobalRefDelegate>()!;
|
||||
|
||||
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<DeleteWeakGlobalRefDelegate>()!;
|
||||
|
||||
@@ -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<NewStringDelegate>()!;
|
||||
using IReadOnlyFixedMemory<Char>.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<NewWeakGlobalRefDelegate>()!;
|
||||
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<ExceptionCheckDelegate>()!;
|
||||
|
||||
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<ExceptionDescribeDelegate>()!;
|
||||
@@ -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<GetVirtualMachineDelegate>()!;
|
||||
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<IsSameObjectDelegate>()!;
|
||||
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<GetMethodIdDelegate>()!;
|
||||
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<GetStaticMethodIdDelegate>()!;
|
||||
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<CallStaticVoidMethodADelegate>()!;
|
||||
|
||||
@@ -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<CallStaticObjectMethodADelegate>()!;
|
||||
|
||||
@@ -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<CallStaticLongMethodADelegate>()!;
|
||||
|
||||
@@ -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<CallVoidMethodADelegate>()!;
|
||||
|
||||
using IReadOnlyFixedMemory<JValue>.IDisposable fArgs = args.AsMemory().GetFixedContext();
|
||||
|
||||
@@ -8,10 +8,10 @@ namespace LibKenjinx.Jni.Pointers
|
||||
public readonly struct JEnvRef : IEquatable<JEnvRef>
|
||||
{
|
||||
#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;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace LibKenjinx.Jni.Pointers;
|
||||
public readonly struct JavaVMRef : IEquatable<JavaVMRef>
|
||||
{
|
||||
#pragma warning disable 0649
|
||||
private readonly IntPtr _value;
|
||||
private readonly nint _value;
|
||||
#pragma warning restore 0649
|
||||
|
||||
#region Operators
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace LibKenjinx.Jni.References
|
||||
public readonly struct JObjectLocalRef : IEquatable<JObjectLocalRef>
|
||||
{
|
||||
#pragma warning disable 0649
|
||||
private readonly IntPtr _value;
|
||||
private readonly nint _value;
|
||||
#pragma warning restore 0649
|
||||
|
||||
#region Public Methods
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace LibKenjinx.Jni.Values
|
||||
internal readonly struct JEnvValue : IEquatable<JEnvValue>
|
||||
{
|
||||
#pragma warning disable 0649
|
||||
private readonly IntPtr _value;
|
||||
private readonly nint _value;
|
||||
#pragma warning restore 0649
|
||||
|
||||
#region Operators
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
@@ -7,5 +7,5 @@ public readonly struct JNativeMethod
|
||||
{
|
||||
internal ReadOnlyValPtr<Byte> Name { get; init; }
|
||||
internal ReadOnlyValPtr<Byte> Signature { get; init; }
|
||||
internal IntPtr Pointer { get; init; }
|
||||
internal nint Pointer { get; init; }
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,5 +6,5 @@ namespace LibKenjinx.Jni.Values;
|
||||
public readonly struct JavaVMOption
|
||||
{
|
||||
internal ReadOnlyValPtr<Byte> Name { get; init; }
|
||||
internal IntPtr ExtraInfo { get; init; }
|
||||
internal nint ExtraInfo { get; init; }
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace LibKenjinx.Jni.Values;
|
||||
internal readonly struct JavaVMValue : IEquatable<JavaVMValue>
|
||||
{
|
||||
#pragma warning disable 0649
|
||||
private readonly IntPtr _value;
|
||||
private readonly nint _value;
|
||||
#pragma warning restore 0649
|
||||
|
||||
#region Operators
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<string> 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<CreateSurface>(nativeGraphicsInterop.VkCreateSurface);
|
||||
CreateSurface? createSurfaceFunc = nativeGraphicsInterop.VkCreateSurface == nint.Zero ? default : Marshal.GetDelegateForFunctionPointer<CreateSurface>(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>(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) ?? "";
|
||||
|
||||
|
||||
@@ -9,9 +9,9 @@ namespace LibKenjinx
|
||||
{
|
||||
public static partial class LibKenjinx
|
||||
{
|
||||
private unsafe static IntPtr CreateStringArray(List<string> strings)
|
||||
private unsafe static nint CreateStringArray(List<string> strings)
|
||||
{
|
||||
uint size = (uint)(Marshal.SizeOf<IntPtr>() * (strings.Count + 1));
|
||||
uint size = (uint)(Marshal.SizeOf<nint>() * (strings.Count + 1));
|
||||
var array = (char**)Marshal.AllocHGlobal((int)size);
|
||||
Unsafe.InitBlockUnaligned(array, 0, size);
|
||||
|
||||
|
||||
@@ -5,16 +5,16 @@ namespace LibKenjinx.Shared
|
||||
{
|
||||
public class OpenTKBindingsContext : IBindingsContext
|
||||
{
|
||||
private readonly Func<string, IntPtr> _getProcAddress;
|
||||
private readonly Func<string, nint> _getProcAddress;
|
||||
|
||||
public OpenTKBindingsContext(Func<string, IntPtr> getProcAddress)
|
||||
public OpenTKBindingsContext(Func<string, nint> getProcAddress)
|
||||
{
|
||||
_getProcAddress = getProcAddress;
|
||||
}
|
||||
|
||||
public IntPtr GetProcAddress(string procName)
|
||||
public nint GetProcAddress(string procName)
|
||||
{
|
||||
return _getProcAddress(procName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace Ryujinx.Cpu.Jit
|
||||
/// <inheritdoc/>
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace Ryujinx.Cpu.Nce
|
||||
/// <inheritdoc/>
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Entry> 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<Entry>((void*)_block.GetPointer(8UL, (ulong)Unsafe.SizeOf<Entry>() * MaxThreads), MaxThreads);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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.");
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user