summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
diff options
context:
space:
mode:
authorGravatar bunnei2020-07-18 01:45:10 -0400
committerGravatar GitHub2020-07-18 01:45:10 -0400
commit4a8cb9a70671db5684dadf10061f3c3cf1d27741 (patch)
tree76ff712dc903f71245bd6108519b125ca6fac99e /src/core/hle/kernel
parentMerge pull request #4373 from lioncash/allocator (diff)
parentcore_timing: Remove unused data member (diff)
downloadyuzu-4a8cb9a70671db5684dadf10061f3c3cf1d27741.tar.gz
yuzu-4a8cb9a70671db5684dadf10061f3c3cf1d27741.tar.xz
yuzu-4a8cb9a70671db5684dadf10061f3c3cf1d27741.zip
Merge pull request #4348 from lioncash/nano
core_timing: Make usage of nanoseconds more consistent in the interface
Diffstat (limited to 'src/core/hle/kernel')
-rw-r--r--src/core/hle/kernel/kernel.cpp8
-rw-r--r--src/core/hle/kernel/server_session.cpp6
-rw-r--r--src/core/hle/kernel/time_manager.cpp5
3 files changed, 11 insertions, 8 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index e1c7a0f3b..8dd4a2637 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -145,16 +145,18 @@ struct KernelCore::Impl {
145 145
146 void InitializePreemption(KernelCore& kernel) { 146 void InitializePreemption(KernelCore& kernel) {
147 preemption_event = Core::Timing::CreateEvent( 147 preemption_event = Core::Timing::CreateEvent(
148 "PreemptionCallback", [this, &kernel](u64 userdata, s64 cycles_late) { 148 "PreemptionCallback", [this, &kernel](u64, std::chrono::nanoseconds) {
149 { 149 {
150 SchedulerLock lock(kernel); 150 SchedulerLock lock(kernel);
151 global_scheduler.PreemptThreads(); 151 global_scheduler.PreemptThreads();
152 } 152 }
153 s64 time_interval = Core::Timing::msToCycles(std::chrono::milliseconds(10)); 153 const auto time_interval = std::chrono::nanoseconds{
154 Core::Timing::msToCycles(std::chrono::milliseconds(10))};
154 system.CoreTiming().ScheduleEvent(time_interval, preemption_event); 155 system.CoreTiming().ScheduleEvent(time_interval, preemption_event);
155 }); 156 });
156 157
157 s64 time_interval = Core::Timing::msToCycles(std::chrono::milliseconds(10)); 158 const auto time_interval =
159 std::chrono::nanoseconds{Core::Timing::msToCycles(std::chrono::milliseconds(10))};
158 system.CoreTiming().ScheduleEvent(time_interval, preemption_event); 160 system.CoreTiming().ScheduleEvent(time_interval, preemption_event);
159 } 161 }
160 162
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp
index 7b23a6889..af22f4c33 100644
--- a/src/core/hle/kernel/server_session.cpp
+++ b/src/core/hle/kernel/server_session.cpp
@@ -34,7 +34,7 @@ ResultVal<std::shared_ptr<ServerSession>> ServerSession::Create(KernelCore& kern
34 std::shared_ptr<ServerSession> session{std::make_shared<ServerSession>(kernel)}; 34 std::shared_ptr<ServerSession> session{std::make_shared<ServerSession>(kernel)};
35 35
36 session->request_event = Core::Timing::CreateEvent( 36 session->request_event = Core::Timing::CreateEvent(
37 name, [session](u64 userdata, s64 cycles_late) { session->CompleteSyncRequest(); }); 37 name, [session](u64, std::chrono::nanoseconds) { session->CompleteSyncRequest(); });
38 session->name = std::move(name); 38 session->name = std::move(name);
39 session->parent = std::move(parent); 39 session->parent = std::move(parent);
40 40
@@ -184,8 +184,8 @@ ResultCode ServerSession::CompleteSyncRequest() {
184 184
185ResultCode ServerSession::HandleSyncRequest(std::shared_ptr<Thread> thread, 185ResultCode ServerSession::HandleSyncRequest(std::shared_ptr<Thread> thread,
186 Core::Memory::Memory& memory) { 186 Core::Memory::Memory& memory) {
187 ResultCode result = QueueSyncRequest(std::move(thread), memory); 187 const ResultCode result = QueueSyncRequest(std::move(thread), memory);
188 const u64 delay = kernel.IsMulticore() ? 0U : 20000U; 188 const auto delay = std::chrono::nanoseconds{kernel.IsMulticore() ? 0 : 20000};
189 Core::System::GetInstance().CoreTiming().ScheduleEvent(delay, request_event, {}); 189 Core::System::GetInstance().CoreTiming().ScheduleEvent(delay, request_event, {});
190 return result; 190 return result;
191} 191}
diff --git a/src/core/hle/kernel/time_manager.cpp b/src/core/hle/kernel/time_manager.cpp
index 941305e8e..88b01b751 100644
--- a/src/core/hle/kernel/time_manager.cpp
+++ b/src/core/hle/kernel/time_manager.cpp
@@ -16,7 +16,7 @@ namespace Kernel {
16 16
17TimeManager::TimeManager(Core::System& system_) : system{system_} { 17TimeManager::TimeManager(Core::System& system_) : system{system_} {
18 time_manager_event_type = Core::Timing::CreateEvent( 18 time_manager_event_type = Core::Timing::CreateEvent(
19 "Kernel::TimeManagerCallback", [this](u64 thread_handle, [[maybe_unused]] s64 cycles_late) { 19 "Kernel::TimeManagerCallback", [this](u64 thread_handle, std::chrono::nanoseconds) {
20 SchedulerLock lock(system.Kernel()); 20 SchedulerLock lock(system.Kernel());
21 Handle proper_handle = static_cast<Handle>(thread_handle); 21 Handle proper_handle = static_cast<Handle>(thread_handle);
22 if (cancelled_events[proper_handle]) { 22 if (cancelled_events[proper_handle]) {
@@ -34,7 +34,8 @@ void TimeManager::ScheduleTimeEvent(Handle& event_handle, Thread* timetask, s64
34 ASSERT(timetask); 34 ASSERT(timetask);
35 ASSERT(timetask->GetStatus() != ThreadStatus::Ready); 35 ASSERT(timetask->GetStatus() != ThreadStatus::Ready);
36 ASSERT(timetask->GetStatus() != ThreadStatus::WaitMutex); 36 ASSERT(timetask->GetStatus() != ThreadStatus::WaitMutex);
37 system.CoreTiming().ScheduleEvent(nanoseconds, time_manager_event_type, event_handle); 37 system.CoreTiming().ScheduleEvent(std::chrono::nanoseconds{nanoseconds},
38 time_manager_event_type, event_handle);
38 } else { 39 } else {
39 event_handle = InvalidHandle; 40 event_handle = InvalidHandle;
40 } 41 }