forked from ShuriZma/suyu
1
0
Fork 0

Kernel: Reverse global accessor removal.

This commit is contained in:
Fernando Sahmkow 2019-10-12 10:21:33 -04:00 committed by FernandoS27
parent 3073615dbc
commit c32520ceb7
4 changed files with 9 additions and 23 deletions

View File

@ -232,14 +232,6 @@ const Kernel::GlobalScheduler& KernelCore::GlobalScheduler() const {
return impl->global_scheduler; return impl->global_scheduler;
} }
Core::System& KernelCore::System() {
return impl->system;
}
const Core::System& KernelCore::System() const {
return impl->system;
}
void KernelCore::AddNamedPort(std::string name, SharedPtr<ClientPort> port) { void KernelCore::AddNamedPort(std::string name, SharedPtr<ClientPort> port) {
impl->named_ports.emplace(std::move(name), std::move(port)); impl->named_ports.emplace(std::move(name), std::move(port));
} }

View File

@ -82,12 +82,6 @@ public:
/// Gets the sole instance of the global scheduler /// Gets the sole instance of the global scheduler
const Kernel::GlobalScheduler& GlobalScheduler() const; const Kernel::GlobalScheduler& GlobalScheduler() const;
/// Gets the sole instance of the system
Core::System& System();
/// Gets the sole instance of the system
const Core::System& System() const;
/// Adds a port to the named port table /// Adds a port to the named port table
void AddNamedPort(std::string name, SharedPtr<ClientPort> port); void AddNamedPort(std::string name, SharedPtr<ClientPort> port);

View File

@ -41,7 +41,7 @@ Thread::~Thread() = default;
void Thread::Stop() { void Thread::Stop() {
// Cancel any outstanding wakeup events for this thread // Cancel any outstanding wakeup events for this thread
kernel.System().CoreTiming().UnscheduleEvent(kernel.ThreadWakeupCallbackEventType(), Core::System::GetInstance().CoreTiming().UnscheduleEvent(kernel.ThreadWakeupCallbackEventType(),
callback_handle); callback_handle);
kernel.ThreadWakeupCallbackHandleTable().Close(callback_handle); kernel.ThreadWakeupCallbackHandleTable().Close(callback_handle);
callback_handle = 0; callback_handle = 0;
@ -68,12 +68,12 @@ void Thread::WakeAfterDelay(s64 nanoseconds) {
// This function might be called from any thread so we have to be cautious and use the // This function might be called from any thread so we have to be cautious and use the
// thread-safe version of ScheduleEvent. // thread-safe version of ScheduleEvent.
const s64 cycles = Core::Timing::nsToCycles(std::chrono::nanoseconds{nanoseconds}); const s64 cycles = Core::Timing::nsToCycles(std::chrono::nanoseconds{nanoseconds});
kernel.System().CoreTiming().ScheduleEvent(cycles, kernel.ThreadWakeupCallbackEventType(), Core::System::GetInstance().CoreTiming().ScheduleEvent(cycles, kernel.ThreadWakeupCallbackEventType(),
callback_handle); callback_handle);
} }
void Thread::CancelWakeupTimer() { void Thread::CancelWakeupTimer() {
kernel.System().CoreTiming().UnscheduleEvent(kernel.ThreadWakeupCallbackEventType(), Core::System::GetInstance().CoreTiming().UnscheduleEvent(kernel.ThreadWakeupCallbackEventType(),
callback_handle); callback_handle);
} }
@ -176,7 +176,7 @@ ResultVal<SharedPtr<Thread>> Thread::Create(KernelCore& kernel, std::string name
return ResultCode(-1); return ResultCode(-1);
} }
auto& system = kernel.System(); auto& system = Core::System::GetInstance();
SharedPtr<Thread> thread(new Thread(kernel)); SharedPtr<Thread> thread(new Thread(kernel));
thread->thread_id = kernel.CreateNewThreadID(); thread->thread_id = kernel.CreateNewThreadID();
@ -258,7 +258,7 @@ void Thread::SetStatus(ThreadStatus new_status) {
} }
if (status == ThreadStatus::Running) { if (status == ThreadStatus::Running) {
last_running_ticks = kernel.System().CoreTiming().GetTicks(); last_running_ticks = Core::System::GetInstance().CoreTiming().GetTicks();
} }
status = new_status; status = new_status;
@ -356,7 +356,7 @@ void Thread::SetActivity(ThreadActivity value) {
// Set status if not waiting // Set status if not waiting
if (status == ThreadStatus::Ready || status == ThreadStatus::Running) { if (status == ThreadStatus::Ready || status == ThreadStatus::Running) {
SetStatus(ThreadStatus::Paused); SetStatus(ThreadStatus::Paused);
kernel.System().CpuCore(processor_id).PrepareReschedule(); Core::System::GetInstance().CpuCore(processor_id).PrepareReschedule();
} }
} else if (status == ThreadStatus::Paused) { } else if (status == ThreadStatus::Paused) {
// Ready to reschedule // Ready to reschedule
@ -475,7 +475,7 @@ void Thread::AdjustSchedulingOnPriority(u32 old_priority) {
if (GetSchedulingStatus() != ThreadSchedStatus::Runnable) { if (GetSchedulingStatus() != ThreadSchedStatus::Runnable) {
return; return;
} }
auto& scheduler = kernel.System().GlobalScheduler(); auto& scheduler = Core::System::GetInstance().GlobalScheduler();
if (processor_id >= 0) { if (processor_id >= 0) {
scheduler.Unschedule(old_priority, processor_id, this); scheduler.Unschedule(old_priority, processor_id, this);
} }
@ -507,7 +507,7 @@ void Thread::AdjustSchedulingOnPriority(u32 old_priority) {
} }
void Thread::AdjustSchedulingOnAffinity(u64 old_affinity_mask, s32 old_core) { void Thread::AdjustSchedulingOnAffinity(u64 old_affinity_mask, s32 old_core) {
auto& scheduler = kernel.System().GlobalScheduler(); auto& scheduler = Core::System::GetInstance().GlobalScheduler();
if (GetSchedulingStatus() != ThreadSchedStatus::Runnable || if (GetSchedulingStatus() != ThreadSchedStatus::Runnable ||
current_priority >= THREADPRIO_COUNT) { current_priority >= THREADPRIO_COUNT) {
return; return;

View File

@ -95,7 +95,7 @@ void WaitObject::WakeupWaitingThread(SharedPtr<Thread> thread) {
} }
if (resume) { if (resume) {
thread->ResumeFromWait(); thread->ResumeFromWait();
kernel.System().PrepareReschedule(thread->GetProcessorID()); Core::System::GetInstance().PrepareReschedule(thread->GetProcessorID());
} }
} }