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/common_types.h"
 | 
				
			||||||
#include "common/logging/log.h"
 | 
					#include "common/logging/log.h"
 | 
				
			||||||
#include "core/hle/ipc.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.h"
 | 
				
			||||||
#include "core/hle/service/nim/nim_aoc.h"
 | 
					#include "core/hle/service/nim/nim_aoc.h"
 | 
				
			||||||
#include "core/hle/service/nim/nim_s.h"
 | 
					#include "core/hle/service/nim/nim_s.h"
 | 
				
			||||||
@ -14,6 +16,16 @@
 | 
				
			|||||||
namespace Service {
 | 
					namespace Service {
 | 
				
			||||||
namespace NIM {
 | 
					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) {
 | 
					void CheckSysUpdateAvailable(Service::Interface* self) {
 | 
				
			||||||
    u32* cmd_buff = Kernel::GetCommandBuffer();
 | 
					    u32* cmd_buff = Kernel::GetCommandBuffer();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -29,9 +41,13 @@ void Init() {
 | 
				
			|||||||
    AddService(new NIM_AOC_Interface);
 | 
					    AddService(new NIM_AOC_Interface);
 | 
				
			||||||
    AddService(new NIM_S_Interface);
 | 
					    AddService(new NIM_S_Interface);
 | 
				
			||||||
    AddService(new NIM_U_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
 | 
					} // namespace NIM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -10,6 +10,17 @@ class Interface;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace NIM {
 | 
					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
 | 
					 * NIM::CheckSysUpdateAvailable service function
 | 
				
			||||||
 *  Inputs:
 | 
					 *  Inputs:
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ const Interface::FunctionInfo FunctionTable[] = {
 | 
				
			|||||||
    {0x00010000, nullptr, "StartSysUpdate"},
 | 
					    {0x00010000, nullptr, "StartSysUpdate"},
 | 
				
			||||||
    {0x00020000, nullptr, "GetUpdateDownloadProgress"},
 | 
					    {0x00020000, nullptr, "GetUpdateDownloadProgress"},
 | 
				
			||||||
    {0x00040000, nullptr, "FinishTitlesInstall"},
 | 
					    {0x00040000, nullptr, "FinishTitlesInstall"},
 | 
				
			||||||
    {0x00050000, nullptr, "CheckForSysUpdateEvent"},
 | 
					    {0x00050000, CheckForSysUpdateEvent, "CheckForSysUpdateEvent"},
 | 
				
			||||||
    {0x00090000, CheckSysUpdateAvailable, "CheckSysUpdateAvailable"},
 | 
					    {0x00090000, CheckSysUpdateAvailable, "CheckSysUpdateAvailable"},
 | 
				
			||||||
    {0x000A0000, nullptr, "GetState"},
 | 
					    {0x000A0000, nullptr, "GetState"},
 | 
				
			||||||
    {0x000B0000, nullptr, "GetSystemTitleHash"},
 | 
					    {0x000B0000, nullptr, "GetSystemTitleHash"},
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user