diff options
| author | Thomas Guillemard <me@thog.eu> | 2019-07-14 22:50:11 +0200 |
|---|---|---|
| committer | Ac_K <Acoustik666@gmail.com> | 2019-07-14 22:50:11 +0200 |
| commit | 97d0c6242368f443c50395b2fa9d99a59f1df1e8 (patch) | |
| tree | 95fe1df8cc70f578f4c595feca6d2c253e4ad366 /Ryujinx.HLE/HOS/Services/Time/Clock/SystemClockCore.cs | |
| parent | 4ad3936afd4ca393a05b330e3848958e9598e910 (diff) | |
Accurately implement steady & system clocks (#732)
* 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
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Time/Clock/SystemClockCore.cs')
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Time/Clock/SystemClockCore.cs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/SystemClockCore.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/SystemClockCore.cs new file mode 100644 index 00000000..d3a056e4 --- /dev/null +++ b/Ryujinx.HLE/HOS/Services/Time/Clock/SystemClockCore.cs @@ -0,0 +1,31 @@ +using Ryujinx.HLE.HOS.Kernel.Threading; + +namespace Ryujinx.HLE.HOS.Services.Time.Clock +{ + abstract class SystemClockCore + { + public abstract SteadyClockCore GetSteadyClockCore(); + + public abstract ResultCode GetSystemClockContext(KThread thread, out SystemClockContext context); + + public abstract ResultCode SetSystemClockContext(SystemClockContext context); + + public abstract ResultCode Flush(SystemClockContext context); + + public bool IsClockSetup(KThread thread) + { + ResultCode result = GetSystemClockContext(thread, out SystemClockContext context); + + if (result == ResultCode.Success) + { + SteadyClockCore steadyClockCore = GetSteadyClockCore(); + + SteadyClockTimePoint steadyClockTimePoint = steadyClockCore.GetCurrentTimePoint(thread); + + return steadyClockTimePoint.ClockSourceId == context.SteadyTimePoint.ClockSourceId; + } + + return false; + } + } +} |
