aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Cpu/Signal/WindowsSignalHandlerRegistration.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2024-01-18 14:08:40 -0300
committerGitHub <noreply@github.com>2024-01-18 14:08:40 -0300
commit2dbbc9bc05998baa94d7b1953d9e0ffc7f1651f8 (patch)
tree5a3bf00a55f4c1a92b681119aef6dd68315b60e5 /src/Ryujinx.Cpu/Signal/WindowsSignalHandlerRegistration.cs
parent72634c80f408fd6cf6602c8c6729643e9ea1ffe3 (diff)
Move most of signal handling to Ryujinx.Cpu project (#6128)1.1.1113
* Move most of signal handling to Ryujinx.Cpu project * Format whitespace * Remove unused member * Format whitespace * This does not need to be public anymore
Diffstat (limited to 'src/Ryujinx.Cpu/Signal/WindowsSignalHandlerRegistration.cs')
-rw-r--r--src/Ryujinx.Cpu/Signal/WindowsSignalHandlerRegistration.cs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/Ryujinx.Cpu/Signal/WindowsSignalHandlerRegistration.cs b/src/Ryujinx.Cpu/Signal/WindowsSignalHandlerRegistration.cs
new file mode 100644
index 00000000..1fbce0f7
--- /dev/null
+++ b/src/Ryujinx.Cpu/Signal/WindowsSignalHandlerRegistration.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Cpu.Signal
+{
+ static partial class WindowsSignalHandlerRegistration
+ {
+ [LibraryImport("kernel32.dll")]
+ private static partial IntPtr AddVectoredExceptionHandler(uint first, IntPtr handler);
+
+ [LibraryImport("kernel32.dll")]
+ private static partial ulong RemoveVectoredExceptionHandler(IntPtr handle);
+
+ public static IntPtr RegisterExceptionHandler(IntPtr action)
+ {
+ return AddVectoredExceptionHandler(1, action);
+ }
+
+ public static bool RemoveExceptionHandler(IntPtr handle)
+ {
+ return RemoveVectoredExceptionHandler(handle) != 0;
+ }
+ }
+}