cpu_manager: Mark function getters as static
All these do are return std::function instances of static functions, so these can be used without an instance of the CPU manager.
This commit is contained in:
parent
51546ce57e
commit
f0125b2be8
|
@ -49,9 +49,9 @@ public:
|
||||||
|
|
||||||
void Pause(bool paused);
|
void Pause(bool paused);
|
||||||
|
|
||||||
std::function<void(void*)> GetGuestThreadStartFunc();
|
static std::function<void(void*)> GetGuestThreadStartFunc();
|
||||||
std::function<void(void*)> GetIdleThreadStartFunc();
|
static std::function<void(void*)> GetIdleThreadStartFunc();
|
||||||
std::function<void(void*)> GetSuspendThreadStartFunc();
|
static std::function<void(void*)> GetSuspendThreadStartFunc();
|
||||||
void* GetStartFuncParamater();
|
void* GetStartFuncParamater();
|
||||||
|
|
||||||
void PreemptSingleCore(bool from_running_enviroment = true);
|
void PreemptSingleCore(bool from_running_enviroment = true);
|
||||||
|
|
|
@ -161,13 +161,14 @@ struct KernelCore::Impl {
|
||||||
void InitializeSuspendThreads() {
|
void InitializeSuspendThreads() {
|
||||||
for (std::size_t i = 0; i < Core::Hardware::NUM_CPU_CORES; i++) {
|
for (std::size_t i = 0; i < Core::Hardware::NUM_CPU_CORES; i++) {
|
||||||
std::string name = "Suspend Thread Id:" + std::to_string(i);
|
std::string name = "Suspend Thread Id:" + std::to_string(i);
|
||||||
std::function<void(void*)> init_func =
|
std::function<void(void*)> init_func = Core::CpuManager::GetSuspendThreadStartFunc();
|
||||||
system.GetCpuManager().GetSuspendThreadStartFunc();
|
|
||||||
void* init_func_parameter = system.GetCpuManager().GetStartFuncParamater();
|
void* init_func_parameter = system.GetCpuManager().GetStartFuncParamater();
|
||||||
ThreadType type =
|
const auto type =
|
||||||
static_cast<ThreadType>(THREADTYPE_KERNEL | THREADTYPE_HLE | THREADTYPE_SUSPEND);
|
static_cast<ThreadType>(THREADTYPE_KERNEL | THREADTYPE_HLE | THREADTYPE_SUSPEND);
|
||||||
auto thread_res = Thread::Create(system, type, name, 0, 0, 0, static_cast<u32>(i), 0,
|
auto thread_res =
|
||||||
nullptr, std::move(init_func), init_func_parameter);
|
Thread::Create(system, type, std::move(name), 0, 0, 0, static_cast<u32>(i), 0,
|
||||||
|
nullptr, std::move(init_func), init_func_parameter);
|
||||||
|
|
||||||
suspend_threads[i] = std::move(thread_res).Unwrap();
|
suspend_threads[i] = std::move(thread_res).Unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -802,7 +802,7 @@ void Scheduler::UpdateLastContextSwitchTime(Thread* thread, Process* process) {
|
||||||
|
|
||||||
void Scheduler::Initialize() {
|
void Scheduler::Initialize() {
|
||||||
std::string name = "Idle Thread Id:" + std::to_string(core_id);
|
std::string name = "Idle Thread Id:" + std::to_string(core_id);
|
||||||
std::function<void(void*)> init_func = system.GetCpuManager().GetIdleThreadStartFunc();
|
std::function<void(void*)> init_func = Core::CpuManager::GetIdleThreadStartFunc();
|
||||||
void* init_func_parameter = system.GetCpuManager().GetStartFuncParamater();
|
void* init_func_parameter = system.GetCpuManager().GetStartFuncParamater();
|
||||||
ThreadType type = static_cast<ThreadType>(THREADTYPE_KERNEL | THREADTYPE_HLE | THREADTYPE_IDLE);
|
ThreadType type = static_cast<ThreadType>(THREADTYPE_KERNEL | THREADTYPE_HLE | THREADTYPE_IDLE);
|
||||||
auto thread_res = Thread::Create(system, type, name, 0, 64, 0, static_cast<u32>(core_id), 0,
|
auto thread_res = Thread::Create(system, type, name, 0, 64, 0, static_cast<u32>(core_id), 0,
|
||||||
|
|
|
@ -155,7 +155,7 @@ ResultVal<std::shared_ptr<Thread>> Thread::Create(Core::System& system, ThreadTy
|
||||||
std::string name, VAddr entry_point, u32 priority,
|
std::string name, VAddr entry_point, u32 priority,
|
||||||
u64 arg, s32 processor_id, VAddr stack_top,
|
u64 arg, s32 processor_id, VAddr stack_top,
|
||||||
Process* owner_process) {
|
Process* owner_process) {
|
||||||
std::function<void(void*)> init_func = system.GetCpuManager().GetGuestThreadStartFunc();
|
std::function<void(void*)> init_func = Core::CpuManager::GetGuestThreadStartFunc();
|
||||||
void* init_func_parameter = system.GetCpuManager().GetStartFuncParamater();
|
void* init_func_parameter = system.GetCpuManager().GetStartFuncParamater();
|
||||||
return Create(system, type_flags, name, entry_point, priority, arg, processor_id, stack_top,
|
return Create(system, type_flags, name, entry_point, priority, arg, processor_id, stack_top,
|
||||||
owner_process, std::move(init_func), init_func_parameter);
|
owner_process, std::move(init_func), init_func_parameter);
|
||||||
|
|
Reference in New Issue