Merge pull request #2382 from lioncash/table
service: Update service function tables
This commit is contained in:
		@@ -137,6 +137,7 @@ private:
 | 
			
		||||
class IManagerForApplication final : public ServiceFramework<IManagerForApplication> {
 | 
			
		||||
public:
 | 
			
		||||
    IManagerForApplication() : ServiceFramework("IManagerForApplication") {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, &IManagerForApplication::CheckAvailability, "CheckAvailability"},
 | 
			
		||||
            {1, &IManagerForApplication::GetAccountId, "GetAccountId"},
 | 
			
		||||
@@ -145,7 +146,10 @@ public:
 | 
			
		||||
            {130, nullptr, "GetNintendoAccountUserResourceCacheForApplication"},
 | 
			
		||||
            {150, nullptr, "CreateAuthorizationRequest"},
 | 
			
		||||
            {160, nullptr, "StoreOpenContext"},
 | 
			
		||||
            {170, nullptr, "LoadNetworkServiceLicenseKindAsync"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@ namespace Service::Account {
 | 
			
		||||
 | 
			
		||||
ACC_SU::ACC_SU(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> profile_manager)
 | 
			
		||||
    : Module::Interface(std::move(module), std::move(profile_manager), "acc:su") {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, &ACC_SU::GetUserCount, "GetUserCount"},
 | 
			
		||||
        {1, &ACC_SU::GetUserExistence, "GetUserExistence"},
 | 
			
		||||
@@ -19,6 +20,7 @@ ACC_SU::ACC_SU(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> p
 | 
			
		||||
        {50, &ACC_SU::IsUserRegistrationRequestPermitted, "IsUserRegistrationRequestPermitted"},
 | 
			
		||||
        {51, &ACC_SU::TrySelectUserWithoutInteraction, "TrySelectUserWithoutInteraction"},
 | 
			
		||||
        {60, nullptr, "ListOpenContextStoredUsers"},
 | 
			
		||||
        {99, nullptr, "DebugActivateOpenContextRetention"},
 | 
			
		||||
        {100, nullptr, "GetUserRegistrationNotifier"},
 | 
			
		||||
        {101, nullptr, "GetUserStateChangeNotifier"},
 | 
			
		||||
        {102, nullptr, "GetBaasAccountManagerForSystemService"},
 | 
			
		||||
@@ -29,6 +31,8 @@ ACC_SU::ACC_SU(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> p
 | 
			
		||||
        {111, nullptr, "ClearSaveDataThumbnail"},
 | 
			
		||||
        {112, nullptr, "LoadSaveDataThumbnail"},
 | 
			
		||||
        {113, nullptr, "GetSaveDataThumbnailExistence"},
 | 
			
		||||
        {130, nullptr, "ActivateOpenContextRetention"},
 | 
			
		||||
        {140, nullptr, "ListQualifiedUsers"},
 | 
			
		||||
        {190, nullptr, "GetUserLastOpenedApplication"},
 | 
			
		||||
        {191, nullptr, "ActivateOpenContextHolder"},
 | 
			
		||||
        {200, nullptr, "BeginUserRegistration"},
 | 
			
		||||
@@ -48,6 +52,8 @@ ACC_SU::ACC_SU(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> p
 | 
			
		||||
        {998, nullptr, "DebugSetUserStateClose"},
 | 
			
		||||
        {999, nullptr, "DebugSetUserStateOpen"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@ namespace Service::Account {
 | 
			
		||||
 | 
			
		||||
ACC_U0::ACC_U0(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> profile_manager)
 | 
			
		||||
    : Module::Interface(std::move(module), std::move(profile_manager), "acc:u0") {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, &ACC_U0::GetUserCount, "GetUserCount"},
 | 
			
		||||
        {1, &ACC_U0::GetUserExistence, "GetUserExistence"},
 | 
			
		||||
@@ -19,6 +20,7 @@ ACC_U0::ACC_U0(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> p
 | 
			
		||||
        {50, &ACC_U0::IsUserRegistrationRequestPermitted, "IsUserRegistrationRequestPermitted"},
 | 
			
		||||
        {51, &ACC_U0::TrySelectUserWithoutInteraction, "TrySelectUserWithoutInteraction"},
 | 
			
		||||
        {60, nullptr, "ListOpenContextStoredUsers"},
 | 
			
		||||
        {99, nullptr, "DebugActivateOpenContextRetention"},
 | 
			
		||||
        {100, &ACC_U0::InitializeApplicationInfo, "InitializeApplicationInfo"},
 | 
			
		||||
        {101, &ACC_U0::GetBaasAccountManagerForApplication, "GetBaasAccountManagerForApplication"},
 | 
			
		||||
        {102, nullptr, "AuthenticateApplicationAsync"},
 | 
			
		||||
@@ -27,7 +29,13 @@ ACC_U0::ACC_U0(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> p
 | 
			
		||||
        {111, nullptr, "ClearSaveDataThumbnail"},
 | 
			
		||||
        {120, nullptr, "CreateGuestLoginRequest"},
 | 
			
		||||
        {130, nullptr, "LoadOpenContext"},
 | 
			
		||||
        {131, nullptr, "ListOpenContextStoredUsers"},
 | 
			
		||||
        {140, nullptr, "InitializeApplicationInfo"},
 | 
			
		||||
        {141, nullptr, "ListQualifiedUsers"},
 | 
			
		||||
        {150, nullptr, "IsUserAccountSwitchLocked"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@ namespace Service::Account {
 | 
			
		||||
 | 
			
		||||
ACC_U1::ACC_U1(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> profile_manager)
 | 
			
		||||
    : Module::Interface(std::move(module), std::move(profile_manager), "acc:u1") {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, &ACC_U1::GetUserCount, "GetUserCount"},
 | 
			
		||||
        {1, &ACC_U1::GetUserExistence, "GetUserExistence"},
 | 
			
		||||
@@ -19,6 +20,7 @@ ACC_U1::ACC_U1(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> p
 | 
			
		||||
        {50, &ACC_U1::IsUserRegistrationRequestPermitted, "IsUserRegistrationRequestPermitted"},
 | 
			
		||||
        {51, &ACC_U1::TrySelectUserWithoutInteraction, "TrySelectUserWithoutInteraction"},
 | 
			
		||||
        {60, nullptr, "ListOpenContextStoredUsers"},
 | 
			
		||||
        {99, nullptr, "DebugActivateOpenContextRetention"},
 | 
			
		||||
        {100, nullptr, "GetUserRegistrationNotifier"},
 | 
			
		||||
        {101, nullptr, "GetUserStateChangeNotifier"},
 | 
			
		||||
        {102, nullptr, "GetBaasAccountManagerForSystemService"},
 | 
			
		||||
@@ -29,12 +31,16 @@ ACC_U1::ACC_U1(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> p
 | 
			
		||||
        {111, nullptr, "ClearSaveDataThumbnail"},
 | 
			
		||||
        {112, nullptr, "LoadSaveDataThumbnail"},
 | 
			
		||||
        {113, nullptr, "GetSaveDataThumbnailExistence"},
 | 
			
		||||
        {130, nullptr, "ActivateOpenContextRetention"},
 | 
			
		||||
        {140, nullptr, "ListQualifiedUsers"},
 | 
			
		||||
        {190, nullptr, "GetUserLastOpenedApplication"},
 | 
			
		||||
        {191, nullptr, "ActivateOpenContextHolder"},
 | 
			
		||||
        {997, nullptr, "DebugInvalidateTokenCacheForUser"},
 | 
			
		||||
        {998, nullptr, "DebugSetUserStateClose"},
 | 
			
		||||
        {999, nullptr, "DebugSetUserStateOpen"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -224,6 +224,7 @@ IDebugFunctions::IDebugFunctions() : ServiceFramework{"IDebugFunctions"} {
 | 
			
		||||
        {20, nullptr, "InvalidateTransitionLayer"},
 | 
			
		||||
        {30, nullptr, "RequestLaunchApplicationWithUserAndArgumentForDebug"},
 | 
			
		||||
        {40, nullptr, "GetAppletResourceUsageInfo"},
 | 
			
		||||
        {41, nullptr, "SetCpuBoostModeForApplet"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -256,6 +257,7 @@ ISelfController::ISelfController(std::shared_ptr<NVFlinger::NVFlinger> nvflinger
 | 
			
		||||
        {40, &ISelfController::CreateManagedDisplayLayer, "CreateManagedDisplayLayer"},
 | 
			
		||||
        {41, nullptr, "IsSystemBufferSharingEnabled"},
 | 
			
		||||
        {42, nullptr, "GetSystemSharedLayerHandle"},
 | 
			
		||||
        {43, nullptr, "GetSystemSharedBufferHandle"},
 | 
			
		||||
        {50, &ISelfController::SetHandlesRequestToDisplay, "SetHandlesRequestToDisplay"},
 | 
			
		||||
        {51, nullptr, "ApproveToDisplay"},
 | 
			
		||||
        {60, nullptr, "OverrideAutoSleepTimeAndDimmingTime"},
 | 
			
		||||
@@ -269,9 +271,11 @@ ISelfController::ISelfController(std::shared_ptr<NVFlinger::NVFlinger> nvflinger
 | 
			
		||||
        {68, nullptr, "SetAutoSleepDisabled"},
 | 
			
		||||
        {69, nullptr, "IsAutoSleepDisabled"},
 | 
			
		||||
        {70, nullptr, "ReportMultimediaError"},
 | 
			
		||||
        {71, nullptr, "GetCurrentIlluminanceEx"},
 | 
			
		||||
        {80, nullptr, "SetWirelessPriorityMode"},
 | 
			
		||||
        {90, nullptr, "GetAccumulatedSuspendedTickValue"},
 | 
			
		||||
        {91, nullptr, "GetAccumulatedSuspendedTickChangedEvent"},
 | 
			
		||||
        {100, nullptr, "SetAlbumImageTakenNotificationEnabled"},
 | 
			
		||||
        {1000, nullptr, "GetDebugStorageChannel"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
@@ -516,11 +520,20 @@ ICommonStateGetter::ICommonStateGetter(std::shared_ptr<AppletMessageQueue> msg_q
 | 
			
		||||
        {50, nullptr, "IsVrModeEnabled"},
 | 
			
		||||
        {51, nullptr, "SetVrModeEnabled"},
 | 
			
		||||
        {52, nullptr, "SwitchLcdBacklight"},
 | 
			
		||||
        {53, nullptr, "BeginVrModeEx"},
 | 
			
		||||
        {54, nullptr, "EndVrModeEx"},
 | 
			
		||||
        {55, nullptr, "IsInControllerFirmwareUpdateSection"},
 | 
			
		||||
        {60, &ICommonStateGetter::GetDefaultDisplayResolution, "GetDefaultDisplayResolution"},
 | 
			
		||||
        {61, &ICommonStateGetter::GetDefaultDisplayResolutionChangeEvent, "GetDefaultDisplayResolutionChangeEvent"},
 | 
			
		||||
        {62, nullptr, "GetHdcpAuthenticationState"},
 | 
			
		||||
        {63, nullptr, "GetHdcpAuthenticationStateChangeEvent"},
 | 
			
		||||
        {64, nullptr, "SetTvPowerStateMatchingMode"},
 | 
			
		||||
        {65, nullptr, "GetApplicationIdByContentActionName"},
 | 
			
		||||
        {66, nullptr, "SetCpuBoostMode"},
 | 
			
		||||
        {80, nullptr, "PerformSystemButtonPressingIfInFocus"},
 | 
			
		||||
        {90, nullptr, "SetPerformanceConfigurationChangedNotification"},
 | 
			
		||||
        {91, nullptr, "GetCurrentPerformanceConfiguration"},
 | 
			
		||||
        {200, nullptr, "GetOperationModeSystemInfo"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -960,6 +973,8 @@ IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationF
 | 
			
		||||
        {11, nullptr, "CreateApplicationAndPushAndRequestToStartForQuest"},
 | 
			
		||||
        {12, nullptr, "CreateApplicationAndRequestToStart"},
 | 
			
		||||
        {13, &IApplicationFunctions::CreateApplicationAndRequestToStartForQuest, "CreateApplicationAndRequestToStartForQuest"},
 | 
			
		||||
        {14, nullptr, "CreateApplicationWithAttributeAndPushAndRequestToStartForQuest"},
 | 
			
		||||
        {15, nullptr, "CreateApplicationWithAttributeAndRequestToStartForQuest"},
 | 
			
		||||
        {20, &IApplicationFunctions::EnsureSaveData, "EnsureSaveData"},
 | 
			
		||||
        {21, &IApplicationFunctions::GetDesiredLanguage, "GetDesiredLanguage"},
 | 
			
		||||
        {22, &IApplicationFunctions::SetTerminateResult, "SetTerminateResult"},
 | 
			
		||||
@@ -1233,6 +1248,7 @@ IGlobalStateController::IGlobalStateController() : ServiceFramework("IGlobalStat
 | 
			
		||||
        {2, nullptr, "StartSleepSequence"},
 | 
			
		||||
        {3, nullptr, "StartShutdownSequence"},
 | 
			
		||||
        {4, nullptr, "StartRebootSequence"},
 | 
			
		||||
        {9, nullptr, "IsAutoPowerDownRequested"},
 | 
			
		||||
        {10, nullptr, "LoadAndApplyIdlePolicySettings"},
 | 
			
		||||
        {11, nullptr, "NotifyCecSettingsChanged"},
 | 
			
		||||
        {12, nullptr, "SetDefaultHomeButtonLongPressTime"},
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,7 @@ public:
 | 
			
		||||
                                 std::shared_ptr<AppletMessageQueue> msg_queue)
 | 
			
		||||
        : ServiceFramework("ILibraryAppletProxy"), nvflinger(std::move(nvflinger)),
 | 
			
		||||
          msg_queue(std::move(msg_queue)) {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, &ILibraryAppletProxy::GetCommonStateGetter, "GetCommonStateGetter"},
 | 
			
		||||
            {1, &ILibraryAppletProxy::GetSelfController, "GetSelfController"},
 | 
			
		||||
@@ -25,8 +26,11 @@ public:
 | 
			
		||||
            {10, &ILibraryAppletProxy::GetProcessWindingController, "GetProcessWindingController"},
 | 
			
		||||
            {11, &ILibraryAppletProxy::GetLibraryAppletCreator, "GetLibraryAppletCreator"},
 | 
			
		||||
            {20, &ILibraryAppletProxy::GetApplicationFunctions, "GetApplicationFunctions"},
 | 
			
		||||
            {21, nullptr, "GetAppletCommonFunctions"},
 | 
			
		||||
            {1000, &ILibraryAppletProxy::GetDebugFunctions, "GetDebugFunctions"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -113,6 +117,7 @@ public:
 | 
			
		||||
                                std::shared_ptr<AppletMessageQueue> msg_queue)
 | 
			
		||||
        : ServiceFramework("ISystemAppletProxy"), nvflinger(std::move(nvflinger)),
 | 
			
		||||
          msg_queue(std::move(msg_queue)) {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, &ISystemAppletProxy::GetCommonStateGetter, "GetCommonStateGetter"},
 | 
			
		||||
            {1, &ISystemAppletProxy::GetSelfController, "GetSelfController"},
 | 
			
		||||
@@ -124,8 +129,11 @@ public:
 | 
			
		||||
            {20, &ISystemAppletProxy::GetHomeMenuFunctions, "GetHomeMenuFunctions"},
 | 
			
		||||
            {21, &ISystemAppletProxy::GetGlobalStateController, "GetGlobalStateController"},
 | 
			
		||||
            {22, &ISystemAppletProxy::GetApplicationCreator, "GetApplicationCreator"},
 | 
			
		||||
            {23, nullptr, "GetAppletCommonFunctions"},
 | 
			
		||||
            {1000, &ISystemAppletProxy::GetDebugFunctions, "GetDebugFunctions"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,7 @@ static std::vector<u64> AccumulateAOCTitleIDs() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
AOC_U::AOC_U() : ServiceFramework("aoc:u"), add_on_content(AccumulateAOCTitleIDs()) {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "CountAddOnContentByApplicationId"},
 | 
			
		||||
        {1, nullptr, "ListAddOnContentByApplicationId"},
 | 
			
		||||
@@ -60,7 +61,10 @@ AOC_U::AOC_U() : ServiceFramework("aoc:u"), add_on_content(AccumulateAOCTitleIDs
 | 
			
		||||
        {6, nullptr, "PrepareAddOnContentByApplicationId"},
 | 
			
		||||
        {7, &AOC_U::PrepareAddOnContent, "PrepareAddOnContent"},
 | 
			
		||||
        {8, &AOC_U::GetAddOnContentListChangedEvent, "GetAddOnContentListChangedEvent"},
 | 
			
		||||
        {100, nullptr, "CreateEcPurchasedEventManager"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
 | 
			
		||||
    auto& kernel = Core::System::GetInstance().Kernel();
 | 
			
		||||
 
 | 
			
		||||
@@ -87,6 +87,8 @@ APM_Sys::APM_Sys() : ServiceFramework{"apm:sys"} {
 | 
			
		||||
        {3, nullptr, "GetLastThrottlingState"},
 | 
			
		||||
        {4, nullptr, "ClearLastThrottlingState"},
 | 
			
		||||
        {5, nullptr, "LoadAndApplySettings"},
 | 
			
		||||
        {6, nullptr, "SetCpuBoostMode"},
 | 
			
		||||
        {7, nullptr, "GetCurrentPerformanceConfiguration"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,7 @@ public:
 | 
			
		||||
            {11, nullptr, "GetAudioInBufferCount"},
 | 
			
		||||
            {12, nullptr, "SetAudioInDeviceGain"},
 | 
			
		||||
            {13, nullptr, "GetAudioInDeviceGain"},
 | 
			
		||||
            {14, nullptr, "FlushAudioInBuffers"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ public:
 | 
			
		||||
              std::string&& unique_name)
 | 
			
		||||
        : ServiceFramework("IAudioOut"), audio_core(audio_core),
 | 
			
		||||
          device_name(std::move(device_name)), audio_params(audio_params) {
 | 
			
		||||
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, &IAudioOut::GetAudioOutState, "GetAudioOutState"},
 | 
			
		||||
            {1, &IAudioOut::StartAudioOut, "StartAudioOut"},
 | 
			
		||||
@@ -58,7 +58,10 @@ public:
 | 
			
		||||
            {9, &IAudioOut::GetAudioOutBufferCount, "GetAudioOutBufferCount"},
 | 
			
		||||
            {10, nullptr, "GetAudioOutPlayedSampleCount"},
 | 
			
		||||
            {11, nullptr, "FlushAudioOutBuffers"},
 | 
			
		||||
            {12, nullptr, "SetAudioOutVolume"},
 | 
			
		||||
            {13, nullptr, "GetAudioOutVolume"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
 | 
			
		||||
        // This is the event handle used to check if the audio buffer was released
 | 
			
		||||
 
 | 
			
		||||
@@ -154,7 +154,8 @@ public:
 | 
			
		||||
            {96, nullptr, "GetLeHidEventInfo"},
 | 
			
		||||
            {97, nullptr, "RegisterBleHidEvent"},
 | 
			
		||||
            {98, nullptr, "SetLeScanParameter"},
 | 
			
		||||
            {256, nullptr, "GetIsManufacturingMode"}
 | 
			
		||||
            {256, nullptr, "GetIsManufacturingMode"},
 | 
			
		||||
            {257, nullptr, "EmulateBluetoothCrash"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,32 +15,41 @@ public:
 | 
			
		||||
    explicit CAPS_A() : ServiceFramework{"caps:a"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "Unknown1"},
 | 
			
		||||
            {1, nullptr, "Unknown2"},
 | 
			
		||||
            {2, nullptr, "Unknown3"},
 | 
			
		||||
            {3, nullptr, "Unknown4"},
 | 
			
		||||
            {4, nullptr, "Unknown5"},
 | 
			
		||||
            {5, nullptr, "Unknown6"},
 | 
			
		||||
            {6, nullptr, "Unknown7"},
 | 
			
		||||
            {7, nullptr, "Unknown8"},
 | 
			
		||||
            {8, nullptr, "Unknown9"},
 | 
			
		||||
            {9, nullptr, "Unknown10"},
 | 
			
		||||
            {10, nullptr, "Unknown11"},
 | 
			
		||||
            {11, nullptr, "Unknown12"},
 | 
			
		||||
            {12, nullptr, "Unknown13"},
 | 
			
		||||
            {13, nullptr, "Unknown14"},
 | 
			
		||||
            {14, nullptr, "Unknown15"},
 | 
			
		||||
            {301, nullptr, "Unknown16"},
 | 
			
		||||
            {401, nullptr, "Unknown17"},
 | 
			
		||||
            {501, nullptr, "Unknown18"},
 | 
			
		||||
            {1001, nullptr, "Unknown19"},
 | 
			
		||||
            {1002, nullptr, "Unknown20"},
 | 
			
		||||
            {8001, nullptr, "Unknown21"},
 | 
			
		||||
            {8002, nullptr, "Unknown22"},
 | 
			
		||||
            {8011, nullptr, "Unknown23"},
 | 
			
		||||
            {8012, nullptr, "Unknown24"},
 | 
			
		||||
            {8021, nullptr, "Unknown25"},
 | 
			
		||||
            {10011, nullptr, "Unknown26"},
 | 
			
		||||
            {0, nullptr, "GetAlbumFileCount"},
 | 
			
		||||
            {1, nullptr, "GetAlbumFileList"},
 | 
			
		||||
            {2, nullptr, "LoadAlbumFile"},
 | 
			
		||||
            {3, nullptr, "DeleteAlbumFile"},
 | 
			
		||||
            {4, nullptr, "StorageCopyAlbumFile"},
 | 
			
		||||
            {5, nullptr, "IsAlbumMounted"},
 | 
			
		||||
            {6, nullptr, "GetAlbumUsage"},
 | 
			
		||||
            {7, nullptr, "GetAlbumFileSize"},
 | 
			
		||||
            {8, nullptr, "LoadAlbumFileThumbnail"},
 | 
			
		||||
            {9, nullptr, "LoadAlbumScreenShotImage"},
 | 
			
		||||
            {10, nullptr, "LoadAlbumScreenShotThumbnailImage"},
 | 
			
		||||
            {11, nullptr, "GetAlbumEntryFromApplicationAlbumEntry"},
 | 
			
		||||
            {12, nullptr, "Unknown12"},
 | 
			
		||||
            {13, nullptr, "Unknown13"},
 | 
			
		||||
            {14, nullptr, "Unknown14"},
 | 
			
		||||
            {15, nullptr, "Unknown15"},
 | 
			
		||||
            {16, nullptr, "Unknown16"},
 | 
			
		||||
            {17, nullptr, "Unknown17"},
 | 
			
		||||
            {18, nullptr, "Unknown18"},
 | 
			
		||||
            {202, nullptr, "SaveEditedScreenShot"},
 | 
			
		||||
            {301, nullptr, "GetLastThumbnail"},
 | 
			
		||||
            {401, nullptr, "GetAutoSavingStorage"},
 | 
			
		||||
            {501, nullptr, "GetRequiredStorageSpaceSizeToCopyAll"},
 | 
			
		||||
            {1001, nullptr, "Unknown1001"},
 | 
			
		||||
            {1002, nullptr, "Unknown1002"},
 | 
			
		||||
            {1003, nullptr, "Unknown1003"},
 | 
			
		||||
            {8001, nullptr, "ForceAlbumUnmounted"},
 | 
			
		||||
            {8002, nullptr, "ResetAlbumMountStatus"},
 | 
			
		||||
            {8011, nullptr, "RefreshAlbumCache"},
 | 
			
		||||
            {8012, nullptr, "GetAlbumCache"},
 | 
			
		||||
            {8013, nullptr, "Unknown8013"},
 | 
			
		||||
            {8021, nullptr, "GetAlbumEntryFromApplicationAlbumEntryAruid"},
 | 
			
		||||
            {10011, nullptr, "SetInternalErrorConversionEnabled"},
 | 
			
		||||
            {50000, nullptr, "Unknown50000"},
 | 
			
		||||
            {60002, nullptr, "Unknown60002"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -53,16 +62,17 @@ public:
 | 
			
		||||
    explicit CAPS_C() : ServiceFramework{"caps:c"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {2001, nullptr, "Unknown1"},
 | 
			
		||||
            {2002, nullptr, "Unknown2"},
 | 
			
		||||
            {2011, nullptr, "Unknown3"},
 | 
			
		||||
            {2012, nullptr, "Unknown4"},
 | 
			
		||||
            {2013, nullptr, "Unknown5"},
 | 
			
		||||
            {2014, nullptr, "Unknown6"},
 | 
			
		||||
            {2101, nullptr, "Unknown7"},
 | 
			
		||||
            {2102, nullptr, "Unknown8"},
 | 
			
		||||
            {2201, nullptr, "Unknown9"},
 | 
			
		||||
            {2301, nullptr, "Unknown10"},
 | 
			
		||||
            {33, nullptr, "Unknown33"},
 | 
			
		||||
            {2001, nullptr, "Unknown2001"},
 | 
			
		||||
            {2002, nullptr, "Unknown2002"},
 | 
			
		||||
            {2011, nullptr, "Unknown2011"},
 | 
			
		||||
            {2012, nullptr, "Unknown2012"},
 | 
			
		||||
            {2013, nullptr, "Unknown2013"},
 | 
			
		||||
            {2014, nullptr, "Unknown2014"},
 | 
			
		||||
            {2101, nullptr, "Unknown2101"},
 | 
			
		||||
            {2102, nullptr, "Unknown2102"},
 | 
			
		||||
            {2201, nullptr, "Unknown2201"},
 | 
			
		||||
            {2301, nullptr, "Unknown2301"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -127,11 +137,18 @@ public:
 | 
			
		||||
    explicit CAPS_U() : ServiceFramework{"caps:u"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {32, nullptr, "SetShimLibraryVersion"},
 | 
			
		||||
            {102, nullptr, "GetAlbumFileListByAruid"},
 | 
			
		||||
            {103, nullptr, "DeleteAlbumFileByAruid"},
 | 
			
		||||
            {104, nullptr, "GetAlbumFileSizeByAruid"},
 | 
			
		||||
            {105, nullptr, "DeleteAlbumFileByAruidForDebug"},
 | 
			
		||||
            {110, nullptr, "LoadAlbumScreenShotImageByAruid"},
 | 
			
		||||
            {120, nullptr, "LoadAlbumScreenShotThumbnailImageByAruid"},
 | 
			
		||||
            {130, nullptr, "PrecheckToCreateContentsByAruid"},
 | 
			
		||||
            {140, nullptr, "GetAlbumFileList1AafeAruidDeprecated"},
 | 
			
		||||
            {141, nullptr, "GetAlbumFileList2AafeUidAruidDeprecated"},
 | 
			
		||||
            {142, nullptr, "GetAlbumFileList3AaeAruid"},
 | 
			
		||||
            {143, nullptr, "GetAlbumFileList4AaeUidAruid"},
 | 
			
		||||
            {60002, nullptr, "OpenAccessorSessionForApplication"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 
 | 
			
		||||
@@ -664,10 +664,13 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
 | 
			
		||||
        {100, nullptr, "OpenImageDirectoryFileSystem"},
 | 
			
		||||
        {110, nullptr, "OpenContentStorageFileSystem"},
 | 
			
		||||
        {120, nullptr, "OpenCloudBackupWorkStorageFileSystem"},
 | 
			
		||||
        {130, nullptr, "OpenCustomStorageFileSystem"},
 | 
			
		||||
        {200, &FSP_SRV::OpenDataStorageByCurrentProcess, "OpenDataStorageByCurrentProcess"},
 | 
			
		||||
        {201, nullptr, "OpenDataStorageByProgramId"},
 | 
			
		||||
        {202, &FSP_SRV::OpenDataStorageByDataId, "OpenDataStorageByDataId"},
 | 
			
		||||
        {203, &FSP_SRV::OpenPatchDataStorageByCurrentProcess, "OpenPatchDataStorageByCurrentProcess"},
 | 
			
		||||
        {204, nullptr, "OpenDataFileSystemByProgramIndex"},
 | 
			
		||||
        {205, nullptr, "OpenDataStorageByProgramIndex"},
 | 
			
		||||
        {400, nullptr, "OpenDeviceOperator"},
 | 
			
		||||
        {500, nullptr, "OpenSdCardDetectionEventNotifier"},
 | 
			
		||||
        {501, nullptr, "OpenGameCardDetectionEventNotifier"},
 | 
			
		||||
@@ -691,6 +694,7 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
 | 
			
		||||
        {614, nullptr, "CorruptSaveDataFileSystemBySaveDataSpaceId"},
 | 
			
		||||
        {615, nullptr, "QuerySaveDataInternalStorageTotalSize"},
 | 
			
		||||
        {616, nullptr, "GetSaveDataCommitId"},
 | 
			
		||||
        {617, nullptr, "UnregisterExternalKey"},
 | 
			
		||||
        {620, nullptr, "SetSdCardEncryptionSeed"},
 | 
			
		||||
        {630, nullptr, "SetSdCardAccessibility"},
 | 
			
		||||
        {631, nullptr, "IsSdCardAccessible"},
 | 
			
		||||
@@ -701,6 +705,7 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
 | 
			
		||||
        {710, nullptr, "ResolveAccessFailure"},
 | 
			
		||||
        {720, nullptr, "AbandonAccessFailure"},
 | 
			
		||||
        {800, nullptr, "GetAndClearFileSystemProxyErrorInfo"},
 | 
			
		||||
        {810, nullptr, "RegisterProgramIndexMapInfo"},
 | 
			
		||||
        {1000, nullptr, "SetBisRootForHost"},
 | 
			
		||||
        {1001, nullptr, "SetSaveDataSize"},
 | 
			
		||||
        {1002, nullptr, "SetSaveDataRootPath"},
 | 
			
		||||
@@ -711,6 +716,8 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
 | 
			
		||||
        {1007, nullptr, "RegisterUpdatePartition"},
 | 
			
		||||
        {1008, nullptr, "OpenRegisteredUpdatePartition"},
 | 
			
		||||
        {1009, nullptr, "GetAndClearMemoryReportInfo"},
 | 
			
		||||
        {1010, nullptr, "SetDataStorageRedirectTarget"},
 | 
			
		||||
        {1011, nullptr, "OutputAccessLogToSdCard2"},
 | 
			
		||||
        {1100, nullptr, "OverrideSaveDataTransferTokenSignVerificationKey"},
 | 
			
		||||
        {1110, nullptr, "CorruptSaveDataFileSystemBySaveDataSpaceId2"},
 | 
			
		||||
        {1200, nullptr, "OpenMultiCommitManager"},
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ namespace Service::Friend {
 | 
			
		||||
class IFriendService final : public ServiceFramework<IFriendService> {
 | 
			
		||||
public:
 | 
			
		||||
    IFriendService() : ServiceFramework("IFriendService") {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "GetCompletionEvent"},
 | 
			
		||||
            {1, nullptr, "Cancel"},
 | 
			
		||||
@@ -24,8 +25,7 @@ public:
 | 
			
		||||
            {10400, nullptr, "GetBlockedUserListIds"},
 | 
			
		||||
            {10500, nullptr, "GetProfileList"},
 | 
			
		||||
            {10600, nullptr, "DeclareOpenOnlinePlaySession"},
 | 
			
		||||
            {10601, &IFriendService::DeclareCloseOnlinePlaySession,
 | 
			
		||||
             "DeclareCloseOnlinePlaySession"},
 | 
			
		||||
            {10601, &IFriendService::DeclareCloseOnlinePlaySession, "DeclareCloseOnlinePlaySession"},
 | 
			
		||||
            {10610, &IFriendService::UpdateUserPresence, "UpdateUserPresence"},
 | 
			
		||||
            {10700, nullptr, "GetPlayHistoryRegistrationKey"},
 | 
			
		||||
            {10701, nullptr, "GetPlayHistoryRegistrationKeyWithNetworkServiceAccountId"},
 | 
			
		||||
@@ -88,6 +88,7 @@ public:
 | 
			
		||||
            {30830, nullptr, "ClearPlayLog"},
 | 
			
		||||
            {49900, nullptr, "DeleteNetworkServiceAccountCache"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -210,6 +210,7 @@ Hid::Hid() : ServiceFramework("hid") {
 | 
			
		||||
        {131, nullptr, "IsUnintendedHomeButtonInputProtectionEnabled"},
 | 
			
		||||
        {132, nullptr, "EnableUnintendedHomeButtonInputProtection"},
 | 
			
		||||
        {133, nullptr, "SetNpadJoyAssignmentModeSingleWithDestination"},
 | 
			
		||||
        {134, nullptr, "SetNpadAnalogStickUseCenterClamp"},
 | 
			
		||||
        {200, &Hid::GetVibrationDeviceInfo, "GetVibrationDeviceInfo"},
 | 
			
		||||
        {201, &Hid::SendVibrationValue, "SendVibrationValue"},
 | 
			
		||||
        {202, &Hid::GetActualVibrationValue, "GetActualVibrationValue"},
 | 
			
		||||
@@ -221,6 +222,7 @@ Hid::Hid() : ServiceFramework("hid") {
 | 
			
		||||
        {208, nullptr, "GetActualVibrationGcErmCommand"},
 | 
			
		||||
        {209, &Hid::BeginPermitVibrationSession, "BeginPermitVibrationSession"},
 | 
			
		||||
        {210, &Hid::EndPermitVibrationSession, "EndPermitVibrationSession"},
 | 
			
		||||
        {211, nullptr, "IsVibrationDeviceMounted"},
 | 
			
		||||
        {300, &Hid::ActivateConsoleSixAxisSensor, "ActivateConsoleSixAxisSensor"},
 | 
			
		||||
        {301, &Hid::StartConsoleSixAxisSensor, "StartConsoleSixAxisSensor"},
 | 
			
		||||
        {302, nullptr, "StopConsoleSixAxisSensor"},
 | 
			
		||||
@@ -265,6 +267,7 @@ Hid::Hid() : ServiceFramework("hid") {
 | 
			
		||||
        {523, nullptr, "SetIsPalmaPairedConnectable"},
 | 
			
		||||
        {524, nullptr, "PairPalma"},
 | 
			
		||||
        {525, &Hid::SetPalmaBoostMode, "SetPalmaBoostMode"},
 | 
			
		||||
        {526, nullptr, "CancelWritePalmaWaveEntry"},
 | 
			
		||||
        {1000, nullptr, "SetNpadCommunicationMode"},
 | 
			
		||||
        {1001, nullptr, "GetNpadCommunicationMode"},
 | 
			
		||||
    };
 | 
			
		||||
@@ -797,12 +800,22 @@ public:
 | 
			
		||||
            {232, nullptr, "EnableShipmentMode"},
 | 
			
		||||
            {233, nullptr, "ClearPairingInfo"},
 | 
			
		||||
            {234, nullptr, "GetUniquePadDeviceTypeSetInternal"},
 | 
			
		||||
            {235, nullptr, "EnableAnalogStickPower"},
 | 
			
		||||
            {301, nullptr, "GetAbstractedPadHandles"},
 | 
			
		||||
            {302, nullptr, "GetAbstractedPadState"},
 | 
			
		||||
            {303, nullptr, "GetAbstractedPadsState"},
 | 
			
		||||
            {321, nullptr, "SetAutoPilotVirtualPadState"},
 | 
			
		||||
            {322, nullptr, "UnsetAutoPilotVirtualPadState"},
 | 
			
		||||
            {323, nullptr, "UnsetAllAutoPilotVirtualPadState"},
 | 
			
		||||
            {324, nullptr, "AttachHdlsWorkBuffer"},
 | 
			
		||||
            {325, nullptr, "ReleaseHdlsWorkBuffer"},
 | 
			
		||||
            {326, nullptr, "DumpHdlsNpadAssignmentState"},
 | 
			
		||||
            {327, nullptr, "DumpHdlsStates"},
 | 
			
		||||
            {328, nullptr, "ApplyHdlsNpadAssignmentState"},
 | 
			
		||||
            {329, nullptr, "ApplyHdlsStateList"},
 | 
			
		||||
            {330, nullptr, "AttachHdlsVirtualDevice"},
 | 
			
		||||
            {331, nullptr, "DetachHdlsVirtualDevice"},
 | 
			
		||||
            {332, nullptr, "SetHdlsState"},
 | 
			
		||||
            {350, nullptr, "AddRegisteredDevice"},
 | 
			
		||||
            {400, nullptr, "DisableExternalMcuOnNxDevice"},
 | 
			
		||||
            {401, nullptr, "DisableRailDeviceFiltering"},
 | 
			
		||||
@@ -825,6 +838,7 @@ public:
 | 
			
		||||
            {131, nullptr, "ActivateSleepButton"},
 | 
			
		||||
            {141, nullptr, "AcquireCaptureButtonEventHandle"},
 | 
			
		||||
            {151, nullptr, "ActivateCaptureButton"},
 | 
			
		||||
            {161, nullptr, "GetPlatformConfig"},
 | 
			
		||||
            {210, nullptr, "AcquireNfcDeviceUpdateEventHandle"},
 | 
			
		||||
            {211, nullptr, "GetNpadsWithNfc"},
 | 
			
		||||
            {212, nullptr, "AcquireNfcActivateEventHandle"},
 | 
			
		||||
@@ -894,6 +908,7 @@ public:
 | 
			
		||||
            {827, nullptr, "IsAnalogStickButtonPressed"},
 | 
			
		||||
            {828, nullptr, "IsAnalogStickInReleasePosition"},
 | 
			
		||||
            {829, nullptr, "IsAnalogStickInCircumference"},
 | 
			
		||||
            {830, nullptr, "SetNotificationLedPattern"},
 | 
			
		||||
            {850, nullptr, "IsUsbFullKeyControllerEnabled"},
 | 
			
		||||
            {851, nullptr, "EnableUsbFullKeyController"},
 | 
			
		||||
            {852, nullptr, "IsUsbConnected"},
 | 
			
		||||
 
 | 
			
		||||
@@ -52,9 +52,11 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class ILocalCommunicationService final : public ServiceFramework<ILocalCommunicationService> {
 | 
			
		||||
class ISystemLocalCommunicationService final
 | 
			
		||||
    : public ServiceFramework<ISystemLocalCommunicationService> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit ILocalCommunicationService(const char* name) : ServiceFramework{name} {
 | 
			
		||||
    explicit ISystemLocalCommunicationService()
 | 
			
		||||
        : ServiceFramework{"ISystemLocalCommunicationService"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "GetState"},
 | 
			
		||||
@@ -84,6 +86,50 @@ public:
 | 
			
		||||
            {304, nullptr, "Disconnect"},
 | 
			
		||||
            {400, nullptr, "InitializeSystem"},
 | 
			
		||||
            {401, nullptr, "FinalizeSystem"},
 | 
			
		||||
            {402, nullptr, "SetOperationMode"},
 | 
			
		||||
            {403, nullptr, "InitializeSystem2"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class IUserLocalCommunicationService final
 | 
			
		||||
    : public ServiceFramework<IUserLocalCommunicationService> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit IUserLocalCommunicationService() : ServiceFramework{"IUserLocalCommunicationService"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "GetState"},
 | 
			
		||||
            {1, nullptr, "GetNetworkInfo"},
 | 
			
		||||
            {2, nullptr, "GetIpv4Address"},
 | 
			
		||||
            {3, nullptr, "GetDisconnectReason"},
 | 
			
		||||
            {4, nullptr, "GetSecurityParameter"},
 | 
			
		||||
            {5, nullptr, "GetNetworkConfig"},
 | 
			
		||||
            {100, nullptr, "AttachStateChangeEvent"},
 | 
			
		||||
            {101, nullptr, "GetNetworkInfoLatestUpdate"},
 | 
			
		||||
            {102, nullptr, "Scan"},
 | 
			
		||||
            {103, nullptr, "ScanPrivate"},
 | 
			
		||||
            {104, nullptr, "SetWirelessControllerRestriction"},
 | 
			
		||||
            {200, nullptr, "OpenAccessPoint"},
 | 
			
		||||
            {201, nullptr, "CloseAccessPoint"},
 | 
			
		||||
            {202, nullptr, "CreateNetwork"},
 | 
			
		||||
            {203, nullptr, "CreateNetworkPrivate"},
 | 
			
		||||
            {204, nullptr, "DestroyNetwork"},
 | 
			
		||||
            {205, nullptr, "Reject"},
 | 
			
		||||
            {206, nullptr, "SetAdvertiseData"},
 | 
			
		||||
            {207, nullptr, "SetStationAcceptPolicy"},
 | 
			
		||||
            {208, nullptr, "AddAcceptFilterEntry"},
 | 
			
		||||
            {209, nullptr, "ClearAcceptFilter"},
 | 
			
		||||
            {300, nullptr, "OpenStation"},
 | 
			
		||||
            {301, nullptr, "CloseStation"},
 | 
			
		||||
            {302, nullptr, "Connect"},
 | 
			
		||||
            {303, nullptr, "ConnectPrivate"},
 | 
			
		||||
            {304, nullptr, "Disconnect"},
 | 
			
		||||
            {400, nullptr, "Initialize"},
 | 
			
		||||
            {401, nullptr, "Finalize"},
 | 
			
		||||
            {402, nullptr, "SetOperationMode"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -108,7 +154,7 @@ public:
 | 
			
		||||
 | 
			
		||||
        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
        rb.Push(RESULT_SUCCESS);
 | 
			
		||||
        rb.PushIpcInterface<ILocalCommunicationService>("ISystemLocalCommunicationService");
 | 
			
		||||
        rb.PushIpcInterface<ISystemLocalCommunicationService>();
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -129,7 +175,7 @@ public:
 | 
			
		||||
 | 
			
		||||
        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
        rb.Push(RESULT_SUCCESS);
 | 
			
		||||
        rb.PushIpcInterface<ILocalCommunicationService>("IUserLocalCommunicationService");
 | 
			
		||||
        rb.PushIpcInterface<IUserLocalCommunicationService>();
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -86,6 +86,7 @@ public:
 | 
			
		||||
            {2, &RelocatableObject::LoadNrr, "LoadNrr"},
 | 
			
		||||
            {3, &RelocatableObject::UnloadNrr, "UnloadNrr"},
 | 
			
		||||
            {4, &RelocatableObject::Initialize, "Initialize"},
 | 
			
		||||
            {10, nullptr, "LoadNrrEx"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,12 +15,16 @@ namespace Service::NIFM {
 | 
			
		||||
class IScanRequest final : public ServiceFramework<IScanRequest> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit IScanRequest() : ServiceFramework("IScanRequest") {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "Submit"},
 | 
			
		||||
            {1, nullptr, "IsProcessing"},
 | 
			
		||||
            {2, nullptr, "GetResult"},
 | 
			
		||||
            {3, nullptr, "GetSystemEventReadableHandle"},
 | 
			
		||||
            {4, nullptr, "SetChannels"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@ public:
 | 
			
		||||
            {114, nullptr, "AttachJid"},
 | 
			
		||||
            {115, nullptr, "DetachJid"},
 | 
			
		||||
            {201, nullptr, "RequestChangeStateForceTimed"},
 | 
			
		||||
            {102, nullptr, "RequestChangeStateForceAsync"},
 | 
			
		||||
            {202, nullptr, "RequestChangeStateForceAsync"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -73,6 +73,7 @@ public:
 | 
			
		||||
            {103, nullptr, "GetState"},
 | 
			
		||||
            {104, nullptr, "GetStatistics"},
 | 
			
		||||
            {111, nullptr, "GetJid"},
 | 
			
		||||
            {120, nullptr, "CreateNotificationReceiver"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,10 +12,10 @@ namespace Service::PCTL {
 | 
			
		||||
class IParentalControlService final : public ServiceFramework<IParentalControlService> {
 | 
			
		||||
public:
 | 
			
		||||
    IParentalControlService() : ServiceFramework("IParentalControlService") {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {1, &IParentalControlService::Initialize, "Initialize"},
 | 
			
		||||
            {1001, &IParentalControlService::CheckFreeCommunicationPermission,
 | 
			
		||||
             "CheckFreeCommunicationPermission"},
 | 
			
		||||
            {1001, &IParentalControlService::CheckFreeCommunicationPermission, "CheckFreeCommunicationPermission"},
 | 
			
		||||
            {1002, nullptr, "ConfirmLaunchApplicationPermission"},
 | 
			
		||||
            {1003, nullptr, "ConfirmResumeApplicationPermission"},
 | 
			
		||||
            {1004, nullptr, "ConfirmSnsPostPermission"},
 | 
			
		||||
@@ -30,6 +30,7 @@ public:
 | 
			
		||||
            {1013, nullptr, "ConfirmStereoVisionPermission"},
 | 
			
		||||
            {1014, nullptr, "ConfirmPlayableApplicationVideoOld"},
 | 
			
		||||
            {1015, nullptr, "ConfirmPlayableApplicationVideo"},
 | 
			
		||||
            {1016, nullptr, "ConfirmShowNewsPermission"},
 | 
			
		||||
            {1031, nullptr, "IsRestrictionEnabled"},
 | 
			
		||||
            {1032, nullptr, "GetSafetyLevel"},
 | 
			
		||||
            {1033, nullptr, "SetSafetyLevel"},
 | 
			
		||||
@@ -45,6 +46,7 @@ public:
 | 
			
		||||
            {1045, nullptr, "UpdateFreeCommunicationApplicationList"},
 | 
			
		||||
            {1046, nullptr, "DisableFeaturesForReset"},
 | 
			
		||||
            {1047, nullptr, "NotifyApplicationDownloadStarted"},
 | 
			
		||||
            {1048, nullptr, "NotifyNetworkProfileCreated"},
 | 
			
		||||
            {1061, nullptr, "ConfirmStereoVisionRestrictionConfigurable"},
 | 
			
		||||
            {1062, nullptr, "GetStereoVisionRestriction"},
 | 
			
		||||
            {1063, nullptr, "SetStereoVisionRestriction"},
 | 
			
		||||
@@ -63,6 +65,7 @@ public:
 | 
			
		||||
            {1411, nullptr, "GetPairingAccountInfo"},
 | 
			
		||||
            {1421, nullptr, "GetAccountNickname"},
 | 
			
		||||
            {1424, nullptr, "GetAccountState"},
 | 
			
		||||
            {1425, nullptr, "RequestPostEvents"},
 | 
			
		||||
            {1432, nullptr, "GetSynchronizationEvent"},
 | 
			
		||||
            {1451, nullptr, "StartPlayTimer"},
 | 
			
		||||
            {1452, nullptr, "StopPlayTimer"},
 | 
			
		||||
 
 | 
			
		||||
@@ -42,15 +42,18 @@ private:
 | 
			
		||||
class DebugMonitor final : public ServiceFramework<DebugMonitor> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit DebugMonitor() : ServiceFramework{"pm:dmnt"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "IsDebugMode"},
 | 
			
		||||
            {1, nullptr, "GetDebugProcesses"},
 | 
			
		||||
            {2, nullptr, "StartDebugProcess"},
 | 
			
		||||
            {3, nullptr, "GetTitlePid"},
 | 
			
		||||
            {4, nullptr, "EnableDebugForTitleId"},
 | 
			
		||||
            {5, nullptr, "GetApplicationPid"},
 | 
			
		||||
            {6, nullptr, "EnableDebugForApplication"},
 | 
			
		||||
            {0, nullptr, "GetDebugProcesses"},
 | 
			
		||||
            {1, nullptr, "StartDebugProcess"},
 | 
			
		||||
            {2, nullptr, "GetTitlePid"},
 | 
			
		||||
            {3, nullptr, "EnableDebugForTitleId"},
 | 
			
		||||
            {4, nullptr, "GetApplicationPid"},
 | 
			
		||||
            {5, nullptr, "EnableDebugForApplication"},
 | 
			
		||||
            {6, nullptr, "DisableDebug"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
@@ -68,6 +71,7 @@ public:
 | 
			
		||||
class Shell final : public ServiceFramework<Shell> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit Shell() : ServiceFramework{"pm:shell"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "LaunchProcess"},
 | 
			
		||||
            {1, nullptr, "TerminateProcessByPid"},
 | 
			
		||||
@@ -77,7 +81,10 @@ public:
 | 
			
		||||
            {5, nullptr, "NotifyBootFinished"},
 | 
			
		||||
            {6, nullptr, "GetApplicationPid"},
 | 
			
		||||
            {7, nullptr, "BoostSystemMemoryResourceLimit"},
 | 
			
		||||
            {8, nullptr, "EnableAdditionalSystemThreads"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -116,6 +116,7 @@ void SET::GetLanguageCode(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
SET::SET() : ServiceFramework("set") {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, &SET::GetLanguageCode, "GetLanguageCode"},
 | 
			
		||||
        {1, &SET::GetAvailableLanguageCodes, "GetAvailableLanguageCodes"},
 | 
			
		||||
@@ -126,7 +127,10 @@ SET::SET() : ServiceFramework("set") {
 | 
			
		||||
        {6, &SET::GetAvailableLanguageCodeCount2, "GetAvailableLanguageCodeCount2"},
 | 
			
		||||
        {7, nullptr, "GetKeyCodeMap"},
 | 
			
		||||
        {8, nullptr, "GetQuestFlag"},
 | 
			
		||||
        {9, nullptr, "GetKeyCodeMap2"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,7 @@ SET_CAL::SET_CAL() : ServiceFramework("set:cal") {
 | 
			
		||||
        {30, nullptr, "GetAmiiboEcqvBlsCertificate"},
 | 
			
		||||
        {31, nullptr, "GetAmiiboEcqvBlsRootCertificate"},
 | 
			
		||||
        {32, nullptr, "GetUsbTypeCPowerSourceCircuitVersion"},
 | 
			
		||||
        {33, nullptr, "GetBatteryVersion"},
 | 
			
		||||
        {41, nullptr, "GetBatteryVersion"},
 | 
			
		||||
    };
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -104,6 +104,7 @@ void SET_SYS::SetColorSetId(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
SET_SYS::SET_SYS() : ServiceFramework("set:sys") {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "SetLanguageCode"},
 | 
			
		||||
        {1, nullptr, "SetNetworkSettings"},
 | 
			
		||||
@@ -252,7 +253,33 @@ SET_SYS::SET_SYS() : ServiceFramework("set:sys") {
 | 
			
		||||
        {147, nullptr, "GetConsoleSixAxisSensorAngularAcceleration"},
 | 
			
		||||
        {148, nullptr, "SetConsoleSixAxisSensorAngularAcceleration"},
 | 
			
		||||
        {149, nullptr, "GetRebootlessSystemUpdateVersion"},
 | 
			
		||||
        {150, nullptr, "GetDeviceTimeZoneLocationUpdatedTime"},
 | 
			
		||||
        {151, nullptr, "SetDeviceTimeZoneLocationUpdatedTime"},
 | 
			
		||||
        {152, nullptr, "GetUserSystemClockAutomaticCorrectionUpdatedTime"},
 | 
			
		||||
        {153, nullptr, "SetUserSystemClockAutomaticCorrectionUpdatedTime"},
 | 
			
		||||
        {154, nullptr, "GetAccountOnlineStorageSettings"},
 | 
			
		||||
        {155, nullptr, "SetAccountOnlineStorageSettings"},
 | 
			
		||||
        {156, nullptr, "GetPctlReadyFlag"},
 | 
			
		||||
        {157, nullptr, "SetPctlReadyFlag"},
 | 
			
		||||
        {162, nullptr, "GetPtmBatteryVersion"},
 | 
			
		||||
        {163, nullptr, "SetPtmBatteryVersion"},
 | 
			
		||||
        {164, nullptr, "GetUsb30HostEnableFlag"},
 | 
			
		||||
        {165, nullptr, "SetUsb30HostEnableFlag"},
 | 
			
		||||
        {166, nullptr, "GetUsb30DeviceEnableFlag"},
 | 
			
		||||
        {167, nullptr, "SetUsb30DeviceEnableFlag"},
 | 
			
		||||
        {168, nullptr, "GetThemeId"},
 | 
			
		||||
        {169, nullptr, "SetThemeId"},
 | 
			
		||||
        {170, nullptr, "GetChineseTraditionalInputMethod"},
 | 
			
		||||
        {171, nullptr, "SetChineseTraditionalInputMethod"},
 | 
			
		||||
        {172, nullptr, "GetPtmCycleCountReliability"},
 | 
			
		||||
        {173, nullptr, "SetPtmCycleCountReliability"},
 | 
			
		||||
        {175, nullptr, "GetThemeSettings"},
 | 
			
		||||
        {176, nullptr, "SetThemeSettings"},
 | 
			
		||||
        {177, nullptr, "GetThemeKey"},
 | 
			
		||||
        {178, nullptr, "SetThemeKey"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -73,6 +73,7 @@ void BSD::Close(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
BSD::BSD(const char* name) : ServiceFramework(name) {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, &BSD::RegisterClient, "RegisterClient"},
 | 
			
		||||
        {1, &BSD::StartMonitoring, "StartMonitoring"},
 | 
			
		||||
@@ -105,7 +106,11 @@ BSD::BSD(const char* name) : ServiceFramework(name) {
 | 
			
		||||
        {28, nullptr, "GetResourceStatistics"},
 | 
			
		||||
        {29, nullptr, "RecvMMsg"},
 | 
			
		||||
        {30, nullptr, "SendMMsg"},
 | 
			
		||||
        {31, nullptr, "EventFd"},
 | 
			
		||||
        {32, nullptr, "RegisterResourceStatisticsName"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -103,6 +103,8 @@ public:
 | 
			
		||||
            {4, nullptr, "DebugIoctl"},
 | 
			
		||||
            {5, &SSL::SetInterfaceVersion, "SetInterfaceVersion"},
 | 
			
		||||
            {6, nullptr, "FlushSessionCache"},
 | 
			
		||||
            {7, nullptr, "SetDebugOption"},
 | 
			
		||||
            {8, nullptr, "GetDebugOption"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@ namespace Service::Time {
 | 
			
		||||
 | 
			
		||||
Time::Time(std::shared_ptr<Module> time, const char* name)
 | 
			
		||||
    : Module::Interface(std::move(time), name) {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, &Time::GetStandardUserSystemClock, "GetStandardUserSystemClock"},
 | 
			
		||||
        {1, &Time::GetStandardNetworkSystemClock, "GetStandardNetworkSystemClock"},
 | 
			
		||||
@@ -15,18 +16,23 @@ Time::Time(std::shared_ptr<Module> time, const char* name)
 | 
			
		||||
        {3, &Time::GetTimeZoneService, "GetTimeZoneService"},
 | 
			
		||||
        {4, &Time::GetStandardLocalSystemClock, "GetStandardLocalSystemClock"},
 | 
			
		||||
        {5, nullptr, "GetEphemeralNetworkSystemClock"},
 | 
			
		||||
        {20, nullptr, "GetSharedMemoryNativeHandle"},
 | 
			
		||||
        {30, nullptr, "GetStandardNetworkClockOperationEventReadableHandle"},
 | 
			
		||||
        {31, nullptr, "GetEphemeralNetworkClockOperationEventReadableHandle"},
 | 
			
		||||
        {50, nullptr, "SetStandardSteadyClockInternalOffset"},
 | 
			
		||||
        {100, nullptr, "IsStandardUserSystemClockAutomaticCorrectionEnabled"},
 | 
			
		||||
        {101, nullptr, "SetStandardUserSystemClockAutomaticCorrectionEnabled"},
 | 
			
		||||
        {102, nullptr, "GetStandardUserSystemClockInitialYear"},
 | 
			
		||||
        {200, nullptr, "IsStandardNetworkSystemClockAccuracySufficient"},
 | 
			
		||||
        {201, nullptr, "GetStandardUserSystemClockAutomaticCorrectionUpdatedTime"},
 | 
			
		||||
        {300, nullptr, "CalculateMonotonicSystemClockBaseTimePoint"},
 | 
			
		||||
        {400, &Time::GetClockSnapshot, "GetClockSnapshot"},
 | 
			
		||||
        {401, nullptr, "GetClockSnapshotFromSystemClockContext"},
 | 
			
		||||
        {500, &Time::CalculateStandardUserSystemClockDifferenceByUser,
 | 
			
		||||
         "CalculateStandardUserSystemClockDifferenceByUser"},
 | 
			
		||||
        {500, &Time::CalculateStandardUserSystemClockDifferenceByUser, "CalculateStandardUserSystemClockDifferenceByUser"},
 | 
			
		||||
        {501, nullptr, "CalculateSpanBetween"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user