summaryrefslogtreecommitdiffstats
path: root/src/core/core.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/core.h')
-rw-r--r--src/core/core.h56
1 files changed, 49 insertions, 7 deletions
diff --git a/src/core/core.h b/src/core/core.h
index 20959de54..ff10ebe12 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -8,6 +8,7 @@
#include <memory>
#include <string>
+#include <map>
#include "common/common_types.h"
#include "core/file_sys/vfs_types.h"
#include "core/hle/kernel/object.h"
@@ -17,7 +18,6 @@ class EmuWindow;
} // namespace Core::Frontend
namespace FileSys {
-class CheatList;
class ContentProvider;
class ContentProviderUnion;
enum class ContentProviderUnionSlot;
@@ -35,6 +35,10 @@ class AppLoader;
enum class ResultStatus : u16;
} // namespace Loader
+namespace Memory {
+struct CheatEntry;
+} // namespace Memory
+
namespace Service {
namespace AM::Applets {
@@ -42,6 +46,18 @@ struct AppletFrontendSet;
class AppletManager;
} // namespace AM::Applets
+namespace APM {
+class Controller;
+}
+
+namespace FileSystem {
+class FileSystemController;
+} // namespace FileSystem
+
+namespace Glue {
+class ARPManager;
+}
+
namespace SM {
class ServiceManager;
} // namespace SM
@@ -61,6 +77,10 @@ namespace Core::Timing {
class CoreTiming;
}
+namespace Core::Hardware {
+class InterruptManager;
+}
+
namespace Core {
class ARM_Interface;
@@ -68,6 +88,7 @@ class Cpu;
class ExclusiveMonitor;
class FrameLimiter;
class PerfStats;
+class Reporter;
class TelemetrySession;
struct PerfStatsResults;
@@ -224,6 +245,12 @@ public:
/// Provides a constant reference to the core timing instance.
const Timing::CoreTiming& CoreTiming() const;
+ /// Provides a reference to the interrupt manager instance.
+ Core::Hardware::InterruptManager& InterruptManager();
+
+ /// Provides a constant reference to the interrupt manager instance.
+ const Core::Hardware::InterruptManager& InterruptManager() const;
+
/// Provides a reference to the kernel instance.
Kernel::KernelCore& Kernel();
@@ -262,8 +289,9 @@ public:
std::shared_ptr<FileSys::VfsFilesystem> GetFilesystem() const;
- void RegisterCheatList(const std::vector<FileSys::CheatList>& list, const std::string& build_id,
- VAddr code_region_start, VAddr code_region_end);
+ void RegisterCheatList(const std::vector<Memory::CheatEntry>& list,
+ const std::array<u8, 0x20>& build_id, VAddr main_region_begin,
+ u64 main_region_size);
void SetAppletFrontendSet(Service::AM::Applets::AppletFrontendSet&& set);
@@ -279,11 +307,29 @@ public:
const FileSys::ContentProvider& GetContentProvider() const;
+ Service::FileSystem::FileSystemController& GetFileSystemController();
+
+ const Service::FileSystem::FileSystemController& GetFileSystemController() const;
+
void RegisterContentProvider(FileSys::ContentProviderUnionSlot slot,
FileSys::ContentProvider* provider);
void ClearContentProvider(FileSys::ContentProviderUnionSlot slot);
+ const Reporter& GetReporter() const;
+
+ Service::Glue::ARPManager& GetARPManager();
+
+ const Service::Glue::ARPManager& GetARPManager() const;
+
+ Service::APM::Controller& GetAPMController();
+
+ const Service::APM::Controller& GetAPMController() const;
+
+ void SetExitLock(bool locked);
+
+ bool GetExitLock() const;
+
private:
System();
@@ -307,10 +353,6 @@ private:
static System s_instance;
};
-inline ARM_Interface& CurrentArmInterface() {
- return System::GetInstance().CurrentArmInterface();
-}
-
inline Kernel::Process* CurrentProcess() {
return System::GetInstance().CurrentProcess();
}