mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Merge pull request #2974 from Subv/nim_event
Services/NIM: Implement CheckForSysUpdateEvent.
This commit is contained in:
		
						commit
						9c123c29a6
					
				@ -5,6 +5,8 @@
 | 
			
		||||
#include "common/common_types.h"
 | 
			
		||||
#include "common/logging/log.h"
 | 
			
		||||
#include "core/hle/ipc.h"
 | 
			
		||||
#include "core/hle/ipc_helpers.h"
 | 
			
		||||
#include "core/hle/kernel/event.h"
 | 
			
		||||
#include "core/hle/service/nim/nim.h"
 | 
			
		||||
#include "core/hle/service/nim/nim_aoc.h"
 | 
			
		||||
#include "core/hle/service/nim/nim_s.h"
 | 
			
		||||
@ -14,6 +16,16 @@
 | 
			
		||||
namespace Service {
 | 
			
		||||
namespace NIM {
 | 
			
		||||
 | 
			
		||||
static Kernel::SharedPtr<Kernel::Event> nim_system_update_event;
 | 
			
		||||
 | 
			
		||||
void CheckForSysUpdateEvent(Service::Interface* self) {
 | 
			
		||||
    IPC::RequestParser rp(Kernel::GetCommandBuffer(), 0x5, 0, 0); // 0x50000
 | 
			
		||||
    IPC::RequestBuilder rb = rp.MakeBuilder(1, 2);
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushCopyHandles(Kernel::g_handle_table.Create(nim_system_update_event).Unwrap());
 | 
			
		||||
    LOG_TRACE(Service_NIM, "called");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CheckSysUpdateAvailable(Service::Interface* self) {
 | 
			
		||||
    u32* cmd_buff = Kernel::GetCommandBuffer();
 | 
			
		||||
 | 
			
		||||
@ -29,9 +41,13 @@ void Init() {
 | 
			
		||||
    AddService(new NIM_AOC_Interface);
 | 
			
		||||
    AddService(new NIM_S_Interface);
 | 
			
		||||
    AddService(new NIM_U_Interface);
 | 
			
		||||
 | 
			
		||||
    nim_system_update_event = Kernel::Event::Create(ResetType::OneShot, "NIM System Update Event");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Shutdown() {}
 | 
			
		||||
void Shutdown() {
 | 
			
		||||
    nim_system_update_event = nullptr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace NIM
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -10,6 +10,17 @@ class Interface;
 | 
			
		||||
 | 
			
		||||
namespace NIM {
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * NIM::CheckForSysUpdateEvent service function
 | 
			
		||||
 *  Inputs:
 | 
			
		||||
 *      1 : None
 | 
			
		||||
 *  Outputs:
 | 
			
		||||
 *      1 : Result of function, 0 on success, otherwise error code
 | 
			
		||||
 *      2 : Copy handle descriptor
 | 
			
		||||
 *      3 : System Update event handle
 | 
			
		||||
 */
 | 
			
		||||
void CheckForSysUpdateEvent(Service::Interface* self);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * NIM::CheckSysUpdateAvailable service function
 | 
			
		||||
 *  Inputs:
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,7 @@ const Interface::FunctionInfo FunctionTable[] = {
 | 
			
		||||
    {0x00010000, nullptr, "StartSysUpdate"},
 | 
			
		||||
    {0x00020000, nullptr, "GetUpdateDownloadProgress"},
 | 
			
		||||
    {0x00040000, nullptr, "FinishTitlesInstall"},
 | 
			
		||||
    {0x00050000, nullptr, "CheckForSysUpdateEvent"},
 | 
			
		||||
    {0x00050000, CheckForSysUpdateEvent, "CheckForSysUpdateEvent"},
 | 
			
		||||
    {0x00090000, CheckSysUpdateAvailable, "CheckSysUpdateAvailable"},
 | 
			
		||||
    {0x000A0000, nullptr, "GetState"},
 | 
			
		||||
    {0x000B0000, nullptr, "GetSystemTitleHash"},
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user