diff options
| author | 2018-11-18 19:22:47 -0800 | |
|---|---|---|
| committer | 2018-11-18 19:22:47 -0800 | |
| commit | f08b4cbbc889b09aa628f586018f1119b3cbd7ce (patch) | |
| tree | 7050250f290b1dcd62ff8c11f287604cbf61a8b1 /src | |
| parent | Correctly sets default system language for yuzu-CLI (#1727) (diff) | |
| parent | Implemented CalculateStandardUserSystemClockDifferenceByUser (diff) | |
| download | yuzu-f08b4cbbc889b09aa628f586018f1119b3cbd7ce.tar.gz yuzu-f08b4cbbc889b09aa628f586018f1119b3cbd7ce.tar.xz yuzu-f08b4cbbc889b09aa628f586018f1119b3cbd7ce.zip | |
Merge pull request #1718 from ogniK5377/lets-go-softlock
Implemented CalculateStandardUserSystemClockDifferenceByUser
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/time/interface.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/time/time.cpp | 15 | ||||
| -rw-r--r-- | src/core/hle/service/time/time.h | 1 |
3 files changed, 18 insertions, 1 deletions
diff --git a/src/core/hle/service/time/interface.cpp b/src/core/hle/service/time/interface.cpp index e3cbd7004..b3a196f65 100644 --- a/src/core/hle/service/time/interface.cpp +++ b/src/core/hle/service/time/interface.cpp | |||
| @@ -23,7 +23,8 @@ Time::Time(std::shared_ptr<Module> time, const char* name) | |||
| 23 | {300, nullptr, "CalculateMonotonicSystemClockBaseTimePoint"}, | 23 | {300, nullptr, "CalculateMonotonicSystemClockBaseTimePoint"}, |
| 24 | {400, &Time::GetClockSnapshot, "GetClockSnapshot"}, | 24 | {400, &Time::GetClockSnapshot, "GetClockSnapshot"}, |
| 25 | {401, nullptr, "GetClockSnapshotFromSystemClockContext"}, | 25 | {401, nullptr, "GetClockSnapshotFromSystemClockContext"}, |
| 26 | {500, nullptr, "CalculateStandardUserSystemClockDifferenceByUser"}, | 26 | {500, &Time::CalculateStandardUserSystemClockDifferenceByUser, |
| 27 | "CalculateStandardUserSystemClockDifferenceByUser"}, | ||
| 27 | {501, nullptr, "CalculateSpanBetween"}, | 28 | {501, nullptr, "CalculateSpanBetween"}, |
| 28 | }; | 29 | }; |
| 29 | RegisterHandlers(functions); | 30 | RegisterHandlers(functions); |
diff --git a/src/core/hle/service/time/time.cpp b/src/core/hle/service/time/time.cpp index 85e7b1195..e561a0c52 100644 --- a/src/core/hle/service/time/time.cpp +++ b/src/core/hle/service/time/time.cpp | |||
| @@ -299,6 +299,21 @@ void Module::Interface::GetClockSnapshot(Kernel::HLERequestContext& ctx) { | |||
| 299 | ctx.WriteBuffer(&clock_snapshot, sizeof(ClockSnapshot)); | 299 | ctx.WriteBuffer(&clock_snapshot, sizeof(ClockSnapshot)); |
| 300 | } | 300 | } |
| 301 | 301 | ||
| 302 | void Module::Interface::CalculateStandardUserSystemClockDifferenceByUser( | ||
| 303 | Kernel::HLERequestContext& ctx) { | ||
| 304 | LOG_DEBUG(Service_Time, "called"); | ||
| 305 | |||
| 306 | IPC::RequestParser rp{ctx}; | ||
| 307 | const auto snapshot_a = rp.PopRaw<ClockSnapshot>(); | ||
| 308 | const auto snapshot_b = rp.PopRaw<ClockSnapshot>(); | ||
| 309 | const u64 difference = | ||
| 310 | snapshot_b.user_clock_context.offset - snapshot_a.user_clock_context.offset; | ||
| 311 | |||
| 312 | IPC::ResponseBuilder rb{ctx, 4}; | ||
| 313 | rb.Push(RESULT_SUCCESS); | ||
| 314 | rb.PushRaw<u64>(difference); | ||
| 315 | } | ||
| 316 | |||
| 302 | Module::Interface::Interface(std::shared_ptr<Module> time, const char* name) | 317 | Module::Interface::Interface(std::shared_ptr<Module> time, const char* name) |
| 303 | : ServiceFramework(name), time(std::move(time)) {} | 318 | : ServiceFramework(name), time(std::move(time)) {} |
| 304 | 319 | ||
diff --git a/src/core/hle/service/time/time.h b/src/core/hle/service/time/time.h index 77871ae07..ea43fbea7 100644 --- a/src/core/hle/service/time/time.h +++ b/src/core/hle/service/time/time.h | |||
| @@ -84,6 +84,7 @@ public: | |||
| 84 | void GetTimeZoneService(Kernel::HLERequestContext& ctx); | 84 | void GetTimeZoneService(Kernel::HLERequestContext& ctx); |
| 85 | void GetStandardLocalSystemClock(Kernel::HLERequestContext& ctx); | 85 | void GetStandardLocalSystemClock(Kernel::HLERequestContext& ctx); |
| 86 | void GetClockSnapshot(Kernel::HLERequestContext& ctx); | 86 | void GetClockSnapshot(Kernel::HLERequestContext& ctx); |
| 87 | void CalculateStandardUserSystemClockDifferenceByUser(Kernel::HLERequestContext& ctx); | ||
| 87 | 88 | ||
| 88 | protected: | 89 | protected: |
| 89 | std::shared_ptr<Module> time; | 90 | std::shared_ptr<Module> time; |