aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/time/time.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-11-18 19:22:47 -0800
committerGitHub <noreply@github.com>2018-11-18 19:22:47 -0800
commitf08b4cbbc889b09aa628f586018f1119b3cbd7ce (patch)
tree7050250f290b1dcd62ff8c11f287604cbf61a8b1 /src/core/hle/service/time/time.cpp
parent9a47e40dd666ad7b49c3ae94c3eac108e166aab8 (diff)
parentc440e8b8e1ede24b1feb4359e6c94424ca22b376 (diff)
Merge pull request #1718 from ogniK5377/lets-go-softlock
Implemented CalculateStandardUserSystemClockDifferenceByUser
Diffstat (limited to 'src/core/hle/service/time/time.cpp')
-rw-r--r--src/core/hle/service/time/time.cpp15
1 files changed, 15 insertions, 0 deletions
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) {
ctx.WriteBuffer(&clock_snapshot, sizeof(ClockSnapshot));
}
+void Module::Interface::CalculateStandardUserSystemClockDifferenceByUser(
+ Kernel::HLERequestContext& ctx) {
+ LOG_DEBUG(Service_Time, "called");
+
+ IPC::RequestParser rp{ctx};
+ const auto snapshot_a = rp.PopRaw<ClockSnapshot>();
+ const auto snapshot_b = rp.PopRaw<ClockSnapshot>();
+ const u64 difference =
+ snapshot_b.user_clock_context.offset - snapshot_a.user_clock_context.offset;
+
+ IPC::ResponseBuilder rb{ctx, 4};
+ rb.Push(RESULT_SUCCESS);
+ rb.PushRaw<u64>(difference);
+}
+
Module::Interface::Interface(std::shared_ptr<Module> time, const char* name)
: ServiceFramework(name), time(std::move(time)) {}