mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Merge pull request #2230 from lioncash/global
kernel/process: Remove use of global system accessors
This commit is contained in:
		
						commit
						2d9546848e
					
				@ -133,7 +133,7 @@ void Process::PrepareForTermination() {
 | 
				
			|||||||
            if (thread->GetOwnerProcess() != this)
 | 
					            if (thread->GetOwnerProcess() != this)
 | 
				
			||||||
                continue;
 | 
					                continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (thread == GetCurrentThread())
 | 
					            if (thread == system.CurrentScheduler().GetCurrentThread())
 | 
				
			||||||
                continue;
 | 
					                continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // TODO(Subv): When are the other running/ready threads terminated?
 | 
					            // TODO(Subv): When are the other running/ready threads terminated?
 | 
				
			||||||
@ -145,7 +145,6 @@ void Process::PrepareForTermination() {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const auto& system = Core::System::GetInstance();
 | 
					 | 
				
			||||||
    stop_threads(system.Scheduler(0).GetThreadList());
 | 
					    stop_threads(system.Scheduler(0).GetThreadList());
 | 
				
			||||||
    stop_threads(system.Scheduler(1).GetThreadList());
 | 
					    stop_threads(system.Scheduler(1).GetThreadList());
 | 
				
			||||||
    stop_threads(system.Scheduler(2).GetThreadList());
 | 
					    stop_threads(system.Scheduler(2).GetThreadList());
 | 
				
			||||||
@ -228,13 +227,11 @@ void Process::LoadModule(CodeSet module_, VAddr base_addr) {
 | 
				
			|||||||
    MapSegment(module_.DataSegment(), VMAPermission::ReadWrite, MemoryState::CodeMutable);
 | 
					    MapSegment(module_.DataSegment(), VMAPermission::ReadWrite, MemoryState::CodeMutable);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Clear instruction cache in CPU JIT
 | 
					    // Clear instruction cache in CPU JIT
 | 
				
			||||||
    Core::System::GetInstance().ArmInterface(0).ClearInstructionCache();
 | 
					    system.InvalidateCpuInstructionCaches();
 | 
				
			||||||
    Core::System::GetInstance().ArmInterface(1).ClearInstructionCache();
 | 
					 | 
				
			||||||
    Core::System::GetInstance().ArmInterface(2).ClearInstructionCache();
 | 
					 | 
				
			||||||
    Core::System::GetInstance().ArmInterface(3).ClearInstructionCache();
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Process::Process(Core::System& system) : WaitObject{system.Kernel()}, address_arbiter{system} {}
 | 
					Process::Process(Core::System& system)
 | 
				
			||||||
 | 
					    : WaitObject{system.Kernel()}, address_arbiter{system}, system{system} {}
 | 
				
			||||||
Process::~Process() = default;
 | 
					Process::~Process() = default;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Process::Acquire(Thread* thread) {
 | 
					void Process::Acquire(Thread* thread) {
 | 
				
			||||||
 | 
				
			|||||||
@ -266,7 +266,7 @@ public:
 | 
				
			|||||||
    void FreeTLSSlot(VAddr tls_address);
 | 
					    void FreeTLSSlot(VAddr tls_address);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    explicit Process(Core::System& kernel);
 | 
					    explicit Process(Core::System& system);
 | 
				
			||||||
    ~Process() override;
 | 
					    ~Process() override;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// Checks if the specified thread should wait until this process is available.
 | 
					    /// Checks if the specified thread should wait until this process is available.
 | 
				
			||||||
@ -330,6 +330,10 @@ private:
 | 
				
			|||||||
    /// Random values for svcGetInfo RandomEntropy
 | 
					    /// Random values for svcGetInfo RandomEntropy
 | 
				
			||||||
    std::array<u64, RANDOM_ENTROPY_SIZE> random_entropy;
 | 
					    std::array<u64, RANDOM_ENTROPY_SIZE> random_entropy;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// System context
 | 
				
			||||||
 | 
					    Core::System& system;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// Name of this process
 | 
				
			||||||
    std::string name;
 | 
					    std::string name;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user