mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Kernel/Arbiters: Initialize arb_wait_address in thread struct.
This commit is contained in:
		
							parent
							
								
									62bd1299ea
								
							
						
					
					
						commit
						8f8fe62a19
					
				@ -40,6 +40,8 @@ add_library(core STATIC
 | 
			
		||||
    hle/config_mem.h
 | 
			
		||||
    hle/ipc.h
 | 
			
		||||
    hle/ipc_helpers.h
 | 
			
		||||
    hle/kernel/address_arbiter.cpp
 | 
			
		||||
    hle/kernel/address_arbiter.h
 | 
			
		||||
    hle/kernel/client_port.cpp
 | 
			
		||||
    hle/kernel/client_port.h
 | 
			
		||||
    hle/kernel/client_session.cpp
 | 
			
		||||
 | 
			
		||||
@ -692,6 +692,8 @@ static ResultCode SignalProcessWideKey(VAddr condition_variable_addr, s32 target
 | 
			
		||||
 | 
			
		||||
// Wait for an address (via Address Arbiter)
 | 
			
		||||
static ResultCode WaitForAddress(VAddr address, u32 type, s32 value, s64 timeout) {
 | 
			
		||||
    NGLOG_WARNING(Kernel_SVC, "called, address=0x{:X}, type=0x{:X}, value=0x{:X}, timeout={}",
 | 
			
		||||
        address, type, value, timeout);
 | 
			
		||||
    // If the passed address is a kernel virtual address, return invalid memory state.
 | 
			
		||||
    if ((address + 0x8000000000LL) < 0x7FFFE00000LL) {
 | 
			
		||||
        return ERR_INVALID_ADDRESS_STATE;
 | 
			
		||||
@ -715,6 +717,8 @@ static ResultCode WaitForAddress(VAddr address, u32 type, s32 value, s64 timeout
 | 
			
		||||
 | 
			
		||||
// Signals to an address (via Address Arbiter)
 | 
			
		||||
static ResultCode SignalToAddress(VAddr address, u32 type, s32 value, s32 num_to_wake) {
 | 
			
		||||
    NGLOG_WARNING(Kernel_SVC, "called, address=0x{:X}, type=0x{:X}, value=0x{:X}, num_to_wake=0x{:X}",
 | 
			
		||||
        address, type, value, num_to_wake);
 | 
			
		||||
    // If the passed address is a kernel virtual address, return invalid memory state.
 | 
			
		||||
    if ((address + 0x8000000000LL) < 0x7FFFE00000LL) {
 | 
			
		||||
        return ERR_INVALID_ADDRESS_STATE;
 | 
			
		||||
 | 
			
		||||
@ -232,7 +232,7 @@ public:
 | 
			
		||||
    Handle wait_handle;         ///< The handle used to wait for the mutex.
 | 
			
		||||
 | 
			
		||||
    // If waiting for an AddressArbiter, this is the address being waited on.
 | 
			
		||||
    VAddr arb_wait_address;
 | 
			
		||||
    VAddr arb_wait_address{0};
 | 
			
		||||
    ResultCode arb_wait_result{RESULT_SUCCESS}; ///< Result returned when done waiting on AddressArbiter.
 | 
			
		||||
 | 
			
		||||
    std::string name;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user