diff options
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Time/Clock/TickBasedSteadyClockCore.cs')
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Time/Clock/TickBasedSteadyClockCore.cs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/TickBasedSteadyClockCore.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/TickBasedSteadyClockCore.cs new file mode 100644 index 00000000..7a69b014 --- /dev/null +++ b/Ryujinx.HLE/HOS/Services/Time/Clock/TickBasedSteadyClockCore.cs @@ -0,0 +1,40 @@ +using Ryujinx.Common; +using Ryujinx.HLE.HOS.Kernel.Threading; + +namespace Ryujinx.HLE.HOS.Services.Time.Clock +{ + class TickBasedSteadyClockCore : SteadyClockCore + { + private static TickBasedSteadyClockCore _instance; + + public static TickBasedSteadyClockCore Instance + { + get + { + if (_instance == null) + { + _instance = new TickBasedSteadyClockCore(); + } + + return _instance; + } + } + + private TickBasedSteadyClockCore() {} + + public override SteadyClockTimePoint GetTimePoint(KThread thread) + { + SteadyClockTimePoint result = new SteadyClockTimePoint + { + TimePoint = 0, + ClockSourceId = GetClockSourceId() + }; + + TimeSpanType ticksTimeSpan = TimeSpanType.FromTicks(thread.Context.ThreadState.CntpctEl0, thread.Context.ThreadState.CntfrqEl0); + + result.TimePoint = ticksTimeSpan.ToSeconds(); + + return result; + } + } +} |
