mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-11-03 23:28:48 +00:00 
			
		
		
		
	Use IPC:MakeHeader instead of hardcoded raw values for IPC command tables. (#6453)
* Use IPC:MakeHeader instead of hardcoded values for IPC command tables. * Use u32 instead of unsigned int in MakeHeader function Co-authored-by: SachinVin <26602104+SachinVin@users.noreply.github.com> * Fix clang format --------- Co-authored-by: SachinVin <26602104+SachinVin@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									9bd8c9290b
								
							
						
					
					
						commit
						63bc0b59bb
					
				
					 74 changed files with 1983 additions and 1896 deletions
				
			
		| 
						 | 
				
			
			@ -10,98 +10,100 @@ namespace Service::APT {
 | 
			
		|||
APT_A::APT_A(std::shared_ptr<Module> apt)
 | 
			
		||||
    : Module::APTInterface(std::move(apt), "APT:A", MaxAPTSessions) {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0x00010040, &APT_A::GetLockHandle, "GetLockHandle"},
 | 
			
		||||
        {0x00020080, &APT_A::Initialize, "Initialize"},
 | 
			
		||||
        {0x00030040, &APT_A::Enable, "Enable"},
 | 
			
		||||
        {0x00040040, nullptr, "Finalize"},
 | 
			
		||||
        {0x00050040, &APT_A::GetAppletManInfo, "GetAppletManInfo"},
 | 
			
		||||
        {0x00060040, &APT_A::GetAppletInfo, "GetAppletInfo"},
 | 
			
		||||
        {0x00070000, nullptr, "GetLastSignaledAppletId"},
 | 
			
		||||
        {0x00080000, nullptr, "CountRegisteredApplet"},
 | 
			
		||||
        {0x00090040, &APT_A::IsRegistered, "IsRegistered"},
 | 
			
		||||
        {0x000A0040, nullptr, "GetAttribute"},
 | 
			
		||||
        {0x000B0040, &APT_A::InquireNotification, "InquireNotification"},
 | 
			
		||||
        {0x000C0104, &APT_A::SendParameter, "SendParameter"},
 | 
			
		||||
        {0x000D0080, &APT_A::ReceiveParameter, "ReceiveParameter"},
 | 
			
		||||
        {0x000E0080, &APT_A::GlanceParameter, "GlanceParameter"},
 | 
			
		||||
        {0x000F0100, &APT_A::CancelParameter, "CancelParameter"},
 | 
			
		||||
        {0x001000C2, nullptr, "DebugFunc"},
 | 
			
		||||
        {0x001100C0, nullptr, "MapProgramIdForDebug"},
 | 
			
		||||
        {0x00120040, nullptr, "SetHomeMenuAppletIdForDebug"},
 | 
			
		||||
        {0x00130000, nullptr, "GetPreparationState"},
 | 
			
		||||
        {0x00140040, nullptr, "SetPreparationState"},
 | 
			
		||||
        {0x00150140, &APT_A::PrepareToStartApplication, "PrepareToStartApplication"},
 | 
			
		||||
        {0x00160040, &APT_A::PreloadLibraryApplet, "PreloadLibraryApplet"},
 | 
			
		||||
        {0x00170040, &APT_A::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"},
 | 
			
		||||
        {0x00180040, &APT_A::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"},
 | 
			
		||||
        {0x00190040, &APT_A::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"},
 | 
			
		||||
        {0x001A0000, &APT_A::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"},
 | 
			
		||||
        {0x001B00C4, &APT_A::StartApplication, "StartApplication"},
 | 
			
		||||
        {0x001C0000, &APT_A::WakeupApplication, "WakeupApplication"},
 | 
			
		||||
        {0x001D0000, nullptr, "CancelApplication"},
 | 
			
		||||
        {0x001E0084, &APT_A::StartLibraryApplet, "StartLibraryApplet"},
 | 
			
		||||
        {0x001F0084, &APT_A::StartSystemApplet, "StartSystemApplet"},
 | 
			
		||||
        {0x00200044, nullptr, "StartNewestHomeMenu"},
 | 
			
		||||
        {0x00210000, &APT_A::OrderToCloseApplication, "OrderToCloseApplication"},
 | 
			
		||||
        {0x00220040, &APT_A::PrepareToCloseApplication, "PrepareToCloseApplication"},
 | 
			
		||||
        {0x00230040, nullptr, "PrepareToJumpToApplication"},
 | 
			
		||||
        {0x00240044, nullptr, "JumpToApplication"},
 | 
			
		||||
        {0x002500C0, &APT_A::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"},
 | 
			
		||||
        {0x00260000, &APT_A::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"},
 | 
			
		||||
        {0x00270044, &APT_A::CloseApplication, "CloseApplication"},
 | 
			
		||||
        {0x00280044, &APT_A::CloseLibraryApplet, "CloseLibraryApplet"},
 | 
			
		||||
        {0x00290044, &APT_A::CloseSystemApplet, "CloseSystemApplet"},
 | 
			
		||||
        {0x002A0000, &APT_A::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"},
 | 
			
		||||
        {0x002B0000, &APT_A::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"},
 | 
			
		||||
        {0x002C0044, &APT_A::JumpToHomeMenu, "JumpToHomeMenu"},
 | 
			
		||||
        {0x002D0000, &APT_A::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"},
 | 
			
		||||
        {0x002E0044, &APT_A::LeaveHomeMenu, "LeaveHomeMenu"},
 | 
			
		||||
        {0x002F0040, nullptr, "PrepareToLeaveResidentApplet"},
 | 
			
		||||
        {0x00300044, nullptr, "LeaveResidentApplet"},
 | 
			
		||||
        {0x00310100, &APT_A::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"},
 | 
			
		||||
        {0x00320084, &APT_A::DoApplicationJump, "DoApplicationJump"},
 | 
			
		||||
        {0x00330000, &APT_A::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"},
 | 
			
		||||
        {0x00340084, nullptr, "SendDeliverArg"},
 | 
			
		||||
        {0x00350080, &APT_A::ReceiveDeliverArg, "ReceiveDeliverArg"},
 | 
			
		||||
        {0x00360040, &APT_A::LoadSysMenuArg, "LoadSysMenuArg"},
 | 
			
		||||
        {0x00370042, &APT_A::StoreSysMenuArg, "StoreSysMenuArg"},
 | 
			
		||||
        {0x00380040, nullptr, "PreloadResidentApplet"},
 | 
			
		||||
        {0x00390040, nullptr, "PrepareToStartResidentApplet"},
 | 
			
		||||
        {0x003A0044, nullptr, "StartResidentApplet"},
 | 
			
		||||
        {0x003B0040, &APT_A::CancelLibraryApplet, "CancelLibraryApplet"},
 | 
			
		||||
        {0x003C0042, nullptr, "SendDspSleep"},
 | 
			
		||||
        {0x003D0042, nullptr, "SendDspWakeUp"},
 | 
			
		||||
        {0x003E0080, nullptr, "ReplySleepQuery"},
 | 
			
		||||
        {0x003F0040, nullptr, "ReplySleepNotificationComplete"},
 | 
			
		||||
        {0x00400042, &APT_A::SendCaptureBufferInfo, "SendCaptureBufferInfo"},
 | 
			
		||||
        {0x00410040, &APT_A::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"},
 | 
			
		||||
        {0x00420080, nullptr, "SleepSystem"},
 | 
			
		||||
        {0x00430040, &APT_A::NotifyToWait, "NotifyToWait"},
 | 
			
		||||
        {0x00440000, &APT_A::GetSharedFont, "GetSharedFont"},
 | 
			
		||||
        {0x00450040, &APT_A::GetWirelessRebootInfo, "GetWirelessRebootInfo"},
 | 
			
		||||
        {0x00460104, &APT_A::Wrap, "Wrap"},
 | 
			
		||||
        {0x00470104, &APT_A::Unwrap, "Unwrap"},
 | 
			
		||||
        {0x00480100, nullptr, "GetProgramInfo"},
 | 
			
		||||
        {0x00490180, nullptr, "Reboot"},
 | 
			
		||||
        {0x004A0040, &APT_A::GetCaptureInfo, "GetCaptureInfo"},
 | 
			
		||||
        {0x004B00C2, &APT_A::AppletUtility, "AppletUtility"},
 | 
			
		||||
        {0x004C0000, nullptr, "SetFatalErrDispMode"},
 | 
			
		||||
        {0x004D0080, nullptr, "GetAppletProgramInfo"},
 | 
			
		||||
        {0x004E0000, nullptr, "HardwareResetAsync"},
 | 
			
		||||
        {0x004F0080, &APT_A::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"},
 | 
			
		||||
        {0x00500040, &APT_A::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"},
 | 
			
		||||
        {0x00510080, &APT_A::GetStartupArgument, "GetStartupArgument"},
 | 
			
		||||
        {0x00520104, nullptr, "Wrap1"},
 | 
			
		||||
        {0x00530104, nullptr, "Unwrap1"},
 | 
			
		||||
        {0x00550040, &APT_A::SetScreenCapPostPermission, "SetScreenCapPostPermission"},
 | 
			
		||||
        {0x00560000, &APT_A::GetScreenCapPostPermission, "GetScreenCapPostPermission"},
 | 
			
		||||
        {0x00570044, nullptr, "WakeupApplication2"},
 | 
			
		||||
        {0x00580002, nullptr, "GetProgramID"},
 | 
			
		||||
        {0x01010000, &APT_A::CheckNew3DSApp, "CheckNew3DSApp"},
 | 
			
		||||
        {0x01020000, &APT_A::CheckNew3DS, "CheckNew3DS"},
 | 
			
		||||
        {0x01030000, &APT_A::Unknown0x0103, "Unknown0x0103"},
 | 
			
		||||
        {0x01040000, nullptr, "IsStandardMemoryLayout"},
 | 
			
		||||
        {0x01050100, &APT_A::IsTitleAllowed, "IsTitleAllowed"},
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        {IPC::MakeHeader(0x0001, 1, 0), &APT_A::GetLockHandle, "GetLockHandle"},
 | 
			
		||||
        {IPC::MakeHeader(0x0002, 2, 0), &APT_A::Initialize, "Initialize"},
 | 
			
		||||
        {IPC::MakeHeader(0x0003, 1, 0), &APT_A::Enable, "Enable"},
 | 
			
		||||
        {IPC::MakeHeader(0x0004, 1, 0), nullptr, "Finalize"},
 | 
			
		||||
        {IPC::MakeHeader(0x0005, 1, 0), &APT_A::GetAppletManInfo, "GetAppletManInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0006, 1, 0), &APT_A::GetAppletInfo, "GetAppletInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0007, 0, 0), nullptr, "GetLastSignaledAppletId"},
 | 
			
		||||
        {IPC::MakeHeader(0x0008, 0, 0), nullptr, "CountRegisteredApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0009, 1, 0), &APT_A::IsRegistered, "IsRegistered"},
 | 
			
		||||
        {IPC::MakeHeader(0x000A, 1, 0), nullptr, "GetAttribute"},
 | 
			
		||||
        {IPC::MakeHeader(0x000B, 1, 0), &APT_A::InquireNotification, "InquireNotification"},
 | 
			
		||||
        {IPC::MakeHeader(0x000C, 4, 4), &APT_A::SendParameter, "SendParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x000D, 2, 0), &APT_A::ReceiveParameter, "ReceiveParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x000E, 2, 0), &APT_A::GlanceParameter, "GlanceParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x000F, 4, 0), &APT_A::CancelParameter, "CancelParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x0010, 3, 2), nullptr, "DebugFunc"},
 | 
			
		||||
        {IPC::MakeHeader(0x0011, 3, 0), nullptr, "MapProgramIdForDebug"},
 | 
			
		||||
        {IPC::MakeHeader(0x0012, 1, 0), nullptr, "SetHomeMenuAppletIdForDebug"},
 | 
			
		||||
        {IPC::MakeHeader(0x0013, 0, 0), nullptr, "GetPreparationState"},
 | 
			
		||||
        {IPC::MakeHeader(0x0014, 1, 0), nullptr, "SetPreparationState"},
 | 
			
		||||
        {IPC::MakeHeader(0x0015, 5, 0), &APT_A::PrepareToStartApplication, "PrepareToStartApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0016, 1, 0), &APT_A::PreloadLibraryApplet, "PreloadLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0017, 1, 0), &APT_A::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0018, 1, 0), &APT_A::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0019, 1, 0), &APT_A::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x001A, 0, 0), &APT_A::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x001B, 3, 4), &APT_A::StartApplication, "StartApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x001C, 0, 0), &APT_A::WakeupApplication, "WakeupApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x001D, 0, 0), nullptr, "CancelApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x001E, 2, 4), &APT_A::StartLibraryApplet, "StartLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x001F, 2, 4), &APT_A::StartSystemApplet, "StartSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0020, 1, 4), nullptr, "StartNewestHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x0021, 0, 0), &APT_A::OrderToCloseApplication, "OrderToCloseApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0022, 1, 0), &APT_A::PrepareToCloseApplication, "PrepareToCloseApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0023, 1, 0), nullptr, "PrepareToJumpToApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0024, 1, 4), nullptr, "JumpToApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0025, 3, 0), &APT_A::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0026, 0, 0), &APT_A::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0027, 1, 4), &APT_A::CloseApplication, "CloseApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0028, 1, 4), &APT_A::CloseLibraryApplet, "CloseLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0029, 1, 4), &APT_A::CloseSystemApplet, "CloseSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x002A, 0, 0), &APT_A::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x002B, 0, 0), &APT_A::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002C, 1, 4), &APT_A::JumpToHomeMenu, "JumpToHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002D, 0, 0), &APT_A::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002E, 1, 4), &APT_A::LeaveHomeMenu, "LeaveHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002F, 1, 0), nullptr, "PrepareToLeaveResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0030, 1, 4), nullptr, "LeaveResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0031, 4, 0), &APT_A::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"},
 | 
			
		||||
        {IPC::MakeHeader(0x0032, 2, 4), &APT_A::DoApplicationJump, "DoApplicationJump"},
 | 
			
		||||
        {IPC::MakeHeader(0x0033, 0, 0), &APT_A::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"},
 | 
			
		||||
        {IPC::MakeHeader(0x0034, 2, 4), nullptr, "SendDeliverArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0035, 2, 0), &APT_A::ReceiveDeliverArg, "ReceiveDeliverArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0036, 1, 0), &APT_A::LoadSysMenuArg, "LoadSysMenuArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0037, 1, 2), &APT_A::StoreSysMenuArg, "StoreSysMenuArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0038, 1, 0), nullptr, "PreloadResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0039, 1, 0), nullptr, "PrepareToStartResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x003A, 1, 4), nullptr, "StartResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x003B, 1, 0), &APT_A::CancelLibraryApplet, "CancelLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x003C, 1, 2), nullptr, "SendDspSleep"},
 | 
			
		||||
        {IPC::MakeHeader(0x003D, 1, 2), nullptr, "SendDspWakeUp"},
 | 
			
		||||
        {IPC::MakeHeader(0x003E, 2, 0), nullptr, "ReplySleepQuery"},
 | 
			
		||||
        {IPC::MakeHeader(0x003F, 1, 0), nullptr, "ReplySleepNotificationComplete"},
 | 
			
		||||
        {IPC::MakeHeader(0x0040, 1, 2), &APT_A::SendCaptureBufferInfo, "SendCaptureBufferInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0041, 1, 0), &APT_A::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0042, 2, 0), nullptr, "SleepSystem"},
 | 
			
		||||
        {IPC::MakeHeader(0x0043, 1, 0), &APT_A::NotifyToWait, "NotifyToWait"},
 | 
			
		||||
        {IPC::MakeHeader(0x0044, 0, 0), &APT_A::GetSharedFont, "GetSharedFont"},
 | 
			
		||||
        {IPC::MakeHeader(0x0045, 1, 0), &APT_A::GetWirelessRebootInfo, "GetWirelessRebootInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0046, 4, 4), &APT_A::Wrap, "Wrap"},
 | 
			
		||||
        {IPC::MakeHeader(0x0047, 4, 4), &APT_A::Unwrap, "Unwrap"},
 | 
			
		||||
        {IPC::MakeHeader(0x0048, 4, 0), nullptr, "GetProgramInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0049, 6, 0), nullptr, "Reboot"},
 | 
			
		||||
        {IPC::MakeHeader(0x004A, 1, 0), &APT_A::GetCaptureInfo, "GetCaptureInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x004B, 3, 2), &APT_A::AppletUtility, "AppletUtility"},
 | 
			
		||||
        {IPC::MakeHeader(0x004C, 0, 0), nullptr, "SetFatalErrDispMode"},
 | 
			
		||||
        {IPC::MakeHeader(0x004D, 2, 0), nullptr, "GetAppletProgramInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x004E, 0, 0), nullptr, "HardwareResetAsync"},
 | 
			
		||||
        {IPC::MakeHeader(0x004F, 2, 0), &APT_A::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"},
 | 
			
		||||
        {IPC::MakeHeader(0x0050, 1, 0), &APT_A::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"},
 | 
			
		||||
        {IPC::MakeHeader(0x0051, 2, 0), &APT_A::GetStartupArgument, "GetStartupArgument"},
 | 
			
		||||
        {IPC::MakeHeader(0x0052, 4, 4), nullptr, "Wrap1"},
 | 
			
		||||
        {IPC::MakeHeader(0x0053, 4, 4), nullptr, "Unwrap1"},
 | 
			
		||||
        {IPC::MakeHeader(0x0055, 1, 0), &APT_A::SetScreenCapPostPermission, "SetScreenCapPostPermission"},
 | 
			
		||||
        {IPC::MakeHeader(0x0056, 0, 0), &APT_A::GetScreenCapPostPermission, "GetScreenCapPostPermission"},
 | 
			
		||||
        {IPC::MakeHeader(0x0057, 1, 4), nullptr, "WakeupApplication2"},
 | 
			
		||||
        {IPC::MakeHeader(0x0058, 0, 2), nullptr, "GetProgramID"},
 | 
			
		||||
        {IPC::MakeHeader(0x0101, 0, 0), &APT_A::CheckNew3DSApp, "CheckNew3DSApp"},
 | 
			
		||||
        {IPC::MakeHeader(0x0102, 0, 0), &APT_A::CheckNew3DS, "CheckNew3DS"},
 | 
			
		||||
        {IPC::MakeHeader(0x0103, 0, 0), &APT_A::Unknown0x0103, "Unknown0x0103"},
 | 
			
		||||
        {IPC::MakeHeader(0x0104, 0, 0), nullptr, "IsStandardMemoryLayout"},
 | 
			
		||||
        {IPC::MakeHeader(0x0105, 4, 0), &APT_A::IsTitleAllowed, "IsTitleAllowed"},
 | 
			
		||||
        // clang-format on
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,98 +10,100 @@ namespace Service::APT {
 | 
			
		|||
APT_S::APT_S(std::shared_ptr<Module> apt)
 | 
			
		||||
    : Module::APTInterface(std::move(apt), "APT:S", MaxAPTSessions) {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0x00010040, &APT_S::GetLockHandle, "GetLockHandle"},
 | 
			
		||||
        {0x00020080, &APT_S::Initialize, "Initialize"},
 | 
			
		||||
        {0x00030040, &APT_S::Enable, "Enable"},
 | 
			
		||||
        {0x00040040, nullptr, "Finalize"},
 | 
			
		||||
        {0x00050040, &APT_S::GetAppletManInfo, "GetAppletManInfo"},
 | 
			
		||||
        {0x00060040, &APT_S::GetAppletInfo, "GetAppletInfo"},
 | 
			
		||||
        {0x00070000, nullptr, "GetLastSignaledAppletId"},
 | 
			
		||||
        {0x00080000, nullptr, "CountRegisteredApplet"},
 | 
			
		||||
        {0x00090040, &APT_S::IsRegistered, "IsRegistered"},
 | 
			
		||||
        {0x000A0040, nullptr, "GetAttribute"},
 | 
			
		||||
        {0x000B0040, &APT_S::InquireNotification, "InquireNotification"},
 | 
			
		||||
        {0x000C0104, &APT_S::SendParameter, "SendParameter"},
 | 
			
		||||
        {0x000D0080, &APT_S::ReceiveParameter, "ReceiveParameter"},
 | 
			
		||||
        {0x000E0080, &APT_S::GlanceParameter, "GlanceParameter"},
 | 
			
		||||
        {0x000F0100, &APT_S::CancelParameter, "CancelParameter"},
 | 
			
		||||
        {0x001000C2, nullptr, "DebugFunc"},
 | 
			
		||||
        {0x001100C0, nullptr, "MapProgramIdForDebug"},
 | 
			
		||||
        {0x00120040, nullptr, "SetHomeMenuAppletIdForDebug"},
 | 
			
		||||
        {0x00130000, nullptr, "GetPreparationState"},
 | 
			
		||||
        {0x00140040, nullptr, "SetPreparationState"},
 | 
			
		||||
        {0x00150140, &APT_S::PrepareToStartApplication, "PrepareToStartApplication"},
 | 
			
		||||
        {0x00160040, &APT_S::PreloadLibraryApplet, "PreloadLibraryApplet"},
 | 
			
		||||
        {0x00170040, &APT_S::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"},
 | 
			
		||||
        {0x00180040, &APT_S::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"},
 | 
			
		||||
        {0x00190040, &APT_S::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"},
 | 
			
		||||
        {0x001A0000, &APT_S::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"},
 | 
			
		||||
        {0x001B00C4, &APT_S::StartApplication, "StartApplication"},
 | 
			
		||||
        {0x001C0000, &APT_S::WakeupApplication, "WakeupApplication"},
 | 
			
		||||
        {0x001D0000, nullptr, "CancelApplication"},
 | 
			
		||||
        {0x001E0084, &APT_S::StartLibraryApplet, "StartLibraryApplet"},
 | 
			
		||||
        {0x001F0084, &APT_S::StartSystemApplet, "StartSystemApplet"},
 | 
			
		||||
        {0x00200044, nullptr, "StartNewestHomeMenu"},
 | 
			
		||||
        {0x00210000, &APT_S::OrderToCloseApplication, "OrderToCloseApplication"},
 | 
			
		||||
        {0x00220040, &APT_S::PrepareToCloseApplication, "PrepareToCloseApplication"},
 | 
			
		||||
        {0x00230040, nullptr, "PrepareToJumpToApplication"},
 | 
			
		||||
        {0x00240044, nullptr, "JumpToApplication"},
 | 
			
		||||
        {0x002500C0, &APT_S::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"},
 | 
			
		||||
        {0x00260000, &APT_S::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"},
 | 
			
		||||
        {0x00270044, &APT_S::CloseApplication, "CloseApplication"},
 | 
			
		||||
        {0x00280044, &APT_S::CloseLibraryApplet, "CloseLibraryApplet"},
 | 
			
		||||
        {0x00290044, &APT_S::CloseSystemApplet, "CloseSystemApplet"},
 | 
			
		||||
        {0x002A0000, &APT_S::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"},
 | 
			
		||||
        {0x002B0000, &APT_S::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"},
 | 
			
		||||
        {0x002C0044, &APT_S::JumpToHomeMenu, "JumpToHomeMenu"},
 | 
			
		||||
        {0x002D0000, &APT_S::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"},
 | 
			
		||||
        {0x002E0044, &APT_S::LeaveHomeMenu, "LeaveHomeMenu"},
 | 
			
		||||
        {0x002F0040, nullptr, "PrepareToLeaveResidentApplet"},
 | 
			
		||||
        {0x00300044, nullptr, "LeaveResidentApplet"},
 | 
			
		||||
        {0x00310100, &APT_S::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"},
 | 
			
		||||
        {0x00320084, &APT_S::DoApplicationJump, "DoApplicationJump"},
 | 
			
		||||
        {0x00330000, &APT_S::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"},
 | 
			
		||||
        {0x00340084, nullptr, "SendDeliverArg"},
 | 
			
		||||
        {0x00350080, &APT_S::ReceiveDeliverArg, "ReceiveDeliverArg"},
 | 
			
		||||
        {0x00360040, &APT_S::LoadSysMenuArg, "LoadSysMenuArg"},
 | 
			
		||||
        {0x00370042, &APT_S::StoreSysMenuArg, "StoreSysMenuArg"},
 | 
			
		||||
        {0x00380040, nullptr, "PreloadResidentApplet"},
 | 
			
		||||
        {0x00390040, nullptr, "PrepareToStartResidentApplet"},
 | 
			
		||||
        {0x003A0044, nullptr, "StartResidentApplet"},
 | 
			
		||||
        {0x003B0040, &APT_S::CancelLibraryApplet, "CancelLibraryApplet"},
 | 
			
		||||
        {0x003C0042, nullptr, "SendDspSleep"},
 | 
			
		||||
        {0x003D0042, nullptr, "SendDspWakeUp"},
 | 
			
		||||
        {0x003E0080, nullptr, "ReplySleepQuery"},
 | 
			
		||||
        {0x003F0040, nullptr, "ReplySleepNotificationComplete"},
 | 
			
		||||
        {0x00400042, &APT_S::SendCaptureBufferInfo, "SendCaptureBufferInfo"},
 | 
			
		||||
        {0x00410040, &APT_S::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"},
 | 
			
		||||
        {0x00420080, nullptr, "SleepSystem"},
 | 
			
		||||
        {0x00430040, &APT_S::NotifyToWait, "NotifyToWait"},
 | 
			
		||||
        {0x00440000, &APT_S::GetSharedFont, "GetSharedFont"},
 | 
			
		||||
        {0x00450040, &APT_S::GetWirelessRebootInfo, "GetWirelessRebootInfo"},
 | 
			
		||||
        {0x00460104, &APT_S::Wrap, "Wrap"},
 | 
			
		||||
        {0x00470104, &APT_S::Unwrap, "Unwrap"},
 | 
			
		||||
        {0x00480100, nullptr, "GetProgramInfo"},
 | 
			
		||||
        {0x00490180, nullptr, "Reboot"},
 | 
			
		||||
        {0x004A0040, &APT_S::GetCaptureInfo, "GetCaptureInfo"},
 | 
			
		||||
        {0x004B00C2, &APT_S::AppletUtility, "AppletUtility"},
 | 
			
		||||
        {0x004C0000, nullptr, "SetFatalErrDispMode"},
 | 
			
		||||
        {0x004D0080, nullptr, "GetAppletProgramInfo"},
 | 
			
		||||
        {0x004E0000, nullptr, "HardwareResetAsync"},
 | 
			
		||||
        {0x004F0080, &APT_S::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"},
 | 
			
		||||
        {0x00500040, &APT_S::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"},
 | 
			
		||||
        {0x00510080, &APT_S::GetStartupArgument, "GetStartupArgument"},
 | 
			
		||||
        {0x00520104, nullptr, "Wrap1"},
 | 
			
		||||
        {0x00530104, nullptr, "Unwrap1"},
 | 
			
		||||
        {0x00550040, &APT_S::SetScreenCapPostPermission, "SetScreenCapPostPermission"},
 | 
			
		||||
        {0x00560000, &APT_S::GetScreenCapPostPermission, "GetScreenCapPostPermission"},
 | 
			
		||||
        {0x00570044, nullptr, "WakeupApplication2"},
 | 
			
		||||
        {0x00580002, nullptr, "GetProgramID"},
 | 
			
		||||
        {0x01010000, &APT_S::CheckNew3DSApp, "CheckNew3DSApp"},
 | 
			
		||||
        {0x01020000, &APT_S::CheckNew3DS, "CheckNew3DS"},
 | 
			
		||||
        {0x01030000, &APT_S::Unknown0x0103, "Unknown0x0103"},
 | 
			
		||||
        {0x01040000, nullptr, "IsStandardMemoryLayout"},
 | 
			
		||||
        {0x01050100, &APT_S::IsTitleAllowed, "IsTitleAllowed"},
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        {IPC::MakeHeader(0x0001, 1, 0), &APT_S::GetLockHandle, "GetLockHandle"},
 | 
			
		||||
        {IPC::MakeHeader(0x0002, 2, 0), &APT_S::Initialize, "Initialize"},
 | 
			
		||||
        {IPC::MakeHeader(0x0003, 1, 0), &APT_S::Enable, "Enable"},
 | 
			
		||||
        {IPC::MakeHeader(0x0004, 1, 0), nullptr, "Finalize"},
 | 
			
		||||
        {IPC::MakeHeader(0x0005, 1, 0), &APT_S::GetAppletManInfo, "GetAppletManInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0006, 1, 0), &APT_S::GetAppletInfo, "GetAppletInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0007, 0, 0), nullptr, "GetLastSignaledAppletId"},
 | 
			
		||||
        {IPC::MakeHeader(0x0008, 0, 0), nullptr, "CountRegisteredApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0009, 1, 0), &APT_S::IsRegistered, "IsRegistered"},
 | 
			
		||||
        {IPC::MakeHeader(0x000A, 1, 0), nullptr, "GetAttribute"},
 | 
			
		||||
        {IPC::MakeHeader(0x000B, 1, 0), &APT_S::InquireNotification, "InquireNotification"},
 | 
			
		||||
        {IPC::MakeHeader(0x000C, 4, 4), &APT_S::SendParameter, "SendParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x000D, 2, 0), &APT_S::ReceiveParameter, "ReceiveParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x000E, 2, 0), &APT_S::GlanceParameter, "GlanceParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x000F, 4, 0), &APT_S::CancelParameter, "CancelParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x0010, 3, 2), nullptr, "DebugFunc"},
 | 
			
		||||
        {IPC::MakeHeader(0x0011, 3, 0), nullptr, "MapProgramIdForDebug"},
 | 
			
		||||
        {IPC::MakeHeader(0x0012, 1, 0), nullptr, "SetHomeMenuAppletIdForDebug"},
 | 
			
		||||
        {IPC::MakeHeader(0x0013, 0, 0), nullptr, "GetPreparationState"},
 | 
			
		||||
        {IPC::MakeHeader(0x0014, 1, 0), nullptr, "SetPreparationState"},
 | 
			
		||||
        {IPC::MakeHeader(0x0015, 5, 0), &APT_S::PrepareToStartApplication, "PrepareToStartApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0016, 1, 0), &APT_S::PreloadLibraryApplet, "PreloadLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0017, 1, 0), &APT_S::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0018, 1, 0), &APT_S::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0019, 1, 0), &APT_S::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x001A, 0, 0), &APT_S::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x001B, 3, 4), &APT_S::StartApplication, "StartApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x001C, 0, 0), &APT_S::WakeupApplication, "WakeupApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x001D, 0, 0), nullptr, "CancelApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x001E, 2, 4), &APT_S::StartLibraryApplet, "StartLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x001F, 2, 4), &APT_S::StartSystemApplet, "StartSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0020, 1, 4), nullptr, "StartNewestHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x0021, 0, 0), &APT_S::OrderToCloseApplication, "OrderToCloseApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0022, 1, 0), &APT_S::PrepareToCloseApplication, "PrepareToCloseApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0023, 1, 0), nullptr, "PrepareToJumpToApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0024, 1, 4), nullptr, "JumpToApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0025, 3, 0), &APT_S::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0026, 0, 0), &APT_S::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0027, 1, 4), &APT_S::CloseApplication, "CloseApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0028, 1, 4), &APT_S::CloseLibraryApplet, "CloseLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0029, 1, 4), &APT_S::CloseSystemApplet, "CloseSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x002A, 0, 0), &APT_S::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x002B, 0, 0), &APT_S::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002C, 1, 4), &APT_S::JumpToHomeMenu, "JumpToHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002D, 0, 0), &APT_S::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002E, 1, 4), &APT_S::LeaveHomeMenu, "LeaveHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002F, 1, 0), nullptr, "PrepareToLeaveResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0030, 1, 4), nullptr, "LeaveResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0031, 4, 0), &APT_S::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"},
 | 
			
		||||
        {IPC::MakeHeader(0x0032, 2, 4), &APT_S::DoApplicationJump, "DoApplicationJump"},
 | 
			
		||||
        {IPC::MakeHeader(0x0033, 0, 0), &APT_S::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"},
 | 
			
		||||
        {IPC::MakeHeader(0x0034, 2, 4), nullptr, "SendDeliverArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0035, 2, 0), &APT_S::ReceiveDeliverArg, "ReceiveDeliverArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0036, 1, 0), &APT_S::LoadSysMenuArg, "LoadSysMenuArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0037, 1, 2), &APT_S::StoreSysMenuArg, "StoreSysMenuArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0038, 1, 0), nullptr, "PreloadResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0039, 1, 0), nullptr, "PrepareToStartResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x003A, 1, 4), nullptr, "StartResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x003B, 1, 0), &APT_S::CancelLibraryApplet, "CancelLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x003C, 1, 2), nullptr, "SendDspSleep"},
 | 
			
		||||
        {IPC::MakeHeader(0x003D, 1, 2), nullptr, "SendDspWakeUp"},
 | 
			
		||||
        {IPC::MakeHeader(0x003E, 2, 0), nullptr, "ReplySleepQuery"},
 | 
			
		||||
        {IPC::MakeHeader(0x003F, 1, 0), nullptr, "ReplySleepNotificationComplete"},
 | 
			
		||||
        {IPC::MakeHeader(0x0040, 1, 2), &APT_S::SendCaptureBufferInfo, "SendCaptureBufferInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0041, 1, 0), &APT_S::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0042, 2, 0), nullptr, "SleepSystem"},
 | 
			
		||||
        {IPC::MakeHeader(0x0043, 1, 0), &APT_S::NotifyToWait, "NotifyToWait"},
 | 
			
		||||
        {IPC::MakeHeader(0x0044, 0, 0), &APT_S::GetSharedFont, "GetSharedFont"},
 | 
			
		||||
        {IPC::MakeHeader(0x0045, 1, 0), &APT_S::GetWirelessRebootInfo, "GetWirelessRebootInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0046, 4, 4), &APT_S::Wrap, "Wrap"},
 | 
			
		||||
        {IPC::MakeHeader(0x0047, 4, 4), &APT_S::Unwrap, "Unwrap"},
 | 
			
		||||
        {IPC::MakeHeader(0x0048, 4, 0), nullptr, "GetProgramInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0049, 6, 0), nullptr, "Reboot"},
 | 
			
		||||
        {IPC::MakeHeader(0x004A, 1, 0), &APT_S::GetCaptureInfo, "GetCaptureInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x004B, 3, 2), &APT_S::AppletUtility, "AppletUtility"},
 | 
			
		||||
        {IPC::MakeHeader(0x004C, 0, 0), nullptr, "SetFatalErrDispMode"},
 | 
			
		||||
        {IPC::MakeHeader(0x004D, 2, 0), nullptr, "GetAppletProgramInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x004E, 0, 0), nullptr, "HardwareResetAsync"},
 | 
			
		||||
        {IPC::MakeHeader(0x004F, 2, 0), &APT_S::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"},
 | 
			
		||||
        {IPC::MakeHeader(0x0050, 1, 0), &APT_S::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"},
 | 
			
		||||
        {IPC::MakeHeader(0x0051, 2, 0), &APT_S::GetStartupArgument, "GetStartupArgument"},
 | 
			
		||||
        {IPC::MakeHeader(0x0052, 4, 4), nullptr, "Wrap1"},
 | 
			
		||||
        {IPC::MakeHeader(0x0053, 4, 4), nullptr, "Unwrap1"},
 | 
			
		||||
        {IPC::MakeHeader(0x0055, 1, 0), &APT_S::SetScreenCapPostPermission, "SetScreenCapPostPermission"},
 | 
			
		||||
        {IPC::MakeHeader(0x0056, 0, 0), &APT_S::GetScreenCapPostPermission, "GetScreenCapPostPermission"},
 | 
			
		||||
        {IPC::MakeHeader(0x0057, 1, 4), nullptr, "WakeupApplication2"},
 | 
			
		||||
        {IPC::MakeHeader(0x0058, 0, 2), nullptr, "GetProgramID"},
 | 
			
		||||
        {IPC::MakeHeader(0x0101, 0, 0), &APT_S::CheckNew3DSApp, "CheckNew3DSApp"},
 | 
			
		||||
        {IPC::MakeHeader(0x0102, 0, 0), &APT_S::CheckNew3DS, "CheckNew3DS"},
 | 
			
		||||
        {IPC::MakeHeader(0x0103, 0, 0), &APT_S::Unknown0x0103, "Unknown0x0103"},
 | 
			
		||||
        {IPC::MakeHeader(0x0104, 0, 0), nullptr, "IsStandardMemoryLayout"},
 | 
			
		||||
        {IPC::MakeHeader(0x0105, 4, 0), &APT_S::IsTitleAllowed, "IsTitleAllowed"},
 | 
			
		||||
        // clang-format on
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,98 +10,100 @@ namespace Service::APT {
 | 
			
		|||
APT_U::APT_U(std::shared_ptr<Module> apt)
 | 
			
		||||
    : Module::APTInterface(std::move(apt), "APT:U", MaxAPTSessions) {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0x00010040, &APT_U::GetLockHandle, "GetLockHandle"},
 | 
			
		||||
        {0x00020080, &APT_U::Initialize, "Initialize"},
 | 
			
		||||
        {0x00030040, &APT_U::Enable, "Enable"},
 | 
			
		||||
        {0x00040040, nullptr, "Finalize"},
 | 
			
		||||
        {0x00050040, &APT_U::GetAppletManInfo, "GetAppletManInfo"},
 | 
			
		||||
        {0x00060040, &APT_U::GetAppletInfo, "GetAppletInfo"},
 | 
			
		||||
        {0x00070000, nullptr, "GetLastSignaledAppletId"},
 | 
			
		||||
        {0x00080000, nullptr, "CountRegisteredApplet"},
 | 
			
		||||
        {0x00090040, &APT_U::IsRegistered, "IsRegistered"},
 | 
			
		||||
        {0x000A0040, nullptr, "GetAttribute"},
 | 
			
		||||
        {0x000B0040, &APT_U::InquireNotification, "InquireNotification"},
 | 
			
		||||
        {0x000C0104, &APT_U::SendParameter, "SendParameter"},
 | 
			
		||||
        {0x000D0080, &APT_U::ReceiveParameter, "ReceiveParameter"},
 | 
			
		||||
        {0x000E0080, &APT_U::GlanceParameter, "GlanceParameter"},
 | 
			
		||||
        {0x000F0100, &APT_U::CancelParameter, "CancelParameter"},
 | 
			
		||||
        {0x001000C2, nullptr, "DebugFunc"},
 | 
			
		||||
        {0x001100C0, nullptr, "MapProgramIdForDebug"},
 | 
			
		||||
        {0x00120040, nullptr, "SetHomeMenuAppletIdForDebug"},
 | 
			
		||||
        {0x00130000, nullptr, "GetPreparationState"},
 | 
			
		||||
        {0x00140040, nullptr, "SetPreparationState"},
 | 
			
		||||
        {0x00150140, &APT_U::PrepareToStartApplication, "PrepareToStartApplication"},
 | 
			
		||||
        {0x00160040, &APT_U::PreloadLibraryApplet, "PreloadLibraryApplet"},
 | 
			
		||||
        {0x00170040, &APT_U::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"},
 | 
			
		||||
        {0x00180040, &APT_U::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"},
 | 
			
		||||
        {0x00190040, &APT_U::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"},
 | 
			
		||||
        {0x001A0000, &APT_U::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"},
 | 
			
		||||
        {0x001B00C4, &APT_U::StartApplication, "StartApplication"},
 | 
			
		||||
        {0x001C0000, &APT_U::WakeupApplication, "WakeupApplication"},
 | 
			
		||||
        {0x001D0000, nullptr, "CancelApplication"},
 | 
			
		||||
        {0x001E0084, &APT_U::StartLibraryApplet, "StartLibraryApplet"},
 | 
			
		||||
        {0x001F0084, &APT_U::StartSystemApplet, "StartSystemApplet"},
 | 
			
		||||
        {0x00200044, nullptr, "StartNewestHomeMenu"},
 | 
			
		||||
        {0x00210000, &APT_U::OrderToCloseApplication, "OrderToCloseApplication"},
 | 
			
		||||
        {0x00220040, &APT_U::PrepareToCloseApplication, "PrepareToCloseApplication"},
 | 
			
		||||
        {0x00230040, nullptr, "PrepareToJumpToApplication"},
 | 
			
		||||
        {0x00240044, nullptr, "JumpToApplication"},
 | 
			
		||||
        {0x002500C0, &APT_U::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"},
 | 
			
		||||
        {0x00260000, &APT_U::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"},
 | 
			
		||||
        {0x00270044, &APT_U::CloseApplication, "CloseApplication"},
 | 
			
		||||
        {0x00280044, &APT_U::CloseLibraryApplet, "CloseLibraryApplet"},
 | 
			
		||||
        {0x00290044, &APT_U::CloseSystemApplet, "CloseSystemApplet"},
 | 
			
		||||
        {0x002A0000, &APT_U::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"},
 | 
			
		||||
        {0x002B0000, &APT_U::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"},
 | 
			
		||||
        {0x002C0044, &APT_U::JumpToHomeMenu, "JumpToHomeMenu"},
 | 
			
		||||
        {0x002D0000, &APT_U::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"},
 | 
			
		||||
        {0x002E0044, &APT_U::LeaveHomeMenu, "LeaveHomeMenu"},
 | 
			
		||||
        {0x002F0040, nullptr, "PrepareToLeaveResidentApplet"},
 | 
			
		||||
        {0x00300044, nullptr, "LeaveResidentApplet"},
 | 
			
		||||
        {0x00310100, &APT_U::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"},
 | 
			
		||||
        {0x00320084, &APT_U::DoApplicationJump, "DoApplicationJump"},
 | 
			
		||||
        {0x00330000, &APT_U::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"},
 | 
			
		||||
        {0x00340084, nullptr, "SendDeliverArg"},
 | 
			
		||||
        {0x00350080, &APT_U::ReceiveDeliverArg, "ReceiveDeliverArg"},
 | 
			
		||||
        {0x00360040, &APT_U::LoadSysMenuArg, "LoadSysMenuArg"},
 | 
			
		||||
        {0x00370042, &APT_U::StoreSysMenuArg, "StoreSysMenuArg"},
 | 
			
		||||
        {0x00380040, nullptr, "PreloadResidentApplet"},
 | 
			
		||||
        {0x00390040, nullptr, "PrepareToStartResidentApplet"},
 | 
			
		||||
        {0x003A0044, nullptr, "StartResidentApplet"},
 | 
			
		||||
        {0x003B0040, &APT_U::CancelLibraryApplet, "CancelLibraryApplet"},
 | 
			
		||||
        {0x003C0042, nullptr, "SendDspSleep"},
 | 
			
		||||
        {0x003D0042, nullptr, "SendDspWakeUp"},
 | 
			
		||||
        {0x003E0080, nullptr, "ReplySleepQuery"},
 | 
			
		||||
        {0x003F0040, nullptr, "ReplySleepNotificationComplete"},
 | 
			
		||||
        {0x00400042, &APT_U::SendCaptureBufferInfo, "SendCaptureBufferInfo"},
 | 
			
		||||
        {0x00410040, &APT_U::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"},
 | 
			
		||||
        {0x00420080, nullptr, "SleepSystem"},
 | 
			
		||||
        {0x00430040, &APT_U::NotifyToWait, "NotifyToWait"},
 | 
			
		||||
        {0x00440000, &APT_U::GetSharedFont, "GetSharedFont"},
 | 
			
		||||
        {0x00450040, &APT_U::GetWirelessRebootInfo, "GetWirelessRebootInfo"},
 | 
			
		||||
        {0x00460104, &APT_U::Wrap, "Wrap"},
 | 
			
		||||
        {0x00470104, &APT_U::Unwrap, "Unwrap"},
 | 
			
		||||
        {0x00480100, nullptr, "GetProgramInfo"},
 | 
			
		||||
        {0x00490180, nullptr, "Reboot"},
 | 
			
		||||
        {0x004A0040, &APT_U::GetCaptureInfo, "GetCaptureInfo"},
 | 
			
		||||
        {0x004B00C2, &APT_U::AppletUtility, "AppletUtility"},
 | 
			
		||||
        {0x004C0000, nullptr, "SetFatalErrDispMode"},
 | 
			
		||||
        {0x004D0080, nullptr, "GetAppletProgramInfo"},
 | 
			
		||||
        {0x004E0000, nullptr, "HardwareResetAsync"},
 | 
			
		||||
        {0x004F0080, &APT_U::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"},
 | 
			
		||||
        {0x00500040, &APT_U::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"},
 | 
			
		||||
        {0x00510080, &APT_U::GetStartupArgument, "GetStartupArgument"},
 | 
			
		||||
        {0x00520104, nullptr, "Wrap1"},
 | 
			
		||||
        {0x00530104, nullptr, "Unwrap1"},
 | 
			
		||||
        {0x00550040, &APT_U::SetScreenCapPostPermission, "SetScreenCapPostPermission"},
 | 
			
		||||
        {0x00560000, &APT_U::GetScreenCapPostPermission, "GetScreenCapPostPermission"},
 | 
			
		||||
        {0x00570044, nullptr, "WakeupApplication2"},
 | 
			
		||||
        {0x00580002, nullptr, "GetProgramID"},
 | 
			
		||||
        {0x01010000, &APT_U::CheckNew3DSApp, "CheckNew3DSApp"},
 | 
			
		||||
        {0x01020000, &APT_U::CheckNew3DS, "CheckNew3DS"},
 | 
			
		||||
        {0x01030000, &APT_U::Unknown0x0103, "Unknown0x0103"},
 | 
			
		||||
        {0x01040000, nullptr, "IsStandardMemoryLayout"},
 | 
			
		||||
        {0x01050100, &APT_U::IsTitleAllowed, "IsTitleAllowed"},
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        {IPC::MakeHeader(0x0001, 1, 0), &APT_U::GetLockHandle, "GetLockHandle"},
 | 
			
		||||
        {IPC::MakeHeader(0x0002, 2, 0), &APT_U::Initialize, "Initialize"},
 | 
			
		||||
        {IPC::MakeHeader(0x0003, 1, 0), &APT_U::Enable, "Enable"},
 | 
			
		||||
        {IPC::MakeHeader(0x0004, 1, 0), nullptr, "Finalize"},
 | 
			
		||||
        {IPC::MakeHeader(0x0005, 1, 0), &APT_U::GetAppletManInfo, "GetAppletManInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0006, 1, 0), &APT_U::GetAppletInfo, "GetAppletInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0007, 0, 0), nullptr, "GetLastSignaledAppletId"},
 | 
			
		||||
        {IPC::MakeHeader(0x0008, 0, 0), nullptr, "CountRegisteredApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0009, 1, 0), &APT_U::IsRegistered, "IsRegistered"},
 | 
			
		||||
        {IPC::MakeHeader(0x000A, 1, 0), nullptr, "GetAttribute"},
 | 
			
		||||
        {IPC::MakeHeader(0x000B, 1, 0), &APT_U::InquireNotification, "InquireNotification"},
 | 
			
		||||
        {IPC::MakeHeader(0x000C, 4, 4), &APT_U::SendParameter, "SendParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x000D, 2, 0), &APT_U::ReceiveParameter, "ReceiveParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x000E, 2, 0), &APT_U::GlanceParameter, "GlanceParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x000F, 4, 0), &APT_U::CancelParameter, "CancelParameter"},
 | 
			
		||||
        {IPC::MakeHeader(0x0010, 3, 2), nullptr, "DebugFunc"},
 | 
			
		||||
        {IPC::MakeHeader(0x0011, 3, 0), nullptr, "MapProgramIdForDebug"},
 | 
			
		||||
        {IPC::MakeHeader(0x0012, 1, 0), nullptr, "SetHomeMenuAppletIdForDebug"},
 | 
			
		||||
        {IPC::MakeHeader(0x0013, 0, 0), nullptr, "GetPreparationState"},
 | 
			
		||||
        {IPC::MakeHeader(0x0014, 1, 0), nullptr, "SetPreparationState"},
 | 
			
		||||
        {IPC::MakeHeader(0x0015, 5, 0), &APT_U::PrepareToStartApplication, "PrepareToStartApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0016, 1, 0), &APT_U::PreloadLibraryApplet, "PreloadLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0017, 1, 0), &APT_U::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0018, 1, 0), &APT_U::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0019, 1, 0), &APT_U::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x001A, 0, 0), &APT_U::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x001B, 3, 4), &APT_U::StartApplication, "StartApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x001C, 0, 0), &APT_U::WakeupApplication, "WakeupApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x001D, 0, 0), nullptr, "CancelApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x001E, 2, 4), &APT_U::StartLibraryApplet, "StartLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x001F, 2, 4), &APT_U::StartSystemApplet, "StartSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0020, 1, 4), nullptr, "StartNewestHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x0021, 0, 0), &APT_U::OrderToCloseApplication, "OrderToCloseApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0022, 1, 0), &APT_U::PrepareToCloseApplication, "PrepareToCloseApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0023, 1, 0), nullptr, "PrepareToJumpToApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0024, 1, 4), nullptr, "JumpToApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0025, 3, 0), &APT_U::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0026, 0, 0), &APT_U::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0027, 1, 4), &APT_U::CloseApplication, "CloseApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0028, 1, 4), &APT_U::CloseLibraryApplet, "CloseLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0029, 1, 4), &APT_U::CloseSystemApplet, "CloseSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x002A, 0, 0), &APT_U::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x002B, 0, 0), &APT_U::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002C, 1, 4), &APT_U::JumpToHomeMenu, "JumpToHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002D, 0, 0), &APT_U::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002E, 1, 4), &APT_U::LeaveHomeMenu, "LeaveHomeMenu"},
 | 
			
		||||
        {IPC::MakeHeader(0x002F, 1, 0), nullptr, "PrepareToLeaveResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0030, 1, 4), nullptr, "LeaveResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0031, 4, 0), &APT_U::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"},
 | 
			
		||||
        {IPC::MakeHeader(0x0032, 2, 4), &APT_U::DoApplicationJump, "DoApplicationJump"},
 | 
			
		||||
        {IPC::MakeHeader(0x0033, 0, 0), &APT_U::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"},
 | 
			
		||||
        {IPC::MakeHeader(0x0034, 2, 4), nullptr, "SendDeliverArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0035, 2, 0), &APT_U::ReceiveDeliverArg, "ReceiveDeliverArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0036, 1, 0), &APT_U::LoadSysMenuArg, "LoadSysMenuArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0037, 1, 2), &APT_U::StoreSysMenuArg, "StoreSysMenuArg"},
 | 
			
		||||
        {IPC::MakeHeader(0x0038, 1, 0), nullptr, "PreloadResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x0039, 1, 0), nullptr, "PrepareToStartResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x003A, 1, 4), nullptr, "StartResidentApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x003B, 1, 0), &APT_U::CancelLibraryApplet, "CancelLibraryApplet"},
 | 
			
		||||
        {IPC::MakeHeader(0x003C, 1, 2), nullptr, "SendDspSleep"},
 | 
			
		||||
        {IPC::MakeHeader(0x003D, 1, 2), nullptr, "SendDspWakeUp"},
 | 
			
		||||
        {IPC::MakeHeader(0x003E, 2, 0), nullptr, "ReplySleepQuery"},
 | 
			
		||||
        {IPC::MakeHeader(0x003F, 1, 0), nullptr, "ReplySleepNotificationComplete"},
 | 
			
		||||
        {IPC::MakeHeader(0x0040, 1, 2), &APT_U::SendCaptureBufferInfo, "SendCaptureBufferInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0041, 1, 0), &APT_U::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0042, 2, 0), nullptr, "SleepSystem"},
 | 
			
		||||
        {IPC::MakeHeader(0x0043, 1, 0), &APT_U::NotifyToWait, "NotifyToWait"},
 | 
			
		||||
        {IPC::MakeHeader(0x0044, 0, 0), &APT_U::GetSharedFont, "GetSharedFont"},
 | 
			
		||||
        {IPC::MakeHeader(0x0045, 1, 0), &APT_U::GetWirelessRebootInfo, "GetWirelessRebootInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0046, 4, 4), &APT_U::Wrap, "Wrap"},
 | 
			
		||||
        {IPC::MakeHeader(0x0047, 4, 4), &APT_U::Unwrap, "Unwrap"},
 | 
			
		||||
        {IPC::MakeHeader(0x0048, 4, 0), nullptr, "GetProgramInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0049, 6, 0), nullptr, "Reboot"},
 | 
			
		||||
        {IPC::MakeHeader(0x004A, 1, 0), &APT_U::GetCaptureInfo, "GetCaptureInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x004B, 3, 2), &APT_U::AppletUtility, "AppletUtility"},
 | 
			
		||||
        {IPC::MakeHeader(0x004C, 0, 0), nullptr, "SetFatalErrDispMode"},
 | 
			
		||||
        {IPC::MakeHeader(0x004D, 2, 0), nullptr, "GetAppletProgramInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x004E, 0, 0), nullptr, "HardwareResetAsync"},
 | 
			
		||||
        {IPC::MakeHeader(0x004F, 2, 0), &APT_U::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"},
 | 
			
		||||
        {IPC::MakeHeader(0x0050, 1, 0), &APT_U::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"},
 | 
			
		||||
        {IPC::MakeHeader(0x0051, 2, 0), &APT_U::GetStartupArgument, "GetStartupArgument"},
 | 
			
		||||
        {IPC::MakeHeader(0x0052, 4, 4), nullptr, "Wrap1"},
 | 
			
		||||
        {IPC::MakeHeader(0x0053, 4, 4), nullptr, "Unwrap1"},
 | 
			
		||||
        {IPC::MakeHeader(0x0055, 1, 0), &APT_U::SetScreenCapPostPermission, "SetScreenCapPostPermission"},
 | 
			
		||||
        {IPC::MakeHeader(0x0056, 0, 0), &APT_U::GetScreenCapPostPermission, "GetScreenCapPostPermission"},
 | 
			
		||||
        {IPC::MakeHeader(0x0057, 1, 4), nullptr, "WakeupApplication2"},
 | 
			
		||||
        {IPC::MakeHeader(0x0058, 0, 2), nullptr, "GetProgramID"},
 | 
			
		||||
        {IPC::MakeHeader(0x0101, 0, 0), &APT_U::CheckNew3DSApp, "CheckNew3DSApp"},
 | 
			
		||||
        {IPC::MakeHeader(0x0102, 0, 0), &APT_U::CheckNew3DS, "CheckNew3DS"},
 | 
			
		||||
        {IPC::MakeHeader(0x0103, 0, 0), &APT_U::Unknown0x0103, "Unknown0x0103"},
 | 
			
		||||
        {IPC::MakeHeader(0x0104, 0, 0), nullptr, "IsStandardMemoryLayout"},
 | 
			
		||||
        {IPC::MakeHeader(0x0105, 4, 0), &APT_U::IsTitleAllowed, "IsTitleAllowed"},
 | 
			
		||||
        // clang-format on
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,8 +10,10 @@ namespace Service::NS {
 | 
			
		|||
NS_C::NS_C(std::shared_ptr<Service::APT::Module> apt)
 | 
			
		||||
    : Service::APT::Module::NSInterface(std::move(apt), "ns:c", 1) {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0x00010100, nullptr, "LockSpecialContent"},
 | 
			
		||||
        {0x00020100, nullptr, "UnlockSpecialContent"},
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        {IPC::MakeHeader(0x0001, 4, 0), nullptr, "LockSpecialContent"},
 | 
			
		||||
        {IPC::MakeHeader(0x0002, 4, 0), nullptr, "UnlockSpecialContent"},
 | 
			
		||||
        // clang-format on
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,21 +10,23 @@ namespace Service::NS {
 | 
			
		|||
NS_S::NS_S(std::shared_ptr<Service::APT::Module> apt)
 | 
			
		||||
    : Service::APT::Module::NSInterface(std::move(apt), "ns:s", 3) {
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0x000100C0, nullptr, "LaunchFIRM"},
 | 
			
		||||
        {0x000200C0, nullptr, "LaunchTitle"},
 | 
			
		||||
        {0x00030000, nullptr, "TerminateApplication"},
 | 
			
		||||
        {0x00040040, nullptr, "TerminateProcess"},
 | 
			
		||||
        {0x000500C0, nullptr, "LaunchApplicationFIRM"},
 | 
			
		||||
        {0x00060042, &NS_S::SetWirelessRebootInfo, "SetWirelessRebootInfo"},
 | 
			
		||||
        {0x00070042, nullptr, "CardUpdateInitialize"},
 | 
			
		||||
        {0x00080000, nullptr, "CardUpdateShutdown"},
 | 
			
		||||
        {0x000D0140, nullptr, "SetTWLBannerHMAC"},
 | 
			
		||||
        {0x000E0000, &NS_S::ShutdownAsync, "ShutdownAsync"},
 | 
			
		||||
        {0x00100180, &NS_S::RebootSystem, "RebootSystem"},
 | 
			
		||||
        {0x00110100, nullptr, "TerminateTitle"},
 | 
			
		||||
        {0x001200C0, nullptr, "SetApplicationCpuTimeLimit"},
 | 
			
		||||
        {0x00150140, nullptr, "LaunchApplication"},
 | 
			
		||||
        {0x00160000, &NS_S::RebootSystemClean, "RebootSystemClean"},
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        {IPC::MakeHeader(0x0001, 3, 0), nullptr, "LaunchFIRM"},
 | 
			
		||||
        {IPC::MakeHeader(0x0002, 3, 0), nullptr, "LaunchTitle"},
 | 
			
		||||
        {IPC::MakeHeader(0x0003, 0, 0), nullptr, "TerminateApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0004, 1, 0), nullptr, "TerminateProcess"},
 | 
			
		||||
        {IPC::MakeHeader(0x0005, 3, 0), nullptr, "LaunchApplicationFIRM"},
 | 
			
		||||
        {IPC::MakeHeader(0x0006, 1, 2), &NS_S::SetWirelessRebootInfo, "SetWirelessRebootInfo"},
 | 
			
		||||
        {IPC::MakeHeader(0x0007, 1, 2), nullptr, "CardUpdateInitialize"},
 | 
			
		||||
        {IPC::MakeHeader(0x0008, 0, 0), nullptr, "CardUpdateShutdown"},
 | 
			
		||||
        {IPC::MakeHeader(0x000D, 5, 0), nullptr, "SetTWLBannerHMAC"},
 | 
			
		||||
        {IPC::MakeHeader(0x000E, 0, 0), &NS_S::ShutdownAsync, "ShutdownAsync"},
 | 
			
		||||
        {IPC::MakeHeader(0x0010, 6, 0), &NS_S::RebootSystem, "RebootSystem"},
 | 
			
		||||
        {IPC::MakeHeader(0x0011, 4, 0), nullptr, "TerminateTitle"},
 | 
			
		||||
        {IPC::MakeHeader(0x0012, 3, 0), nullptr, "SetApplicationCpuTimeLimit"},
 | 
			
		||||
        {IPC::MakeHeader(0x0015, 5, 0), nullptr, "LaunchApplication"},
 | 
			
		||||
        {IPC::MakeHeader(0x0016, 0, 0), &NS_S::RebootSystemClean, "RebootSystemClean"},
 | 
			
		||||
        // clang-format on
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue