aboutsummaryrefslogtreecommitdiff
path: root/src/core/core.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/core.h')
-rw-r--r--src/core/core.h29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/core/core.h b/src/core/core.h
index ff10ebe12..984074ce3 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -8,7 +8,6 @@
#include <memory>
#include <string>
-#include <map>
#include "common/common_types.h"
#include "core/file_sys/vfs_types.h"
#include "core/hle/kernel/object.h"
@@ -25,6 +24,7 @@ class VfsFilesystem;
} // namespace FileSys
namespace Kernel {
+class GlobalScheduler;
class KernelCore;
class Process;
class Scheduler;
@@ -58,6 +58,10 @@ namespace Glue {
class ARPManager;
}
+namespace LM {
+class Manager;
+} // namespace LM
+
namespace SM {
class ServiceManager;
} // namespace SM
@@ -98,6 +102,8 @@ FileSys::VirtualFile GetGameFileFromPath(const FileSys::VirtualFilesystem& vfs,
class System {
public:
+ using CurrentBuildProcessID = std::array<u8, 0x20>;
+
System(const System&) = delete;
System& operator=(const System&) = delete;
@@ -179,6 +185,9 @@ public:
/// Prepare the core emulation for a reschedule
void PrepareReschedule();
+ /// Prepare the core emulation for a reschedule
+ void PrepareReschedule(u32 core_index);
+
/// Gets and resets core performance statistics
PerfStatsResults GetAndResetPerfStats();
@@ -233,6 +242,12 @@ public:
/// Gets the scheduler for the CPU core with the specified index
const Kernel::Scheduler& Scheduler(std::size_t core_index) const;
+ /// Gets the global scheduler
+ Kernel::GlobalScheduler& GlobalScheduler();
+
+ /// Gets the global scheduler
+ const Kernel::GlobalScheduler& GlobalScheduler() const;
+
/// Provides a pointer to the current process
Kernel::Process* CurrentProcess();
@@ -326,10 +341,18 @@ public:
const Service::APM::Controller& GetAPMController() const;
+ Service::LM::Manager& GetLogManager();
+
+ const Service::LM::Manager& GetLogManager() const;
+
void SetExitLock(bool locked);
bool GetExitLock() const;
+ void SetCurrentProcessBuildID(const CurrentBuildProcessID& id);
+
+ const CurrentBuildProcessID& GetCurrentProcessBuildID() const;
+
private:
System();
@@ -353,8 +376,4 @@ private:
static System s_instance;
};
-inline Kernel::Process* CurrentProcess() {
- return System::GetInstance().CurrentProcess();
-}
-
} // namespace Core