mirror of
https://github.com/ryujinx-mirror/ryujinx.git
synced 2024-10-21 07:21:39 +00:00
97d0c62423
* Improve SteadyClock implementation accuracy * Rewrite system clocks to be accurate * Implement IStaticService 100 & 101 * Add time:* permissions * Address comments * Realign TimePermissions definitions * Address gdk's comments * Fix after rebase
40 lines
945 B
C#
40 lines
945 B
C#
using Ryujinx.HLE.Utilities;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Ryujinx.HLE.HOS.Services.Time.Clock
|
|
{
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
struct TimeSpanType
|
|
{
|
|
public ulong NanoSeconds;
|
|
|
|
public TimeSpanType(ulong nanoSeconds)
|
|
{
|
|
NanoSeconds = nanoSeconds;
|
|
}
|
|
|
|
public ulong ToSeconds()
|
|
{
|
|
return NanoSeconds / 1000000000;
|
|
}
|
|
|
|
public static TimeSpanType FromTicks(ulong ticks, ulong frequency)
|
|
{
|
|
return new TimeSpanType(ticks * 1000000000 / frequency);
|
|
}
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
struct SteadyClockTimePoint
|
|
{
|
|
public ulong TimePoint;
|
|
public UInt128 ClockSourceId;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
struct SystemClockContext
|
|
{
|
|
public ulong Offset;
|
|
public SteadyClockTimePoint SteadyTimePoint;
|
|
}
|
|
}
|