diff options
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Time/Clock/StandardSteadyClockCore.cs')
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Time/Clock/StandardSteadyClockCore.cs | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/StandardSteadyClockCore.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/StandardSteadyClockCore.cs index 370e7d73..8392c4b5 100644 --- a/Ryujinx.HLE/HOS/Services/Time/Clock/StandardSteadyClockCore.cs +++ b/Ryujinx.HLE/HOS/Services/Time/Clock/StandardSteadyClockCore.cs @@ -1,4 +1,4 @@ -using Ryujinx.HLE.HOS.Kernel.Threading; +using Ryujinx.Cpu; namespace Ryujinx.HLE.HOS.Services.Time.Clock { @@ -17,11 +17,11 @@ namespace Ryujinx.HLE.HOS.Services.Time.Clock _cachedRawTimePoint = TimeSpanType.Zero; } - public override SteadyClockTimePoint GetTimePoint(KThread thread) + public override SteadyClockTimePoint GetTimePoint(ITickSource tickSource) { SteadyClockTimePoint result = new SteadyClockTimePoint { - TimePoint = GetCurrentRawTimePoint(thread).ToSeconds(), + TimePoint = GetCurrentRawTimePoint(tickSource).ToSeconds(), ClockSourceId = GetClockSourceId() }; @@ -48,19 +48,9 @@ namespace Ryujinx.HLE.HOS.Services.Time.Clock _internalOffset = internalOffset; } - public override TimeSpanType GetCurrentRawTimePoint(KThread thread) + public override TimeSpanType GetCurrentRawTimePoint(ITickSource tickSource) { - TimeSpanType ticksTimeSpan; - - // As this may be called before the guest code, we support passing a null thread to make this api usable. - if (thread == null) - { - ticksTimeSpan = TimeSpanType.FromSeconds(0); - } - else - { - ticksTimeSpan = TimeSpanType.FromTicks(thread.Context.CntpctEl0, thread.Context.CntfrqEl0); - } + TimeSpanType ticksTimeSpan = TimeSpanType.FromTicks(tickSource.Counter, tickSource.Frequency); TimeSpanType rawTimePoint = new TimeSpanType(_setupValue.NanoSeconds + ticksTimeSpan.NanoSeconds); |
