aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Cpu/AppleHv/TimeApi.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2023-09-25 20:18:32 -0300
committerGitHub <noreply@github.com>2023-09-26 01:18:32 +0200
commitddc9ae2a8380668273c21a75b11b833be76eebed (patch)
tree64fceb7529be32a9b6965e4380004029c444efc6 /src/Ryujinx.Cpu/AppleHv/TimeApi.cs
parentd6d3cdd5739e6b8f8df36bf393e440f4857fb2b7 (diff)
Add VTimer as alternative interrupt method on Apple Hypervisor (#5663)1.1.1028
* Add VTimer as alternative interrupt method on Apple Hypervisor * Fix naming violations on TimeApi * Fix timer interval (was 16us rather than 16ms) * Fix delta ticks calculation * Missing ThrowOnError call * Add SupportedOSPlatform attribute on AppleHv classes
Diffstat (limited to 'src/Ryujinx.Cpu/AppleHv/TimeApi.cs')
-rw-r--r--src/Ryujinx.Cpu/AppleHv/TimeApi.cs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/Ryujinx.Cpu/AppleHv/TimeApi.cs b/src/Ryujinx.Cpu/AppleHv/TimeApi.cs
new file mode 100644
index 00000000..85bc7717
--- /dev/null
+++ b/src/Ryujinx.Cpu/AppleHv/TimeApi.cs
@@ -0,0 +1,21 @@
+using System.Runtime.InteropServices;
+using System.Runtime.Versioning;
+
+namespace Ryujinx.Cpu.AppleHv
+{
+ struct MachTimebaseInfo
+ {
+ public uint Numer;
+ public uint Denom;
+ }
+
+ [SupportedOSPlatform("macos")]
+ static partial class TimeApi
+ {
+ [LibraryImport("libc", SetLastError = true)]
+ public static partial ulong mach_absolute_time();
+
+ [LibraryImport("libc", SetLastError = true)]
+ public static partial int mach_timebase_info(out MachTimebaseInfo info);
+ }
+}