Merge pull request #2072 from lioncash/service
service: Update function tables
This commit is contained in:
		@@ -249,7 +249,8 @@ AppletAE::AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger,
 | 
			
		||||
        {300, nullptr, "OpenOverlayAppletProxy"},
 | 
			
		||||
        {350, nullptr, "OpenSystemApplicationProxy"},
 | 
			
		||||
        {400, nullptr, "CreateSelfLibraryAppletCreatorForDevelop"},
 | 
			
		||||
        {401, nullptr, "GetSystemAppletControllerForDebug"},
 | 
			
		||||
        {410, nullptr, "GetSystemAppletControllerForDebug"},
 | 
			
		||||
        {1000, nullptr, "GetDebugFunctions"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ namespace Service::Audio {
 | 
			
		||||
class IAudioIn final : public ServiceFramework<IAudioIn> {
 | 
			
		||||
public:
 | 
			
		||||
    IAudioIn() : ServiceFramework("IAudioIn") {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "GetAudioInState"},
 | 
			
		||||
            {1, nullptr, "StartAudioIn"},
 | 
			
		||||
@@ -28,16 +29,24 @@ public:
 | 
			
		||||
            {12, nullptr, "SetAudioInDeviceGain"},
 | 
			
		||||
            {13, nullptr, "GetAudioInDeviceGain"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
    ~IAudioIn() = default;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
AudInU::AudInU() : ServiceFramework("audin:u") {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "ListAudioIns"},    {1, nullptr, "OpenAudioIn"},      {2, nullptr, "Unknown"},
 | 
			
		||||
        {3, nullptr, "OpenAudioInAuto"}, {4, nullptr, "ListAudioInsAuto"},
 | 
			
		||||
        {0, nullptr, "ListAudioIns"},
 | 
			
		||||
        {1, nullptr, "OpenAudioIn"},
 | 
			
		||||
        {2, nullptr, "Unknown"},
 | 
			
		||||
        {3, nullptr, "OpenAudioInAuto"},
 | 
			
		||||
        {4, nullptr, "ListAudioInsAuto"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ namespace Service::Audio {
 | 
			
		||||
class IFinalOutputRecorder final : public ServiceFramework<IFinalOutputRecorder> {
 | 
			
		||||
public:
 | 
			
		||||
    IFinalOutputRecorder() : ServiceFramework("IFinalOutputRecorder") {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "GetFinalOutputRecorderState"},
 | 
			
		||||
            {1, nullptr, "StartFinalOutputRecorder"},
 | 
			
		||||
@@ -20,10 +21,13 @@ public:
 | 
			
		||||
            {4, nullptr, "RegisterBufferEvent"},
 | 
			
		||||
            {5, nullptr, "GetReleasedFinalOutputRecorderBuffer"},
 | 
			
		||||
            {6, nullptr, "ContainsFinalOutputRecorderBuffer"},
 | 
			
		||||
            {7, nullptr, "Unknown"},
 | 
			
		||||
            {7, nullptr, "GetFinalOutputRecorderBufferEndTime"},
 | 
			
		||||
            {8, nullptr, "AppendFinalOutputRecorderBufferAuto"},
 | 
			
		||||
            {9, nullptr, "GetReleasedFinalOutputRecorderBufferAuto"},
 | 
			
		||||
            {10, nullptr, "FlushFinalOutputRecorderBuffers"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
    ~IFinalOutputRecorder() = default;
 | 
			
		||||
 
 | 
			
		||||
@@ -229,14 +229,16 @@ private:
 | 
			
		||||
}; // namespace Audio
 | 
			
		||||
 | 
			
		||||
AudRenU::AudRenU() : ServiceFramework("audren:u") {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, &AudRenU::OpenAudioRenderer, "OpenAudioRenderer"},
 | 
			
		||||
        {1, &AudRenU::GetAudioRendererWorkBufferSize, "GetAudioRendererWorkBufferSize"},
 | 
			
		||||
        {2, &AudRenU::GetAudioDevice, "GetAudioDevice"},
 | 
			
		||||
        {2, &AudRenU::GetAudioDeviceService, "GetAudioDeviceService"},
 | 
			
		||||
        {3, nullptr, "OpenAudioRendererAuto"},
 | 
			
		||||
        {4, &AudRenU::GetAudioDeviceServiceWithRevisionInfo,
 | 
			
		||||
         "GetAudioDeviceServiceWithRevisionInfo"},
 | 
			
		||||
        {4, &AudRenU::GetAudioDeviceServiceWithRevisionInfo, "GetAudioDeviceServiceWithRevisionInfo"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -313,7 +315,7 @@ void AudRenU::GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    LOG_DEBUG(Service_Audio, "buffer_size=0x{:X}", output_sz);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AudRenU::GetAudioDevice(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
void AudRenU::GetAudioDeviceService(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    LOG_DEBUG(Service_Audio, "called");
 | 
			
		||||
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,7 @@ public:
 | 
			
		||||
private:
 | 
			
		||||
    void OpenAudioRenderer(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void GetAudioDevice(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void GetAudioDeviceService(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx);
 | 
			
		||||
 | 
			
		||||
    enum class AudioFeatures : u32 {
 | 
			
		||||
 
 | 
			
		||||
@@ -19,16 +19,16 @@ public:
 | 
			
		||||
    explicit Bt() : ServiceFramework{"bt"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "Unknown0"},
 | 
			
		||||
            {1, nullptr, "Unknown1"},
 | 
			
		||||
            {2, nullptr, "Unknown2"},
 | 
			
		||||
            {3, nullptr, "Unknown3"},
 | 
			
		||||
            {4, nullptr, "Unknown4"},
 | 
			
		||||
            {5, nullptr, "Unknown5"},
 | 
			
		||||
            {6, nullptr, "Unknown6"},
 | 
			
		||||
            {7, nullptr, "Unknown7"},
 | 
			
		||||
            {8, nullptr, "Unknown8"},
 | 
			
		||||
            {9, &Bt::RegisterEvent, "RegisterEvent"},
 | 
			
		||||
            {0, nullptr, "LeClientReadCharacteristic"},
 | 
			
		||||
            {1, nullptr, "LeClientReadDescriptor"},
 | 
			
		||||
            {2, nullptr, "LeClientWriteCharacteristic"},
 | 
			
		||||
            {3, nullptr, "LeClientWriteDescriptor"},
 | 
			
		||||
            {4, nullptr, "LeClientRegisterNotification"},
 | 
			
		||||
            {5, nullptr, "LeClientDeregisterNotification"},
 | 
			
		||||
            {6, nullptr, "SetLeResponse"},
 | 
			
		||||
            {7, nullptr, "LeSendIndication"},
 | 
			
		||||
            {8, nullptr, "GetLeEventInfo"},
 | 
			
		||||
            {9, &Bt::RegisterBleEvent, "RegisterBleEvent"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
@@ -39,7 +39,7 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void RegisterEvent(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    void RegisterBleEvent(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
        LOG_WARNING(Service_BTM, "(STUBBED) called");
 | 
			
		||||
 | 
			
		||||
        IPC::ResponseBuilder rb{ctx, 2, 1};
 | 
			
		||||
@@ -55,11 +55,11 @@ public:
 | 
			
		||||
    explicit BtDrv() : ServiceFramework{"btdrv"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "Unknown"},
 | 
			
		||||
            {1, nullptr, "Init"},
 | 
			
		||||
            {2, nullptr, "Enable"},
 | 
			
		||||
            {3, nullptr, "Disable"},
 | 
			
		||||
            {4, nullptr, "CleanupAndShutdown"},
 | 
			
		||||
            {0, nullptr, "InitializeBluetoothDriver"},
 | 
			
		||||
            {1, nullptr, "InitializeBluetooth"},
 | 
			
		||||
            {2, nullptr, "EnableBluetooth"},
 | 
			
		||||
            {3, nullptr, "DisableBluetooth"},
 | 
			
		||||
            {4, nullptr, "CleanupBluetooth"},
 | 
			
		||||
            {5, nullptr, "GetAdapterProperties"},
 | 
			
		||||
            {6, nullptr, "GetAdapterProperty"},
 | 
			
		||||
            {7, nullptr, "SetAdapterProperty"},
 | 
			
		||||
@@ -70,36 +70,91 @@ public:
 | 
			
		||||
            {12, nullptr, "CancelBond"},
 | 
			
		||||
            {13, nullptr, "PinReply"},
 | 
			
		||||
            {14, nullptr, "SspReply"},
 | 
			
		||||
            {15, nullptr, "Unknown2"},
 | 
			
		||||
            {16, nullptr, "InitInterfaces"},
 | 
			
		||||
            {17, nullptr, "HidHostInterface_Connect"},
 | 
			
		||||
            {18, nullptr, "HidHostInterface_Disconnect"},
 | 
			
		||||
            {19, nullptr, "HidHostInterface_SendData"},
 | 
			
		||||
            {20, nullptr, "HidHostInterface_SendData2"},
 | 
			
		||||
            {21, nullptr, "HidHostInterface_SetReport"},
 | 
			
		||||
            {22, nullptr, "HidHostInterface_GetReport"},
 | 
			
		||||
            {23, nullptr, "HidHostInterface_WakeController"},
 | 
			
		||||
            {24, nullptr, "HidHostInterface_AddPairedDevice"},
 | 
			
		||||
            {25, nullptr, "HidHostInterface_GetPairedDevice"},
 | 
			
		||||
            {26, nullptr, "HidHostInterface_CleanupAndShutdown"},
 | 
			
		||||
            {27, nullptr, "Unknown3"},
 | 
			
		||||
            {28, nullptr, "ExtInterface_SetTSI"},
 | 
			
		||||
            {29, nullptr, "ExtInterface_SetBurstMode"},
 | 
			
		||||
            {30, nullptr, "ExtInterface_SetZeroRetran"},
 | 
			
		||||
            {31, nullptr, "ExtInterface_SetMcMode"},
 | 
			
		||||
            {32, nullptr, "ExtInterface_StartLlrMode"},
 | 
			
		||||
            {33, nullptr, "ExtInterface_ExitLlrMode"},
 | 
			
		||||
            {34, nullptr, "ExtInterface_SetRadio"},
 | 
			
		||||
            {35, nullptr, "ExtInterface_SetVisibility"},
 | 
			
		||||
            {36, nullptr, "Unknown4"},
 | 
			
		||||
            {37, nullptr, "Unknown5"},
 | 
			
		||||
            {38, nullptr, "HidHostInterface_GetLatestPlr"},
 | 
			
		||||
            {39, nullptr, "ExtInterface_GetPendingConnections"},
 | 
			
		||||
            {40, nullptr, "HidHostInterface_GetChannelMap"},
 | 
			
		||||
            {41, nullptr, "SetIsBluetoothBoostEnabled"},
 | 
			
		||||
            {42, nullptr, "GetIsBluetoothBoostEnabled"},
 | 
			
		||||
            {43, nullptr, "SetIsBluetoothAfhEnabled"},
 | 
			
		||||
            {44, nullptr, "GetIsBluetoothAfhEnabled"},
 | 
			
		||||
            {15, nullptr, "GetEventInfo"},
 | 
			
		||||
            {16, nullptr, "InitializeHid"},
 | 
			
		||||
            {17, nullptr, "HidConnect"},
 | 
			
		||||
            {18, nullptr, "HidDisconnect"},
 | 
			
		||||
            {19, nullptr, "HidSendData"},
 | 
			
		||||
            {20, nullptr, "HidSendData2"},
 | 
			
		||||
            {21, nullptr, "HidSetReport"},
 | 
			
		||||
            {22, nullptr, "HidGetReport"},
 | 
			
		||||
            {23, nullptr, "HidWakeController"},
 | 
			
		||||
            {24, nullptr, "HidAddPairedDevice"},
 | 
			
		||||
            {25, nullptr, "HidGetPairedDevice"},
 | 
			
		||||
            {26, nullptr, "CleanupHid"},
 | 
			
		||||
            {27, nullptr, "HidGetEventInfo"},
 | 
			
		||||
            {28, nullptr, "ExtSetTsi"},
 | 
			
		||||
            {29, nullptr, "ExtSetBurstMode"},
 | 
			
		||||
            {30, nullptr, "ExtSetZeroRetran"},
 | 
			
		||||
            {31, nullptr, "ExtSetMcMode"},
 | 
			
		||||
            {32, nullptr, "ExtStartLlrMode"},
 | 
			
		||||
            {33, nullptr, "ExtExitLlrMode"},
 | 
			
		||||
            {34, nullptr, "ExtSetRadio"},
 | 
			
		||||
            {35, nullptr, "ExtSetVisibility"},
 | 
			
		||||
            {36, nullptr, "ExtSetTbfcScan"},
 | 
			
		||||
            {37, nullptr, "RegisterHidReportEvent"},
 | 
			
		||||
            {38, nullptr, "HidGetReportEventInfo"},
 | 
			
		||||
            {39, nullptr, "GetLatestPlr"},
 | 
			
		||||
            {40, nullptr, "ExtGetPendingConnections"},
 | 
			
		||||
            {41, nullptr, "GetChannelMap"},
 | 
			
		||||
            {42, nullptr, "EnableBluetoothBoostSetting"},
 | 
			
		||||
            {43, nullptr, "IsBluetoothBoostSettingEnabled"},
 | 
			
		||||
            {44, nullptr, "EnableBluetoothAfhSetting"},
 | 
			
		||||
            {45, nullptr, "IsBluetoothAfhSettingEnabled"},
 | 
			
		||||
            {46, nullptr, "InitializeBluetoothLe"},
 | 
			
		||||
            {47, nullptr, "EnableBluetoothLe"},
 | 
			
		||||
            {48, nullptr, "DisableBluetoothLe"},
 | 
			
		||||
            {49, nullptr, "CleanupBluetoothLe"},
 | 
			
		||||
            {50, nullptr, "SetLeVisibility"},
 | 
			
		||||
            {51, nullptr, "SetLeConnectionParameter"},
 | 
			
		||||
            {52, nullptr, "SetLeDefaultConnectionParameter"},
 | 
			
		||||
            {53, nullptr, "SetLeAdvertiseData"},
 | 
			
		||||
            {54, nullptr, "SetLeAdvertiseParameter"},
 | 
			
		||||
            {55, nullptr, "StartLeScan"},
 | 
			
		||||
            {56, nullptr, "StopLeScan"},
 | 
			
		||||
            {57, nullptr, "AddLeScanFilterCondition"},
 | 
			
		||||
            {58, nullptr, "DeleteLeScanFilterCondition"},
 | 
			
		||||
            {59, nullptr, "DeleteLeScanFilter"},
 | 
			
		||||
            {60, nullptr, "ClearLeScanFilters"},
 | 
			
		||||
            {61, nullptr, "EnableLeScanFilter"},
 | 
			
		||||
            {62, nullptr, "RegisterLeClient"},
 | 
			
		||||
            {63, nullptr, "UnregisterLeClient"},
 | 
			
		||||
            {64, nullptr, "UnregisterLeClientAll"},
 | 
			
		||||
            {65, nullptr, "LeClientConnect"},
 | 
			
		||||
            {66, nullptr, "LeClientCancelConnection"},
 | 
			
		||||
            {67, nullptr, "LeClientDisconnect"},
 | 
			
		||||
            {68, nullptr, "LeClientGetAttributes"},
 | 
			
		||||
            {69, nullptr, "LeClientDiscoverService"},
 | 
			
		||||
            {70, nullptr, "LeClientConfigureMtu"},
 | 
			
		||||
            {71, nullptr, "RegisterLeServer"},
 | 
			
		||||
            {72, nullptr, "UnregisterLeServer"},
 | 
			
		||||
            {73, nullptr, "LeServerConnect"},
 | 
			
		||||
            {74, nullptr, "LeServerDisconnect"},
 | 
			
		||||
            {75, nullptr, "CreateLeService"},
 | 
			
		||||
            {76, nullptr, "StartLeService"},
 | 
			
		||||
            {77, nullptr, "AddLeCharacteristic"},
 | 
			
		||||
            {78, nullptr, "AddLeDescriptor"},
 | 
			
		||||
            {79, nullptr, "GetLeCoreEventInfo"},
 | 
			
		||||
            {80, nullptr, "LeGetFirstCharacteristic"},
 | 
			
		||||
            {81, nullptr, "LeGetNextCharacteristic"},
 | 
			
		||||
            {82, nullptr, "LeGetFirstDescriptor"},
 | 
			
		||||
            {83, nullptr, "LeGetNextDescriptor"},
 | 
			
		||||
            {84, nullptr, "RegisterLeCoreDataPath"},
 | 
			
		||||
            {85, nullptr, "UnregisterLeCoreDataPath"},
 | 
			
		||||
            {86, nullptr, "RegisterLeHidDataPath"},
 | 
			
		||||
            {87, nullptr, "UnregisterLeHidDataPath"},
 | 
			
		||||
            {88, nullptr, "RegisterLeDataPath"},
 | 
			
		||||
            {89, nullptr, "UnregisterLeDataPath"},
 | 
			
		||||
            {90, nullptr, "LeClientReadCharacteristic"},
 | 
			
		||||
            {91, nullptr, "LeClientReadDescriptor"},
 | 
			
		||||
            {92, nullptr, "LeClientWriteCharacteristic"},
 | 
			
		||||
            {93, nullptr, "LeClientWriteDescriptor"},
 | 
			
		||||
            {94, nullptr, "LeClientRegisterNotification"},
 | 
			
		||||
            {95, nullptr, "LeClientDeregisterNotification"},
 | 
			
		||||
            {96, nullptr, "GetLeHidEventInfo"},
 | 
			
		||||
            {97, nullptr, "RegisterBleHidEvent"},
 | 
			
		||||
            {98, nullptr, "SetLeScanParameter"},
 | 
			
		||||
            {256, nullptr, "GetIsManufacturingMode"}
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,38 +20,38 @@ public:
 | 
			
		||||
    explicit IBtmUserCore() : ServiceFramework{"IBtmUserCore"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, &IBtmUserCore::GetScanEvent, "GetScanEvent"},
 | 
			
		||||
            {1, nullptr, "Unknown1"},
 | 
			
		||||
            {2, nullptr, "Unknown2"},
 | 
			
		||||
            {3, nullptr, "Unknown3"},
 | 
			
		||||
            {4, nullptr, "Unknown4"},
 | 
			
		||||
            {5, nullptr, "Unknown5"},
 | 
			
		||||
            {6, nullptr, "Unknown6"},
 | 
			
		||||
            {7, nullptr, "Unknown7"},
 | 
			
		||||
            {8, nullptr, "Unknown8"},
 | 
			
		||||
            {9, nullptr, "Unknown9"},
 | 
			
		||||
            {10, nullptr, "Unknown10"},
 | 
			
		||||
            {17, &IBtmUserCore::GetConnectionEvent, "GetConnectionEvent"},
 | 
			
		||||
            {18, nullptr, "Unknown18"},
 | 
			
		||||
            {19, nullptr, "Unknown19"},
 | 
			
		||||
            {20, nullptr, "Unknown20"},
 | 
			
		||||
            {21, nullptr, "Unknown21"},
 | 
			
		||||
            {22, nullptr, "Unknown22"},
 | 
			
		||||
            {23, nullptr, "Unknown23"},
 | 
			
		||||
            {24, nullptr, "Unknown24"},
 | 
			
		||||
            {25, nullptr, "Unknown25"},
 | 
			
		||||
            {26, &IBtmUserCore::GetDiscoveryEvent, "AcquireBleServiceDiscoveryEventImpl"},
 | 
			
		||||
            {27, nullptr, "Unknown27"},
 | 
			
		||||
            {28, nullptr, "Unknown28"},
 | 
			
		||||
            {29, nullptr, "Unknown29"},
 | 
			
		||||
            {30, nullptr, "Unknown30"},
 | 
			
		||||
            {31, nullptr, "Unknown31"},
 | 
			
		||||
            {32, nullptr, "Unknown32"},
 | 
			
		||||
            {33, &IBtmUserCore::GetConfigEvent, "GetConfigEvent"},
 | 
			
		||||
            {34, nullptr, "Unknown34"},
 | 
			
		||||
            {35, nullptr, "Unknown35"},
 | 
			
		||||
            {36, nullptr, "Unknown36"},
 | 
			
		||||
            {37, nullptr, "Unknown37"},
 | 
			
		||||
            {0, &IBtmUserCore::AcquireBleScanEvent, "AcquireBleScanEvent"},
 | 
			
		||||
            {1, nullptr, "GetBleScanFilterParameter"},
 | 
			
		||||
            {2, nullptr, "GetBleScanFilterParameter2"},
 | 
			
		||||
            {3, nullptr, "StartBleScanForGeneral"},
 | 
			
		||||
            {4, nullptr, "StopBleScanForGeneral"},
 | 
			
		||||
            {5, nullptr, "GetBleScanResultsForGeneral"},
 | 
			
		||||
            {6, nullptr, "StartBleScanForPaired"},
 | 
			
		||||
            {7, nullptr, "StopBleScanForPaired"},
 | 
			
		||||
            {8, nullptr, "StartBleScanForSmartDevice"},
 | 
			
		||||
            {9, nullptr, "StopBleScanForSmartDevice"},
 | 
			
		||||
            {10, nullptr, "GetBleScanResultsForSmartDevice"},
 | 
			
		||||
            {17, &IBtmUserCore::AcquireBleConnectionEvent, "AcquireBleConnectionEvent"},
 | 
			
		||||
            {18, nullptr, "BleConnect"},
 | 
			
		||||
            {19, nullptr, "BleDisconnect"},
 | 
			
		||||
            {20, nullptr, "BleGetConnectionState"},
 | 
			
		||||
            {21, nullptr, "AcquireBlePairingEvent"},
 | 
			
		||||
            {22, nullptr, "BlePairDevice"},
 | 
			
		||||
            {23, nullptr, "BleUnPairDevice"},
 | 
			
		||||
            {24, nullptr, "BleUnPairDevice2"},
 | 
			
		||||
            {25, nullptr, "BleGetPairedDevices"},
 | 
			
		||||
            {26, &IBtmUserCore::AcquireBleServiceDiscoveryEvent, "AcquireBleServiceDiscoveryEvent"},
 | 
			
		||||
            {27, nullptr, "GetGattServices"},
 | 
			
		||||
            {28, nullptr, "GetGattService"},
 | 
			
		||||
            {29, nullptr, "GetGattIncludedServices"},
 | 
			
		||||
            {30, nullptr, "GetBelongingGattService"},
 | 
			
		||||
            {31, nullptr, "GetGattCharacteristics"},
 | 
			
		||||
            {32, nullptr, "GetGattDescriptors"},
 | 
			
		||||
            {33, &IBtmUserCore::AcquireBleMtuConfigEvent, "AcquireBleMtuConfigEvent"},
 | 
			
		||||
            {34, nullptr, "ConfigureBleMtu"},
 | 
			
		||||
            {35, nullptr, "GetBleMtu"},
 | 
			
		||||
            {36, nullptr, "RegisterBleGattDataPath"},
 | 
			
		||||
            {37, nullptr, "UnregisterBleGattDataPath"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
@@ -68,7 +68,7 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void GetScanEvent(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    void AcquireBleScanEvent(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
        LOG_WARNING(Service_BTM, "(STUBBED) called");
 | 
			
		||||
 | 
			
		||||
        IPC::ResponseBuilder rb{ctx, 2, 1};
 | 
			
		||||
@@ -76,7 +76,7 @@ private:
 | 
			
		||||
        rb.PushCopyObjects(scan_event.readable);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void GetConnectionEvent(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    void AcquireBleConnectionEvent(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
        LOG_WARNING(Service_BTM, "(STUBBED) called");
 | 
			
		||||
 | 
			
		||||
        IPC::ResponseBuilder rb{ctx, 2, 1};
 | 
			
		||||
@@ -84,7 +84,7 @@ private:
 | 
			
		||||
        rb.PushCopyObjects(connection_event.readable);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void GetDiscoveryEvent(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    void AcquireBleServiceDiscoveryEvent(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
        LOG_WARNING(Service_BTM, "(STUBBED) called");
 | 
			
		||||
 | 
			
		||||
        IPC::ResponseBuilder rb{ctx, 2, 1};
 | 
			
		||||
@@ -92,7 +92,7 @@ private:
 | 
			
		||||
        rb.PushCopyObjects(service_discovery.readable);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void GetConfigEvent(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    void AcquireBleMtuConfigEvent(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
        LOG_WARNING(Service_BTM, "(STUBBED) called");
 | 
			
		||||
 | 
			
		||||
        IPC::ResponseBuilder rb{ctx, 2, 1};
 | 
			
		||||
@@ -111,14 +111,14 @@ public:
 | 
			
		||||
    explicit BTM_USR() : ServiceFramework{"btm:u"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, &BTM_USR::GetCoreImpl, "GetCoreImpl"},
 | 
			
		||||
            {0, &BTM_USR::GetCore, "GetCore"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void GetCoreImpl(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    void GetCore(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
        LOG_DEBUG(Service_BTM, "called");
 | 
			
		||||
 | 
			
		||||
        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
@@ -134,26 +134,64 @@ public:
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "Unknown1"},
 | 
			
		||||
            {1, nullptr, "Unknown2"},
 | 
			
		||||
            {2, nullptr, "RegisterSystemEventForConnectedDeviceConditionImpl"},
 | 
			
		||||
            {2, nullptr, "RegisterSystemEventForConnectedDeviceCondition"},
 | 
			
		||||
            {3, nullptr, "Unknown3"},
 | 
			
		||||
            {4, nullptr, "Unknown4"},
 | 
			
		||||
            {5, nullptr, "Unknown5"},
 | 
			
		||||
            {6, nullptr, "Unknown6"},
 | 
			
		||||
            {7, nullptr, "Unknown7"},
 | 
			
		||||
            {8, nullptr, "RegisterSystemEventForRegisteredDeviceInfoImpl"},
 | 
			
		||||
            {8, nullptr, "RegisterSystemEventForRegisteredDeviceInfo"},
 | 
			
		||||
            {9, nullptr, "Unknown8"},
 | 
			
		||||
            {10, nullptr, "Unknown9"},
 | 
			
		||||
            {11, nullptr, "Unknown10"},
 | 
			
		||||
            {12, nullptr, "Unknown11"},
 | 
			
		||||
            {13, nullptr, "Unknown12"},
 | 
			
		||||
            {14, nullptr, "EnableRadioImpl"},
 | 
			
		||||
            {15, nullptr, "DisableRadioImpl"},
 | 
			
		||||
            {14, nullptr, "EnableRadio"},
 | 
			
		||||
            {15, nullptr, "DisableRadio"},
 | 
			
		||||
            {16, nullptr, "Unknown13"},
 | 
			
		||||
            {17, nullptr, "Unknown14"},
 | 
			
		||||
            {18, nullptr, "Unknown15"},
 | 
			
		||||
            {19, nullptr, "Unknown16"},
 | 
			
		||||
            {20, nullptr, "Unknown17"},
 | 
			
		||||
            {21, nullptr, "Unknown18"},
 | 
			
		||||
            {22, nullptr, "Unknown19"},
 | 
			
		||||
            {23, nullptr, "Unknown20"},
 | 
			
		||||
            {24, nullptr, "Unknown21"},
 | 
			
		||||
            {25, nullptr, "Unknown22"},
 | 
			
		||||
            {26, nullptr, "Unknown23"},
 | 
			
		||||
            {27, nullptr, "Unknown24"},
 | 
			
		||||
            {28, nullptr, "Unknown25"},
 | 
			
		||||
            {29, nullptr, "Unknown26"},
 | 
			
		||||
            {30, nullptr, "Unknown27"},
 | 
			
		||||
            {31, nullptr, "Unknown28"},
 | 
			
		||||
            {32, nullptr, "Unknown29"},
 | 
			
		||||
            {33, nullptr, "Unknown30"},
 | 
			
		||||
            {34, nullptr, "Unknown31"},
 | 
			
		||||
            {35, nullptr, "Unknown32"},
 | 
			
		||||
            {36, nullptr, "Unknown33"},
 | 
			
		||||
            {37, nullptr, "Unknown34"},
 | 
			
		||||
            {38, nullptr, "Unknown35"},
 | 
			
		||||
            {39, nullptr, "Unknown36"},
 | 
			
		||||
            {40, nullptr, "Unknown37"},
 | 
			
		||||
            {41, nullptr, "Unknown38"},
 | 
			
		||||
            {42, nullptr, "Unknown39"},
 | 
			
		||||
            {43, nullptr, "Unknown40"},
 | 
			
		||||
            {44, nullptr, "Unknown41"},
 | 
			
		||||
            {45, nullptr, "Unknown42"},
 | 
			
		||||
            {46, nullptr, "Unknown43"},
 | 
			
		||||
            {47, nullptr, "Unknown44"},
 | 
			
		||||
            {48, nullptr, "Unknown45"},
 | 
			
		||||
            {49, nullptr, "Unknown46"},
 | 
			
		||||
            {50, nullptr, "Unknown47"},
 | 
			
		||||
            {51, nullptr, "Unknown48"},
 | 
			
		||||
            {52, nullptr, "Unknown49"},
 | 
			
		||||
            {53, nullptr, "Unknown50"},
 | 
			
		||||
            {54, nullptr, "Unknown51"},
 | 
			
		||||
            {55, nullptr, "Unknown52"},
 | 
			
		||||
            {56, nullptr, "Unknown53"},
 | 
			
		||||
            {57, nullptr, "Unknown54"},
 | 
			
		||||
            {58, nullptr, "Unknown55"},
 | 
			
		||||
            {59, nullptr, "Unknown56"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -166,7 +204,7 @@ public:
 | 
			
		||||
    explicit BTM_DBG() : ServiceFramework{"btm:dbg"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "RegisterSystemEventForDiscoveryImpl"},
 | 
			
		||||
            {0, nullptr, "RegisterSystemEventForDiscovery"},
 | 
			
		||||
            {1, nullptr, "Unknown1"},
 | 
			
		||||
            {2, nullptr, "Unknown2"},
 | 
			
		||||
            {3, nullptr, "Unknown3"},
 | 
			
		||||
@@ -175,6 +213,10 @@ public:
 | 
			
		||||
            {6, nullptr, "Unknown6"},
 | 
			
		||||
            {7, nullptr, "Unknown7"},
 | 
			
		||||
            {8, nullptr, "Unknown8"},
 | 
			
		||||
            {9, nullptr, "Unknown9"},
 | 
			
		||||
            {10, nullptr, "Unknown10"},
 | 
			
		||||
            {11, nullptr, "Unknown11"},
 | 
			
		||||
            {12, nullptr, "Unknown11"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -187,16 +229,16 @@ public:
 | 
			
		||||
    explicit IBtmSystemCore() : ServiceFramework{"IBtmSystemCore"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "StartGamepadPairingImpl"},
 | 
			
		||||
            {1, nullptr, "CancelGamepadPairingImpl"},
 | 
			
		||||
            {2, nullptr, "ClearGamepadPairingDatabaseImpl"},
 | 
			
		||||
            {3, nullptr, "GetPairedGamepadCountImpl"},
 | 
			
		||||
            {4, nullptr, "EnableRadioImpl"},
 | 
			
		||||
            {5, nullptr, "DisableRadioImpl"},
 | 
			
		||||
            {6, nullptr, "GetRadioOnOffImpl"},
 | 
			
		||||
            {7, nullptr, "AcquireRadioEventImpl"},
 | 
			
		||||
            {8, nullptr, "AcquireGamepadPairingEventImpl"},
 | 
			
		||||
            {9, nullptr, "IsGamepadPairingStartedImpl"},
 | 
			
		||||
            {0, nullptr, "StartGamepadPairing"},
 | 
			
		||||
            {1, nullptr, "CancelGamepadPairing"},
 | 
			
		||||
            {2, nullptr, "ClearGamepadPairingDatabase"},
 | 
			
		||||
            {3, nullptr, "GetPairedGamepadCount"},
 | 
			
		||||
            {4, nullptr, "EnableRadio"},
 | 
			
		||||
            {5, nullptr, "DisableRadio"},
 | 
			
		||||
            {6, nullptr, "GetRadioOnOff"},
 | 
			
		||||
            {7, nullptr, "AcquireRadioEvent"},
 | 
			
		||||
            {8, nullptr, "AcquireGamepadPairingEvent"},
 | 
			
		||||
            {9, nullptr, "IsGamepadPairingStarted"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -209,7 +251,7 @@ public:
 | 
			
		||||
    explicit BTM_SYS() : ServiceFramework{"btm:sys"} {
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, &BTM_SYS::GetCoreImpl, "GetCoreImpl"},
 | 
			
		||||
            {0, &BTM_SYS::GetCore, "GetCore"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -217,7 +259,7 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void GetCoreImpl(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    void GetCore(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
        LOG_DEBUG(Service_BTM, "called");
 | 
			
		||||
 | 
			
		||||
        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
 
 | 
			
		||||
@@ -627,8 +627,8 @@ private:
 | 
			
		||||
FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "MountContent"},
 | 
			
		||||
        {1, &FSP_SRV::Initialize, "Initialize"},
 | 
			
		||||
        {0, nullptr, "OpenFileSystem"},
 | 
			
		||||
        {1, &FSP_SRV::SetCurrentProcess, "SetCurrentProcess"},
 | 
			
		||||
        {2, nullptr, "OpenDataFileSystemByCurrentProcess"},
 | 
			
		||||
        {7, &FSP_SRV::OpenFileSystemWithPatch, "OpenFileSystemWithPatch"},
 | 
			
		||||
        {8, nullptr, "OpenFileSystemWithId"},
 | 
			
		||||
@@ -637,10 +637,10 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
 | 
			
		||||
        {12, nullptr, "OpenBisStorage"},
 | 
			
		||||
        {13, nullptr, "InvalidateBisCache"},
 | 
			
		||||
        {17, nullptr, "OpenHostFileSystem"},
 | 
			
		||||
        {18, &FSP_SRV::MountSdCard, "MountSdCard"},
 | 
			
		||||
        {18, &FSP_SRV::OpenSdCardFileSystem, "OpenSdCardFileSystem"},
 | 
			
		||||
        {19, nullptr, "FormatSdCardFileSystem"},
 | 
			
		||||
        {21, nullptr, "DeleteSaveDataFileSystem"},
 | 
			
		||||
        {22, &FSP_SRV::CreateSaveData, "CreateSaveData"},
 | 
			
		||||
        {22, &FSP_SRV::CreateSaveDataFileSystem, "CreateSaveDataFileSystem"},
 | 
			
		||||
        {23, nullptr, "CreateSaveDataFileSystemBySystemSaveDataId"},
 | 
			
		||||
        {24, nullptr, "RegisterSaveDataFileSystemAtomicDeletion"},
 | 
			
		||||
        {25, nullptr, "DeleteSaveDataFileSystemBySaveDataSpaceId"},
 | 
			
		||||
@@ -652,7 +652,8 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
 | 
			
		||||
        {32, nullptr, "ExtendSaveDataFileSystem"},
 | 
			
		||||
        {33, nullptr, "DeleteCacheStorage"},
 | 
			
		||||
        {34, nullptr, "GetCacheStorageSize"},
 | 
			
		||||
        {51, &FSP_SRV::MountSaveData, "MountSaveData"},
 | 
			
		||||
        {35, nullptr, "CreateSaveDataFileSystemByHashSalt"},
 | 
			
		||||
        {51, &FSP_SRV::OpenSaveDataFileSystem, "OpenSaveDataFileSystem"},
 | 
			
		||||
        {52, nullptr, "OpenSaveDataFileSystemBySystemSaveDataId"},
 | 
			
		||||
        {53, &FSP_SRV::OpenReadOnlySaveDataFileSystem, "OpenReadOnlySaveDataFileSystem"},
 | 
			
		||||
        {57, nullptr, "ReadSaveDataFileSystemExtraDataBySaveDataSpaceId"},
 | 
			
		||||
@@ -664,21 +665,26 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
 | 
			
		||||
        {64, nullptr, "OpenSaveDataInternalStorageFileSystem"},
 | 
			
		||||
        {65, nullptr, "UpdateSaveDataMacForDebug"},
 | 
			
		||||
        {66, nullptr, "WriteSaveDataFileSystemExtraData2"},
 | 
			
		||||
        {67, nullptr, "FindSaveDataWithFilter"},
 | 
			
		||||
        {68, nullptr, "OpenSaveDataInfoReaderBySaveDataFilter"},
 | 
			
		||||
        {80, nullptr, "OpenSaveDataMetaFile"},
 | 
			
		||||
        {81, nullptr, "OpenSaveDataTransferManager"},
 | 
			
		||||
        {82, nullptr, "OpenSaveDataTransferManagerVersion2"},
 | 
			
		||||
        {83, nullptr, "OpenSaveDataTransferProhibiterForCloudBackUp"},
 | 
			
		||||
        {84, nullptr, "ListApplicationAccessibleSaveDataOwnerId"},
 | 
			
		||||
        {100, nullptr, "OpenImageDirectoryFileSystem"},
 | 
			
		||||
        {110, nullptr, "OpenContentStorageFileSystem"},
 | 
			
		||||
        {120, nullptr, "OpenCloudBackupWorkStorageFileSystem"},
 | 
			
		||||
        {200, &FSP_SRV::OpenDataStorageByCurrentProcess, "OpenDataStorageByCurrentProcess"},
 | 
			
		||||
        {201, nullptr, "OpenDataStorageByProgramId"},
 | 
			
		||||
        {202, &FSP_SRV::OpenDataStorageByDataId, "OpenDataStorageByDataId"},
 | 
			
		||||
        {203, &FSP_SRV::OpenRomStorage, "OpenRomStorage"},
 | 
			
		||||
        {203, &FSP_SRV::OpenPatchDataStorageByCurrentProcess, "OpenPatchDataStorageByCurrentProcess"},
 | 
			
		||||
        {400, nullptr, "OpenDeviceOperator"},
 | 
			
		||||
        {500, nullptr, "OpenSdCardDetectionEventNotifier"},
 | 
			
		||||
        {501, nullptr, "OpenGameCardDetectionEventNotifier"},
 | 
			
		||||
        {510, nullptr, "OpenSystemDataUpdateEventNotifier"},
 | 
			
		||||
        {511, nullptr, "NotifySystemDataUpdateEvent"},
 | 
			
		||||
        {520, nullptr, "SimulateGameCardDetectionEvent"},
 | 
			
		||||
        {600, nullptr, "SetCurrentPosixTime"},
 | 
			
		||||
        {601, nullptr, "QuerySaveDataTotalSize"},
 | 
			
		||||
        {602, nullptr, "VerifySaveDataFileSystem"},
 | 
			
		||||
@@ -717,6 +723,8 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
 | 
			
		||||
        {1008, nullptr, "OpenRegisteredUpdatePartition"},
 | 
			
		||||
        {1009, nullptr, "GetAndClearMemoryReportInfo"},
 | 
			
		||||
        {1100, nullptr, "OverrideSaveDataTransferTokenSignVerificationKey"},
 | 
			
		||||
        {1110, nullptr, "CorruptSaveDataFileSystemBySaveDataSpaceId2"},
 | 
			
		||||
        {1200, nullptr, "OpenMultiCommitManager"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
@@ -724,7 +732,7 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
 | 
			
		||||
 | 
			
		||||
FSP_SRV::~FSP_SRV() = default;
 | 
			
		||||
 | 
			
		||||
void FSP_SRV::Initialize(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
void FSP_SRV::SetCurrentProcess(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    LOG_WARNING(Service_FS, "(STUBBED) called");
 | 
			
		||||
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2};
 | 
			
		||||
@@ -743,7 +751,7 @@ void FSP_SRV::OpenFileSystemWithPatch(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    rb.Push(ResultCode(-1));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void FSP_SRV::MountSdCard(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
void FSP_SRV::OpenSdCardFileSystem(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    LOG_DEBUG(Service_FS, "called");
 | 
			
		||||
 | 
			
		||||
    IFileSystem filesystem(OpenSDMC().Unwrap());
 | 
			
		||||
@@ -753,7 +761,7 @@ void FSP_SRV::MountSdCard(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    rb.PushIpcInterface<IFileSystem>(std::move(filesystem));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void FSP_SRV::CreateSaveData(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
void FSP_SRV::CreateSaveDataFileSystem(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::RequestParser rp{ctx};
 | 
			
		||||
 | 
			
		||||
    auto save_struct = rp.PopRaw<FileSys::SaveDataDescriptor>();
 | 
			
		||||
@@ -767,7 +775,7 @@ void FSP_SRV::CreateSaveData(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void FSP_SRV::MountSaveData(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
void FSP_SRV::OpenSaveDataFileSystem(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::RequestParser rp{ctx};
 | 
			
		||||
 | 
			
		||||
    auto space_id = rp.PopRaw<FileSys::SaveDataSpaceId>();
 | 
			
		||||
@@ -793,7 +801,7 @@ void FSP_SRV::MountSaveData(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
 | 
			
		||||
void FSP_SRV::OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    LOG_WARNING(Service_FS, "(STUBBED) called, delegating to 51 OpenSaveDataFilesystem");
 | 
			
		||||
    MountSaveData(ctx);
 | 
			
		||||
    OpenSaveDataFileSystem(ctx);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void FSP_SRV::OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
@@ -881,7 +889,7 @@ void FSP_SRV::OpenDataStorageByDataId(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    rb.PushIpcInterface<IStorage>(std::move(storage));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void FSP_SRV::OpenRomStorage(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
void FSP_SRV::OpenPatchDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::RequestParser rp{ctx};
 | 
			
		||||
 | 
			
		||||
    auto storage_id = rp.PopRaw<FileSys::StorageId>();
 | 
			
		||||
 
 | 
			
		||||
@@ -19,17 +19,17 @@ public:
 | 
			
		||||
    ~FSP_SRV() override;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void Initialize(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void SetCurrentProcess(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void OpenFileSystemWithPatch(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void MountSdCard(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void CreateSaveData(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void MountSaveData(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void OpenSdCardFileSystem(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void CreateSaveDataFileSystem(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void OpenSaveDataFileSystem(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void OpenDataStorageByDataId(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void OpenRomStorage(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void OpenPatchDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx);
 | 
			
		||||
 | 
			
		||||
    FileSys::VirtualFile romfs;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -40,10 +40,10 @@ public:
 | 
			
		||||
            {6, nullptr, "CloseContentStorageForcibly"},
 | 
			
		||||
            {7, nullptr, "CloseContentMetaDatabaseForcibly"},
 | 
			
		||||
            {8, nullptr, "CleanupContentMetaDatabase"},
 | 
			
		||||
            {9, nullptr, "OpenContentStorage2"},
 | 
			
		||||
            {10, nullptr, "CloseContentStorage"},
 | 
			
		||||
            {11, nullptr, "OpenContentMetaDatabase2"},
 | 
			
		||||
            {12, nullptr, "CloseContentMetaDatabase"},
 | 
			
		||||
            {9, nullptr, "ActivateContentStorage"},
 | 
			
		||||
            {10, nullptr, "InactivateContentStorage"},
 | 
			
		||||
            {11, nullptr, "ActivateContentMetaDatabase"},
 | 
			
		||||
            {12, nullptr, "InactivateContentMetaDatabase"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,7 @@ public:
 | 
			
		||||
            {11, nullptr, "CalculateApplicationOccupiedSize"},
 | 
			
		||||
            {16, nullptr, "PushApplicationRecord"},
 | 
			
		||||
            {17, nullptr, "ListApplicationRecordContentMeta"},
 | 
			
		||||
            {19, nullptr, "LaunchApplication"},
 | 
			
		||||
            {19, nullptr, "LaunchApplicationOld"},
 | 
			
		||||
            {21, nullptr, "GetApplicationContentPath"},
 | 
			
		||||
            {22, nullptr, "TerminateApplication"},
 | 
			
		||||
            {23, nullptr, "ResolveApplicationContentPath"},
 | 
			
		||||
@@ -96,10 +96,10 @@ public:
 | 
			
		||||
            {86, nullptr, "EnableApplicationCrashReport"},
 | 
			
		||||
            {87, nullptr, "IsApplicationCrashReportEnabled"},
 | 
			
		||||
            {90, nullptr, "BoostSystemMemoryResourceLimit"},
 | 
			
		||||
            {91, nullptr, "Unknown1"},
 | 
			
		||||
            {92, nullptr, "Unknown2"},
 | 
			
		||||
            {91, nullptr, "DeprecatedLaunchApplication"},
 | 
			
		||||
            {92, nullptr, "GetRunningApplicationProgramId"},
 | 
			
		||||
            {93, nullptr, "GetMainApplicationProgramIndex"},
 | 
			
		||||
            {94, nullptr, "LaunchApplication2"},
 | 
			
		||||
            {94, nullptr, "LaunchApplication"},
 | 
			
		||||
            {95, nullptr, "GetApplicationLaunchInfo"},
 | 
			
		||||
            {96, nullptr, "AcquireApplicationLaunchInfo"},
 | 
			
		||||
            {97, nullptr, "GetMainApplicationProgramIndex2"},
 | 
			
		||||
@@ -163,7 +163,7 @@ public:
 | 
			
		||||
            {907, nullptr, "WithdrawApplicationUpdateRequest"},
 | 
			
		||||
            {908, nullptr, "ListApplicationRecordInstalledContentMeta"},
 | 
			
		||||
            {909, nullptr, "WithdrawCleanupAddOnContentsWithNoRightsRecommendation"},
 | 
			
		||||
            {910, nullptr, "Unknown3"},
 | 
			
		||||
            {910, nullptr, "HasApplicationRecord"},
 | 
			
		||||
            {911, nullptr, "SetPreInstalledApplication"},
 | 
			
		||||
            {912, nullptr, "ClearPreInstalledApplicationFlag"},
 | 
			
		||||
            {1000, nullptr, "RequestVerifyApplicationDeprecated"},
 | 
			
		||||
@@ -219,10 +219,10 @@ public:
 | 
			
		||||
            {2015, nullptr, "CompareSystemDeliveryInfo"},
 | 
			
		||||
            {2016, nullptr, "ListNotCommittedContentMeta"},
 | 
			
		||||
            {2017, nullptr, "CreateDownloadTask"},
 | 
			
		||||
            {2018, nullptr, "Unknown4"},
 | 
			
		||||
            {2050, nullptr, "Unknown5"},
 | 
			
		||||
            {2100, nullptr, "Unknown6"},
 | 
			
		||||
            {2101, nullptr, "Unknown7"},
 | 
			
		||||
            {2018, nullptr, "GetApplicationDeliveryInfoHash"},
 | 
			
		||||
            {2050, nullptr, "GetApplicationRightsOnClient"},
 | 
			
		||||
            {2100, nullptr, "GetApplicationTerminateResult"},
 | 
			
		||||
            {2101, nullptr, "GetRawApplicationTerminateResult"},
 | 
			
		||||
            {2150, nullptr, "CreateRightsEnvironment"},
 | 
			
		||||
            {2151, nullptr, "DestroyRightsEnvironment"},
 | 
			
		||||
            {2152, nullptr, "ActivateRightsEnvironment"},
 | 
			
		||||
@@ -237,10 +237,10 @@ public:
 | 
			
		||||
            {2182, nullptr, "SetActiveRightsContextUsingStateToRightsEnvironment"},
 | 
			
		||||
            {2190, nullptr, "GetRightsEnvironmentHandleForApplication"},
 | 
			
		||||
            {2199, nullptr, "GetRightsEnvironmentCountForDebug"},
 | 
			
		||||
            {2200, nullptr, "Unknown8"},
 | 
			
		||||
            {2201, nullptr, "Unknown9"},
 | 
			
		||||
            {2250, nullptr, "Unknown10"},
 | 
			
		||||
            {2300, nullptr, "Unknown11"},
 | 
			
		||||
            {2200, nullptr, "GetGameCardApplicationCopyIdentifier"},
 | 
			
		||||
            {2201, nullptr, "GetInstalledApplicationCopyIdentifier"},
 | 
			
		||||
            {2250, nullptr, "RequestReportActiveELicence"},
 | 
			
		||||
            {2300, nullptr, "ListEventLog"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -355,6 +355,7 @@ public:
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {21, nullptr, "GetApplicationContentPath"},
 | 
			
		||||
            {23, nullptr, "ResolveApplicationContentPath"},
 | 
			
		||||
            {93, nullptr, "GetRunningApplicationProgramId"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -389,6 +390,11 @@ public:
 | 
			
		||||
        // clang-format off
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, nullptr, "RequestLinkDevice"},
 | 
			
		||||
            {1, nullptr, "RequestCleanupAllPreInstalledApplications"},
 | 
			
		||||
            {2, nullptr, "RequestCleanupPreInstalledApplication"},
 | 
			
		||||
            {3, nullptr, "RequestSyncRights"},
 | 
			
		||||
            {4, nullptr, "RequestUnlinkDevice"},
 | 
			
		||||
            {5, nullptr, "RequestRevokeAllELicense"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -403,7 +409,7 @@ public:
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {100, nullptr, "ResetToFactorySettings"},
 | 
			
		||||
            {101, nullptr, "ResetToFactorySettingsWithoutUserSaveData"},
 | 
			
		||||
            {102, nullptr, "ResetToFactorySettingsForRefurbishment "},
 | 
			
		||||
            {102, nullptr, "ResetToFactorySettingsForRefurbishment"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -17,13 +17,13 @@ public:
 | 
			
		||||
    explicit PSC_C() : ServiceFramework{"psc:c"} {
 | 
			
		||||
        // 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"},
 | 
			
		||||
            {0, nullptr, "Initialize"},
 | 
			
		||||
            {1, nullptr, "DispatchRequest"},
 | 
			
		||||
            {2, nullptr, "GetResult"},
 | 
			
		||||
            {3, nullptr, "GetState"},
 | 
			
		||||
            {4, nullptr, "Cancel"},
 | 
			
		||||
            {5, nullptr, "PrintModuleInformation"},
 | 
			
		||||
            {6, nullptr, "GetModuleInformation"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
@@ -39,7 +39,8 @@ public:
 | 
			
		||||
            {0, nullptr, "Initialize"},
 | 
			
		||||
            {1, nullptr, "GetRequest"},
 | 
			
		||||
            {2, nullptr, "Acknowledge"},
 | 
			
		||||
            {3, nullptr, "Unknown1"},
 | 
			
		||||
            {3, nullptr, "Finalize"},
 | 
			
		||||
            {4, nullptr, "AcknowledgeEx"},
 | 
			
		||||
        };
 | 
			
		||||
        // clang-format on
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user