mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-23 15:22:45 +01:00
core: Add missing const variants of getters for the System class
Many of the Current<Thing> getters (as well as a few others) were missing const qualified variants, which makes it a pain to retrieve certain things from const qualified references to System.
This commit is contained in:
parent
b5f8a5f0a3
commit
b77f571d20
2 changed files with 49 additions and 10 deletions
|
@ -312,6 +312,10 @@ Cpu& System::CurrentCpuCore() {
|
||||||
return impl->CurrentCpuCore();
|
return impl->CurrentCpuCore();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Cpu& System::CurrentCpuCore() const {
|
||||||
|
return impl->CurrentCpuCore();
|
||||||
|
}
|
||||||
|
|
||||||
System::ResultStatus System::RunLoop(bool tight_loop) {
|
System::ResultStatus System::RunLoop(bool tight_loop) {
|
||||||
return impl->RunLoop(tight_loop);
|
return impl->RunLoop(tight_loop);
|
||||||
}
|
}
|
||||||
|
@ -342,7 +346,11 @@ PerfStatsResults System::GetAndResetPerfStats() {
|
||||||
return impl->GetAndResetPerfStats();
|
return impl->GetAndResetPerfStats();
|
||||||
}
|
}
|
||||||
|
|
||||||
Core::TelemetrySession& System::TelemetrySession() const {
|
TelemetrySession& System::TelemetrySession() {
|
||||||
|
return *impl->telemetry_session;
|
||||||
|
}
|
||||||
|
|
||||||
|
const TelemetrySession& System::TelemetrySession() const {
|
||||||
return *impl->telemetry_session;
|
return *impl->telemetry_session;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -350,7 +358,11 @@ ARM_Interface& System::CurrentArmInterface() {
|
||||||
return CurrentCpuCore().ArmInterface();
|
return CurrentCpuCore().ArmInterface();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::size_t System::CurrentCoreIndex() {
|
const ARM_Interface& System::CurrentArmInterface() const {
|
||||||
|
return CurrentCpuCore().ArmInterface();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::size_t System::CurrentCoreIndex() const {
|
||||||
return CurrentCpuCore().CoreIndex();
|
return CurrentCpuCore().CoreIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -358,6 +370,10 @@ Kernel::Scheduler& System::CurrentScheduler() {
|
||||||
return CurrentCpuCore().Scheduler();
|
return CurrentCpuCore().Scheduler();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Kernel::Scheduler& System::CurrentScheduler() const {
|
||||||
|
return CurrentCpuCore().Scheduler();
|
||||||
|
}
|
||||||
|
|
||||||
Kernel::Scheduler& System::Scheduler(std::size_t core_index) {
|
Kernel::Scheduler& System::Scheduler(std::size_t core_index) {
|
||||||
return CpuCore(core_index).Scheduler();
|
return CpuCore(core_index).Scheduler();
|
||||||
}
|
}
|
||||||
|
@ -378,6 +394,10 @@ ARM_Interface& System::ArmInterface(std::size_t core_index) {
|
||||||
return CpuCore(core_index).ArmInterface();
|
return CpuCore(core_index).ArmInterface();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const ARM_Interface& System::ArmInterface(std::size_t core_index) const {
|
||||||
|
return CpuCore(core_index).ArmInterface();
|
||||||
|
}
|
||||||
|
|
||||||
Cpu& System::CpuCore(std::size_t core_index) {
|
Cpu& System::CpuCore(std::size_t core_index) {
|
||||||
ASSERT(core_index < NUM_CPU_CORES);
|
ASSERT(core_index < NUM_CPU_CORES);
|
||||||
return *impl->cpu_cores[core_index];
|
return *impl->cpu_cores[core_index];
|
||||||
|
@ -392,6 +412,10 @@ ExclusiveMonitor& System::Monitor() {
|
||||||
return *impl->cpu_exclusive_monitor;
|
return *impl->cpu_exclusive_monitor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const ExclusiveMonitor& System::Monitor() const {
|
||||||
|
return *impl->cpu_exclusive_monitor;
|
||||||
|
}
|
||||||
|
|
||||||
Tegra::GPU& System::GPU() {
|
Tegra::GPU& System::GPU() {
|
||||||
return *impl->gpu_core;
|
return *impl->gpu_core;
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,11 +129,11 @@ public:
|
||||||
*/
|
*/
|
||||||
bool IsPoweredOn() const;
|
bool IsPoweredOn() const;
|
||||||
|
|
||||||
/**
|
/// Gets a reference to the telemetry session for this emulation session.
|
||||||
* Returns a reference to the telemetry session for this emulation session.
|
Core::TelemetrySession& TelemetrySession();
|
||||||
* @returns Reference to the telemetry session.
|
|
||||||
*/
|
/// Gets a reference to the telemetry session for this emulation session.
|
||||||
Core::TelemetrySession& TelemetrySession() const;
|
const Core::TelemetrySession& TelemetrySession() const;
|
||||||
|
|
||||||
/// Prepare the core emulation for a reschedule
|
/// Prepare the core emulation for a reschedule
|
||||||
void PrepareReschedule();
|
void PrepareReschedule();
|
||||||
|
@ -144,24 +144,36 @@ public:
|
||||||
/// Gets an ARM interface to the CPU core that is currently running
|
/// Gets an ARM interface to the CPU core that is currently running
|
||||||
ARM_Interface& CurrentArmInterface();
|
ARM_Interface& CurrentArmInterface();
|
||||||
|
|
||||||
|
/// Gets an ARM interface to the CPU core that is currently running
|
||||||
|
const ARM_Interface& CurrentArmInterface() const;
|
||||||
|
|
||||||
/// Gets the index of the currently running CPU core
|
/// Gets the index of the currently running CPU core
|
||||||
std::size_t CurrentCoreIndex();
|
std::size_t CurrentCoreIndex() const;
|
||||||
|
|
||||||
/// Gets the scheduler for the CPU core that is currently running
|
/// Gets the scheduler for the CPU core that is currently running
|
||||||
Kernel::Scheduler& CurrentScheduler();
|
Kernel::Scheduler& CurrentScheduler();
|
||||||
|
|
||||||
/// Gets an ARM interface to the CPU core with the specified index
|
/// Gets the scheduler for the CPU core that is currently running
|
||||||
|
const Kernel::Scheduler& CurrentScheduler() const;
|
||||||
|
|
||||||
|
/// Gets a reference to an ARM interface for the CPU core with the specified index
|
||||||
ARM_Interface& ArmInterface(std::size_t core_index);
|
ARM_Interface& ArmInterface(std::size_t core_index);
|
||||||
|
|
||||||
|
/// Gets a const reference to an ARM interface from the CPU core with the specified index
|
||||||
|
const ARM_Interface& ArmInterface(std::size_t core_index) const;
|
||||||
|
|
||||||
/// Gets a CPU interface to the CPU core with the specified index
|
/// Gets a CPU interface to the CPU core with the specified index
|
||||||
Cpu& CpuCore(std::size_t core_index);
|
Cpu& CpuCore(std::size_t core_index);
|
||||||
|
|
||||||
/// Gets a CPU interface to the CPU core with the specified index
|
/// Gets a CPU interface to the CPU core with the specified index
|
||||||
const Cpu& CpuCore(std::size_t core_index) const;
|
const Cpu& CpuCore(std::size_t core_index) const;
|
||||||
|
|
||||||
/// Gets the exclusive monitor
|
/// Gets a reference to the exclusive monitor
|
||||||
ExclusiveMonitor& Monitor();
|
ExclusiveMonitor& Monitor();
|
||||||
|
|
||||||
|
/// Gets a constant reference to the exclusive monitor
|
||||||
|
const ExclusiveMonitor& Monitor() const;
|
||||||
|
|
||||||
/// Gets a mutable reference to the GPU interface
|
/// Gets a mutable reference to the GPU interface
|
||||||
Tegra::GPU& GPU();
|
Tegra::GPU& GPU();
|
||||||
|
|
||||||
|
@ -230,6 +242,9 @@ private:
|
||||||
/// Returns the currently running CPU core
|
/// Returns the currently running CPU core
|
||||||
Cpu& CurrentCpuCore();
|
Cpu& CurrentCpuCore();
|
||||||
|
|
||||||
|
/// Returns the currently running CPU core
|
||||||
|
const Cpu& CurrentCpuCore() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize the emulated system.
|
* Initialize the emulated system.
|
||||||
* @param emu_window Reference to the host-system window used for video output and keyboard
|
* @param emu_window Reference to the host-system window used for video output and keyboard
|
||||||
|
|
Loading…
Reference in a new issue