Kernel: Reverse global accessor removal.
This commit is contained in:
parent
3073615dbc
commit
c32520ceb7
4 changed files with 9 additions and 23 deletions
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue