2026-09-26 06:34:09

Signed-off-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
lizzie
2026-09-26 06:34:09 +00:00
committed by crueter
parent 5e7ba8fc9c
commit 22b7e1e24c
48 changed files with 2390 additions and 2230 deletions
+3 -2
View File
@@ -51,8 +51,7 @@ public:
// Define here your functions and methods, please order them.
// Use FindRequestTipc for TIPC handlers.
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetSessionId"},
FunctionInfo{12, nullptr, "GetAccountId"},
FunctionInfo{13, nullptr, "GetLinkedNintendoAccountId"},
@@ -67,6 +66,8 @@ public:
FunctionInfo{110, nullptr, "SetSystemProgramIdentification"},
FunctionInfo{111, nullptr, "EnsureIdTokenCacheAsync"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
```
File diff suppressed because it is too large Load Diff
-64
View File
@@ -14,70 +14,6 @@ namespace Service::Account {
class ProfileManager;
class Module final {
public:
class Interface : public ServiceFramework<Interface> {
public:
explicit Interface(std::shared_ptr<Module> module_,
std::shared_ptr<ProfileManager> profile_manager_, Core::System& system_,
const char* name);
~Interface() override;
void GetUserCount(HLERequestContext& ctx);
void GetUserExistence(HLERequestContext& ctx);
void ListAllUsers(HLERequestContext& ctx);
void ListOpenUsers(HLERequestContext& ctx);
void GetLastOpenedUser(HLERequestContext& ctx);
void GetProfile(HLERequestContext& ctx);
void InitializeApplicationInfo(HLERequestContext& ctx);
void InitializeApplicationInfoRestricted(HLERequestContext& ctx);
void GetBaasAccountManagerForApplication(HLERequestContext& ctx);
void IsUserRegistrationRequestPermitted(HLERequestContext& ctx);
void TrySelectUserWithoutInteractionDeprecated(HLERequestContext& ctx);
void TrySelectUserWithoutInteraction(HLERequestContext& ctx);
void IsUserAccountSwitchLocked(HLERequestContext& ctx);
void InitializeApplicationInfoV2(HLERequestContext& ctx);
void BeginUserRegistration(HLERequestContext& ctx);
void CompleteUserRegistration(HLERequestContext& ctx);
void DeleteUser(HLERequestContext& ctx);
void SetUserPosition(HLERequestContext& ctx);
void GetProfileEditor(HLERequestContext& ctx);
void GetBaasAccountAdministrator(HLERequestContext &ctx);
void ListQualifiedUsers(HLERequestContext& ctx);
void ListOpenContextStoredUsers(HLERequestContext& ctx);
void StoreSaveDataThumbnailApplication(HLERequestContext& ctx);
void GetBaasAccountManagerForSystemService(HLERequestContext& ctx);
void StoreSaveDataThumbnailSystem(HLERequestContext& ctx);
void GetPinCodeLength(HLERequestContext& ctx);
private:
Result InitializeApplicationInfoBase();
void StoreSaveDataThumbnail(HLERequestContext& ctx, const Common::UUID& uuid,
const u64 tid);
enum class ApplicationType : u32_le {
GameCard = 0,
Digital = 1,
Unknown = 3,
};
struct ApplicationInfo {
Service::Glue::ApplicationLaunchProperty launch_property;
ApplicationType application_type;
constexpr explicit operator bool() const {
return launch_property.title_id != 0x0;
}
};
ApplicationInfo application_info{};
protected:
std::shared_ptr<Module> module;
std::shared_ptr<ProfileManager> profile_manager;
};
};
void LoopProcess(Core::System& system);
} // namespace Service::Account
+30 -20
View File
@@ -23,8 +23,7 @@ public:
explicit IAudioOutManagerForApplet(Core::System& system_)
: ServiceFramework{system_, "audout:a"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RequestSuspend"},
FunctionInfo{1, nullptr, "RequestResume"},
FunctionInfo{2, nullptr, "GetProcessMasterVolume"},
@@ -32,6 +31,8 @@ public:
FunctionInfo{4, nullptr, "GetProcessRecordVolume"},
FunctionInfo{5, nullptr, "SetProcessRecordVolume"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -40,14 +41,15 @@ public:
explicit IAudioSnoopManager(Core::System& system_)
: ServiceFramework{system_, "auddev"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetDspStatistics"},
FunctionInfo{1, nullptr, "GetAppletStateSummaries"},
FunctionInfo{2, nullptr, "SetDspStatisticsParameter"},
FunctionInfo{3, nullptr, "GetDspStatisticsParameter"},
FunctionInfo{6, nullptr, "GetDspUsage"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -56,13 +58,14 @@ public:
explicit IAudioInManagerForApplet(Core::System& system_)
: ServiceFramework{system_, "audin:a"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RequestSuspend"},
FunctionInfo{1, nullptr, "RequestResume"},
FunctionInfo{2, nullptr, "GetProcessMasterVolume"},
FunctionInfo{3, nullptr, "SetProcessMasterVolume"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -71,8 +74,7 @@ public:
explicit IAudioRendererManagerForApplet(Core::System& system_)
: ServiceFramework{system_, "audren:a"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RequestSuspend"},
FunctionInfo{1, nullptr, "RequestResume"},
FunctionInfo{2, nullptr, "GetProcessMasterVolume"},
@@ -82,6 +84,8 @@ public:
FunctionInfo{6, nullptr, "GetProcessRecordVolume"},
FunctionInfo{7, nullptr, "SetProcessRecordVolume"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -90,11 +94,12 @@ public:
explicit IAudioOutManagerForDebugger(Core::System& system_)
: ServiceFramework{system_, "audout:d"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RequestSuspend"},
FunctionInfo{1, nullptr, "RequestResume"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -103,11 +108,12 @@ public:
explicit IAudioInManagerForDebugger(Core::System& system_)
: ServiceFramework{system_, "audin:d"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RequestSuspend"},
FunctionInfo{1, nullptr, "RequestResume"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -116,11 +122,12 @@ public:
explicit IFinalOutputRecorderManagerForDebugger(Core::System& system_)
: ServiceFramework{system_, "audrec:d"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RequestSuspend"},
FunctionInfo{1, nullptr, "RequestResume"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -129,11 +136,12 @@ public:
explicit IAudioRendererManagerForDebugger(Core::System& system_)
: ServiceFramework{system_, "audren:d"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RequestSuspend"},
FunctionInfo{1, nullptr, "RequestResume"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -142,8 +150,7 @@ public:
explicit IAudioSystemManagerForApplet(Core::System& system_)
: ServiceFramework{system_, "aud:a"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RegisterAppletResourceUserId"},
FunctionInfo{1, nullptr, "UnregisterAppletResourceUserId"},
FunctionInfo{2, nullptr, "RequestSuspendAudio"},
@@ -156,6 +163,8 @@ public:
FunctionInfo{9, nullptr, "SetAudioOutputProcessRecordVolume"},
FunctionInfo{10, nullptr, "GetAppletStateSummaries"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -164,11 +173,12 @@ public:
explicit IAudioSystemManagerForDebugger(Core::System& system_)
: ServiceFramework{system_, "aud:d"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RequestSuspendAudioForDebug"},
FunctionInfo{1, nullptr, "RequestResumeAudioForDebug"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -13,8 +13,7 @@ public:
explicit IFinalOutputRecorder(Core::System& system_)
: ServiceFramework{system_, "IFinalOutputRecorder"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetFinalOutputRecorderState"},
FunctionInfo{1, nullptr, "Start"},
FunctionInfo{2, nullptr, "Stop"},
@@ -28,6 +27,8 @@ public:
FunctionInfo{10, nullptr, "FlushFinalOutputRecorderBuffers"},
FunctionInfo{11, nullptr, "AttachWorkBuffer"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+18 -12
View File
@@ -16,8 +16,7 @@ class BPC final : public ServiceFramework<BPC> {
public:
explicit BPC(Core::System& system_) : ServiceFramework{system_, "bpc"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "ShutdownSystem"},
FunctionInfo{1, nullptr, "RebootSystem"},
FunctionInfo{2, nullptr, "GetWakeupReason"},
@@ -35,6 +34,8 @@ public:
FunctionInfo{14, nullptr, "GetPowerButton"},
FunctionInfo{15, nullptr, "SetEnableWakeupTimer"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -42,14 +43,15 @@ class BPC_R final : public ServiceFramework<BPC_R> {
public:
explicit BPC_R(Core::System& system_) : ServiceFramework{system_, "bpc:r"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetRtcTime"},
FunctionInfo{1, nullptr, "SetRtcTime"},
FunctionInfo{2, nullptr, "GetRtcResetDetected"},
FunctionInfo{3, nullptr, "ClearRtcResetDetected"},
FunctionInfo{4, nullptr, "SetUpRtcResetOnShutdown"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -57,8 +59,7 @@ class BPC_C final : public ServiceFramework<BPC_C> {
public:
explicit BPC_C(Core::System& system_) : ServiceFramework{system_, "bpc:c"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "ShutdownSystem"},
FunctionInfo{1, nullptr, "RebootSystem"},
FunctionInfo{2, nullptr, "GetWakeupReason"},
@@ -66,6 +67,8 @@ public:
FunctionInfo{4, nullptr, "GetAcOk"},
FunctionInfo{5, nullptr, "GetPowerEvent"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -73,11 +76,12 @@ class BPC_B final : public ServiceFramework<BPC_B> {
public:
explicit BPC_B(Core::System& system_) : ServiceFramework{system_, "bpc:b"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetSleepButtonState"},
FunctionInfo{1, nullptr, "GetPowerButtonEvent"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -85,12 +89,13 @@ class BPC_W final : public ServiceFramework<BPC_W> {
public:
explicit BPC_W(Core::System& system_) : ServiceFramework{system_, "bpc:w"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "CreateWakeupTimer"},
FunctionInfo{1, nullptr, "CancelWakeupTimer"},
FunctionInfo{2, nullptr, "EnableWakeupTimerOnDevice"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -98,11 +103,12 @@ class BPC_AMS final : public ServiceFramework<BPC_AMS> {
public:
explicit BPC_AMS(Core::System& system_) : ServiceFramework{system_, "bpc:ams"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{65000, nullptr, "RebootToFatalError"},
FunctionInfo{65001, nullptr, "SetRebootPayload"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+148 -146
View File
@@ -26,18 +26,7 @@ public:
}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "LeClientReadCharacteristic"},
FunctionInfo{1, nullptr, "LeClientReadDescriptor"},
FunctionInfo{2, nullptr, "LeClientWriteCharacteristic"},
FunctionInfo{3, nullptr, "LeClientWriteDescriptor"},
FunctionInfo{4, nullptr, "LeClientRegisterNotification"},
FunctionInfo{5, nullptr, "LeClientDeregisterNotification"},
FunctionInfo{6, nullptr, "SetLeResponse"},
FunctionInfo{7, nullptr, "LeSendIndication"},
FunctionInfo{8, nullptr, "GetLeEventInfo"},
FunctionInfo{9, C<&IBluetoothUser::RegisterBleEvent>, "RegisterBleEvent"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~IBluetoothUser() override {
@@ -52,8 +41,19 @@ private:
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "LeClientReadCharacteristic"},
FunctionInfo{1, nullptr, "LeClientReadDescriptor"},
FunctionInfo{2, nullptr, "LeClientWriteCharacteristic"},
FunctionInfo{3, nullptr, "LeClientWriteDescriptor"},
FunctionInfo{4, nullptr, "LeClientRegisterNotification"},
FunctionInfo{5, nullptr, "LeClientDeregisterNotification"},
FunctionInfo{6, nullptr, "SetLeResponse"},
FunctionInfo{7, nullptr, "LeSendIndication"},
FunctionInfo{8, nullptr, "GetLeEventInfo"},
FunctionInfo{9, C<&IBluetoothUser::RegisterBleEvent>, "RegisterBleEvent"}
);
KernelHelpers::ServiceContext service_context;
Kernel::KEvent* register_event;
};
@@ -62,139 +62,7 @@ public:
explicit IBluetoothDriver(Core::System& system_) : ServiceFramework{system_, "btdrv"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "InitializeBluetoothDriver"},
FunctionInfo{1, nullptr, "InitializeBluetooth"},
FunctionInfo{2, nullptr, "EnableBluetooth"},
FunctionInfo{3, nullptr, "DisableBluetooth"},
FunctionInfo{4, nullptr, "FinalizeBluetooth"},
FunctionInfo{5, nullptr, "GetAdapterProperties"},
FunctionInfo{6, nullptr, "GetAdapterProperty"},
FunctionInfo{7, nullptr, "SetAdapterProperty"},
FunctionInfo{8, nullptr, "StartInquiry"},
FunctionInfo{9, nullptr, "StopInquiry"},
FunctionInfo{10, nullptr, "CreateBond"},
FunctionInfo{11, nullptr, "RemoveBond"},
FunctionInfo{12, nullptr, "CancelBond"},
FunctionInfo{13, nullptr, "RespondToPinRequest"},
FunctionInfo{14, nullptr, "RespondToSspRequest"},
FunctionInfo{15, nullptr, "GetEventInfo"},
FunctionInfo{16, nullptr, "InitializeHid"},
FunctionInfo{17, nullptr, "OpenHidConnection"},
FunctionInfo{18, nullptr, "CloseHidConnection"},
FunctionInfo{19, nullptr, "WriteHidData"},
FunctionInfo{20, nullptr, "WriteHidData2"},
FunctionInfo{21, nullptr, "SetHidReport"},
FunctionInfo{22, nullptr, "GetHidReport"},
FunctionInfo{23, nullptr, "TriggerConnection"},
FunctionInfo{24, nullptr, "AddPairedDeviceInfo"},
FunctionInfo{25, nullptr, "GetPairedDeviceInfo"},
FunctionInfo{26, nullptr, "FinalizeHid"},
FunctionInfo{27, nullptr, "GetHidEventInfo"},
FunctionInfo{28, nullptr, "SetTsi"},
FunctionInfo{29, nullptr, "EnableBurstMode"},
FunctionInfo{30, nullptr, "SetZeroRetransmission"},
FunctionInfo{31, nullptr, "EnableMcMode"},
FunctionInfo{32, nullptr, "EnableLlrScan"},
FunctionInfo{33, nullptr, "DisableLlrScan"},
FunctionInfo{34, C<&IBluetoothDriver::EnableRadio>, "EnableRadio"},
FunctionInfo{35, nullptr, "SetVisibility"},
FunctionInfo{36, nullptr, "EnableTbfcScan"},
FunctionInfo{37, nullptr, "RegisterHidReportEvent"},
FunctionInfo{38, nullptr, "GetHidReportEventInfo"},
FunctionInfo{39, nullptr, "GetLatestPlr"},
FunctionInfo{40, nullptr, "GetPendingConnections"},
FunctionInfo{41, nullptr, "GetChannelMap"},
FunctionInfo{42, nullptr, "EnableTxPowerBoostSetting"},
FunctionInfo{43, nullptr, "IsTxPowerBoostSettingEnabled"},
FunctionInfo{44, nullptr, "EnableAfhSetting"},
FunctionInfo{45, nullptr, "IsAfhSettingEnabled"},
FunctionInfo{46, nullptr, "InitializeBle"},
FunctionInfo{47, nullptr, "EnableBle"},
FunctionInfo{48, nullptr, "DisableBle"},
FunctionInfo{49, nullptr, "FinalizeBle"},
FunctionInfo{50, nullptr, "SetBleVisibility"},
FunctionInfo{51, nullptr, "SetBleConnectionParameter"},
FunctionInfo{52, nullptr, "SetBleDefaultConnectionParameter"},
FunctionInfo{53, nullptr, "SetBleAdvertiseData"},
FunctionInfo{54, nullptr, "SetBleAdvertiseParameter"},
FunctionInfo{55, nullptr, "StartBleScan"},
FunctionInfo{56, nullptr, "StopBleScan"},
FunctionInfo{57, nullptr, "AddBleScanFilterCondition"},
FunctionInfo{58, nullptr, "DeleteBleScanFilterCondition"},
FunctionInfo{59, nullptr, "DeleteBleScanFilter"},
FunctionInfo{60, nullptr, "ClearBleScanFilters"},
FunctionInfo{61, nullptr, "EnableBleScanFilter"},
FunctionInfo{62, nullptr, "RegisterGattClient"},
FunctionInfo{63, nullptr, "UnregisterGattClient"},
FunctionInfo{64, nullptr, "UnregisterAllGattClients"},
FunctionInfo{65, nullptr, "ConnectGattServer"},
FunctionInfo{66, nullptr, "CancelConnectGattServer"},
FunctionInfo{67, nullptr, "DisconnectGattServer"},
FunctionInfo{68, nullptr, "GetGattAttribute"},
FunctionInfo{69, nullptr, "GetGattService"},
FunctionInfo{70, nullptr, "ConfigureAttMtu"},
FunctionInfo{71, nullptr, "RegisterGattServer"},
FunctionInfo{72, nullptr, "UnregisterGattServer"},
FunctionInfo{73, nullptr, "ConnectGattClient"},
FunctionInfo{74, nullptr, "DisconnectGattClient"},
FunctionInfo{75, nullptr, "AddGattService"},
FunctionInfo{76, nullptr, "EnableGattService"},
FunctionInfo{77, nullptr, "AddGattCharacteristic"},
FunctionInfo{78, nullptr, "AddGattDescriptor"},
FunctionInfo{79, nullptr, "GetBleManagedEventInfo"},
FunctionInfo{80, nullptr, "GetGattFirstCharacteristic"},
FunctionInfo{81, nullptr, "GetGattNextCharacteristic"},
FunctionInfo{82, nullptr, "GetGattFirstDescriptor"},
FunctionInfo{83, nullptr, "GetGattNextDescriptor"},
FunctionInfo{84, nullptr, "RegisterGattManagedDataPath"},
FunctionInfo{85, nullptr, "UnregisterGattManagedDataPath"},
FunctionInfo{86, nullptr, "RegisterGattHidDataPath"},
FunctionInfo{87, nullptr, "UnregisterGattHidDataPath"},
FunctionInfo{88, nullptr, "RegisterGattDataPath"},
FunctionInfo{89, nullptr, "UnregisterGattDataPath"},
FunctionInfo{90, nullptr, "ReadGattCharacteristic"},
FunctionInfo{91, nullptr, "ReadGattDescriptor"},
FunctionInfo{92, nullptr, "WriteGattCharacteristic"},
FunctionInfo{93, nullptr, "WriteGattDescriptor"},
FunctionInfo{94, nullptr, "RegisterGattNotification"},
FunctionInfo{95, nullptr, "UnregisterGattNotification"},
FunctionInfo{96, nullptr, "GetLeHidEventInfo"},
FunctionInfo{97, nullptr, "RegisterBleHidEvent"},
FunctionInfo{98, nullptr, "SetBleScanParameter"},
FunctionInfo{99, nullptr, "MoveToSecondaryPiconet"},
FunctionInfo{100, nullptr, "IsBluetoothEnabled"},
FunctionInfo{128, nullptr, "AcquireAudioEvent"},
FunctionInfo{129, nullptr, "GetAudioEventInfo"},
FunctionInfo{130, nullptr, "OpenAudioConnection"},
FunctionInfo{131, nullptr, "CloseAudioConnection"},
FunctionInfo{132, nullptr, "OpenAudioOut"},
FunctionInfo{133, nullptr, "CloseAudioOut"},
FunctionInfo{134, nullptr, "AcquireAudioOutStateChangedEvent"},
FunctionInfo{135, nullptr, "StartAudioOut"},
FunctionInfo{136, nullptr, "StopAudioOut"},
FunctionInfo{137, nullptr, "GetAudioOutState"},
FunctionInfo{138, nullptr, "GetAudioOutFeedingCodec"},
FunctionInfo{139, nullptr, "GetAudioOutFeedingParameter"},
FunctionInfo{140, nullptr, "AcquireAudioOutBufferAvailableEvent"},
FunctionInfo{141, nullptr, "SendAudioData"},
FunctionInfo{142, nullptr, "AcquireAudioControlInputStateChangedEvent"},
FunctionInfo{143, nullptr, "GetAudioControlInputState"},
FunctionInfo{144, nullptr, "AcquireAudioConnectionStateChangedEvent"},
FunctionInfo{145, nullptr, "GetConnectedAudioDevice"},
FunctionInfo{146, nullptr, "CloseAudioControlInput"},
FunctionInfo{147, nullptr, "RegisterAudioControlNotification"},
FunctionInfo{148, nullptr, "SendAudioControlPassthroughCommand"},
FunctionInfo{149, nullptr, "SendAudioControlSetAbsoluteVolumeCommand"},
FunctionInfo{150, nullptr, "AcquireAudioSinkVolumeLocallyChangedEvent"},
FunctionInfo{151, nullptr, "AcquireAudioSinkVolumeUpdateRequestCompletedEvent"},
FunctionInfo{152, nullptr, "GetAudioSinkVolume"},
FunctionInfo{153, nullptr, "RequestUpdateAudioSinkVolume"},
FunctionInfo{154, nullptr, "IsAudioSinkVolumeSupported"},
FunctionInfo{256, nullptr, "IsManufacturingMode"},
FunctionInfo{257, nullptr, "EmulateBluetoothCrash"},
FunctionInfo{258, nullptr, "GetBleChannelMap"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -202,6 +70,140 @@ private:
LOG_WARNING(Service_BTDRV, "(STUBBED) called");
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "InitializeBluetoothDriver"},
FunctionInfo{1, nullptr, "InitializeBluetooth"},
FunctionInfo{2, nullptr, "EnableBluetooth"},
FunctionInfo{3, nullptr, "DisableBluetooth"},
FunctionInfo{4, nullptr, "FinalizeBluetooth"},
FunctionInfo{5, nullptr, "GetAdapterProperties"},
FunctionInfo{6, nullptr, "GetAdapterProperty"},
FunctionInfo{7, nullptr, "SetAdapterProperty"},
FunctionInfo{8, nullptr, "StartInquiry"},
FunctionInfo{9, nullptr, "StopInquiry"},
FunctionInfo{10, nullptr, "CreateBond"},
FunctionInfo{11, nullptr, "RemoveBond"},
FunctionInfo{12, nullptr, "CancelBond"},
FunctionInfo{13, nullptr, "RespondToPinRequest"},
FunctionInfo{14, nullptr, "RespondToSspRequest"},
FunctionInfo{15, nullptr, "GetEventInfo"},
FunctionInfo{16, nullptr, "InitializeHid"},
FunctionInfo{17, nullptr, "OpenHidConnection"},
FunctionInfo{18, nullptr, "CloseHidConnection"},
FunctionInfo{19, nullptr, "WriteHidData"},
FunctionInfo{20, nullptr, "WriteHidData2"},
FunctionInfo{21, nullptr, "SetHidReport"},
FunctionInfo{22, nullptr, "GetHidReport"},
FunctionInfo{23, nullptr, "TriggerConnection"},
FunctionInfo{24, nullptr, "AddPairedDeviceInfo"},
FunctionInfo{25, nullptr, "GetPairedDeviceInfo"},
FunctionInfo{26, nullptr, "FinalizeHid"},
FunctionInfo{27, nullptr, "GetHidEventInfo"},
FunctionInfo{28, nullptr, "SetTsi"},
FunctionInfo{29, nullptr, "EnableBurstMode"},
FunctionInfo{30, nullptr, "SetZeroRetransmission"},
FunctionInfo{31, nullptr, "EnableMcMode"},
FunctionInfo{32, nullptr, "EnableLlrScan"},
FunctionInfo{33, nullptr, "DisableLlrScan"},
FunctionInfo{34, C<&IBluetoothDriver::EnableRadio>, "EnableRadio"},
FunctionInfo{35, nullptr, "SetVisibility"},
FunctionInfo{36, nullptr, "EnableTbfcScan"},
FunctionInfo{37, nullptr, "RegisterHidReportEvent"},
FunctionInfo{38, nullptr, "GetHidReportEventInfo"},
FunctionInfo{39, nullptr, "GetLatestPlr"},
FunctionInfo{40, nullptr, "GetPendingConnections"},
FunctionInfo{41, nullptr, "GetChannelMap"},
FunctionInfo{42, nullptr, "EnableTxPowerBoostSetting"},
FunctionInfo{43, nullptr, "IsTxPowerBoostSettingEnabled"},
FunctionInfo{44, nullptr, "EnableAfhSetting"},
FunctionInfo{45, nullptr, "IsAfhSettingEnabled"},
FunctionInfo{46, nullptr, "InitializeBle"},
FunctionInfo{47, nullptr, "EnableBle"},
FunctionInfo{48, nullptr, "DisableBle"},
FunctionInfo{49, nullptr, "FinalizeBle"},
FunctionInfo{50, nullptr, "SetBleVisibility"},
FunctionInfo{51, nullptr, "SetBleConnectionParameter"},
FunctionInfo{52, nullptr, "SetBleDefaultConnectionParameter"},
FunctionInfo{53, nullptr, "SetBleAdvertiseData"},
FunctionInfo{54, nullptr, "SetBleAdvertiseParameter"},
FunctionInfo{55, nullptr, "StartBleScan"},
FunctionInfo{56, nullptr, "StopBleScan"},
FunctionInfo{57, nullptr, "AddBleScanFilterCondition"},
FunctionInfo{58, nullptr, "DeleteBleScanFilterCondition"},
FunctionInfo{59, nullptr, "DeleteBleScanFilter"},
FunctionInfo{60, nullptr, "ClearBleScanFilters"},
FunctionInfo{61, nullptr, "EnableBleScanFilter"},
FunctionInfo{62, nullptr, "RegisterGattClient"},
FunctionInfo{63, nullptr, "UnregisterGattClient"},
FunctionInfo{64, nullptr, "UnregisterAllGattClients"},
FunctionInfo{65, nullptr, "ConnectGattServer"},
FunctionInfo{66, nullptr, "CancelConnectGattServer"},
FunctionInfo{67, nullptr, "DisconnectGattServer"},
FunctionInfo{68, nullptr, "GetGattAttribute"},
FunctionInfo{69, nullptr, "GetGattService"},
FunctionInfo{70, nullptr, "ConfigureAttMtu"},
FunctionInfo{71, nullptr, "RegisterGattServer"},
FunctionInfo{72, nullptr, "UnregisterGattServer"},
FunctionInfo{73, nullptr, "ConnectGattClient"},
FunctionInfo{74, nullptr, "DisconnectGattClient"},
FunctionInfo{75, nullptr, "AddGattService"},
FunctionInfo{76, nullptr, "EnableGattService"},
FunctionInfo{77, nullptr, "AddGattCharacteristic"},
FunctionInfo{78, nullptr, "AddGattDescriptor"},
FunctionInfo{79, nullptr, "GetBleManagedEventInfo"},
FunctionInfo{80, nullptr, "GetGattFirstCharacteristic"},
FunctionInfo{81, nullptr, "GetGattNextCharacteristic"},
FunctionInfo{82, nullptr, "GetGattFirstDescriptor"},
FunctionInfo{83, nullptr, "GetGattNextDescriptor"},
FunctionInfo{84, nullptr, "RegisterGattManagedDataPath"},
FunctionInfo{85, nullptr, "UnregisterGattManagedDataPath"},
FunctionInfo{86, nullptr, "RegisterGattHidDataPath"},
FunctionInfo{87, nullptr, "UnregisterGattHidDataPath"},
FunctionInfo{88, nullptr, "RegisterGattDataPath"},
FunctionInfo{89, nullptr, "UnregisterGattDataPath"},
FunctionInfo{90, nullptr, "ReadGattCharacteristic"},
FunctionInfo{91, nullptr, "ReadGattDescriptor"},
FunctionInfo{92, nullptr, "WriteGattCharacteristic"},
FunctionInfo{93, nullptr, "WriteGattDescriptor"},
FunctionInfo{94, nullptr, "RegisterGattNotification"},
FunctionInfo{95, nullptr, "UnregisterGattNotification"},
FunctionInfo{96, nullptr, "GetLeHidEventInfo"},
FunctionInfo{97, nullptr, "RegisterBleHidEvent"},
FunctionInfo{98, nullptr, "SetBleScanParameter"},
FunctionInfo{99, nullptr, "MoveToSecondaryPiconet"},
FunctionInfo{100, nullptr, "IsBluetoothEnabled"},
FunctionInfo{128, nullptr, "AcquireAudioEvent"},
FunctionInfo{129, nullptr, "GetAudioEventInfo"},
FunctionInfo{130, nullptr, "OpenAudioConnection"},
FunctionInfo{131, nullptr, "CloseAudioConnection"},
FunctionInfo{132, nullptr, "OpenAudioOut"},
FunctionInfo{133, nullptr, "CloseAudioOut"},
FunctionInfo{134, nullptr, "AcquireAudioOutStateChangedEvent"},
FunctionInfo{135, nullptr, "StartAudioOut"},
FunctionInfo{136, nullptr, "StopAudioOut"},
FunctionInfo{137, nullptr, "GetAudioOutState"},
FunctionInfo{138, nullptr, "GetAudioOutFeedingCodec"},
FunctionInfo{139, nullptr, "GetAudioOutFeedingParameter"},
FunctionInfo{140, nullptr, "AcquireAudioOutBufferAvailableEvent"},
FunctionInfo{141, nullptr, "SendAudioData"},
FunctionInfo{142, nullptr, "AcquireAudioControlInputStateChangedEvent"},
FunctionInfo{143, nullptr, "GetAudioControlInputState"},
FunctionInfo{144, nullptr, "AcquireAudioConnectionStateChangedEvent"},
FunctionInfo{145, nullptr, "GetConnectedAudioDevice"},
FunctionInfo{146, nullptr, "CloseAudioControlInput"},
FunctionInfo{147, nullptr, "RegisterAudioControlNotification"},
FunctionInfo{148, nullptr, "SendAudioControlPassthroughCommand"},
FunctionInfo{149, nullptr, "SendAudioControlSetAbsoluteVolumeCommand"},
FunctionInfo{150, nullptr, "AcquireAudioSinkVolumeLocallyChangedEvent"},
FunctionInfo{151, nullptr, "AcquireAudioSinkVolumeUpdateRequestCompletedEvent"},
FunctionInfo{152, nullptr, "GetAudioSinkVolume"},
FunctionInfo{153, nullptr, "RequestUpdateAudioSinkVolume"},
FunctionInfo{154, nullptr, "IsAudioSinkVolumeSupported"},
FunctionInfo{256, nullptr, "IsManufacturingMode"},
FunctionInfo{257, nullptr, "EmulateBluetoothCrash"},
FunctionInfo{258, nullptr, "GetBleChannelMap"}
);
};
void LoopProcess(Core::System& system) {
+3 -2
View File
@@ -19,8 +19,7 @@ class IBtm final : public ServiceFramework<IBtm> {
public:
explicit IBtm(Core::System& system_) : ServiceFramework{system_, "btm"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetState"},
FunctionInfo{1, nullptr, "GetHostDeviceProperty"},
FunctionInfo{2, nullptr, "AcquireDeviceConditionEvent"},
@@ -109,6 +108,8 @@ public:
FunctionInfo{116, nullptr, "SetAudioSinkVolume"}, //15.0.0+
FunctionInfo{117, nullptr, "GetAudioSinkVolume"} //15.0.0+
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+3 -2
View File
@@ -22,12 +22,13 @@ class IDecoderControlService final : public ServiceFramework<IDecoderControlServ
public:
explicit IDecoderControlService(Core::System& system_) : ServiceFramework{system_, "grc:d"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{3001, nullptr, "DecodeJpeg"},
FunctionInfo{4001, nullptr, "ShrinkJpeg"},
FunctionInfo{4002, nullptr, "ShrinkJpegEx"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+28 -24
View File
@@ -20,25 +20,7 @@ public:
explicit ErrorReportContext(Core::System& system_) : ServiceFramework{system_, "erpt:c"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, C<&ErrorReportContext::SubmitContext>, "SubmitContext"},
FunctionInfo{1, C<&ErrorReportContext::CreateReportV0>, "CreateReportV0"},
FunctionInfo{2, nullptr, "SetInitialLaunchSettingsCompletionTime"},
FunctionInfo{3, nullptr, "ClearInitialLaunchSettingsCompletionTime"},
FunctionInfo{4, nullptr, "UpdatePowerOnTime"},
FunctionInfo{5, D<&ErrorReportContext::UpdateAwakeTime>, "UpdateAwakeTime"},
FunctionInfo{6, nullptr, "SubmitMultipleCategoryContext"},
FunctionInfo{7, nullptr, "UpdateApplicationLaunchTime"},
FunctionInfo{8, nullptr, "ClearApplicationLaunchTime"},
FunctionInfo{9, nullptr, "SubmitAttachment"},
FunctionInfo{10, nullptr, "CreateReportWithAttachments"},
FunctionInfo{11, C<&ErrorReportContext::CreateReportV1>, "CreateReportV1"},
FunctionInfo{12, C<&ErrorReportContext::CreateReport>, "CreateReport"},
FunctionInfo{20, nullptr, "RegisterRunningApplet"},
FunctionInfo{21, nullptr, "UnregisterRunningApplet"},
FunctionInfo{22, nullptr, "UpdateAppletSuspendedDuration"},
FunctionInfo{30, nullptr, "InvalidateForcedShutdownDetection"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -83,6 +65,26 @@ private:
data_a.size(), data_b.size(), flag_a, flag_b);
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, C<&ErrorReportContext::SubmitContext>, "SubmitContext"},
FunctionInfo{1, C<&ErrorReportContext::CreateReportV0>, "CreateReportV0"},
FunctionInfo{2, nullptr, "SetInitialLaunchSettingsCompletionTime"},
FunctionInfo{3, nullptr, "ClearInitialLaunchSettingsCompletionTime"},
FunctionInfo{4, nullptr, "UpdatePowerOnTime"},
FunctionInfo{5, D<&ErrorReportContext::UpdateAwakeTime>, "UpdateAwakeTime"},
FunctionInfo{6, nullptr, "SubmitMultipleCategoryContext"},
FunctionInfo{7, nullptr, "UpdateApplicationLaunchTime"},
FunctionInfo{8, nullptr, "ClearApplicationLaunchTime"},
FunctionInfo{9, nullptr, "SubmitAttachment"},
FunctionInfo{10, nullptr, "CreateReportWithAttachments"},
FunctionInfo{11, C<&ErrorReportContext::CreateReportV1>, "CreateReportV1"},
FunctionInfo{12, C<&ErrorReportContext::CreateReport>, "CreateReport"},
FunctionInfo{20, nullptr, "RegisterRunningApplet"},
FunctionInfo{21, nullptr, "UnregisterRunningApplet"},
FunctionInfo{22, nullptr, "UpdateAppletSuspendedDuration"},
FunctionInfo{30, nullptr, "InvalidateForcedShutdownDetection"}
);
};
class ErrorReportSession final : public ServiceFramework<ErrorReportSession> {
@@ -90,12 +92,14 @@ public:
explicit ErrorReportSession(Core::System& system_) : ServiceFramework{system_, "erpt:r"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "OpenReport"},
FunctionInfo{1, nullptr, "OpenManager"},
FunctionInfo{2, nullptr, "OpenAttachment"}
);
return HandlerTableGenerateWithFind(key, functions);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "OpenReport"},
FunctionInfo{1, nullptr, "OpenManager"},
FunctionInfo{2, nullptr, "OpenAttachment"}
);
};
void LoopProcess(Core::System& system) {
+103 -100
View File
@@ -24,102 +24,7 @@ public:
}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{1, &ETicket::ImportTicket, "ImportTicket"},
FunctionInfo{2, nullptr, "ImportTicketCertificateSet"},
FunctionInfo{3, nullptr, "DeleteTicket"},
FunctionInfo{4, nullptr, "DeletePersonalizedTicket"},
FunctionInfo{5, nullptr, "DeleteAllCommonTicket"},
FunctionInfo{6, nullptr, "DeleteAllPersonalizedTicket"},
FunctionInfo{7, nullptr, "DeleteAllPersonalizedTicketEx"},
FunctionInfo{8, &ETicket::GetTitleKey, "GetTitleKey"},
FunctionInfo{9, &ETicket::CountCommonTicket, "CountCommonTicket"},
FunctionInfo{10, &ETicket::CountPersonalizedTicket, "CountPersonalizedTicket"},
FunctionInfo{11, &ETicket::ListCommonTicketRightsIds, "ListCommonTicketRightsIds"},
FunctionInfo{12, &ETicket::ListPersonalizedTicketRightsIds, "ListPersonalizedTicketRightsIds"},
FunctionInfo{13, nullptr, "ListMissingPersonalizedTicket"},
FunctionInfo{14, &ETicket::GetCommonTicketSize, "GetCommonTicketSize"},
FunctionInfo{15, &ETicket::GetPersonalizedTicketSize, "GetPersonalizedTicketSize"},
FunctionInfo{16, &ETicket::GetCommonTicketData, "GetCommonTicketData"},
FunctionInfo{17, &ETicket::GetPersonalizedTicketData, "GetPersonalizedTicketData"},
FunctionInfo{18, nullptr, "OwnTicket"},
FunctionInfo{19, nullptr, "GetTicketInfo"},
FunctionInfo{20, nullptr, "ListLightTicketInfo"},
FunctionInfo{21, nullptr, "SignData"},
FunctionInfo{22, nullptr, "GetCommonTicketAndCertificateSize"},
FunctionInfo{23, nullptr, "GetCommonTicketAndCertificateData"},
FunctionInfo{24, nullptr, "ImportPrepurchaseRecord"},
FunctionInfo{25, nullptr, "DeletePrepurchaseRecord"},
FunctionInfo{26, nullptr, "DeleteAllPrepurchaseRecord"},
FunctionInfo{27, nullptr, "CountPrepurchaseRecord"},
FunctionInfo{28, nullptr, "ListPrepurchaseRecordRightsIds"},
FunctionInfo{29, nullptr, "ListPrepurchaseRecordInfo"},
FunctionInfo{30, nullptr, "CountTicket"},
FunctionInfo{31, nullptr, "ListTicketRightsIds"},
FunctionInfo{32, nullptr, "CountPrepurchaseRecordEx"},
FunctionInfo{33, nullptr, "ListPrepurchaseRecordRightsIdsEx"},
FunctionInfo{34, nullptr, "GetEncryptedTicketSize"},
FunctionInfo{35, nullptr, "GetEncryptedTicketData"},
FunctionInfo{36, nullptr, "DeleteAllInactiveELicenseRequiredPersonalizedTicket"},
FunctionInfo{37, nullptr, "OwnTicket2"},
FunctionInfo{38, nullptr, "OwnTicket3"},
FunctionInfo{39, nullptr, "DeleteAllInactivePersonalizedTicket"},
FunctionInfo{40, nullptr, "DeletePrepurchaseRecordByNintendoAccountId"},
FunctionInfo{101, nullptr, "Unknown101"}, //18.0.0+
FunctionInfo{102, nullptr, "Unknown102"}, //18.0.0+
FunctionInfo{103, nullptr, "Unknown103"}, //18.0.0+
FunctionInfo{104, nullptr, "Unknown104"}, //18.0.0+
FunctionInfo{105, nullptr, "Unknown105"}, //20.0.0+
FunctionInfo{201, nullptr, "Unknown201"}, //18.0.0+
FunctionInfo{202, nullptr, "Unknown202"}, //18.0.0+
FunctionInfo{203, nullptr, "Unknown203"}, //18.0.0+
FunctionInfo{204, nullptr, "Unknown204"}, //18.0.0+
FunctionInfo{205, nullptr, "Unknown205"}, //18.0.0+
FunctionInfo{501, nullptr, "Unknown501"},
FunctionInfo{502, nullptr, "Unknown502"},
FunctionInfo{503, nullptr, "GetTitleKey"},
FunctionInfo{504, nullptr, "Unknown504"},
FunctionInfo{508, nullptr, "Unknown508"},
FunctionInfo{509, nullptr, "Unknown509"},
FunctionInfo{510, nullptr, "Unknown510"},
FunctionInfo{511, nullptr, "Unknown511"},
FunctionInfo{1001, nullptr, "Unknown1001"},
FunctionInfo{1002, nullptr, "Unknown1001"},
FunctionInfo{1003, nullptr, "Unknown1003"},
FunctionInfo{1004, nullptr, "Unknown1004"},
FunctionInfo{1005, nullptr, "Unknown1005"},
FunctionInfo{1006, nullptr, "Unknown1006"},
FunctionInfo{1007, nullptr, "Unknown1007"},
FunctionInfo{1009, nullptr, "Unknown1009"},
FunctionInfo{1010, nullptr, "Unknown1010"},
FunctionInfo{1011, nullptr, "Unknown1011"},
FunctionInfo{1012, nullptr, "Unknown1012"},
FunctionInfo{1013, nullptr, "Unknown1013"},
FunctionInfo{1014, nullptr, "Unknown1014"},
FunctionInfo{1015, nullptr, "Unknown1015"},
FunctionInfo{1016, nullptr, "Unknown1016"},
FunctionInfo{1017, nullptr, "Unknown1017"},
FunctionInfo{1018, nullptr, "Unknown1018"},
FunctionInfo{1019, nullptr, "Unknown1019"},
FunctionInfo{1020, nullptr, "Unknown1020"},
FunctionInfo{1021, nullptr, "Unknown1021"},
FunctionInfo{1501, nullptr, "Unknown1501"},
FunctionInfo{1502, nullptr, "Unknown1502"},
FunctionInfo{1503, nullptr, "Unknown1503"},
FunctionInfo{1504, nullptr, "Unknown1504"},
FunctionInfo{1505, nullptr, "Unknown1505"},
FunctionInfo{1506, nullptr, "Unknown1506"},
FunctionInfo{2000, nullptr, "Unknown2000"},
FunctionInfo{2001, nullptr, "Unknown2001"},
FunctionInfo{2002, nullptr, "Unknown2002"},
FunctionInfo{2003, nullptr, "Unknown2003"},
FunctionInfo{2100, nullptr, "Unknown2100"},
FunctionInfo{2501, nullptr, "Unknown2501"},
FunctionInfo{2502, nullptr, "Unknown2502"},
FunctionInfo{2601, nullptr, "Unknown2601"},
FunctionInfo{3001, nullptr, "Unknown3001"},
FunctionInfo{3002, nullptr, "Unknown3002"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -316,6 +221,102 @@ private:
rb.Push<u64>(write_size);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{1, &ETicket::ImportTicket, "ImportTicket"},
FunctionInfo{2, nullptr, "ImportTicketCertificateSet"},
FunctionInfo{3, nullptr, "DeleteTicket"},
FunctionInfo{4, nullptr, "DeletePersonalizedTicket"},
FunctionInfo{5, nullptr, "DeleteAllCommonTicket"},
FunctionInfo{6, nullptr, "DeleteAllPersonalizedTicket"},
FunctionInfo{7, nullptr, "DeleteAllPersonalizedTicketEx"},
FunctionInfo{8, &ETicket::GetTitleKey, "GetTitleKey"},
FunctionInfo{9, &ETicket::CountCommonTicket, "CountCommonTicket"},
FunctionInfo{10, &ETicket::CountPersonalizedTicket, "CountPersonalizedTicket"},
FunctionInfo{11, &ETicket::ListCommonTicketRightsIds, "ListCommonTicketRightsIds"},
FunctionInfo{12, &ETicket::ListPersonalizedTicketRightsIds, "ListPersonalizedTicketRightsIds"},
FunctionInfo{13, nullptr, "ListMissingPersonalizedTicket"},
FunctionInfo{14, &ETicket::GetCommonTicketSize, "GetCommonTicketSize"},
FunctionInfo{15, &ETicket::GetPersonalizedTicketSize, "GetPersonalizedTicketSize"},
FunctionInfo{16, &ETicket::GetCommonTicketData, "GetCommonTicketData"},
FunctionInfo{17, &ETicket::GetPersonalizedTicketData, "GetPersonalizedTicketData"},
FunctionInfo{18, nullptr, "OwnTicket"},
FunctionInfo{19, nullptr, "GetTicketInfo"},
FunctionInfo{20, nullptr, "ListLightTicketInfo"},
FunctionInfo{21, nullptr, "SignData"},
FunctionInfo{22, nullptr, "GetCommonTicketAndCertificateSize"},
FunctionInfo{23, nullptr, "GetCommonTicketAndCertificateData"},
FunctionInfo{24, nullptr, "ImportPrepurchaseRecord"},
FunctionInfo{25, nullptr, "DeletePrepurchaseRecord"},
FunctionInfo{26, nullptr, "DeleteAllPrepurchaseRecord"},
FunctionInfo{27, nullptr, "CountPrepurchaseRecord"},
FunctionInfo{28, nullptr, "ListPrepurchaseRecordRightsIds"},
FunctionInfo{29, nullptr, "ListPrepurchaseRecordInfo"},
FunctionInfo{30, nullptr, "CountTicket"},
FunctionInfo{31, nullptr, "ListTicketRightsIds"},
FunctionInfo{32, nullptr, "CountPrepurchaseRecordEx"},
FunctionInfo{33, nullptr, "ListPrepurchaseRecordRightsIdsEx"},
FunctionInfo{34, nullptr, "GetEncryptedTicketSize"},
FunctionInfo{35, nullptr, "GetEncryptedTicketData"},
FunctionInfo{36, nullptr, "DeleteAllInactiveELicenseRequiredPersonalizedTicket"},
FunctionInfo{37, nullptr, "OwnTicket2"},
FunctionInfo{38, nullptr, "OwnTicket3"},
FunctionInfo{39, nullptr, "DeleteAllInactivePersonalizedTicket"},
FunctionInfo{40, nullptr, "DeletePrepurchaseRecordByNintendoAccountId"},
FunctionInfo{101, nullptr, "Unknown101"}, //18.0.0+
FunctionInfo{102, nullptr, "Unknown102"}, //18.0.0+
FunctionInfo{103, nullptr, "Unknown103"}, //18.0.0+
FunctionInfo{104, nullptr, "Unknown104"}, //18.0.0+
FunctionInfo{105, nullptr, "Unknown105"}, //20.0.0+
FunctionInfo{201, nullptr, "Unknown201"}, //18.0.0+
FunctionInfo{202, nullptr, "Unknown202"}, //18.0.0+
FunctionInfo{203, nullptr, "Unknown203"}, //18.0.0+
FunctionInfo{204, nullptr, "Unknown204"}, //18.0.0+
FunctionInfo{205, nullptr, "Unknown205"}, //18.0.0+
FunctionInfo{501, nullptr, "Unknown501"},
FunctionInfo{502, nullptr, "Unknown502"},
FunctionInfo{503, nullptr, "GetTitleKey"},
FunctionInfo{504, nullptr, "Unknown504"},
FunctionInfo{508, nullptr, "Unknown508"},
FunctionInfo{509, nullptr, "Unknown509"},
FunctionInfo{510, nullptr, "Unknown510"},
FunctionInfo{511, nullptr, "Unknown511"},
FunctionInfo{1001, nullptr, "Unknown1001"},
FunctionInfo{1002, nullptr, "Unknown1001"},
FunctionInfo{1003, nullptr, "Unknown1003"},
FunctionInfo{1004, nullptr, "Unknown1004"},
FunctionInfo{1005, nullptr, "Unknown1005"},
FunctionInfo{1006, nullptr, "Unknown1006"},
FunctionInfo{1007, nullptr, "Unknown1007"},
FunctionInfo{1009, nullptr, "Unknown1009"},
FunctionInfo{1010, nullptr, "Unknown1010"},
FunctionInfo{1011, nullptr, "Unknown1011"},
FunctionInfo{1012, nullptr, "Unknown1012"},
FunctionInfo{1013, nullptr, "Unknown1013"},
FunctionInfo{1014, nullptr, "Unknown1014"},
FunctionInfo{1015, nullptr, "Unknown1015"},
FunctionInfo{1016, nullptr, "Unknown1016"},
FunctionInfo{1017, nullptr, "Unknown1017"},
FunctionInfo{1018, nullptr, "Unknown1018"},
FunctionInfo{1019, nullptr, "Unknown1019"},
FunctionInfo{1020, nullptr, "Unknown1020"},
FunctionInfo{1021, nullptr, "Unknown1021"},
FunctionInfo{1501, nullptr, "Unknown1501"},
FunctionInfo{1502, nullptr, "Unknown1502"},
FunctionInfo{1503, nullptr, "Unknown1503"},
FunctionInfo{1504, nullptr, "Unknown1504"},
FunctionInfo{1505, nullptr, "Unknown1505"},
FunctionInfo{1506, nullptr, "Unknown1506"},
FunctionInfo{2000, nullptr, "Unknown2000"},
FunctionInfo{2001, nullptr, "Unknown2001"},
FunctionInfo{2002, nullptr, "Unknown2002"},
FunctionInfo{2003, nullptr, "Unknown2003"},
FunctionInfo{2100, nullptr, "Unknown2100"},
FunctionInfo{2501, nullptr, "Unknown2501"},
FunctionInfo{2502, nullptr, "Unknown2502"},
FunctionInfo{2601, nullptr, "Unknown2601"},
FunctionInfo{3001, nullptr, "Unknown3001"},
FunctionInfo{3002, nullptr, "Unknown3002"}
);
Core::Crypto::KeyManager& keys = Core::Crypto::KeyManager::Instance();
};
@@ -324,14 +325,15 @@ public:
explicit NDRM_LU(Core::System& system_)
: ServiceFramework{system_, "ndrm:lu"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{1, nullptr, "Cmd1"},
FunctionInfo{2, nullptr, "Cmd2"},
FunctionInfo{3, nullptr, "Cmd3"},
FunctionInfo{1000, nullptr, "Cmd1000"},
FunctionInfo{8000, nullptr, "Cmd8000"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -340,8 +342,7 @@ public:
explicit NDRM_LA(Core::System& system_)
: ServiceFramework{system_, "ndrm:la"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{1, nullptr, "Cmd1"},
FunctionInfo{2, nullptr, "Cmd2"},
FunctionInfo{3, nullptr, "Cmd3"},
@@ -397,6 +398,8 @@ public:
FunctionInfo{8002, nullptr, "Cmd8002"},
FunctionInfo{8003, nullptr, "Cmd8003"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+6 -4
View File
@@ -16,14 +16,15 @@ class ErrorUploadContext final : public ServiceFramework<ErrorUploadContext> {
public:
explicit ErrorUploadContext(Core::System& system_) : ServiceFramework{system_, "eupld:c"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "SetUrl"},
FunctionInfo{1, nullptr, "ImportCrt"},
FunctionInfo{2, nullptr, "ImportPki"},
FunctionInfo{3, nullptr, "SetAutoUpload"},
FunctionInfo{4, nullptr, "GetAutoUpload"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -31,8 +32,7 @@ class ErrorUploadRequest final : public ServiceFramework<ErrorUploadRequest> {
public:
explicit ErrorUploadRequest(Core::System& system_) : ServiceFramework{system_, "eupld:r"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "Initialize"},
FunctionInfo{1, nullptr, "UploadAll"},
FunctionInfo{2, nullptr, "UploadSelected"},
@@ -40,6 +40,8 @@ public:
FunctionInfo{4, nullptr, "CancelUpload"},
FunctionInfo{5, nullptr, "GetResult"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+20 -14
View File
@@ -19,13 +19,15 @@ public:
explicit IRequest(Core::System& system_) : ServiceFramework{system_, "IRequest"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "Initialize"},
FunctionInfo{1, nullptr, "Set"},
FunctionInfo{2, nullptr, "Get"},
FunctionInfo{3, nullptr, "Cancel"}
);
return HandlerTableGenerateWithFind(key, functions);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "Initialize"},
FunctionInfo{1, nullptr, "Set"},
FunctionInfo{2, nullptr, "Get"},
FunctionInfo{3, nullptr, "Cancel"}
);
};
class FGM final : public ServiceFramework<FGM> {
@@ -33,9 +35,7 @@ public:
explicit FGM(Core::System& system_, const char* name) : ServiceFramework{system_, name} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &FGM::Initialize, "Initialize"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -46,6 +46,10 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<IRequest>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &FGM::Initialize, "Initialize"}
);
};
class FGM_DBG final : public ServiceFramework<FGM_DBG> {
@@ -53,12 +57,14 @@ public:
explicit FGM_DBG(Core::System& system_) : ServiceFramework{system_, "fgm:dbg"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "Initialize"},
FunctionInfo{1, nullptr, "Read"},
FunctionInfo{2, nullptr, "Cancel"}
);
return HandlerTableGenerateWithFind(key, functions);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "Initialize"},
FunctionInfo{1, nullptr, "Read"},
FunctionInfo{2, nullptr, "Cancel"}
);
};
void LoopProcess(Core::System& system) {
+168 -164
View File
@@ -26,120 +26,7 @@ public:
}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IFriendService::GetCompletionEvent, "GetCompletionEvent"},
FunctionInfo{1, &IFriendService::Cancel, "Cancel"},
FunctionInfo{10100, nullptr, "GetFriendListIds"},
FunctionInfo{10101, &IFriendService::GetFriendList, "GetFriendList"},
FunctionInfo{10102, nullptr, "UpdateFriendInfo"},
FunctionInfo{10110, nullptr, "GetFriendProfileImage"},
FunctionInfo{10111, nullptr, "GetFriendProfileImageWithImageSize"}, // 18.0.0+
FunctionInfo{10120, &IFriendService::CheckFriendListAvailability, "CheckFriendListAvailability"},
FunctionInfo{10121, nullptr, "EnsureFriendListAvailable"},
FunctionInfo{10200, nullptr, "SendFriendRequestForApplication"},
FunctionInfo{10211, nullptr, "AddFacedFriendRequestForApplication"},
FunctionInfo{10400, &IFriendService::GetBlockedUserListIds, "GetBlockedUserListIds"},
FunctionInfo{10420, &IFriendService::CheckBlockedUserListAvailability, "CheckBlockedUserListAvailability"},
FunctionInfo{10421, nullptr, "EnsureBlockedUserListAvailable"},
FunctionInfo{10500, nullptr, "GetProfileList"},
FunctionInfo{10501, nullptr, "GetProfileListV2"}, // 18.0.0+
FunctionInfo{10600, nullptr, "DeclareOpenOnlinePlaySession"},
FunctionInfo{10601, &IFriendService::DeclareCloseOnlinePlaySession, "DeclareCloseOnlinePlaySession"},
FunctionInfo{10610, &IFriendService::UpdateUserPresence, "UpdateUserPresence"},
FunctionInfo{10700, &IFriendService::GetPlayHistoryRegistrationKey, "GetPlayHistoryRegistrationKey"},
FunctionInfo{10701, nullptr, "GetPlayHistoryRegistrationKeyWithNetworkServiceAccountId"},
FunctionInfo{10702, nullptr, "AddPlayHistory"},
FunctionInfo{11000, nullptr, "GetProfileImageUrl"},
FunctionInfo{11001, nullptr, "GetProfileImageUrlV2"}, // 18.0.0+
FunctionInfo{20100, &IFriendService::GetFriendCount, "GetFriendCount"},
FunctionInfo{20101, &IFriendService::GetNewlyFriendCount, "GetNewlyFriendCount"},
FunctionInfo{20102, nullptr, "GetFriendDetailedInfo"},
FunctionInfo{20103, nullptr, "SyncFriendList"},
FunctionInfo{20104, &IFriendService::RequestSyncFriendList, "RequestSyncFriendList"},
FunctionInfo{20105, &IFriendService::GetFriendListForViewer, "GetFriendListForViewerV1"},
FunctionInfo{20106, nullptr, "UpdateFriendInfoForViewerV1"},
FunctionInfo{20107, nullptr, "GetFriendDetailedInfoV2"}, // 20.0.0+
FunctionInfo{20108, &IFriendService::GetFriendListForViewer, "GetFriendListForViewerV2"}, // 22.0.0+
FunctionInfo{20109, nullptr, "UpdateFriendInfoForViewerV2"}, // 22.0.0+
FunctionInfo{20110, nullptr, "LoadFriendSettingV1"},
FunctionInfo{20111, nullptr, "LoadFriendSettingV2"}, // 22.0.0+
FunctionInfo{20200, &IFriendService::GetReceivedFriendRequestCount, "GetReceivedFriendRequestCount"},
FunctionInfo{20201, nullptr, "GetFriendRequestListV1"},
FunctionInfo{20202, nullptr, "GetFriendRequestListV2"}, // 20.0.0+
FunctionInfo{20203, nullptr, "GetFriendRequestReceivedNotificationCount"}, // 22.0.0+
FunctionInfo{20300, nullptr, "GetFriendCandidateList"},
FunctionInfo{20301, nullptr, "GetNintendoNetworkIdInfo"},
FunctionInfo{20302, nullptr, "GetSnsAccountLinkage"}, // 5.0.0-19.0.1
FunctionInfo{20303, nullptr, "GetSnsAccountProfile"}, // 5.0.0-19.0.1
FunctionInfo{20304, nullptr, "GetSnsAccountFriendList"}, // 5.0.0-19.0.1
FunctionInfo{20400, nullptr, "GetBlockedUserListV1"},
FunctionInfo{20401, nullptr, "SyncBlockedUserList"},
FunctionInfo{20402, nullptr, "GetBlockedUserListV2"}, // 20.0.0+
FunctionInfo{20500, nullptr, "GetProfileExtraListV1"},
FunctionInfo{20501, nullptr, "GetRelationship"},
FunctionInfo{20502, nullptr, "GetProfileExtraListV2"}, // 19.0.0+
FunctionInfo{20600, &IFriendService::GetUserPresenceView, "GetUserPresenceViewV1"},
FunctionInfo{20601, &IFriendService::GetUserPresenceView, "GetUserPresenceViewV2"}, // 19.0.0+
FunctionInfo{20700, nullptr, "GetPlayHistoryListV1"},
FunctionInfo{20701, &IFriendService::GetPlayHistoryStatistics, "GetPlayHistoryStatistics"},
FunctionInfo{20702, nullptr, "GetPlayHistoryListV2"}, // 19.0.0+
FunctionInfo{20800, &IFriendService::LoadUserSetting, "LoadUserSettingV1"},
FunctionInfo{20801, nullptr, "SyncUserSetting"},
FunctionInfo{20802, &IFriendService::LoadUserSetting, "LoadUserSettingV2"}, // 19.0.0+
FunctionInfo{20900, &IFriendService::RequestListSummaryOverlayNotification, "RequestListSummaryOverlayNotification"},
FunctionInfo{21000, nullptr, "GetExternalApplicationCatalog"},
FunctionInfo{22000, nullptr, "GetReceivedFriendInvitationListV1"},
FunctionInfo{22001, nullptr, "GetReceivedFriendInvitationDetailedInfoV1"},
FunctionInfo{22002, nullptr, "GetReceivedFriendInvitationListV2"}, // 19.0.0+
FunctionInfo{22003, nullptr, "GetReceivedFriendInvitationDetailedInfoV2"}, // 19.0.0+
FunctionInfo{22010, &IFriendService::GetReceivedFriendInvitationCountCache, "GetReceivedFriendInvitationCountCache"},
FunctionInfo{30100, nullptr, "DropFriendNewlyFlags"},
FunctionInfo{30101, nullptr, "DeleteFriend"},
FunctionInfo{30110, nullptr, "DropFriendNewlyFlag"},
FunctionInfo{30120, nullptr, "ChangeFriendFavoriteFlag"},
FunctionInfo{30121, nullptr, "ChangeFriendOnlineNotificationFlag"},
FunctionInfo{30130, nullptr, "SetFriendNote"}, // 22.0.0+
FunctionInfo{30131, nullptr, "RequestUploadPendingNote"}, // 22.0.0+
FunctionInfo{30190, nullptr, "RequestSyncLocalUpdates"}, // 22.0.0+
FunctionInfo{30200, nullptr, "SendFriendRequest"},
FunctionInfo{30201, nullptr, "SendFriendRequestWithApplicationInfoV1"},
FunctionInfo{30202, nullptr, "CancelFriendRequest"},
FunctionInfo{30203, nullptr, "AcceptFriendRequest"},
FunctionInfo{30204, nullptr, "RejectFriendRequest"},
FunctionInfo{30205, nullptr, "ReadFriendRequest"},
FunctionInfo{30210, nullptr, "GetFacedFriendRequestRegistrationKey"},
FunctionInfo{30211, nullptr, "AddFacedFriendRequest"},
FunctionInfo{30212, nullptr, "CancelFacedFriendRequest"},
FunctionInfo{30213, nullptr, "GetFacedFriendRequestProfileImage"},
FunctionInfo{30214, nullptr, "GetFacedFriendRequestProfileImageFromPath"},
FunctionInfo{30215, nullptr, "SendFriendRequestWithExternalApplicationCatalogId"},
FunctionInfo{30216, nullptr, "ResendFacedFriendRequest"},
FunctionInfo{30217, nullptr, "SendFriendRequestWithNintendoNetworkIdInfo"},
FunctionInfo{30218, nullptr, "SendFriendRequestWithApplicationInfoV2"}, // 20.0.0+
FunctionInfo{30300, nullptr, "GetSnsAccountLinkPageUrl"}, // 5.0.0-19.0.1
FunctionInfo{30301, nullptr, "UnlinkSnsAccount"}, // 5.0.0-19.0.1
FunctionInfo{30400, nullptr, "BlockUser"},
FunctionInfo{30401, nullptr, "BlockUserWithApplicationInfoV1"},
FunctionInfo{30402, nullptr, "UnblockUser"},
FunctionInfo{30403, nullptr, "BlockUserWithApplicationInfoV2"}, // 20.0.0+
FunctionInfo{30500, nullptr, "GetProfileExtraFromFriendCodeV1"},
FunctionInfo{30501, nullptr, "GetProfileExtraFromFriendCodeV2"}, // 19.0.0+
FunctionInfo{30700, nullptr, "DeletePlayHistory"},
FunctionInfo{30701, nullptr, "AddPlayHistoryWithApplication"}, // 19.0.0+
FunctionInfo{30810, nullptr, "ChangePresencePermission"},
FunctionInfo{30811, nullptr, "ChangeFriendRequestReception"},
FunctionInfo{30812, nullptr, "ChangePlayLogPermission"},
FunctionInfo{30820, nullptr, "IssueFriendCode"},
FunctionInfo{30830, nullptr, "ClearPlayLog"},
FunctionInfo{30900, nullptr, "SendFriendInvitationV1"},
FunctionInfo{30901, nullptr, "SendFriendInvitationV2"}, // 19.0.0+
FunctionInfo{30910, nullptr, "ReadFriendInvitation"},
FunctionInfo{30911, nullptr, "ReadAllFriendInvitations"},
FunctionInfo{31000, nullptr, "OpenUser"}, // 19.0.0+
FunctionInfo{40100, nullptr, "DeleteFriendListCache"},
FunctionInfo{40400, nullptr, "DeleteBlockedUserListCache"},
FunctionInfo{49900, nullptr, "DeleteNetworkServiceAccountCache"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~IFriendService() override {
@@ -365,8 +252,121 @@ private:
rb.Push(0);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IFriendService::GetCompletionEvent, "GetCompletionEvent"},
FunctionInfo{1, &IFriendService::Cancel, "Cancel"},
FunctionInfo{10100, nullptr, "GetFriendListIds"},
FunctionInfo{10101, &IFriendService::GetFriendList, "GetFriendList"},
FunctionInfo{10102, nullptr, "UpdateFriendInfo"},
FunctionInfo{10110, nullptr, "GetFriendProfileImage"},
FunctionInfo{10111, nullptr, "GetFriendProfileImageWithImageSize"}, // 18.0.0+
FunctionInfo{10120, &IFriendService::CheckFriendListAvailability, "CheckFriendListAvailability"},
FunctionInfo{10121, nullptr, "EnsureFriendListAvailable"},
FunctionInfo{10200, nullptr, "SendFriendRequestForApplication"},
FunctionInfo{10211, nullptr, "AddFacedFriendRequestForApplication"},
FunctionInfo{10400, &IFriendService::GetBlockedUserListIds, "GetBlockedUserListIds"},
FunctionInfo{10420, &IFriendService::CheckBlockedUserListAvailability, "CheckBlockedUserListAvailability"},
FunctionInfo{10421, nullptr, "EnsureBlockedUserListAvailable"},
FunctionInfo{10500, nullptr, "GetProfileList"},
FunctionInfo{10501, nullptr, "GetProfileListV2"}, // 18.0.0+
FunctionInfo{10600, nullptr, "DeclareOpenOnlinePlaySession"},
FunctionInfo{10601, &IFriendService::DeclareCloseOnlinePlaySession, "DeclareCloseOnlinePlaySession"},
FunctionInfo{10610, &IFriendService::UpdateUserPresence, "UpdateUserPresence"},
FunctionInfo{10700, &IFriendService::GetPlayHistoryRegistrationKey, "GetPlayHistoryRegistrationKey"},
FunctionInfo{10701, nullptr, "GetPlayHistoryRegistrationKeyWithNetworkServiceAccountId"},
FunctionInfo{10702, nullptr, "AddPlayHistory"},
FunctionInfo{11000, nullptr, "GetProfileImageUrl"},
FunctionInfo{11001, nullptr, "GetProfileImageUrlV2"}, // 18.0.0+
FunctionInfo{20100, &IFriendService::GetFriendCount, "GetFriendCount"},
FunctionInfo{20101, &IFriendService::GetNewlyFriendCount, "GetNewlyFriendCount"},
FunctionInfo{20102, nullptr, "GetFriendDetailedInfo"},
FunctionInfo{20103, nullptr, "SyncFriendList"},
FunctionInfo{20104, &IFriendService::RequestSyncFriendList, "RequestSyncFriendList"},
FunctionInfo{20105, &IFriendService::GetFriendListForViewer, "GetFriendListForViewerV1"},
FunctionInfo{20106, nullptr, "UpdateFriendInfoForViewerV1"},
FunctionInfo{20107, nullptr, "GetFriendDetailedInfoV2"}, // 20.0.0+
FunctionInfo{20108, &IFriendService::GetFriendListForViewer, "GetFriendListForViewerV2"}, // 22.0.0+
FunctionInfo{20109, nullptr, "UpdateFriendInfoForViewerV2"}, // 22.0.0+
FunctionInfo{20110, nullptr, "LoadFriendSettingV1"},
FunctionInfo{20111, nullptr, "LoadFriendSettingV2"}, // 22.0.0+
FunctionInfo{20200, &IFriendService::GetReceivedFriendRequestCount, "GetReceivedFriendRequestCount"},
FunctionInfo{20201, nullptr, "GetFriendRequestListV1"},
FunctionInfo{20202, nullptr, "GetFriendRequestListV2"}, // 20.0.0+
FunctionInfo{20203, nullptr, "GetFriendRequestReceivedNotificationCount"}, // 22.0.0+
FunctionInfo{20300, nullptr, "GetFriendCandidateList"},
FunctionInfo{20301, nullptr, "GetNintendoNetworkIdInfo"},
FunctionInfo{20302, nullptr, "GetSnsAccountLinkage"}, // 5.0.0-19.0.1
FunctionInfo{20303, nullptr, "GetSnsAccountProfile"}, // 5.0.0-19.0.1
FunctionInfo{20304, nullptr, "GetSnsAccountFriendList"}, // 5.0.0-19.0.1
FunctionInfo{20400, nullptr, "GetBlockedUserListV1"},
FunctionInfo{20401, nullptr, "SyncBlockedUserList"},
FunctionInfo{20402, nullptr, "GetBlockedUserListV2"}, // 20.0.0+
FunctionInfo{20500, nullptr, "GetProfileExtraListV1"},
FunctionInfo{20501, nullptr, "GetRelationship"},
FunctionInfo{20502, nullptr, "GetProfileExtraListV2"}, // 19.0.0+
FunctionInfo{20600, &IFriendService::GetUserPresenceView, "GetUserPresenceViewV1"},
FunctionInfo{20601, &IFriendService::GetUserPresenceView, "GetUserPresenceViewV2"}, // 19.0.0+
FunctionInfo{20700, nullptr, "GetPlayHistoryListV1"},
FunctionInfo{20701, &IFriendService::GetPlayHistoryStatistics, "GetPlayHistoryStatistics"},
FunctionInfo{20702, nullptr, "GetPlayHistoryListV2"}, // 19.0.0+
FunctionInfo{20800, &IFriendService::LoadUserSetting, "LoadUserSettingV1"},
FunctionInfo{20801, nullptr, "SyncUserSetting"},
FunctionInfo{20802, &IFriendService::LoadUserSetting, "LoadUserSettingV2"}, // 19.0.0+
FunctionInfo{20900, &IFriendService::RequestListSummaryOverlayNotification, "RequestListSummaryOverlayNotification"},
FunctionInfo{21000, nullptr, "GetExternalApplicationCatalog"},
FunctionInfo{22000, nullptr, "GetReceivedFriendInvitationListV1"},
FunctionInfo{22001, nullptr, "GetReceivedFriendInvitationDetailedInfoV1"},
FunctionInfo{22002, nullptr, "GetReceivedFriendInvitationListV2"}, // 19.0.0+
FunctionInfo{22003, nullptr, "GetReceivedFriendInvitationDetailedInfoV2"}, // 19.0.0+
FunctionInfo{22010, &IFriendService::GetReceivedFriendInvitationCountCache, "GetReceivedFriendInvitationCountCache"},
FunctionInfo{30100, nullptr, "DropFriendNewlyFlags"},
FunctionInfo{30101, nullptr, "DeleteFriend"},
FunctionInfo{30110, nullptr, "DropFriendNewlyFlag"},
FunctionInfo{30120, nullptr, "ChangeFriendFavoriteFlag"},
FunctionInfo{30121, nullptr, "ChangeFriendOnlineNotificationFlag"},
FunctionInfo{30130, nullptr, "SetFriendNote"}, // 22.0.0+
FunctionInfo{30131, nullptr, "RequestUploadPendingNote"}, // 22.0.0+
FunctionInfo{30190, nullptr, "RequestSyncLocalUpdates"}, // 22.0.0+
FunctionInfo{30200, nullptr, "SendFriendRequest"},
FunctionInfo{30201, nullptr, "SendFriendRequestWithApplicationInfoV1"},
FunctionInfo{30202, nullptr, "CancelFriendRequest"},
FunctionInfo{30203, nullptr, "AcceptFriendRequest"},
FunctionInfo{30204, nullptr, "RejectFriendRequest"},
FunctionInfo{30205, nullptr, "ReadFriendRequest"},
FunctionInfo{30210, nullptr, "GetFacedFriendRequestRegistrationKey"},
FunctionInfo{30211, nullptr, "AddFacedFriendRequest"},
FunctionInfo{30212, nullptr, "CancelFacedFriendRequest"},
FunctionInfo{30213, nullptr, "GetFacedFriendRequestProfileImage"},
FunctionInfo{30214, nullptr, "GetFacedFriendRequestProfileImageFromPath"},
FunctionInfo{30215, nullptr, "SendFriendRequestWithExternalApplicationCatalogId"},
FunctionInfo{30216, nullptr, "ResendFacedFriendRequest"},
FunctionInfo{30217, nullptr, "SendFriendRequestWithNintendoNetworkIdInfo"},
FunctionInfo{30218, nullptr, "SendFriendRequestWithApplicationInfoV2"}, // 20.0.0+
FunctionInfo{30300, nullptr, "GetSnsAccountLinkPageUrl"}, // 5.0.0-19.0.1
FunctionInfo{30301, nullptr, "UnlinkSnsAccount"}, // 5.0.0-19.0.1
FunctionInfo{30400, nullptr, "BlockUser"},
FunctionInfo{30401, nullptr, "BlockUserWithApplicationInfoV1"},
FunctionInfo{30402, nullptr, "UnblockUser"},
FunctionInfo{30403, nullptr, "BlockUserWithApplicationInfoV2"}, // 20.0.0+
FunctionInfo{30500, nullptr, "GetProfileExtraFromFriendCodeV1"},
FunctionInfo{30501, nullptr, "GetProfileExtraFromFriendCodeV2"}, // 19.0.0+
FunctionInfo{30700, nullptr, "DeletePlayHistory"},
FunctionInfo{30701, nullptr, "AddPlayHistoryWithApplication"}, // 19.0.0+
FunctionInfo{30810, nullptr, "ChangePresencePermission"},
FunctionInfo{30811, nullptr, "ChangeFriendRequestReception"},
FunctionInfo{30812, nullptr, "ChangePlayLogPermission"},
FunctionInfo{30820, nullptr, "IssueFriendCode"},
FunctionInfo{30830, nullptr, "ClearPlayLog"},
FunctionInfo{30900, nullptr, "SendFriendInvitationV1"},
FunctionInfo{30901, nullptr, "SendFriendInvitationV2"}, // 19.0.0+
FunctionInfo{30910, nullptr, "ReadFriendInvitation"},
FunctionInfo{30911, nullptr, "ReadAllFriendInvitations"},
FunctionInfo{31000, nullptr, "OpenUser"}, // 19.0.0+
FunctionInfo{40100, nullptr, "DeleteFriendListCache"},
FunctionInfo{40400, nullptr, "DeleteBlockedUserListCache"},
FunctionInfo{49900, nullptr, "DeleteNetworkServiceAccountCache"}
);
KernelHelpers::ServiceContext service_context;
Kernel::KEvent* completion_event;
};
@@ -379,11 +379,7 @@ public:
}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &INotificationService::GetEvent, "GetEvent"},
FunctionInfo{1, &INotificationService::Clear, "Clear"},
FunctionInfo{2, &INotificationService::Pop, "Pop"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~INotificationService() override {
@@ -461,9 +457,13 @@ private:
bool has_received_friend_request;
};
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &INotificationService::GetEvent, "GetEvent"},
FunctionInfo{1, &INotificationService::Clear, "Clear"},
FunctionInfo{2, &INotificationService::Pop, "Pop"}
);
Common::UUID uuid;
KernelHelpers::ServiceContext service_context;
Kernel::KEvent* notification_event;
std::queue<SizedNotificationInfo> notifications;
States states{};
@@ -500,11 +500,13 @@ public:
{}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "GetReceivableNeighborInfoCountMax"},
FunctionInfo{10, nullptr, "IsNeighborDetectionEnabled"}
);
return HandlerTableGenerateWithFind(key, functions);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetReceivableNeighborInfoCountMax"},
FunctionInfo{10, nullptr, "IsNeighborDetectionEnabled"}
);
};
class IServiceForSystem final : public ServiceFramework<IServiceForSystem> {
@@ -514,46 +516,48 @@ public:
{}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "GetReceivableNeighborInfoCountMax"},
FunctionInfo{10, nullptr, "IsNeighborDetectionEnabled"},
FunctionInfo{200, nullptr, "SetSystemData"},
FunctionInfo{201, nullptr, "ClearSystemData"},
FunctionInfo{203, nullptr, "GetReceivableNeighborInfoCountForSystem"},
FunctionInfo{204, nullptr, "ReceiveNeighborInfoForSystem"},
FunctionInfo{205, nullptr, "SetSender"},
FunctionInfo{206, nullptr, "GetSender"},
FunctionInfo{207, nullptr, "CreateScannerForSystem"},
FunctionInfo{208, nullptr, "CreateReceiveEventHolderForSystem"},
FunctionInfo{223, nullptr, "EnableNeighborDetection"},
FunctionInfo{224, nullptr, "DisableNeighborDetection"},
FunctionInfo{226, nullptr, "EnablePowerSave"},
FunctionInfo{227, nullptr, "DisablePowerSave"},
FunctionInfo{228, nullptr, "IsPowerSaveEnabled"},
FunctionInfo{232, nullptr, "ClearBlockedUsers"},
FunctionInfo{233, nullptr, "GetBlockedUserCount"},
FunctionInfo{234, nullptr, "BlockUserByLocalUserId"},
FunctionInfo{235, nullptr, "BlockUserByNetworkUserId"},
FunctionInfo{236, nullptr, "UnblockUserByLocalUserId"},
FunctionInfo{237, nullptr, "UnblockUserByNetworkUserId"},
FunctionInfo{240, nullptr, "DeleteApplication"},
FunctionInfo{250, nullptr, "InitializeApplicationInfo"},
FunctionInfo{260, nullptr, "CreateAccountSystemSaveDataAccessSuppressor"},
FunctionInfo{300, nullptr, "AddReceivedNeighborInfoForSystemForDebug"},
FunctionInfo{301, nullptr, "GetSendDataForDebug"},
FunctionInfo{302, nullptr, "ClearReceiveCounterForDebug"},
FunctionInfo{303, nullptr, "GetNextReceiveCounterForDebug"},
FunctionInfo{304, nullptr, "ListBlockedUsersForDebug"},
FunctionInfo{305, nullptr, "RefreshSendDataIdForDebug"},
FunctionInfo{306, nullptr, "ReloadFwdbgSettingsForDebug"},
FunctionInfo{307, nullptr, "EnableApplicationForDebug"},
FunctionInfo{308, nullptr, "GetNextReceiveCountersForDebug"},
FunctionInfo{309, nullptr, "ListApplicationInfoForDebug"},
FunctionInfo{310, nullptr, "SetApplicationDataForDebug"},
FunctionInfo{400, nullptr, "GetNetworkUserId"},
FunctionInfo{401, nullptr, "DeleteNetworkUserId"}
);
return HandlerTableGenerateWithFind(key, functions);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetReceivableNeighborInfoCountMax"},
FunctionInfo{10, nullptr, "IsNeighborDetectionEnabled"},
FunctionInfo{200, nullptr, "SetSystemData"},
FunctionInfo{201, nullptr, "ClearSystemData"},
FunctionInfo{203, nullptr, "GetReceivableNeighborInfoCountForSystem"},
FunctionInfo{204, nullptr, "ReceiveNeighborInfoForSystem"},
FunctionInfo{205, nullptr, "SetSender"},
FunctionInfo{206, nullptr, "GetSender"},
FunctionInfo{207, nullptr, "CreateScannerForSystem"},
FunctionInfo{208, nullptr, "CreateReceiveEventHolderForSystem"},
FunctionInfo{223, nullptr, "EnableNeighborDetection"},
FunctionInfo{224, nullptr, "DisableNeighborDetection"},
FunctionInfo{226, nullptr, "EnablePowerSave"},
FunctionInfo{227, nullptr, "DisablePowerSave"},
FunctionInfo{228, nullptr, "IsPowerSaveEnabled"},
FunctionInfo{232, nullptr, "ClearBlockedUsers"},
FunctionInfo{233, nullptr, "GetBlockedUserCount"},
FunctionInfo{234, nullptr, "BlockUserByLocalUserId"},
FunctionInfo{235, nullptr, "BlockUserByNetworkUserId"},
FunctionInfo{236, nullptr, "UnblockUserByLocalUserId"},
FunctionInfo{237, nullptr, "UnblockUserByNetworkUserId"},
FunctionInfo{240, nullptr, "DeleteApplication"},
FunctionInfo{250, nullptr, "InitializeApplicationInfo"},
FunctionInfo{260, nullptr, "CreateAccountSystemSaveDataAccessSuppressor"},
FunctionInfo{300, nullptr, "AddReceivedNeighborInfoForSystemForDebug"},
FunctionInfo{301, nullptr, "GetSendDataForDebug"},
FunctionInfo{302, nullptr, "ClearReceiveCounterForDebug"},
FunctionInfo{303, nullptr, "GetNextReceiveCounterForDebug"},
FunctionInfo{304, nullptr, "ListBlockedUsersForDebug"},
FunctionInfo{305, nullptr, "RefreshSendDataIdForDebug"},
FunctionInfo{306, nullptr, "ReloadFwdbgSettingsForDebug"},
FunctionInfo{307, nullptr, "EnableApplicationForDebug"},
FunctionInfo{308, nullptr, "GetNextReceiveCountersForDebug"},
FunctionInfo{309, nullptr, "ListApplicationInfoForDebug"},
FunctionInfo{310, nullptr, "SetApplicationDataForDebug"},
FunctionInfo{400, nullptr, "GetNetworkUserId"},
FunctionInfo{401, nullptr, "DeleteNetworkUserId"}
);
};
void LoopProcess(Core::System& system) {
+6 -5
View File
@@ -167,11 +167,7 @@ public:
: ServiceFramework{system_, "IRegistrar"}, issue_process_id{std::move(issuer)} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IRegistrar::Issue, "Issue"},
FunctionInfo{1, &IRegistrar::SetApplicationLaunchProperty, "SetApplicationLaunchProperty"},
FunctionInfo{2, &IRegistrar::SetApplicationControlProperty, "SetApplicationControlProperty"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -236,6 +232,11 @@ private:
rb.Push(ResultSuccess);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IRegistrar::Issue, "Issue"},
FunctionInfo{1, &IRegistrar::SetApplicationLaunchProperty, "SetApplicationLaunchProperty"},
FunctionInfo{2, &IRegistrar::SetApplicationControlProperty, "SetApplicationControlProperty"}
);
IssuerFn issue_process_id;
bool issued = false;
ApplicationLaunchProperty launch{};
+5 -3
View File
@@ -15,9 +15,7 @@ public:
IContextRegistrar(Core::System& system_) : ServiceFramework{system_, "IContextRegistrar"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IContextRegistrar::Complete, "Complete"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~IContextRegistrar() override = default;
@@ -39,6 +37,10 @@ private:
rb.Push(ResultSuccess);
rb.Push(0);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IContextRegistrar::Complete, "Complete"}
);
};
ECTX_W::ECTX_W(Core::System& system_) : ServiceFramework{system_, "ectx:w"} {
+4 -3
View File
@@ -184,9 +184,7 @@ public:
}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, D<&INotificationSystemEventAccessor::GetSystemEvent>, "GetSystemEvent"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~INotificationSystemEventAccessor() {
@@ -201,6 +199,9 @@ private:
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, D<&INotificationSystemEventAccessor::GetSystemEvent>, "GetSystemEvent"}
);
KernelHelpers::ServiceContext service_context;
Kernel::KEvent* notification_event;
};
+6 -4
View File
@@ -16,14 +16,15 @@ class GRC final : public ServiceFramework<GRC> {
public:
explicit GRC(Core::System& system_) : ServiceFramework{system_, "grc:c"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{1, nullptr, "OpenContinuousRecorder"},
FunctionInfo{2, nullptr, "OpenGameMovieTrimmer"},
FunctionInfo{3, nullptr, "OpenOffscreenRecorder"},
FunctionInfo{101, nullptr, "CreateMovieMaker"},
FunctionInfo{9903, nullptr, "SetOffscreenRecordingMarker"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -31,12 +32,13 @@ class GRC_D final : public ServiceFramework<GRC_D> {
public:
explicit GRC_D(Core::System& system_) : ServiceFramework{system_, "grc:d"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{1, nullptr, "Initialize"},
FunctionInfo{2, nullptr, "Transfer"},
FunctionInfo{3, nullptr, "Cmd3"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+9 -6
View File
@@ -24,10 +24,11 @@ public:
explicit IHidTemporaryServer(Core::System& system_)
: ServiceFramework{system_, "hid:tmp"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetConsoleSixAxisSensorCalibrationValues"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
~IHidTemporaryServer() override = default;
};
@@ -37,14 +38,15 @@ public:
explicit AHID_CD(Core::System& system_)
: ServiceFramework{system_, "ahid:cd"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "AcquireDevice"},
FunctionInfo{1, nullptr, "ReleaseDevice"},
FunctionInfo{2, nullptr, "GetCtrlSession"},
FunctionInfo{3, nullptr, "GetReadSession"},
FunctionInfo{4, nullptr, "GetWriteSession"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
~AHID_CD() override = default;
};
@@ -54,8 +56,7 @@ public:
explicit AHID_HDR(Core::System& system_)
: ServiceFramework{system_, "ahid:hdr"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetDeviceEntries"},
FunctionInfo{1, nullptr, "GetDeviceList"},
FunctionInfo{2, nullptr, "GetDeviceParameters"},
@@ -63,6 +64,8 @@ public:
FunctionInfo{4, nullptr, "DetachDevice"},
FunctionInfo{5, nullptr, "SetDeviceFilter"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
~AHID_HDR() override = default;
};
+13 -9
View File
@@ -48,12 +48,7 @@ public:
}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, C<&IJitEnvironment::GenerateCode>, "GenerateCode"},
FunctionInfo{1, C<&IJitEnvironment::Control>, "Control"},
FunctionInfo{1000, C<&IJitEnvironment::LoadPlugin>, "LoadPlugin"},
FunctionInfo{1001, C<&IJitEnvironment::GetCodeAddress>, "GetCodeAddress"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~IJitEnvironment() {
@@ -245,6 +240,13 @@ private:
return in;
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, C<&IJitEnvironment::GenerateCode>, "GenerateCode"},
FunctionInfo{1, C<&IJitEnvironment::Control>, "Control"},
FunctionInfo{1000, C<&IJitEnvironment::LoadPlugin>, "LoadPlugin"},
FunctionInfo{1001, C<&IJitEnvironment::GetCodeAddress>, "GetCodeAddress"}
);
Kernel::KScopedAutoObject<Kernel::KProcess> process;
CodeMemory user_rx;
CodeMemory user_ro;
@@ -258,9 +260,7 @@ public:
explicit JITU(Core::System& system_) : ServiceFramework{system_, "jit:u"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, C<&JITU::CreateJitEnvironment>, "CreateJitEnvironment"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -289,6 +289,10 @@ private:
}
private:
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, C<&JITU::CreateJitEnvironment>, "CreateJitEnvironment"}
);
std::mt19937_64 generate_random{};
};
+33 -32
View File
@@ -21,38 +21,7 @@ public:
explicit LBL(Core::System& system_) : ServiceFramework{system_, "lbl"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &LBL::SaveCurrentSetting, "SaveCurrentSetting"},
FunctionInfo{1, &LBL::LoadCurrentSetting, "LoadCurrentSetting"},
FunctionInfo{2, &LBL::SetCurrentBrightnessSetting, "SetCurrentBrightnessSetting"},
FunctionInfo{3, &LBL::GetCurrentBrightnessSetting, "GetCurrentBrightnessSetting"},
FunctionInfo{4, nullptr, "ApplyCurrentBrightnessSettingToBacklight"},
FunctionInfo{5, nullptr, "GetBrightnessSettingAppliedToBacklight"},
FunctionInfo{6, &LBL::SwitchBacklightOn, "SwitchBacklightOn"},
FunctionInfo{7, &LBL::SwitchBacklightOff, "SwitchBacklightOff"},
FunctionInfo{8, &LBL::GetBacklightSwitchStatus, "GetBacklightSwitchStatus"},
FunctionInfo{9, &LBL::EnableDimming, "EnableDimming"},
FunctionInfo{10, &LBL::DisableDimming, "DisableDimming"},
FunctionInfo{11, &LBL::IsDimmingEnabled, "IsDimmingEnabled"},
FunctionInfo{12, &LBL::EnableAutoBrightnessControl, "EnableAutoBrightnessControl"},
FunctionInfo{13, &LBL::DisableAutoBrightnessControl, "DisableAutoBrightnessControl"},
FunctionInfo{14, &LBL::IsAutoBrightnessControlEnabled, "IsAutoBrightnessControlEnabled"},
FunctionInfo{15, &LBL::SetAmbientLightSensorValue, "SetAmbientLightSensorValue"},
FunctionInfo{16, &LBL::GetAmbientLightSensorValue, "GetAmbientLightSensorValue"},
FunctionInfo{17, &LBL::SetBrightnessReflectionDelayLevel, "SetBrightnessReflectionDelayLevel"},
FunctionInfo{18, &LBL::GetBrightnessReflectionDelayLevel, "GetBrightnessReflectionDelayLevel"},
FunctionInfo{19, &LBL::SetCurrentBrightnessMapping, "SetCurrentBrightnessMapping"},
FunctionInfo{20, &LBL::GetCurrentBrightnessMapping, "GetCurrentBrightnessMapping"},
FunctionInfo{21, &LBL::SetCurrentAmbientLightSensorMapping, "SetCurrentAmbientLightSensorMapping"},
FunctionInfo{22, &LBL::GetCurrentAmbientLightSensorMapping, "GetCurrentAmbientLightSensorMapping"},
FunctionInfo{23, &LBL::IsAmbientLightSensorAvailable, "IsAmbientLightSensorAvailable"},
FunctionInfo{24, &LBL::SetCurrentBrightnessSettingForVrMode, "SetCurrentBrightnessSettingForVrMode"},
FunctionInfo{25, &LBL::GetCurrentBrightnessSettingForVrMode, "GetCurrentBrightnessSettingForVrMode"},
FunctionInfo{26, &LBL::EnableVrMode, "EnableVrMode"},
FunctionInfo{27, &LBL::DisableVrMode, "DisableVrMode"},
FunctionInfo{28, &LBL::IsVrModeEnabled, "IsVrModeEnabled"},
FunctionInfo{29, &LBL::IsAutoBrightnessControlSupported, "IsAutoBrightnessControlSupported"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -333,6 +302,38 @@ private:
rb.Push<u8>(auto_brightness_supported);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &LBL::SaveCurrentSetting, "SaveCurrentSetting"},
FunctionInfo{1, &LBL::LoadCurrentSetting, "LoadCurrentSetting"},
FunctionInfo{2, &LBL::SetCurrentBrightnessSetting, "SetCurrentBrightnessSetting"},
FunctionInfo{3, &LBL::GetCurrentBrightnessSetting, "GetCurrentBrightnessSetting"},
FunctionInfo{4, nullptr, "ApplyCurrentBrightnessSettingToBacklight"},
FunctionInfo{5, nullptr, "GetBrightnessSettingAppliedToBacklight"},
FunctionInfo{6, &LBL::SwitchBacklightOn, "SwitchBacklightOn"},
FunctionInfo{7, &LBL::SwitchBacklightOff, "SwitchBacklightOff"},
FunctionInfo{8, &LBL::GetBacklightSwitchStatus, "GetBacklightSwitchStatus"},
FunctionInfo{9, &LBL::EnableDimming, "EnableDimming"},
FunctionInfo{10, &LBL::DisableDimming, "DisableDimming"},
FunctionInfo{11, &LBL::IsDimmingEnabled, "IsDimmingEnabled"},
FunctionInfo{12, &LBL::EnableAutoBrightnessControl, "EnableAutoBrightnessControl"},
FunctionInfo{13, &LBL::DisableAutoBrightnessControl, "DisableAutoBrightnessControl"},
FunctionInfo{14, &LBL::IsAutoBrightnessControlEnabled, "IsAutoBrightnessControlEnabled"},
FunctionInfo{15, &LBL::SetAmbientLightSensorValue, "SetAmbientLightSensorValue"},
FunctionInfo{16, &LBL::GetAmbientLightSensorValue, "GetAmbientLightSensorValue"},
FunctionInfo{17, &LBL::SetBrightnessReflectionDelayLevel, "SetBrightnessReflectionDelayLevel"},
FunctionInfo{18, &LBL::GetBrightnessReflectionDelayLevel, "GetBrightnessReflectionDelayLevel"},
FunctionInfo{19, &LBL::SetCurrentBrightnessMapping, "SetCurrentBrightnessMapping"},
FunctionInfo{20, &LBL::GetCurrentBrightnessMapping, "GetCurrentBrightnessMapping"},
FunctionInfo{21, &LBL::SetCurrentAmbientLightSensorMapping, "SetCurrentAmbientLightSensorMapping"},
FunctionInfo{22, &LBL::GetCurrentAmbientLightSensorMapping, "GetCurrentAmbientLightSensorMapping"},
FunctionInfo{23, &LBL::IsAmbientLightSensorAvailable, "IsAmbientLightSensorAvailable"},
FunctionInfo{24, &LBL::SetCurrentBrightnessSettingForVrMode, "SetCurrentBrightnessSettingForVrMode"},
FunctionInfo{25, &LBL::GetCurrentBrightnessSettingForVrMode, "GetCurrentBrightnessSettingForVrMode"},
FunctionInfo{26, &LBL::EnableVrMode, "EnableVrMode"},
FunctionInfo{27, &LBL::DisableVrMode, "DisableVrMode"},
FunctionInfo{28, &LBL::IsVrModeEnabled, "IsVrModeEnabled"},
FunctionInfo{29, &LBL::IsAutoBrightnessControlSupported, "IsAutoBrightnessControlSupported"}
);
bool vr_mode_enabled = false;
float current_brightness = 1.0f;
float ambient_light_value = 0.0f;
+37 -36
View File
@@ -19,13 +19,10 @@ namespace Service::LDN {
class IClientProcessMonitor final
: public ServiceFramework<IClientProcessMonitor> {
public:
explicit IClientProcessMonitor(Core::System& system_)
: ServiceFramework{system_, "IClientProcessMonitor"} {}
explicit IClientProcessMonitor(Core::System& system_) : ServiceFramework{system_, "IClientProcessMonitor"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, D<&IClientProcessMonitor::RegisterClient>, "RegisterClient"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~IClientProcessMonitor() override = default;
private:
@@ -33,6 +30,10 @@ private:
LOG_WARNING(Service_LDN, "(STUBBED) called");
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, D<&IClientProcessMonitor::RegisterClient>, "RegisterClient"}
);
};
class IMonitorServiceCreator final : public ServiceFramework<IMonitorServiceCreator> {
@@ -40,11 +41,8 @@ public:
explicit IMonitorServiceCreator(Core::System& system_) : ServiceFramework{system_, "ldn:m"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, C<&IMonitorServiceCreator::CreateMonitorService>, "CreateMonitorService"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
Result CreateMonitorService(OutInterface<IMonitorService> out_interface) {
LOG_DEBUG(Service_LDN, "called");
@@ -52,6 +50,10 @@ private:
*out_interface = std::make_shared<IMonitorService>(system);
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, C<&IMonitorServiceCreator::CreateMonitorService>, "CreateMonitorService"}
);
};
class ISystemServiceCreator final : public ServiceFramework<ISystemServiceCreator> {
@@ -59,12 +61,8 @@ public:
explicit ISystemServiceCreator(Core::System& system_) : ServiceFramework{system_, "ldn:s"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, C<&ISystemServiceCreator::CreateSystemLocalCommunicationService>, "CreateSystemLocalCommunicationService"},
FunctionInfo{1, C<&ISystemServiceCreator::CreateClientProcessMonitor>, "CreateClientProcessMonitor"} // 18.0.0+
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
Result CreateSystemLocalCommunicationService(
OutInterface<ISystemLocalCommunicationService> out_interface) {
@@ -81,6 +79,11 @@ private:
*out_interface = std::make_shared<IClientProcessMonitor>(system);
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, C<&ISystemServiceCreator::CreateSystemLocalCommunicationService>, "CreateSystemLocalCommunicationService"},
FunctionInfo{1, C<&ISystemServiceCreator::CreateClientProcessMonitor>, "CreateClientProcessMonitor"} // 18.0.0+
);
};
class IUserServiceCreator final : public ServiceFramework<IUserServiceCreator> {
@@ -88,12 +91,8 @@ public:
explicit IUserServiceCreator(Core::System& system_) : ServiceFramework{system_, "ldn:u"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, D<&IUserServiceCreator::CreateUserLocalCommunicationService>, "CreateUserLocalCommunicationService"},
FunctionInfo{1, D<&IUserServiceCreator::CreateClientProcessMonitor>, "CreateClientProcessMonitor"} // 18.0.0+
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
Result CreateUserLocalCommunicationService(
OutInterface<IUserLocalCommunicationService> out_interface) {
@@ -110,20 +109,20 @@ private:
*out_interface = std::make_shared<IClientProcessMonitor>(system);
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, D<&IUserServiceCreator::CreateUserLocalCommunicationService>, "CreateUserLocalCommunicationService"},
FunctionInfo{1, D<&IUserServiceCreator::CreateClientProcessMonitor>, "CreateClientProcessMonitor"} // 18.0.0+
);
};
class ISfServiceCreator final : public ServiceFramework<ISfServiceCreator> {
public:
explicit ISfServiceCreator(Core::System& system_, bool is_system_, const char* name_)
: ServiceFramework{system_, name_}, is_system{is_system_} {}
explicit ISfServiceCreator(Core::System& system_, bool is_system_, const char* name_) : ServiceFramework{system_, name_}, is_system{is_system_} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, C<&ISfServiceCreator::CreateNetworkService>, "CreateNetworkService"},
FunctionInfo{8, C<&ISfServiceCreator::CreateNetworkServiceMonitor>, "CreateNetworkServiceMonitor"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
Result CreateNetworkService(OutInterface<ISfService> out_interface, u32 input,
u64 reserved_input) {
@@ -142,6 +141,10 @@ private:
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, C<&ISfServiceCreator::CreateNetworkService>, "CreateNetworkService"},
FunctionInfo{8, C<&ISfServiceCreator::CreateNetworkServiceMonitor>, "CreateNetworkServiceMonitor"}
);
bool is_system{};
};
@@ -150,11 +153,8 @@ public:
explicit ISfMonitorServiceCreator(Core::System& system_) : ServiceFramework{system_, "lp2p:m"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, C<&ISfMonitorServiceCreator::CreateMonitorService>, "CreateMonitorService"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
Result CreateMonitorService(OutInterface<ISfMonitorService> out_interface, u64 reserved_input) {
LOG_INFO(Service_LDN, "called, reserved_input={}", reserved_input);
@@ -162,6 +162,10 @@ private:
*out_interface = std::make_shared<ISfMonitorService>(system);
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, C<&ISfMonitorServiceCreator::CreateMonitorService>, "CreateMonitorService"}
);
};
void LoopProcess(Core::System& system) {
@@ -171,12 +175,9 @@ void LoopProcess(Core::System& system) {
server_manager->RegisterNamedService("ldn:s", std::make_shared<ISystemServiceCreator>(system));
server_manager->RegisterNamedService("ldn:u", std::make_shared<IUserServiceCreator>(system));
server_manager->RegisterNamedService(
"lp2p:app", std::make_shared<ISfServiceCreator>(system, false, "lp2p:app"));
server_manager->RegisterNamedService(
"lp2p:sys", std::make_shared<ISfServiceCreator>(system, true, "lp2p:sys"));
server_manager->RegisterNamedService("lp2p:m",
std::make_shared<ISfMonitorServiceCreator>(system));
server_manager->RegisterNamedService("lp2p:app", std::make_shared<ISfServiceCreator>(system, false, "lp2p:app"));
server_manager->RegisterNamedService("lp2p:sys", std::make_shared<ISfServiceCreator>(system, true, "lp2p:sys"));
server_manager->RegisterNamedService("lp2p:m", std::make_shared<ISfMonitorServiceCreator>(system));
ServerManager::RunServer(std::move(server_manager));
}
+9 -6
View File
@@ -14,12 +14,13 @@ class DebugMonitor final : public ServiceFramework<DebugMonitor> {
public:
explicit DebugMonitor(Core::System& system_) : ServiceFramework{system_, "ldr:dmnt"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "SetProgramArgument"},
FunctionInfo{1, nullptr, "FlushArguments"},
FunctionInfo{2, nullptr, "GetProcessModuleInfo"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -27,14 +28,15 @@ class ProcessManager final : public ServiceFramework<ProcessManager> {
public:
explicit ProcessManager(Core::System& system_) : ServiceFramework{system_, "ldr:pm"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "CreateProcess"},
FunctionInfo{1, nullptr, "GetProgramInfo"},
FunctionInfo{2, nullptr, "PinProgram"},
FunctionInfo{3, nullptr, "UnpinProgram"},
FunctionInfo{4, nullptr, "SetEnabledProgramVerification"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -42,11 +44,12 @@ class Shell final : public ServiceFramework<Shell> {
public:
explicit Shell(Core::System& system_) : ServiceFramework{system_, "ldr:shel"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "SetProgramArgument"},
FunctionInfo{1, nullptr, "FlushArguments"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+16 -13
View File
@@ -340,9 +340,7 @@ public:
explicit LM(Core::System& system_) : ServiceFramework{system_, "lm"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &LM::OpenLogger, "OpenLogger"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -353,21 +351,26 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<ILogger>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &LM::OpenLogger, "OpenLogger"}
);
};
class LM_GET final : public ServiceFramework<LM_GET> {
public:
explicit LM_GET(Core::System& system_)
: ServiceFramework{system_, "lm:get"}
{
static const FunctionInfo functions[] = {
FunctionInfo{0, nullptr, "StartLogging"},
FunctionInfo{1, nullptr, "StopLogging"},
FunctionInfo{2, nullptr, "GetLog"},
FunctionInfo{100, nullptr, "CreateDevNotificationReceiver"}
};
RegisterHandlers(functions);
explicit LM_GET(Core::System& system_) : ServiceFramework{system_, "lm:get"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "StartLogging"},
FunctionInfo{1, nullptr, "StopLogging"},
FunctionInfo{2, nullptr, "GetLog"},
FunctionInfo{100, nullptr, "CreateDevNotificationReceiver"}
);
};
void LoopProcess(Core::System& system) {
+40 -38
View File
@@ -17,45 +17,47 @@ public:
explicit MIG_USR(Core::System& system_) : ServiceFramework{system_, "mig:usr"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "Unknown0"}, //19.0.0+
FunctionInfo{1, nullptr, "Unknown1"}, //20.0.0+
FunctionInfo{2, nullptr, "Unknown2"}, //20.0.0+
FunctionInfo{10, nullptr, "TryGetLastMigrationInfo"},
FunctionInfo{11, nullptr, "Unknown11"}, //20.0.0+
FunctionInfo{100, nullptr, "CreateUserMigrationServer"}, //7.0.0+
FunctionInfo{101, nullptr, "ResumeUserMigrationServer"}, //7.0.0+
FunctionInfo{200, nullptr, "CreateUserMigrationClient"}, //7.0.0+
FunctionInfo{201, nullptr, "ResumeUserMigrationClient"}, //7.0.0+
FunctionInfo{1001, nullptr, "GetSaveDataMigrationPolicyInfoAsync"}, //8.0.0-20.5.0
FunctionInfo{1010, nullptr, "TryGetLastSaveDataMigrationInfo"}, //7.0.0+
FunctionInfo{1100, nullptr, "CreateSaveDataMigrationServer"}, //7.0.0-19.0.1
FunctionInfo{1101, nullptr, "ResumeSaveDataMigrationServer"}, //7.0.0+
FunctionInfo{1110, nullptr, "Unknown1101"}, //17.0.0+
FunctionInfo{1200, nullptr, "CreateSaveDataMigrationClient"}, //7.0.0+
FunctionInfo{1201, nullptr, "ResumeSaveDataMigrationClient"}, //7.0.0+
FunctionInfo{2001, nullptr, "Unknown2001"}, //20.0.0+
FunctionInfo{2010, nullptr, "Unknown2010"}, //20.0.0+
FunctionInfo{2100, nullptr, "Unknown2100"}, //20.0.0+
FunctionInfo{2110, nullptr, "Unknown2110"}, //20.0.0+
FunctionInfo{2200, nullptr, "Unknown2200"}, //20.0.0+
FunctionInfo{2210, nullptr, "Unknown2210"}, //20.0.0+
FunctionInfo{2220, nullptr, "Unknown2220"}, //20.0.0+
FunctionInfo{2230, nullptr, "Unknown2230"}, //20.0.0+
FunctionInfo{2231, nullptr, "Unknown2231"}, //20.0.0+
FunctionInfo{2232, nullptr, "Unknown2232"}, //20.0.0+
FunctionInfo{2233, nullptr, "Unknown2233"}, //20.0.0+
FunctionInfo{2234, nullptr, "Unknown2234"}, //20.0.0+
FunctionInfo{2250, nullptr, "Unknown2250"}, //20.0.0+
FunctionInfo{2260, nullptr, "Unknown2260"}, //20.0.0+
FunctionInfo{2270, nullptr, "Unknown2270"}, //20.0.0+
FunctionInfo{2280, nullptr, "Unknown2280"}, //20.0.0+
FunctionInfo{2300, nullptr, "Unknown2300"}, //20.0.0+
FunctionInfo{2310, nullptr, "Unknown2310"}, //20.0.0+
FunctionInfo{2400, nullptr, "Unknown2400"}, //20.0.0+
FunctionInfo{2420, nullptr, "Unknown2420"} //20.0.0+
);
return HandlerTableGenerateWithFind(key, functions);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "Unknown0"}, //19.0.0+
FunctionInfo{1, nullptr, "Unknown1"}, //20.0.0+
FunctionInfo{2, nullptr, "Unknown2"}, //20.0.0+
FunctionInfo{10, nullptr, "TryGetLastMigrationInfo"},
FunctionInfo{11, nullptr, "Unknown11"}, //20.0.0+
FunctionInfo{100, nullptr, "CreateUserMigrationServer"}, //7.0.0+
FunctionInfo{101, nullptr, "ResumeUserMigrationServer"}, //7.0.0+
FunctionInfo{200, nullptr, "CreateUserMigrationClient"}, //7.0.0+
FunctionInfo{201, nullptr, "ResumeUserMigrationClient"}, //7.0.0+
FunctionInfo{1001, nullptr, "GetSaveDataMigrationPolicyInfoAsync"}, //8.0.0-20.5.0
FunctionInfo{1010, nullptr, "TryGetLastSaveDataMigrationInfo"}, //7.0.0+
FunctionInfo{1100, nullptr, "CreateSaveDataMigrationServer"}, //7.0.0-19.0.1
FunctionInfo{1101, nullptr, "ResumeSaveDataMigrationServer"}, //7.0.0+
FunctionInfo{1110, nullptr, "Unknown1101"}, //17.0.0+
FunctionInfo{1200, nullptr, "CreateSaveDataMigrationClient"}, //7.0.0+
FunctionInfo{1201, nullptr, "ResumeSaveDataMigrationClient"}, //7.0.0+
FunctionInfo{2001, nullptr, "Unknown2001"}, //20.0.0+
FunctionInfo{2010, nullptr, "Unknown2010"}, //20.0.0+
FunctionInfo{2100, nullptr, "Unknown2100"}, //20.0.0+
FunctionInfo{2110, nullptr, "Unknown2110"}, //20.0.0+
FunctionInfo{2200, nullptr, "Unknown2200"}, //20.0.0+
FunctionInfo{2210, nullptr, "Unknown2210"}, //20.0.0+
FunctionInfo{2220, nullptr, "Unknown2220"}, //20.0.0+
FunctionInfo{2230, nullptr, "Unknown2230"}, //20.0.0+
FunctionInfo{2231, nullptr, "Unknown2231"}, //20.0.0+
FunctionInfo{2232, nullptr, "Unknown2232"}, //20.0.0+
FunctionInfo{2233, nullptr, "Unknown2233"}, //20.0.0+
FunctionInfo{2234, nullptr, "Unknown2234"}, //20.0.0+
FunctionInfo{2250, nullptr, "Unknown2250"}, //20.0.0+
FunctionInfo{2260, nullptr, "Unknown2260"}, //20.0.0+
FunctionInfo{2270, nullptr, "Unknown2270"}, //20.0.0+
FunctionInfo{2280, nullptr, "Unknown2280"}, //20.0.0+
FunctionInfo{2300, nullptr, "Unknown2300"}, //20.0.0+
FunctionInfo{2310, nullptr, "Unknown2310"}, //20.0.0+
FunctionInfo{2400, nullptr, "Unknown2400"}, //20.0.0+
FunctionInfo{2420, nullptr, "Unknown2420"} //20.0.0+
);
};
void LoopProcess(Core::System& system) {
+49 -46
View File
@@ -33,35 +33,7 @@ public:
}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, D<&IDatabaseService::IsUpdated>, "IsUpdated"},
FunctionInfo{1, D<&IDatabaseService::IsFullDatabase>, "IsFullDatabase"},
FunctionInfo{2, D<&IDatabaseService::GetCount>, "GetCount"},
FunctionInfo{3, D<&IDatabaseService::Get>, "Get"},
FunctionInfo{4, D<&IDatabaseService::Get1>, "Get1"},
FunctionInfo{5, D<&IDatabaseService::UpdateLatest>, "UpdateLatest"},
FunctionInfo{6, D<&IDatabaseService::BuildRandom>, "BuildRandom"},
FunctionInfo{7, D<&IDatabaseService::BuildDefault>, "BuildDefault"},
FunctionInfo{8, D<&IDatabaseService::Get2>, "Get2"},
FunctionInfo{9, D<&IDatabaseService::Get3>, "Get3"},
FunctionInfo{10, D<&IDatabaseService::UpdateLatest1>, "UpdateLatest1"},
FunctionInfo{11, D<&IDatabaseService::FindIndex>, "FindIndex"},
FunctionInfo{12, D<&IDatabaseService::Move>, "Move"},
FunctionInfo{13, D<&IDatabaseService::AddOrReplace>, "AddOrReplace"},
FunctionInfo{14, D<&IDatabaseService::Delete>, "Delete"},
FunctionInfo{15, D<&IDatabaseService::DestroyFile>, "DestroyFile"},
FunctionInfo{16, D<&IDatabaseService::DeleteFile>, "DeleteFile"},
FunctionInfo{17, D<&IDatabaseService::Format>, "Format"},
FunctionInfo{18, nullptr, "Import"},
FunctionInfo{19, nullptr, "Export"},
FunctionInfo{20, D<&IDatabaseService::IsBrokenDatabaseWithClearFlag>, "IsBrokenDatabaseWithClearFlag"},
FunctionInfo{21, D<&IDatabaseService::GetIndex>, "GetIndex"},
FunctionInfo{22, D<&IDatabaseService::SetInterfaceVersion>, "SetInterfaceVersion"},
FunctionInfo{23, D<&IDatabaseService::Convert>, "Convert"},
FunctionInfo{24, D<&IDatabaseService::ConvertCoreDataToCharInfo>, "ConvertCoreDataToCharInfo"},
FunctionInfo{25, D<&IDatabaseService::ConvertCharInfoToCoreData>, "ConvertCharInfoToCoreData"},
FunctionInfo{26, D<&IDatabaseService::Append>, "Append"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -285,10 +257,39 @@ private:
R_RETURN(manager->Append(metadata, char_info));
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, D<&IDatabaseService::IsUpdated>, "IsUpdated"},
FunctionInfo{1, D<&IDatabaseService::IsFullDatabase>, "IsFullDatabase"},
FunctionInfo{2, D<&IDatabaseService::GetCount>, "GetCount"},
FunctionInfo{3, D<&IDatabaseService::Get>, "Get"},
FunctionInfo{4, D<&IDatabaseService::Get1>, "Get1"},
FunctionInfo{5, D<&IDatabaseService::UpdateLatest>, "UpdateLatest"},
FunctionInfo{6, D<&IDatabaseService::BuildRandom>, "BuildRandom"},
FunctionInfo{7, D<&IDatabaseService::BuildDefault>, "BuildDefault"},
FunctionInfo{8, D<&IDatabaseService::Get2>, "Get2"},
FunctionInfo{9, D<&IDatabaseService::Get3>, "Get3"},
FunctionInfo{10, D<&IDatabaseService::UpdateLatest1>, "UpdateLatest1"},
FunctionInfo{11, D<&IDatabaseService::FindIndex>, "FindIndex"},
FunctionInfo{12, D<&IDatabaseService::Move>, "Move"},
FunctionInfo{13, D<&IDatabaseService::AddOrReplace>, "AddOrReplace"},
FunctionInfo{14, D<&IDatabaseService::Delete>, "Delete"},
FunctionInfo{15, D<&IDatabaseService::DestroyFile>, "DestroyFile"},
FunctionInfo{16, D<&IDatabaseService::DeleteFile>, "DeleteFile"},
FunctionInfo{17, D<&IDatabaseService::Format>, "Format"},
FunctionInfo{18, nullptr, "Import"},
FunctionInfo{19, nullptr, "Export"},
FunctionInfo{20, D<&IDatabaseService::IsBrokenDatabaseWithClearFlag>, "IsBrokenDatabaseWithClearFlag"},
FunctionInfo{21, D<&IDatabaseService::GetIndex>, "GetIndex"},
FunctionInfo{22, D<&IDatabaseService::SetInterfaceVersion>, "SetInterfaceVersion"},
FunctionInfo{23, D<&IDatabaseService::Convert>, "Convert"},
FunctionInfo{24, D<&IDatabaseService::ConvertCoreDataToCharInfo>, "ConvertCoreDataToCharInfo"},
FunctionInfo{25, D<&IDatabaseService::ConvertCharInfoToCoreData>, "ConvertCharInfoToCoreData"},
FunctionInfo{26, D<&IDatabaseService::Append>, "Append"}
);
std::shared_ptr<MiiManager> manager = nullptr;
DatabaseSessionMetadata metadata{};
bool is_system{};
std::shared_ptr<Service::Set::ISystemSettingsServer> m_set_sys;
};
@@ -324,22 +325,7 @@ public:
explicit IImageDatabaseService(Core::System& system_) : ServiceFramework{system_, "miiimg"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, D<&IImageDatabaseService::Initialize>, "Initialize"},
FunctionInfo{10, nullptr, "Reload"},
FunctionInfo{11, D<&IImageDatabaseService::GetCount>, "GetCount"},
FunctionInfo{12, nullptr, "IsEmpty"},
FunctionInfo{13, nullptr, "IsFull"},
FunctionInfo{14, nullptr, "GetAttribute"},
FunctionInfo{15, nullptr, "LoadImage"},
FunctionInfo{16, nullptr, "AddOrUpdateImage"},
FunctionInfo{17, nullptr, "DeleteImages"},
FunctionInfo{100, nullptr, "DeleteFile"},
FunctionInfo{101, nullptr, "DestroyFile"},
FunctionInfo{102, nullptr, "ImportFile"},
FunctionInfo{103, nullptr, "ExportFile"},
FunctionInfo{104, nullptr, "ForceInitialize"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -356,6 +342,23 @@ private:
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, D<&IImageDatabaseService::Initialize>, "Initialize"},
FunctionInfo{10, nullptr, "Reload"},
FunctionInfo{11, D<&IImageDatabaseService::GetCount>, "GetCount"},
FunctionInfo{12, nullptr, "IsEmpty"},
FunctionInfo{13, nullptr, "IsFull"},
FunctionInfo{14, nullptr, "GetAttribute"},
FunctionInfo{15, nullptr, "LoadImage"},
FunctionInfo{16, nullptr, "AddOrUpdateImage"},
FunctionInfo{17, nullptr, "DeleteImages"},
FunctionInfo{100, nullptr, "DeleteFile"},
FunctionInfo{101, nullptr, "DestroyFile"},
FunctionInfo{102, nullptr, "ImportFile"},
FunctionInfo{103, nullptr, "ExportFile"},
FunctionInfo{104, nullptr, "ForceInitialize"}
);
};
void LoopProcess(Core::System& system) {
+11 -10
View File
@@ -52,16 +52,7 @@ public:
explicit MM_U(Core::System& system_) : ServiceFramework{system_, "mm:u"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &MM_U::InitializeOld, "InitializeOld"},
FunctionInfo{1, &MM_U::FinalizeOld, "FinalizeOld"},
FunctionInfo{2, &MM_U::SetAndWaitOld, "SetAndWaitOld"},
FunctionInfo{3, &MM_U::GetOld, "GetOld"},
FunctionInfo{4, &MM_U::Initialize, "Initialize"},
FunctionInfo{5, &MM_U::Finalize, "Finalize"},
FunctionInfo{6, &MM_U::SetAndWait, "SetAndWait"},
FunctionInfo{7, &MM_U::Get, "Get"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -210,6 +201,16 @@ private:
rb.Push<u32>(0);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &MM_U::InitializeOld, "InitializeOld"},
FunctionInfo{1, &MM_U::FinalizeOld, "FinalizeOld"},
FunctionInfo{2, &MM_U::SetAndWaitOld, "SetAndWaitOld"},
FunctionInfo{3, &MM_U::GetOld, "GetOld"},
FunctionInfo{4, &MM_U::Initialize, "Initialize"},
FunctionInfo{5, &MM_U::Finalize, "Finalize"},
FunctionInfo{6, &MM_U::SetAndWait, "SetAndWait"},
FunctionInfo{7, &MM_U::Get, "Get"}
);
std::vector<Session> sessions;
u32 request_id{1};
};
+12 -8
View File
@@ -17,10 +17,7 @@ public:
explicit MNPP_APP(Core::System& system_) : ServiceFramework{system_, "mnpp:app"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &MNPP_APP::Cmd0, "Cmd0"},
FunctionInfo{1, &MNPP_APP::Cmd1, "Cmd1"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -37,14 +34,18 @@ private:
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &MNPP_APP::Cmd0, "Cmd0"},
FunctionInfo{1, &MNPP_APP::Cmd1, "Cmd1"}
);
};
class MNPP_SYS final : public ServiceFramework<MNPP_SYS> {
public:
explicit MNPP_SYS(Core::System& system_) : ServiceFramework{system_, "mnpp:sys"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "Cmd0"},
FunctionInfo{10, nullptr, "Cmd10"},
FunctionInfo{100, nullptr, "Cmd100"},
@@ -52,6 +53,8 @@ public:
FunctionInfo{300, nullptr, "Cmd300"},
FunctionInfo{400, nullptr, "Cmd400"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -59,14 +62,15 @@ class MNPP_WEB final : public ServiceFramework<MNPP_WEB> {
public:
explicit MNPP_WEB(Core::System& system_) : ServiceFramework{system_, "mnpp:web"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "Cmd0"},
FunctionInfo{1, nullptr, "Cmd1"},
FunctionInfo{10, nullptr, "Cmd10"},
FunctionInfo{20, nullptr, "Cmd20"},
FunctionInfo{100, nullptr, "Cmd100"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+48 -40
View File
@@ -26,8 +26,7 @@ public:
explicit ILocationResolver(Core::System& system_, FileSys::StorageId id)
: ServiceFramework{system_, "ILocationResolver"}, storage{id} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "ResolveProgramPath"},
FunctionInfo{1, nullptr, "RedirectProgramPath"},
FunctionInfo{2, nullptr, "ResolveApplicationControlPath"},
@@ -49,6 +48,8 @@ public:
FunctionInfo{18, nullptr, "RedirectApplicationProgramPathForDebug"},
FunctionInfo{19, nullptr, "EraseProgramRedirectionForDebug"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -60,8 +61,7 @@ public:
explicit IRegisteredLocationResolver(Core::System& system_)
: ServiceFramework{system_, "IRegisteredLocationResolver"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "ResolveProgramPath"},
FunctionInfo{1, nullptr, "RegisterProgramPath"},
FunctionInfo{2, nullptr, "UnregisterProgramPath"},
@@ -73,6 +73,8 @@ public:
FunctionInfo{8, nullptr, "Refresh"},
FunctionInfo{9, nullptr, "RefreshExcluding"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -81,14 +83,15 @@ public:
explicit IAddOnContentLocationResolver(Core::System& system_)
: ServiceFramework{system_, "IAddOnContentLocationResolver"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "ResolveAddOnContentPath"},
FunctionInfo{1, nullptr, "RegisterAddOnContentStorage"},
FunctionInfo{2, nullptr, "UnregisterAllAddOnContentPath"},
FunctionInfo{3, nullptr, "RefreshApplicationAddOnContent"},
FunctionInfo{4, nullptr, "UnregisterApplicationAddOnContent"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -98,14 +101,7 @@ public:
: ServiceFramework{system_, "IContentStorage"}, storage{id} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IContentStorage::GeneratePlaceHolderId, "GeneratePlaceHolderId"},
FunctionInfo{1, &IContentStorage::CreatePlaceHolder, "CreatePlaceHolder"},
FunctionInfo{2, &IContentStorage::DeletePlaceHolder, "DeletePlaceHolder"},
FunctionInfo{4, &IContentStorage::WritePlaceHolder, "WritePlaceHolder"},
FunctionInfo{5, &IContentStorage::Register, "Register"},
FunctionInfo{6, &IContentStorage::Delete, "Delete"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -244,6 +240,14 @@ private:
rb.Push(succeeded ? ResultSuccess : ResultUnknown);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IContentStorage::GeneratePlaceHolderId, "GeneratePlaceHolderId"},
FunctionInfo{1, &IContentStorage::CreatePlaceHolder, "CreatePlaceHolder"},
FunctionInfo{2, &IContentStorage::DeletePlaceHolder, "DeletePlaceHolder"},
FunctionInfo{4, &IContentStorage::WritePlaceHolder, "WritePlaceHolder"},
FunctionInfo{5, &IContentStorage::Register, "Register"},
FunctionInfo{6, &IContentStorage::Delete, "Delete"}
);
FileSys::StorageId storage;
};
@@ -253,12 +257,7 @@ public:
: ServiceFramework{system_, "IContentMetaDatabase"}, storage{id} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IContentMetaDatabase::Set, "Set"},
FunctionInfo{2, &IContentMetaDatabase::Remove, "Remove"},
FunctionInfo{8, &IContentMetaDatabase::Has, "Has"},
FunctionInfo{15, &IContentMetaDatabase::Commit, "Commit"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -346,6 +345,12 @@ private:
rb.Push(ResultSuccess);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IContentMetaDatabase::Set, "Set"},
FunctionInfo{2, &IContentMetaDatabase::Remove, "Remove"},
FunctionInfo{8, &IContentMetaDatabase::Has, "Has"},
FunctionInfo{15, &IContentMetaDatabase::Commit, "Commit"}
);
FileSys::StorageId storage;
std::vector<ContentMetaKey> entries;
};
@@ -354,13 +359,14 @@ class LR final : public ServiceFramework<LR> {
public:
explicit LR(Core::System& system_) : ServiceFramework{system_, "lr"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "OpenLocationResolver"},
FunctionInfo{1, nullptr, "OpenRegisteredLocationResolver"},
FunctionInfo{2, nullptr, "RefreshLocationResolver"},
FunctionInfo{3, nullptr, "OpenAddOnContentLocationResolver"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -369,24 +375,7 @@ public:
explicit NCM(Core::System& system_) : ServiceFramework{system_, "ncm"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "CreateContentStorage"},
FunctionInfo{1, nullptr, "CreateContentMetaDatabase"},
FunctionInfo{2, nullptr, "VerifyContentStorage"},
FunctionInfo{3, nullptr, "VerifyContentMetaDatabase"},
FunctionInfo{4, &NCM::OpenContentStorage, "OpenContentStorage"},
FunctionInfo{5, &NCM::OpenContentMetaDatabase, "OpenContentMetaDatabase"},
FunctionInfo{6, nullptr, "CloseContentStorageForcibly"},
FunctionInfo{7, nullptr, "CloseContentMetaDatabaseForcibly"},
FunctionInfo{8, nullptr, "CleanupContentMetaDatabase"},
FunctionInfo{9, nullptr, "ActivateContentStorage"},
FunctionInfo{10, nullptr, "InactivateContentStorage"},
FunctionInfo{11, nullptr, "ActivateContentMetaDatabase"},
FunctionInfo{12, nullptr, "InactivateContentMetaDatabase"},
FunctionInfo{13, nullptr, "InvalidateRightsIdCache"},
FunctionInfo{14, nullptr, "GetMemoryReport"},
FunctionInfo{15, nullptr, "ActivateFsContentStorage"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -411,6 +400,25 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<IContentMetaDatabase>(ctx, system, storage_id);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "CreateContentStorage"},
FunctionInfo{1, nullptr, "CreateContentMetaDatabase"},
FunctionInfo{2, nullptr, "VerifyContentStorage"},
FunctionInfo{3, nullptr, "VerifyContentMetaDatabase"},
FunctionInfo{4, &NCM::OpenContentStorage, "OpenContentStorage"},
FunctionInfo{5, &NCM::OpenContentMetaDatabase, "OpenContentMetaDatabase"},
FunctionInfo{6, nullptr, "CloseContentStorageForcibly"},
FunctionInfo{7, nullptr, "CloseContentMetaDatabaseForcibly"},
FunctionInfo{8, nullptr, "CleanupContentMetaDatabase"},
FunctionInfo{9, nullptr, "ActivateContentStorage"},
FunctionInfo{10, nullptr, "InactivateContentStorage"},
FunctionInfo{11, nullptr, "ActivateContentMetaDatabase"},
FunctionInfo{12, nullptr, "InactivateContentMetaDatabase"},
FunctionInfo{13, nullptr, "InvalidateRightsIdCache"},
FunctionInfo{14, nullptr, "GetMemoryReport"},
FunctionInfo{15, nullptr, "ActivateFsContentStorage"}
);
};
class NCM_V final : public ServiceFramework<NCM_V> {
+26 -17
View File
@@ -112,12 +112,13 @@ class IAm final : public ServiceFramework<IAm> {
public:
explicit IAm(Core::System& system_) : ServiceFramework{system_, "NFC::IAm"} {}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "Initialize"},
FunctionInfo{1, nullptr, "Finalize"},
FunctionInfo{2, nullptr, "NotifyForegroundApplet"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "Initialize"},
FunctionInfo{1, nullptr, "Finalize"},
FunctionInfo{2, nullptr, "NotifyForegroundApplet"}
);
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -126,9 +127,7 @@ public:
explicit NFC_AM(Core::System& system_) : ServiceFramework{system_, "nfc:am"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &NFC_AM::CreateAmNfcInterface, "CreateAmNfcInterface"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -139,6 +138,10 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<IAm>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &NFC_AM::CreateAmNfcInterface, "CreateAmNfcInterface"}
);
};
class NFC_MF_U final : public ServiceFramework<NFC_MF_U> {
@@ -146,9 +149,7 @@ public:
explicit NFC_MF_U(Core::System& system_) : ServiceFramework{system_, "nfc:mf:u"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &NFC_MF_U::CreateUserNfcInterface, "CreateUserNfcInterface"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -159,6 +160,10 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<MFIUser>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &NFC_MF_U::CreateUserNfcInterface, "CreateUserNfcInterface"}
);
};
class NFC_U final : public ServiceFramework<NFC_U> {
@@ -166,9 +171,7 @@ public:
explicit NFC_U(Core::System& system_) : ServiceFramework{system_, "nfc:user"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &NFC_U::CreateUserNfcInterface, "CreateUserNfcInterface"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -179,6 +182,10 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<IUser>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &NFC_U::CreateUserNfcInterface, "CreateUserNfcInterface"}
);
};
class NFC_SYS final : public ServiceFramework<NFC_SYS> {
@@ -186,9 +193,7 @@ public:
explicit NFC_SYS(Core::System& system_) : ServiceFramework{system_, "nfc:sys"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &NFC_SYS::CreateSystemNfcInterface, "CreateSystemNfcInterface"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -199,6 +204,10 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<ISystem>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &NFC_SYS::CreateSystemNfcInterface, "CreateSystemNfcInterface"}
);
};
void LoopProcess(Core::System& system) {
+15 -9
View File
@@ -138,9 +138,7 @@ public:
explicit IUserManager(Core::System& system_) : ServiceFramework{system_, "nfp:user"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IUserManager::CreateUserInterface, "CreateUserInterface"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -151,6 +149,10 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<IUser>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IUserManager::CreateUserInterface, "CreateUserInterface"}
);
};
class ISystemManager final : public ServiceFramework<ISystemManager> {
@@ -158,9 +160,7 @@ public:
explicit ISystemManager(Core::System& system_) : ServiceFramework{system_, "nfp:sys"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &ISystemManager::CreateSystemInterface, "CreateSystemInterface"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -171,6 +171,10 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<ISystem>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &ISystemManager::CreateSystemInterface, "CreateSystemInterface"}
);
};
class IDebugManager final : public ServiceFramework<IDebugManager> {
@@ -178,9 +182,7 @@ public:
explicit IDebugManager(Core::System& system_) : ServiceFramework{system_, "nfp:dbg"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IDebugManager::CreateDebugInterface, "CreateDebugInterface"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -191,6 +193,10 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<IDebug>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IDebugManager::CreateDebugInterface, "CreateDebugInterface"}
);
};
void LoopProcess(Core::System& system) {
+54 -41
View File
@@ -24,10 +24,7 @@ public:
explicit IService(Core::System& system_) : ServiceFramework{system_, "ngct:u"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IService::Match, "Match"},
FunctionInfo{1, &IService::Filter, "Filter"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -59,6 +56,11 @@ private:
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IService::Match, "Match"},
FunctionInfo{1, &IService::Filter, "Filter"}
);
};
class NgcServiceImpl final : public ServiceFramework<NgcServiceImpl> {
@@ -66,14 +68,7 @@ public:
explicit NgcServiceImpl(Core::System& system_) : ServiceFramework(system_, "ngc:u") {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &NgcServiceImpl::GetContentVersion, "GetContentVersion"},
FunctionInfo{1, &NgcServiceImpl::Check, "Check"},
FunctionInfo{2, &NgcServiceImpl::Mask, "Mask"},
FunctionInfo{3, &NgcServiceImpl::Reload, "Reload"},
FunctionInfo{4, &NgcServiceImpl::Check, "Check2"},
FunctionInfo{5, &NgcServiceImpl::Mask, "Mask2"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -146,14 +141,22 @@ private:
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &NgcServiceImpl::GetContentVersion, "GetContentVersion"},
FunctionInfo{1, &NgcServiceImpl::Check, "Check"},
FunctionInfo{2, &NgcServiceImpl::Mask, "Mask"},
FunctionInfo{3, &NgcServiceImpl::Reload, "Reload"},
FunctionInfo{4, &NgcServiceImpl::Check, "Check2"},
FunctionInfo{5, &NgcServiceImpl::Mask, "Mask2"}
);
};
class IServiceWithManagementApi final : public ServiceFramework<IServiceWithManagementApi> {
public:
explicit IServiceWithManagementApi(Core::System& system_) : ServiceFramework(system_, "ngct:s") {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "Match"},
FunctionInfo{1, nullptr, "Filter"},
FunctionInfo{100, nullptr, "ConfigureAutoUpdateSetting"},
@@ -164,6 +167,8 @@ public:
FunctionInfo{120, nullptr, "CalculateContentFingerprint"},
FunctionInfo{130, nullptr, "TryEnableTemporalPassThrough"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -177,16 +182,7 @@ public:
explicit IUserShimScopedObject(Core::System& system_) : ServiceFramework(system_, "IUserShimScopedObject") {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{450, nullptr, "InitializeForSaveData"},
FunctionInfo{451, nullptr, "FinalizeForSaveData"},
FunctionInfo{452, D<&IUserShimScopedObject::OpenSaveData>, "OpenSaveData"},
FunctionInfo{453, nullptr, "CloseSaveData"},
FunctionInfo{454, D<&IUserShimScopedObject::ReadSaveSlot>, "ReadSaveSlot"},
FunctionInfo{455, D<&IUserShimScopedObject::WriteSaveSlot>, "WriteSaveSlot"},
FunctionInfo{456, nullptr, "FlushSaveSlot"},
FunctionInfo{457, nullptr, "CommitSaveData"}
);
return HandlerTableGenerateWithFind(key, functions);
}
Result OpenSaveData(Account::Uid unk0, Out<SaveDataHandle> unk1) {
@@ -204,6 +200,17 @@ public:
// to implement
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{450, nullptr, "InitializeForSaveData"},
FunctionInfo{451, nullptr, "FinalizeForSaveData"},
FunctionInfo{452, D<&IUserShimScopedObject::OpenSaveData>, "OpenSaveData"},
FunctionInfo{453, nullptr, "CloseSaveData"},
FunctionInfo{454, D<&IUserShimScopedObject::ReadSaveSlot>, "ReadSaveSlot"},
FunctionInfo{455, D<&IUserShimScopedObject::WriteSaveSlot>, "WriteSaveSlot"},
FunctionInfo{456, nullptr, "FlushSaveSlot"},
FunctionInfo{457, nullptr, "CommitSaveData"}
);
};
class IUserService final : public ServiceFramework<IUserService> {
@@ -211,15 +218,17 @@ public:
explicit IUserService(Core::System& system_) : ServiceFramework(system_, "stpl:u") {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, D<&IUserService::Cmd0>, "Cmd0"}
);
return HandlerTableGenerateWithFind(key, functions);
}
Result Cmd0(u32 unk0, OutInterface<IUserShimScopedObject> out_interface) {
LOG_WARNING(Service_NGC, "stubbed");
*out_interface = std::make_shared<IUserShimScopedObject>(system);
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, D<&IUserService::Cmd0>, "Cmd0"}
);
};
class ISystemShimScopedObject final : public ServiceFramework<ISystemShimScopedObject> {
@@ -227,17 +236,7 @@ public:
explicit ISystemShimScopedObject(Core::System& system_) : ServiceFramework(system_, "ISystemShimScopedObject") {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{106, nullptr, "Cmd106"},
FunctionInfo{107, nullptr, "Cmd107"},
FunctionInfo{108, D<&ISystemShimScopedObject::Cmd108>, "Cmd108"},
FunctionInfo{207, nullptr, "Cmd207"},
FunctionInfo{208, D<&ISystemShimScopedObject::Cmd208>, "Cmd208"},
FunctionInfo{209, nullptr, "Cmd209"},
FunctionInfo{210, nullptr, "Cmd210"},
FunctionInfo{211, nullptr, "Cmd211"},
FunctionInfo{212, nullptr, "Cmd212"}
);
return HandlerTableGenerateWithFind(key, functions);
}
Result Cmd108() {
@@ -249,6 +248,18 @@ public:
LOG_WARNING(Service_NGC, "stubbed");
R_THROW(IPC::ResultNotSupported);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{106, nullptr, "Cmd106"},
FunctionInfo{107, nullptr, "Cmd107"},
FunctionInfo{108, D<&ISystemShimScopedObject::Cmd108>, "Cmd108"},
FunctionInfo{207, nullptr, "Cmd207"},
FunctionInfo{208, D<&ISystemShimScopedObject::Cmd208>, "Cmd208"},
FunctionInfo{209, nullptr, "Cmd209"},
FunctionInfo{210, nullptr, "Cmd210"},
FunctionInfo{211, nullptr, "Cmd211"},
FunctionInfo{212, nullptr, "Cmd212"}
);
};
class ISystemService final : public ServiceFramework<ISystemService> {
@@ -256,15 +267,17 @@ public:
explicit ISystemService(Core::System& system_) : ServiceFramework(system_, "stpl:sys") {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, D<&ISystemService::Cmd0>, "Cmd0"}
);
return HandlerTableGenerateWithFind(key, functions);
}
Result Cmd0(OutInterface<ISystemShimScopedObject> out_interface) {
LOG_WARNING(Service_NGC, "stubbed");
*out_interface = std::make_shared<ISystemShimScopedObject>(system);
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, D<&ISystemService::Cmd0>, "Cmd0"}
);
};
void LoopProcess(Core::System& system) {
+275 -265
View File
@@ -30,14 +30,7 @@ public:
}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, D<&IShopServiceAsync::Cancel>, "Cancel"},
FunctionInfo{1, D<&IShopServiceAsync::GetSize>, "GetSize"},
FunctionInfo{2, D<&IShopServiceAsync::Read>, "Read"},
FunctionInfo{3, D<&IShopServiceAsync::GetErrorCode>, "GetErrorCode"},
FunctionInfo{4, D<&IShopServiceAsync::Request>, "Request"},
FunctionInfo{5, D<&IShopServiceAsync::Prepare>, "Prepare"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~IShopServiceAsync() override {
@@ -50,15 +43,6 @@ public:
}
private:
KernelHelpers::ServiceContext service_context;
Kernel::KEvent* completion_event;
std::jthread worker;
std::atomic<u32> error_code{0};
std::mutex data_mutex;
std::vector<u8> download_data;
void CancelImpl() {
worker.request_stop();
if (worker.joinable()) {
@@ -134,6 +118,21 @@ private:
}
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, D<&IShopServiceAsync::Cancel>, "Cancel"},
FunctionInfo{1, D<&IShopServiceAsync::GetSize>, "GetSize"},
FunctionInfo{2, D<&IShopServiceAsync::Read>, "Read"},
FunctionInfo{3, D<&IShopServiceAsync::GetErrorCode>, "GetErrorCode"},
FunctionInfo{4, D<&IShopServiceAsync::Request>, "Request"},
FunctionInfo{5, D<&IShopServiceAsync::Prepare>, "Prepare"}
);
KernelHelpers::ServiceContext service_context;
Kernel::KEvent* completion_event;
std::jthread worker;
std::atomic<u32> error_code{0};
std::mutex data_mutex;
std::vector<u8> download_data;
};
class IShopServiceAccessor final : public ServiceFramework<IShopServiceAccessor> {
@@ -142,9 +141,7 @@ public:
: ServiceFramework{system_, "IShopServiceAccessor"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IShopServiceAccessor::CreateAsyncInterface, "CreateAsyncInterface"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -156,6 +153,10 @@ private:
rb.PushCopyObjects(ctx, async_interface->GetEvent());
rb.PushIpcInterface<IShopServiceAsync>(ctx, std::move(async_interface));
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IShopServiceAccessor::CreateAsyncInterface, "CreateAsyncInterface"}
);
};
class IShopServiceAccessServer final : public ServiceFramework<IShopServiceAccessServer> {
@@ -164,9 +165,7 @@ public:
: ServiceFramework{system_, "IShopServiceAccessServer"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IShopServiceAccessServer::CreateAccessorInterface, "CreateAccessorInterface"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -176,238 +175,243 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<IShopServiceAccessor>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IShopServiceAccessServer::CreateAccessorInterface, "CreateAccessorInterface"}
);
};
class NIM final : public ServiceFramework<NIM> {
public:
explicit NIM(Core::System& system_) : ServiceFramework{system_, "nim"} {}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "CreateSystemUpdateTask"},
FunctionInfo{1, nullptr, "DestroySystemUpdateTask"},
FunctionInfo{2, nullptr, "ListSystemUpdateTask"},
FunctionInfo{3, nullptr, "RequestSystemUpdateTaskRun"},
FunctionInfo{4, nullptr, "GetSystemUpdateTaskInfo"},
FunctionInfo{5, nullptr, "CommitSystemUpdateTask"},
FunctionInfo{6, nullptr, "CreateNetworkInstallTask"},
FunctionInfo{7, nullptr, "DestroyNetworkInstallTask"},
FunctionInfo{8, nullptr, "ListNetworkInstallTask"},
FunctionInfo{9, nullptr, "RequestNetworkInstallTaskRun"},
FunctionInfo{10, nullptr, "GetNetworkInstallTaskInfo"},
FunctionInfo{11, nullptr, "CommitNetworkInstallTask"},
FunctionInfo{12, nullptr, "RequestLatestSystemUpdateMeta"},
FunctionInfo{14, nullptr, "ListApplicationNetworkInstallTask"},
FunctionInfo{15, nullptr, "ListNetworkInstallTaskContentMeta"},
FunctionInfo{16, nullptr, "RequestLatestVersion"},
FunctionInfo{17, nullptr, "SetNetworkInstallTaskAttribute"},
FunctionInfo{18, nullptr, "AddNetworkInstallTaskContentMeta"},
FunctionInfo{19, nullptr, "GetDownloadedSystemDataPath"},
FunctionInfo{20, nullptr, "CalculateNetworkInstallTaskRequiredSize"},
FunctionInfo{21, nullptr, "IsExFatDriverIncluded"},
FunctionInfo{22, nullptr, "GetBackgroundDownloadStressTaskInfo"},
FunctionInfo{23, nullptr, "RequestDeviceAuthenticationToken"},
FunctionInfo{24, nullptr, "RequestGameCardRegistrationStatus"},
FunctionInfo{25, nullptr, "RequestRegisterGameCard"},
FunctionInfo{26, nullptr, "RequestRegisterNotificationToken"},
FunctionInfo{27, nullptr, "RequestDownloadTaskList"},
FunctionInfo{28, nullptr, "RequestApplicationControl"},
FunctionInfo{29, nullptr, "RequestLatestApplicationControl"},
FunctionInfo{30, nullptr, "RequestVersionList"},
FunctionInfo{31, nullptr, "CreateApplyDeltaTask"},
FunctionInfo{32, nullptr, "DestroyApplyDeltaTask"},
FunctionInfo{33, nullptr, "ListApplicationApplyDeltaTask"},
FunctionInfo{34, nullptr, "RequestApplyDeltaTaskRun"},
FunctionInfo{35, nullptr, "GetApplyDeltaTaskInfo"},
FunctionInfo{36, nullptr, "ListApplyDeltaTask"},
FunctionInfo{37, nullptr, "CommitApplyDeltaTask"},
FunctionInfo{38, nullptr, "CalculateApplyDeltaTaskRequiredSize"},
FunctionInfo{39, nullptr, "PrepareShutdown"},
FunctionInfo{40, nullptr, "ListApplyDeltaTask"},
FunctionInfo{41, nullptr, "ClearNotEnoughSpaceStateOfApplyDeltaTask"},
FunctionInfo{42, nullptr, "CreateApplyDeltaTaskFromDownloadTask"},
FunctionInfo{43, nullptr, "GetBackgroundApplyDeltaStressTaskInfo"},
FunctionInfo{44, nullptr, "GetApplyDeltaTaskRequiredStorage"},
FunctionInfo{45, nullptr, "CalculateNetworkInstallTaskContentsSize"},
FunctionInfo{46, nullptr, "PrepareShutdownForSystemUpdate"},
FunctionInfo{47, nullptr, "FindMaxRequiredApplicationVersionOfTask"},
FunctionInfo{48, nullptr, "CommitNetworkInstallTaskPartially"},
FunctionInfo{49, nullptr, "ListNetworkInstallTaskCommittedContentMeta"},
FunctionInfo{50, nullptr, "ListNetworkInstallTaskNotCommittedContentMeta"},
FunctionInfo{51, nullptr, "FindMaxRequiredSystemVersionOfTask"},
FunctionInfo{52, nullptr, "GetNetworkInstallTaskErrorContext"},
FunctionInfo{53, nullptr, "CreateLocalCommunicationReceiveApplicationTask"},
FunctionInfo{54, nullptr, "DestroyLocalCommunicationReceiveApplicationTask"},
FunctionInfo{55, nullptr, "ListLocalCommunicationReceiveApplicationTask"},
FunctionInfo{56, nullptr, "RequestLocalCommunicationReceiveApplicationTaskRun"},
FunctionInfo{57, nullptr, "GetLocalCommunicationReceiveApplicationTaskInfo"},
FunctionInfo{58, nullptr, "CommitLocalCommunicationReceiveApplicationTask"},
FunctionInfo{59, nullptr, "ListLocalCommunicationReceiveApplicationTaskContentMeta"},
FunctionInfo{60, nullptr, "CreateLocalCommunicationSendApplicationTask"},
FunctionInfo{61, nullptr, "RequestLocalCommunicationSendApplicationTaskRun"},
FunctionInfo{62, nullptr, "GetLocalCommunicationReceiveApplicationTaskErrorContext"},
FunctionInfo{63, nullptr, "GetLocalCommunicationSendApplicationTaskInfo"},
FunctionInfo{64, nullptr, "DestroyLocalCommunicationSendApplicationTask"},
FunctionInfo{65, nullptr, "GetLocalCommunicationSendApplicationTaskErrorContext"},
FunctionInfo{66, nullptr, "CalculateLocalCommunicationReceiveApplicationTaskRequiredSize"},
FunctionInfo{67, nullptr, "ListApplicationLocalCommunicationReceiveApplicationTask"},
FunctionInfo{68, nullptr, "ListApplicationLocalCommunicationSendApplicationTask"},
FunctionInfo{69, nullptr, "CreateLocalCommunicationReceiveSystemUpdateTask"},
FunctionInfo{70, nullptr, "DestroyLocalCommunicationReceiveSystemUpdateTask"},
FunctionInfo{71, nullptr, "ListLocalCommunicationReceiveSystemUpdateTask"},
FunctionInfo{72, nullptr, "RequestLocalCommunicationReceiveSystemUpdateTaskRun"},
FunctionInfo{73, nullptr, "GetLocalCommunicationReceiveSystemUpdateTaskInfo"},
FunctionInfo{74, nullptr, "CommitLocalCommunicationReceiveSystemUpdateTask"},
FunctionInfo{75, nullptr, "GetLocalCommunicationReceiveSystemUpdateTaskErrorContext"},
FunctionInfo{76, nullptr, "CreateLocalCommunicationSendSystemUpdateTask"},
FunctionInfo{77, nullptr, "RequestLocalCommunicationSendSystemUpdateTaskRun"},
FunctionInfo{78, nullptr, "GetLocalCommunicationSendSystemUpdateTaskInfo"},
FunctionInfo{79, nullptr, "DestroyLocalCommunicationSendSystemUpdateTask"},
FunctionInfo{80, nullptr, "GetLocalCommunicationSendSystemUpdateTaskErrorContext"},
FunctionInfo{81, nullptr, "ListLocalCommunicationSendSystemUpdateTask"},
FunctionInfo{82, nullptr, "GetReceivedSystemDataPath"},
FunctionInfo{83, nullptr, "CalculateApplyDeltaTaskOccupiedSize"},
FunctionInfo{84, nullptr, "ReloadErrorSimulation"},
FunctionInfo{85, nullptr, "ListNetworkInstallTaskContentMetaFromInstallMeta"},
FunctionInfo{86, nullptr, "ListNetworkInstallTaskOccupiedSize"},
FunctionInfo{87, nullptr, "RequestQueryAvailableELicenses"},
FunctionInfo{88, nullptr, "RequestAssignELicenses"},
FunctionInfo{89, nullptr, "RequestExtendELicenses"},
FunctionInfo{90, nullptr, "RequestSyncELicenses"},
FunctionInfo{91, nullptr, "Unknown91"}, //6.0.0-14.1.2
FunctionInfo{92, nullptr, "Unknown92"}, //21.0.0+
FunctionInfo{93, nullptr, "RequestReportActiveELicenses"},
FunctionInfo{94, nullptr, "RequestReportActiveELicensesPassively"},
FunctionInfo{95, nullptr, "RequestRegisterDynamicRightsNotificationToken"},
FunctionInfo{96, nullptr, "RequestAssignAllDeviceLinkedELicenses"},
FunctionInfo{97, nullptr, "RequestRevokeAllELicenses"},
FunctionInfo{98, nullptr, "RequestPrefetchForDynamicRights"},
FunctionInfo{99, nullptr, "CreateNetworkInstallTask"},
FunctionInfo{100, nullptr, "ListNetworkInstallTaskRightsIds"},
FunctionInfo{101, nullptr, "RequestDownloadETickets"},
FunctionInfo{102, nullptr, "RequestQueryDownloadableContents"},
FunctionInfo{103, nullptr, "DeleteNetworkInstallTaskContentMeta"},
FunctionInfo{104, nullptr, "RequestIssueEdgeTokenForDebug"},
FunctionInfo{105, nullptr, "RequestQueryAvailableELicenses2"},
FunctionInfo{106, nullptr, "RequestAssignELicenses2"},
FunctionInfo{107, nullptr, "GetNetworkInstallTaskStateCounter"},
FunctionInfo{108, nullptr, "InvalidateDynamicRightsNaIdTokenCacheForDebug"},
FunctionInfo{109, nullptr, "ListNetworkInstallTaskPartialInstallContentMeta"},
FunctionInfo{110, nullptr, "ListNetworkInstallTaskRightsIdsFromIndex"},
FunctionInfo{111, nullptr, "AddNetworkInstallTaskContentMetaForUser"},
FunctionInfo{112, nullptr, "RequestAssignELicensesAndDownloadETickets"},
FunctionInfo{113, nullptr, "RequestQueryAvailableCommonELicenses"},
FunctionInfo{114, nullptr, "SetNetworkInstallTaskExtendedAttribute"},
FunctionInfo{115, nullptr, "GetNetworkInstallTaskExtendedAttribute"},
FunctionInfo{116, nullptr, "GetAllocatorInfo"},
FunctionInfo{117, nullptr, "RequestQueryDownloadableContentsByApplicationId"},
FunctionInfo{118, nullptr, "MarkNoDownloadRightsErrorResolved"},
FunctionInfo{119, nullptr, "GetApplyDeltaTaskAllAppliedContentMeta"},
FunctionInfo{120, nullptr, "PrioritizeNetworkInstallTask"},
FunctionInfo{121, nullptr, "RequestQueryAvailableCommonELicenses2"},
FunctionInfo{122, nullptr, "RequestAssignCommonELicenses"},
FunctionInfo{123, nullptr, "RequestAssignCommonELicenses2"},
FunctionInfo{124, nullptr, "IsNetworkInstallTaskFrontOfQueue"},
FunctionInfo{125, nullptr, "PrioritizeApplyDeltaTask"},
FunctionInfo{126, nullptr, "RerouteDownloadingPatch"},
FunctionInfo{127, nullptr, "UnmarkNoDownloadRightsErrorResolved"},
FunctionInfo{128, nullptr, "RequestContentsSize"},
FunctionInfo{129, nullptr, "RequestContentsAuthorizationToken"},
FunctionInfo{130, nullptr, "RequestCdnVendorDiscovery"},
FunctionInfo{131, nullptr, "RefreshDebugAvailability"},
FunctionInfo{132, nullptr, "ClearResponseSimulationEntry"},
FunctionInfo{133, nullptr, "RegisterResponseSimulationEntry"},
FunctionInfo{134, nullptr, "GetProcessedCdnVendors"},
FunctionInfo{135, nullptr, "RefreshRuntimeBehaviorsForDebug"},
FunctionInfo{136, nullptr, "RequestOnlineSubscriptionFreeTrialAvailability"},
FunctionInfo{137, nullptr, "GetNetworkInstallTaskContentMetaCount"},
FunctionInfo{138, nullptr, "RequestRevokeELicenses"},
FunctionInfo{139, nullptr, "EnableNetworkConnectionToUseApplicationCore"},
FunctionInfo{140, nullptr, "DisableNetworkConnectionToUseApplicationCore"},
FunctionInfo{141, nullptr, "IsNetworkConnectionEnabledToUseApplicationCore"},
FunctionInfo{142, nullptr, "RequestCheckSafeSystemVersion"},
FunctionInfo{143, nullptr, "RequestApplicationIcon"},
FunctionInfo{144, nullptr, "RequestDownloadIdbeIconFile"},
FunctionInfo{147, nullptr, "Unknown147"}, //18.0.0+
FunctionInfo{148, nullptr, "Unknown148"}, //18.0.0+
FunctionInfo{150, nullptr, "Unknown150"}, //19.0.0+
FunctionInfo{151, nullptr, "Unknown151"}, //20.0.0+
FunctionInfo{152, nullptr, "Unknown152"}, //20.0.0+
FunctionInfo{153, nullptr, "Unknown153"}, //20.0.0+
FunctionInfo{154, nullptr, "Unknown154"}, //20.0.0+
FunctionInfo{155, nullptr, "Unknown155"}, //20.0.0+
FunctionInfo{156, nullptr, "Unknown156"}, //20.0.0+
FunctionInfo{157, nullptr, "Unknown157"}, //20.0.0+
FunctionInfo{158, nullptr, "Unknown158"}, //20.0.0+
FunctionInfo{159, nullptr, "Unknown159"}, //20.0.0+
FunctionInfo{160, nullptr, "Unknown160"}, //20.0.0+
FunctionInfo{161, nullptr, "Unknown161"}, //20.0.0+
FunctionInfo{162, nullptr, "Unknown162"}, //20.0.0+
FunctionInfo{163, nullptr, "Unknown163"}, //20.0.0+
FunctionInfo{164, nullptr, "Unknown164"}, //20.0.0+
FunctionInfo{165, nullptr, "Unknown165"}, //20.0.0+
FunctionInfo{166, nullptr, "Unknown166"}, //20.0.0+
FunctionInfo{167, nullptr, "Unknown167"}, //20.0.0+
FunctionInfo{168, nullptr, "Unknown168"}, //20.0.0+
FunctionInfo{169, nullptr, "Unknown169"}, //20.0.0+
FunctionInfo{170, nullptr, "Unknown170"}, //20.0.0+
FunctionInfo{171, nullptr, "Unknown171"}, //20.0.0+
FunctionInfo{172, nullptr, "Unknown172"}, //20.0.0+
FunctionInfo{173, nullptr, "Unknown173"}, //20.0.0+
FunctionInfo{174, nullptr, "Unknown174"}, //20.0.0+
FunctionInfo{175, nullptr, "Unknown175"}, //20.0.0+
FunctionInfo{176, nullptr, "Unknown176"}, //20.0.0+
FunctionInfo{177, nullptr, "Unknown177"}, //20.0.0+
FunctionInfo{2000, nullptr, "Unknown2000"}, //20.0.0+
FunctionInfo{2001, nullptr, "Unknown2001"}, //20.0.0+
FunctionInfo{2002, nullptr, "Unknown2002"}, //20.0.0+
FunctionInfo{2003, nullptr, "Unknown2003"}, //20.0.0+
FunctionInfo{2004, nullptr, "Unknown2004"}, //20.0.0+
FunctionInfo{2007, nullptr, "Unknown2007"}, //20.0.0+
FunctionInfo{2011, nullptr, "Unknown2011"}, //20.0.0+
FunctionInfo{2012, nullptr, "Unknown2012"}, //20.0.0+
FunctionInfo{2013, nullptr, "Unknown2013"}, //20.0.0+
FunctionInfo{2014, nullptr, "Unknown2014"}, //20.0.0+
FunctionInfo{2015, nullptr, "Unknown2015"}, //20.0.0+
FunctionInfo{2016, nullptr, "Unknown2016"}, //20.0.0+
FunctionInfo{2017, nullptr, "Unknown2017"}, //20.0.0+
FunctionInfo{2018, nullptr, "Unknown2018"}, //20.0.0+
FunctionInfo{2019, nullptr, "Unknown2019"}, //20.0.0+
FunctionInfo{2020, nullptr, "Unknown2020"}, //20.0.0+
FunctionInfo{2021, nullptr, "Unknown2021"}, //20.0.0+
FunctionInfo{2022, nullptr, "Unknown2022"}, //20.0.0+
FunctionInfo{2023, nullptr, "Unknown2023"}, //20.0.0+
FunctionInfo{2024, nullptr, "Unknown2024"}, //20.0.0+
FunctionInfo{2025, nullptr, "Unknown2025"}, //20.0.0+
FunctionInfo{2026, nullptr, "Unknown2026"}, //20.0.0+
FunctionInfo{2027, nullptr, "Unknown2027"}, //20.0.0+
FunctionInfo{2028, nullptr, "Unknown2028"}, //20.0.0+
FunctionInfo{2029, nullptr, "Unknown2029"}, //20.0.0+
FunctionInfo{2030, nullptr, "Unknown2030"}, //20.0.0+
FunctionInfo{2031, nullptr, "Unknown2031"}, //20.0.0+
FunctionInfo{2032, nullptr, "Unknown2032"}, //20.0.0+
FunctionInfo{2033, nullptr, "Unknown2033"}, //20.0.0+
FunctionInfo{2034, nullptr, "Unknown2034"}, //20.0.0+
FunctionInfo{2035, nullptr, "Unknown2035"}, //20.0.0+
FunctionInfo{2036, nullptr, "Unknown2036"}, //20.0.0+
FunctionInfo{2037, nullptr, "Unknown2037"}, //20.0.0+
FunctionInfo{2038, nullptr, "Unknown2038"}, //20.0.0+
FunctionInfo{2039, nullptr, "Unknown2039"}, //20.0.0+
FunctionInfo{2040, nullptr, "Unknown2040"}, //20.0.0+
FunctionInfo{2041, nullptr, "Unknown2041"}, //20.0.0+
FunctionInfo{2042, nullptr, "Unknown2042"}, //20.0.0+
FunctionInfo{2043, nullptr, "Unknown2043"}, //20.0.0+
FunctionInfo{2044, nullptr, "Unknown2044"}, //20.0.0+
FunctionInfo{2045, nullptr, "Unknown2045"}, //20.0.0+
FunctionInfo{2046, nullptr, "Unknown2046"}, //20.0.0+
FunctionInfo{2047, nullptr, "Unknown2047"}, //20.0.0+
FunctionInfo{2048, nullptr, "Unknown2048"}, //20.0.0+
FunctionInfo{2049, nullptr, "Unknown2049"}, //20.0.0+
FunctionInfo{2050, nullptr, "Unknown2050"}, //20.0.0+
FunctionInfo{2051, nullptr, "Unknown2051"}, //20.0.0+
FunctionInfo{3000, nullptr, "RequestLatestApplicationIcon"}, //17.0.0+
FunctionInfo{3001, nullptr, "RequestDownloadIdbeLatestIconFile"} //17.0.0+
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "CreateSystemUpdateTask"},
FunctionInfo{1, nullptr, "DestroySystemUpdateTask"},
FunctionInfo{2, nullptr, "ListSystemUpdateTask"},
FunctionInfo{3, nullptr, "RequestSystemUpdateTaskRun"},
FunctionInfo{4, nullptr, "GetSystemUpdateTaskInfo"},
FunctionInfo{5, nullptr, "CommitSystemUpdateTask"},
FunctionInfo{6, nullptr, "CreateNetworkInstallTask"},
FunctionInfo{7, nullptr, "DestroyNetworkInstallTask"},
FunctionInfo{8, nullptr, "ListNetworkInstallTask"},
FunctionInfo{9, nullptr, "RequestNetworkInstallTaskRun"},
FunctionInfo{10, nullptr, "GetNetworkInstallTaskInfo"},
FunctionInfo{11, nullptr, "CommitNetworkInstallTask"},
FunctionInfo{12, nullptr, "RequestLatestSystemUpdateMeta"},
FunctionInfo{14, nullptr, "ListApplicationNetworkInstallTask"},
FunctionInfo{15, nullptr, "ListNetworkInstallTaskContentMeta"},
FunctionInfo{16, nullptr, "RequestLatestVersion"},
FunctionInfo{17, nullptr, "SetNetworkInstallTaskAttribute"},
FunctionInfo{18, nullptr, "AddNetworkInstallTaskContentMeta"},
FunctionInfo{19, nullptr, "GetDownloadedSystemDataPath"},
FunctionInfo{20, nullptr, "CalculateNetworkInstallTaskRequiredSize"},
FunctionInfo{21, nullptr, "IsExFatDriverIncluded"},
FunctionInfo{22, nullptr, "GetBackgroundDownloadStressTaskInfo"},
FunctionInfo{23, nullptr, "RequestDeviceAuthenticationToken"},
FunctionInfo{24, nullptr, "RequestGameCardRegistrationStatus"},
FunctionInfo{25, nullptr, "RequestRegisterGameCard"},
FunctionInfo{26, nullptr, "RequestRegisterNotificationToken"},
FunctionInfo{27, nullptr, "RequestDownloadTaskList"},
FunctionInfo{28, nullptr, "RequestApplicationControl"},
FunctionInfo{29, nullptr, "RequestLatestApplicationControl"},
FunctionInfo{30, nullptr, "RequestVersionList"},
FunctionInfo{31, nullptr, "CreateApplyDeltaTask"},
FunctionInfo{32, nullptr, "DestroyApplyDeltaTask"},
FunctionInfo{33, nullptr, "ListApplicationApplyDeltaTask"},
FunctionInfo{34, nullptr, "RequestApplyDeltaTaskRun"},
FunctionInfo{35, nullptr, "GetApplyDeltaTaskInfo"},
FunctionInfo{36, nullptr, "ListApplyDeltaTask"},
FunctionInfo{37, nullptr, "CommitApplyDeltaTask"},
FunctionInfo{38, nullptr, "CalculateApplyDeltaTaskRequiredSize"},
FunctionInfo{39, nullptr, "PrepareShutdown"},
FunctionInfo{40, nullptr, "ListApplyDeltaTask"},
FunctionInfo{41, nullptr, "ClearNotEnoughSpaceStateOfApplyDeltaTask"},
FunctionInfo{42, nullptr, "CreateApplyDeltaTaskFromDownloadTask"},
FunctionInfo{43, nullptr, "GetBackgroundApplyDeltaStressTaskInfo"},
FunctionInfo{44, nullptr, "GetApplyDeltaTaskRequiredStorage"},
FunctionInfo{45, nullptr, "CalculateNetworkInstallTaskContentsSize"},
FunctionInfo{46, nullptr, "PrepareShutdownForSystemUpdate"},
FunctionInfo{47, nullptr, "FindMaxRequiredApplicationVersionOfTask"},
FunctionInfo{48, nullptr, "CommitNetworkInstallTaskPartially"},
FunctionInfo{49, nullptr, "ListNetworkInstallTaskCommittedContentMeta"},
FunctionInfo{50, nullptr, "ListNetworkInstallTaskNotCommittedContentMeta"},
FunctionInfo{51, nullptr, "FindMaxRequiredSystemVersionOfTask"},
FunctionInfo{52, nullptr, "GetNetworkInstallTaskErrorContext"},
FunctionInfo{53, nullptr, "CreateLocalCommunicationReceiveApplicationTask"},
FunctionInfo{54, nullptr, "DestroyLocalCommunicationReceiveApplicationTask"},
FunctionInfo{55, nullptr, "ListLocalCommunicationReceiveApplicationTask"},
FunctionInfo{56, nullptr, "RequestLocalCommunicationReceiveApplicationTaskRun"},
FunctionInfo{57, nullptr, "GetLocalCommunicationReceiveApplicationTaskInfo"},
FunctionInfo{58, nullptr, "CommitLocalCommunicationReceiveApplicationTask"},
FunctionInfo{59, nullptr, "ListLocalCommunicationReceiveApplicationTaskContentMeta"},
FunctionInfo{60, nullptr, "CreateLocalCommunicationSendApplicationTask"},
FunctionInfo{61, nullptr, "RequestLocalCommunicationSendApplicationTaskRun"},
FunctionInfo{62, nullptr, "GetLocalCommunicationReceiveApplicationTaskErrorContext"},
FunctionInfo{63, nullptr, "GetLocalCommunicationSendApplicationTaskInfo"},
FunctionInfo{64, nullptr, "DestroyLocalCommunicationSendApplicationTask"},
FunctionInfo{65, nullptr, "GetLocalCommunicationSendApplicationTaskErrorContext"},
FunctionInfo{66, nullptr, "CalculateLocalCommunicationReceiveApplicationTaskRequiredSize"},
FunctionInfo{67, nullptr, "ListApplicationLocalCommunicationReceiveApplicationTask"},
FunctionInfo{68, nullptr, "ListApplicationLocalCommunicationSendApplicationTask"},
FunctionInfo{69, nullptr, "CreateLocalCommunicationReceiveSystemUpdateTask"},
FunctionInfo{70, nullptr, "DestroyLocalCommunicationReceiveSystemUpdateTask"},
FunctionInfo{71, nullptr, "ListLocalCommunicationReceiveSystemUpdateTask"},
FunctionInfo{72, nullptr, "RequestLocalCommunicationReceiveSystemUpdateTaskRun"},
FunctionInfo{73, nullptr, "GetLocalCommunicationReceiveSystemUpdateTaskInfo"},
FunctionInfo{74, nullptr, "CommitLocalCommunicationReceiveSystemUpdateTask"},
FunctionInfo{75, nullptr, "GetLocalCommunicationReceiveSystemUpdateTaskErrorContext"},
FunctionInfo{76, nullptr, "CreateLocalCommunicationSendSystemUpdateTask"},
FunctionInfo{77, nullptr, "RequestLocalCommunicationSendSystemUpdateTaskRun"},
FunctionInfo{78, nullptr, "GetLocalCommunicationSendSystemUpdateTaskInfo"},
FunctionInfo{79, nullptr, "DestroyLocalCommunicationSendSystemUpdateTask"},
FunctionInfo{80, nullptr, "GetLocalCommunicationSendSystemUpdateTaskErrorContext"},
FunctionInfo{81, nullptr, "ListLocalCommunicationSendSystemUpdateTask"},
FunctionInfo{82, nullptr, "GetReceivedSystemDataPath"},
FunctionInfo{83, nullptr, "CalculateApplyDeltaTaskOccupiedSize"},
FunctionInfo{84, nullptr, "ReloadErrorSimulation"},
FunctionInfo{85, nullptr, "ListNetworkInstallTaskContentMetaFromInstallMeta"},
FunctionInfo{86, nullptr, "ListNetworkInstallTaskOccupiedSize"},
FunctionInfo{87, nullptr, "RequestQueryAvailableELicenses"},
FunctionInfo{88, nullptr, "RequestAssignELicenses"},
FunctionInfo{89, nullptr, "RequestExtendELicenses"},
FunctionInfo{90, nullptr, "RequestSyncELicenses"},
FunctionInfo{91, nullptr, "Unknown91"}, //6.0.0-14.1.2
FunctionInfo{92, nullptr, "Unknown92"}, //21.0.0+
FunctionInfo{93, nullptr, "RequestReportActiveELicenses"},
FunctionInfo{94, nullptr, "RequestReportActiveELicensesPassively"},
FunctionInfo{95, nullptr, "RequestRegisterDynamicRightsNotificationToken"},
FunctionInfo{96, nullptr, "RequestAssignAllDeviceLinkedELicenses"},
FunctionInfo{97, nullptr, "RequestRevokeAllELicenses"},
FunctionInfo{98, nullptr, "RequestPrefetchForDynamicRights"},
FunctionInfo{99, nullptr, "CreateNetworkInstallTask"},
FunctionInfo{100, nullptr, "ListNetworkInstallTaskRightsIds"},
FunctionInfo{101, nullptr, "RequestDownloadETickets"},
FunctionInfo{102, nullptr, "RequestQueryDownloadableContents"},
FunctionInfo{103, nullptr, "DeleteNetworkInstallTaskContentMeta"},
FunctionInfo{104, nullptr, "RequestIssueEdgeTokenForDebug"},
FunctionInfo{105, nullptr, "RequestQueryAvailableELicenses2"},
FunctionInfo{106, nullptr, "RequestAssignELicenses2"},
FunctionInfo{107, nullptr, "GetNetworkInstallTaskStateCounter"},
FunctionInfo{108, nullptr, "InvalidateDynamicRightsNaIdTokenCacheForDebug"},
FunctionInfo{109, nullptr, "ListNetworkInstallTaskPartialInstallContentMeta"},
FunctionInfo{110, nullptr, "ListNetworkInstallTaskRightsIdsFromIndex"},
FunctionInfo{111, nullptr, "AddNetworkInstallTaskContentMetaForUser"},
FunctionInfo{112, nullptr, "RequestAssignELicensesAndDownloadETickets"},
FunctionInfo{113, nullptr, "RequestQueryAvailableCommonELicenses"},
FunctionInfo{114, nullptr, "SetNetworkInstallTaskExtendedAttribute"},
FunctionInfo{115, nullptr, "GetNetworkInstallTaskExtendedAttribute"},
FunctionInfo{116, nullptr, "GetAllocatorInfo"},
FunctionInfo{117, nullptr, "RequestQueryDownloadableContentsByApplicationId"},
FunctionInfo{118, nullptr, "MarkNoDownloadRightsErrorResolved"},
FunctionInfo{119, nullptr, "GetApplyDeltaTaskAllAppliedContentMeta"},
FunctionInfo{120, nullptr, "PrioritizeNetworkInstallTask"},
FunctionInfo{121, nullptr, "RequestQueryAvailableCommonELicenses2"},
FunctionInfo{122, nullptr, "RequestAssignCommonELicenses"},
FunctionInfo{123, nullptr, "RequestAssignCommonELicenses2"},
FunctionInfo{124, nullptr, "IsNetworkInstallTaskFrontOfQueue"},
FunctionInfo{125, nullptr, "PrioritizeApplyDeltaTask"},
FunctionInfo{126, nullptr, "RerouteDownloadingPatch"},
FunctionInfo{127, nullptr, "UnmarkNoDownloadRightsErrorResolved"},
FunctionInfo{128, nullptr, "RequestContentsSize"},
FunctionInfo{129, nullptr, "RequestContentsAuthorizationToken"},
FunctionInfo{130, nullptr, "RequestCdnVendorDiscovery"},
FunctionInfo{131, nullptr, "RefreshDebugAvailability"},
FunctionInfo{132, nullptr, "ClearResponseSimulationEntry"},
FunctionInfo{133, nullptr, "RegisterResponseSimulationEntry"},
FunctionInfo{134, nullptr, "GetProcessedCdnVendors"},
FunctionInfo{135, nullptr, "RefreshRuntimeBehaviorsForDebug"},
FunctionInfo{136, nullptr, "RequestOnlineSubscriptionFreeTrialAvailability"},
FunctionInfo{137, nullptr, "GetNetworkInstallTaskContentMetaCount"},
FunctionInfo{138, nullptr, "RequestRevokeELicenses"},
FunctionInfo{139, nullptr, "EnableNetworkConnectionToUseApplicationCore"},
FunctionInfo{140, nullptr, "DisableNetworkConnectionToUseApplicationCore"},
FunctionInfo{141, nullptr, "IsNetworkConnectionEnabledToUseApplicationCore"},
FunctionInfo{142, nullptr, "RequestCheckSafeSystemVersion"},
FunctionInfo{143, nullptr, "RequestApplicationIcon"},
FunctionInfo{144, nullptr, "RequestDownloadIdbeIconFile"},
FunctionInfo{147, nullptr, "Unknown147"}, //18.0.0+
FunctionInfo{148, nullptr, "Unknown148"}, //18.0.0+
FunctionInfo{150, nullptr, "Unknown150"}, //19.0.0+
FunctionInfo{151, nullptr, "Unknown151"}, //20.0.0+
FunctionInfo{152, nullptr, "Unknown152"}, //20.0.0+
FunctionInfo{153, nullptr, "Unknown153"}, //20.0.0+
FunctionInfo{154, nullptr, "Unknown154"}, //20.0.0+
FunctionInfo{155, nullptr, "Unknown155"}, //20.0.0+
FunctionInfo{156, nullptr, "Unknown156"}, //20.0.0+
FunctionInfo{157, nullptr, "Unknown157"}, //20.0.0+
FunctionInfo{158, nullptr, "Unknown158"}, //20.0.0+
FunctionInfo{159, nullptr, "Unknown159"}, //20.0.0+
FunctionInfo{160, nullptr, "Unknown160"}, //20.0.0+
FunctionInfo{161, nullptr, "Unknown161"}, //20.0.0+
FunctionInfo{162, nullptr, "Unknown162"}, //20.0.0+
FunctionInfo{163, nullptr, "Unknown163"}, //20.0.0+
FunctionInfo{164, nullptr, "Unknown164"}, //20.0.0+
FunctionInfo{165, nullptr, "Unknown165"}, //20.0.0+
FunctionInfo{166, nullptr, "Unknown166"}, //20.0.0+
FunctionInfo{167, nullptr, "Unknown167"}, //20.0.0+
FunctionInfo{168, nullptr, "Unknown168"}, //20.0.0+
FunctionInfo{169, nullptr, "Unknown169"}, //20.0.0+
FunctionInfo{170, nullptr, "Unknown170"}, //20.0.0+
FunctionInfo{171, nullptr, "Unknown171"}, //20.0.0+
FunctionInfo{172, nullptr, "Unknown172"}, //20.0.0+
FunctionInfo{173, nullptr, "Unknown173"}, //20.0.0+
FunctionInfo{174, nullptr, "Unknown174"}, //20.0.0+
FunctionInfo{175, nullptr, "Unknown175"}, //20.0.0+
FunctionInfo{176, nullptr, "Unknown176"}, //20.0.0+
FunctionInfo{177, nullptr, "Unknown177"}, //20.0.0+
FunctionInfo{2000, nullptr, "Unknown2000"}, //20.0.0+
FunctionInfo{2001, nullptr, "Unknown2001"}, //20.0.0+
FunctionInfo{2002, nullptr, "Unknown2002"}, //20.0.0+
FunctionInfo{2003, nullptr, "Unknown2003"}, //20.0.0+
FunctionInfo{2004, nullptr, "Unknown2004"}, //20.0.0+
FunctionInfo{2007, nullptr, "Unknown2007"}, //20.0.0+
FunctionInfo{2011, nullptr, "Unknown2011"}, //20.0.0+
FunctionInfo{2012, nullptr, "Unknown2012"}, //20.0.0+
FunctionInfo{2013, nullptr, "Unknown2013"}, //20.0.0+
FunctionInfo{2014, nullptr, "Unknown2014"}, //20.0.0+
FunctionInfo{2015, nullptr, "Unknown2015"}, //20.0.0+
FunctionInfo{2016, nullptr, "Unknown2016"}, //20.0.0+
FunctionInfo{2017, nullptr, "Unknown2017"}, //20.0.0+
FunctionInfo{2018, nullptr, "Unknown2018"}, //20.0.0+
FunctionInfo{2019, nullptr, "Unknown2019"}, //20.0.0+
FunctionInfo{2020, nullptr, "Unknown2020"}, //20.0.0+
FunctionInfo{2021, nullptr, "Unknown2021"}, //20.0.0+
FunctionInfo{2022, nullptr, "Unknown2022"}, //20.0.0+
FunctionInfo{2023, nullptr, "Unknown2023"}, //20.0.0+
FunctionInfo{2024, nullptr, "Unknown2024"}, //20.0.0+
FunctionInfo{2025, nullptr, "Unknown2025"}, //20.0.0+
FunctionInfo{2026, nullptr, "Unknown2026"}, //20.0.0+
FunctionInfo{2027, nullptr, "Unknown2027"}, //20.0.0+
FunctionInfo{2028, nullptr, "Unknown2028"}, //20.0.0+
FunctionInfo{2029, nullptr, "Unknown2029"}, //20.0.0+
FunctionInfo{2030, nullptr, "Unknown2030"}, //20.0.0+
FunctionInfo{2031, nullptr, "Unknown2031"}, //20.0.0+
FunctionInfo{2032, nullptr, "Unknown2032"}, //20.0.0+
FunctionInfo{2033, nullptr, "Unknown2033"}, //20.0.0+
FunctionInfo{2034, nullptr, "Unknown2034"}, //20.0.0+
FunctionInfo{2035, nullptr, "Unknown2035"}, //20.0.0+
FunctionInfo{2036, nullptr, "Unknown2036"}, //20.0.0+
FunctionInfo{2037, nullptr, "Unknown2037"}, //20.0.0+
FunctionInfo{2038, nullptr, "Unknown2038"}, //20.0.0+
FunctionInfo{2039, nullptr, "Unknown2039"}, //20.0.0+
FunctionInfo{2040, nullptr, "Unknown2040"}, //20.0.0+
FunctionInfo{2041, nullptr, "Unknown2041"}, //20.0.0+
FunctionInfo{2042, nullptr, "Unknown2042"}, //20.0.0+
FunctionInfo{2043, nullptr, "Unknown2043"}, //20.0.0+
FunctionInfo{2044, nullptr, "Unknown2044"}, //20.0.0+
FunctionInfo{2045, nullptr, "Unknown2045"}, //20.0.0+
FunctionInfo{2046, nullptr, "Unknown2046"}, //20.0.0+
FunctionInfo{2047, nullptr, "Unknown2047"}, //20.0.0+
FunctionInfo{2048, nullptr, "Unknown2048"}, //20.0.0+
FunctionInfo{2049, nullptr, "Unknown2049"}, //20.0.0+
FunctionInfo{2050, nullptr, "Unknown2050"}, //20.0.0+
FunctionInfo{2051, nullptr, "Unknown2051"}, //20.0.0+
FunctionInfo{3000, nullptr, "RequestLatestApplicationIcon"}, //17.0.0+
FunctionInfo{3001, nullptr, "RequestDownloadIdbeLatestIconFile"} //17.0.0+
);
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -416,14 +420,7 @@ public:
explicit NIM_ECA(Core::System& system_) : ServiceFramework{system_, "nim:eca"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &NIM_ECA::CreateServerInterface, "CreateServerInterface"},
FunctionInfo{1, nullptr, "RefreshDebugAvailability"},
FunctionInfo{2, nullptr, "ClearDebugResponse"},
FunctionInfo{3, nullptr, "RegisterDebugResponse"},
FunctionInfo{4, &NIM_ECA::IsLargeResourceAvailable, "IsLargeResourceAvailable"},
FunctionInfo{5, &NIM_ECA::CreateServerInterface2, "CreateServerInterface2"} // 17.0.0+
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -453,14 +450,22 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<IShopServiceAccessServer>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &NIM_ECA::CreateServerInterface, "CreateServerInterface"},
FunctionInfo{1, nullptr, "RefreshDebugAvailability"},
FunctionInfo{2, nullptr, "ClearDebugResponse"},
FunctionInfo{3, nullptr, "RegisterDebugResponse"},
FunctionInfo{4, &NIM_ECA::IsLargeResourceAvailable, "IsLargeResourceAvailable"},
FunctionInfo{5, &NIM_ECA::CreateServerInterface2, "CreateServerInterface2"} // 17.0.0+
);
};
class NIM_SHP final : public ServiceFramework<NIM_SHP> {
public:
explicit NIM_SHP(Core::System& system_) : ServiceFramework{system_, "nim:shp"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RequestDeviceAuthenticationToken"},
FunctionInfo{1, nullptr, "RequestCachedDeviceAuthenticationToken"},
FunctionInfo{2, nullptr, "RequestEdgeToken"},
@@ -490,6 +495,8 @@ public:
FunctionInfo{504, nullptr, "RequestDownloadTicketForPrepurchasedContents2"},
FunctionInfo{505, nullptr, "RequestDownloadTicketForPrepurchasedContentsForAccount"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -578,11 +585,7 @@ public:
explicit NTC(Core::System& system_) : ServiceFramework{system_, "ntc"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &NTC::OpenEnsureNetworkClockAvailabilityService, "OpenEnsureNetworkClockAvailabilityService"},
FunctionInfo{100, &NTC::SuspendAutonomicTimeCorrection, "SuspendAutonomicTimeCorrection"},
FunctionInfo{101, &NTC::ResumeAutonomicTimeCorrection, "ResumeAutonomicTimeCorrection"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -608,17 +611,24 @@ private:
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &NTC::OpenEnsureNetworkClockAvailabilityService, "OpenEnsureNetworkClockAvailabilityService"},
FunctionInfo{100, &NTC::SuspendAutonomicTimeCorrection, "SuspendAutonomicTimeCorrection"},
FunctionInfo{101, &NTC::ResumeAutonomicTimeCorrection, "ResumeAutonomicTimeCorrection"}
);
};
class NIM_ECAS final : public ServiceFramework<NIM_ECAS> {
public:
explicit NIM_ECAS(Core::System& system_) : ServiceFramework{system_, "nim:ecas"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RegisterSpecialClient"},
FunctionInfo{1, nullptr, "UnregisterSpecialClient"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+93 -91
View File
@@ -22,74 +22,7 @@ public:
get_receive_event{service_context}, get_request_change_state_cancel_event{service_context} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{1, nullptr, "ListenAll"},
FunctionInfo{2, C<&INpnsSystem::ListenTo>, "ListenTo"},
FunctionInfo{3, nullptr, "Receive"},
FunctionInfo{4, nullptr, "ReceiveRaw"},
FunctionInfo{5, C<&INpnsSystem::GetReceiveEvent>, "GetReceiveEvent"},
FunctionInfo{6, nullptr, "ListenUndelivered"},
FunctionInfo{7, nullptr, "GetStateChangeEvent"},
FunctionInfo{8, C<&INpnsSystem::ListenToByName>, "ListenToByName"},
FunctionInfo{11, nullptr, "SubscribeTopic"},
FunctionInfo{12, nullptr, "UnsubscribeTopic"},
FunctionInfo{13, nullptr, "QueryIsTopicExist"},
FunctionInfo{14, nullptr, "SubscribeTopicByAccount"}, // 18.0.0+
FunctionInfo{15, nullptr, "UnsubscribeTopicByAccount"}, // 18.0.0+
FunctionInfo{16, nullptr, "DownloadSubscriptionList"}, // 18.0.0+
FunctionInfo{21, nullptr, "CreateToken"},
FunctionInfo{22, nullptr, "CreateTokenWithApplicationId"},
FunctionInfo{23, nullptr, "DestroyToken"},
FunctionInfo{24, nullptr, "DestroyTokenWithApplicationId"},
FunctionInfo{25, nullptr, "QueryIsTokenValid"},
FunctionInfo{26, nullptr, "ListenToMyApplicationId"},
FunctionInfo{27, nullptr, "DestroyTokenAll"},
FunctionInfo{28, nullptr, "CreateTokenWithName"}, // 18.0.0+
FunctionInfo{29, nullptr, "DestroyTokenWithName"}, // 18.0.0+
FunctionInfo{31, nullptr, "UploadTokenToBaaS"},
FunctionInfo{32, nullptr, "DestroyTokenForBaaS"},
FunctionInfo{33, nullptr, "CreateTokenForBaaS"},
FunctionInfo{34, nullptr, "SetBaaSDeviceAccountIdList"},
FunctionInfo{35, nullptr, "LinkNsaId"}, // 17.0.0+
FunctionInfo{36, nullptr, "UnlinkNsaId"}, // 17.0.0+
FunctionInfo{37, nullptr, "RelinkNsaId"}, // 18.0.0+
FunctionInfo{40, nullptr, "GetNetworkServiceAccountIdTokenRequestEvent"}, // 17.0.0+
FunctionInfo{41, nullptr, "TryPopNetworkServiceAccountIdTokenRequestUid"}, // 17.0.0+
FunctionInfo{42, nullptr, "SetNetworkServiceAccountIdTokenSuccess"}, // 17.0.0+
FunctionInfo{43, nullptr, "SetNetworkServiceAccountIdTokenFailure"}, // 17.0.0+
FunctionInfo{44, nullptr, "SetUidList"}, // 17.0.0+
FunctionInfo{45, nullptr, "PutDigitalTwinKeyValue"}, // 17.0.0+
FunctionInfo{51, nullptr, "DeleteDigitalTwinKeyValue"}, // 18.0.0+
FunctionInfo{101, nullptr, "Suspend"},
FunctionInfo{102, nullptr, "Resume"},
FunctionInfo{103, C<&INpnsSystem::GetState>, "GetState"},
FunctionInfo{104, nullptr, "GetStatistics"},
FunctionInfo{105, nullptr, "GetPlayReportRequestEvent"},
FunctionInfo{106, C<&INpnsSystem::GetLastNotifiedTime>, "GetLastNotifiedTime"}, // 18.0.0+
FunctionInfo{107, nullptr, "SetLastNotifiedTime"}, // 18.0.0+
FunctionInfo{111, nullptr, "GetJid"},
FunctionInfo{112, nullptr, "CreateJid"},
FunctionInfo{113, nullptr, "DestroyJid"},
FunctionInfo{114, nullptr, "AttachJid"},
FunctionInfo{115, nullptr, "DetachJid"},
FunctionInfo{120, nullptr, "CreateNotificationReceiver"},
FunctionInfo{151, nullptr, "GetStateWithHandover"},
FunctionInfo{152, nullptr, "GetStateChangeEventWithHandover"},
FunctionInfo{153, nullptr, "GetDropEventWithHandover"},
FunctionInfo{154, nullptr, "CreateTokenAsync"},
FunctionInfo{155, nullptr, "CreateTokenAsyncWithApplicationId"},
FunctionInfo{156, nullptr, "CreateTokenWithNameAsync"}, // 18.0.0+
FunctionInfo{161, C<&INpnsSystem::GetRequestChangeStateCancelEvent>, "GetRequestChangeStateCancelEvent"}, // 10.0.0+
FunctionInfo{162, nullptr, "RequestChangeStateForceTimedWithCancelEvent"},
FunctionInfo{201, nullptr, "RequestChangeStateForceTimed"},
FunctionInfo{202, nullptr, "RequestChangeStateForceAsync"},
FunctionInfo{301, nullptr, "GetPassword"}, // 18.0.0+
FunctionInfo{302, nullptr, "GetAllImmigration"}, // 18.0.0+
FunctionInfo{303, nullptr, "GetNotificationHistories"}, // 18.0.0+
FunctionInfo{304, nullptr, "GetPersistentConnectionSummary"}, // 18.0.0+
FunctionInfo{305, nullptr, "GetDigitalTwinSummary"}, // 18.0.0+
FunctionInfo{306, nullptr, "GetDigitalTwinValue"} // 18.0.0+
);
return HandlerTableGenerateWithFind(key, functions);
}
~INpnsSystem() override = default;
@@ -138,6 +71,74 @@ private:
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{1, nullptr, "ListenAll"},
FunctionInfo{2, C<&INpnsSystem::ListenTo>, "ListenTo"},
FunctionInfo{3, nullptr, "Receive"},
FunctionInfo{4, nullptr, "ReceiveRaw"},
FunctionInfo{5, C<&INpnsSystem::GetReceiveEvent>, "GetReceiveEvent"},
FunctionInfo{6, nullptr, "ListenUndelivered"},
FunctionInfo{7, nullptr, "GetStateChangeEvent"},
FunctionInfo{8, C<&INpnsSystem::ListenToByName>, "ListenToByName"},
FunctionInfo{11, nullptr, "SubscribeTopic"},
FunctionInfo{12, nullptr, "UnsubscribeTopic"},
FunctionInfo{13, nullptr, "QueryIsTopicExist"},
FunctionInfo{14, nullptr, "SubscribeTopicByAccount"}, // 18.0.0+
FunctionInfo{15, nullptr, "UnsubscribeTopicByAccount"}, // 18.0.0+
FunctionInfo{16, nullptr, "DownloadSubscriptionList"}, // 18.0.0+
FunctionInfo{21, nullptr, "CreateToken"},
FunctionInfo{22, nullptr, "CreateTokenWithApplicationId"},
FunctionInfo{23, nullptr, "DestroyToken"},
FunctionInfo{24, nullptr, "DestroyTokenWithApplicationId"},
FunctionInfo{25, nullptr, "QueryIsTokenValid"},
FunctionInfo{26, nullptr, "ListenToMyApplicationId"},
FunctionInfo{27, nullptr, "DestroyTokenAll"},
FunctionInfo{28, nullptr, "CreateTokenWithName"}, // 18.0.0+
FunctionInfo{29, nullptr, "DestroyTokenWithName"}, // 18.0.0+
FunctionInfo{31, nullptr, "UploadTokenToBaaS"},
FunctionInfo{32, nullptr, "DestroyTokenForBaaS"},
FunctionInfo{33, nullptr, "CreateTokenForBaaS"},
FunctionInfo{34, nullptr, "SetBaaSDeviceAccountIdList"},
FunctionInfo{35, nullptr, "LinkNsaId"}, // 17.0.0+
FunctionInfo{36, nullptr, "UnlinkNsaId"}, // 17.0.0+
FunctionInfo{37, nullptr, "RelinkNsaId"}, // 18.0.0+
FunctionInfo{40, nullptr, "GetNetworkServiceAccountIdTokenRequestEvent"}, // 17.0.0+
FunctionInfo{41, nullptr, "TryPopNetworkServiceAccountIdTokenRequestUid"}, // 17.0.0+
FunctionInfo{42, nullptr, "SetNetworkServiceAccountIdTokenSuccess"}, // 17.0.0+
FunctionInfo{43, nullptr, "SetNetworkServiceAccountIdTokenFailure"}, // 17.0.0+
FunctionInfo{44, nullptr, "SetUidList"}, // 17.0.0+
FunctionInfo{45, nullptr, "PutDigitalTwinKeyValue"}, // 17.0.0+
FunctionInfo{51, nullptr, "DeleteDigitalTwinKeyValue"}, // 18.0.0+
FunctionInfo{101, nullptr, "Suspend"},
FunctionInfo{102, nullptr, "Resume"},
FunctionInfo{103, C<&INpnsSystem::GetState>, "GetState"},
FunctionInfo{104, nullptr, "GetStatistics"},
FunctionInfo{105, nullptr, "GetPlayReportRequestEvent"},
FunctionInfo{106, C<&INpnsSystem::GetLastNotifiedTime>, "GetLastNotifiedTime"}, // 18.0.0+
FunctionInfo{107, nullptr, "SetLastNotifiedTime"}, // 18.0.0+
FunctionInfo{111, nullptr, "GetJid"},
FunctionInfo{112, nullptr, "CreateJid"},
FunctionInfo{113, nullptr, "DestroyJid"},
FunctionInfo{114, nullptr, "AttachJid"},
FunctionInfo{115, nullptr, "DetachJid"},
FunctionInfo{120, nullptr, "CreateNotificationReceiver"},
FunctionInfo{151, nullptr, "GetStateWithHandover"},
FunctionInfo{152, nullptr, "GetStateChangeEventWithHandover"},
FunctionInfo{153, nullptr, "GetDropEventWithHandover"},
FunctionInfo{154, nullptr, "CreateTokenAsync"},
FunctionInfo{155, nullptr, "CreateTokenAsyncWithApplicationId"},
FunctionInfo{156, nullptr, "CreateTokenWithNameAsync"}, // 18.0.0+
FunctionInfo{161, C<&INpnsSystem::GetRequestChangeStateCancelEvent>, "GetRequestChangeStateCancelEvent"}, // 10.0.0+
FunctionInfo{162, nullptr, "RequestChangeStateForceTimedWithCancelEvent"},
FunctionInfo{201, nullptr, "RequestChangeStateForceTimed"},
FunctionInfo{202, nullptr, "RequestChangeStateForceAsync"},
FunctionInfo{301, nullptr, "GetPassword"}, // 18.0.0+
FunctionInfo{302, nullptr, "GetAllImmigration"}, // 18.0.0+
FunctionInfo{303, nullptr, "GetNotificationHistories"}, // 18.0.0+
FunctionInfo{304, nullptr, "GetPersistentConnectionSummary"}, // 18.0.0+
FunctionInfo{305, nullptr, "GetDigitalTwinSummary"}, // 18.0.0+
FunctionInfo{306, nullptr, "GetDigitalTwinValue"} // 18.0.0+
);
KernelHelpers::ServiceContext service_context;
Event get_receive_event;
Event get_request_change_state_cancel_event;
@@ -149,29 +150,7 @@ public:
: ServiceFramework{system_, "npns:u"}, service_context{system, "npns:u"}, get_receive_event{service_context} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{1, nullptr, "ListenAll"},
FunctionInfo{2, nullptr, "ListenTo"},
FunctionInfo{3, nullptr, "Receive"},
FunctionInfo{4, nullptr, "ReceiveRaw"},
FunctionInfo{5, C<&INpnsUser::GetReceiveEvent>, "GetReceiveEvent"},
FunctionInfo{7, nullptr, "GetStateChangeEvent"},
FunctionInfo{8, C<&INpnsUser::ListenToByName>, "ListenToByName"}, // 18.0.0+
FunctionInfo{21, nullptr, "CreateToken"},
FunctionInfo{23, nullptr, "DestroyToken"},
FunctionInfo{25, nullptr, "QueryIsTokenValid"},
FunctionInfo{26, nullptr, "ListenToMyApplicationId"},
FunctionInfo{101, nullptr, "Suspend"},
FunctionInfo{102, nullptr, "Resume"},
FunctionInfo{103, nullptr, "GetState"},
FunctionInfo{104, nullptr, "GetStatistics"},
FunctionInfo{111, nullptr, "GetJid"},
FunctionInfo{120, nullptr, "CreateNotificationReceiver"},
FunctionInfo{151, nullptr, "GetStateWithHandover"},
FunctionInfo{152, nullptr, "GetStateChangeEventWithHandover"},
FunctionInfo{153, nullptr, "GetDropEventWithHandover"},
FunctionInfo{154, nullptr, "CreateTokenAsync"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -191,6 +170,29 @@ private:
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{1, nullptr, "ListenAll"},
FunctionInfo{2, nullptr, "ListenTo"},
FunctionInfo{3, nullptr, "Receive"},
FunctionInfo{4, nullptr, "ReceiveRaw"},
FunctionInfo{5, C<&INpnsUser::GetReceiveEvent>, "GetReceiveEvent"},
FunctionInfo{7, nullptr, "GetStateChangeEvent"},
FunctionInfo{8, C<&INpnsUser::ListenToByName>, "ListenToByName"}, // 18.0.0+
FunctionInfo{21, nullptr, "CreateToken"},
FunctionInfo{23, nullptr, "DestroyToken"},
FunctionInfo{25, nullptr, "QueryIsTokenValid"},
FunctionInfo{26, nullptr, "ListenToMyApplicationId"},
FunctionInfo{101, nullptr, "Suspend"},
FunctionInfo{102, nullptr, "Resume"},
FunctionInfo{103, nullptr, "GetState"},
FunctionInfo{104, nullptr, "GetStatistics"},
FunctionInfo{111, nullptr, "GetJid"},
FunctionInfo{120, nullptr, "CreateNotificationReceiver"},
FunctionInfo{151, nullptr, "GetStateWithHandover"},
FunctionInfo{152, nullptr, "GetStateChangeEventWithHandover"},
FunctionInfo{153, nullptr, "GetDropEventWithHandover"},
FunctionInfo{154, nullptr, "CreateTokenAsync"}
);
KernelHelpers::ServiceContext service_context;
Event get_receive_event;
};
+26 -23
View File
@@ -21,22 +21,23 @@ class INotifyService final : public ServiceFramework<INotifyService> {
public:
explicit INotifyService(Core::System& system_) : ServiceFramework{system_, "pdm:ntfy"} {}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "NotifyAppletEvent" },
FunctionInfo{2, nullptr, "NotifyOperationModeChangeEvent" },
FunctionInfo{3, nullptr, "NotifyPowerStateChangeEvent" },
FunctionInfo{4, nullptr, "NotifyClearAllEvent" },
FunctionInfo{5, nullptr, "NotifyEventForDebug" },
FunctionInfo{6, nullptr, "SuspendUserAccountEventService" },
FunctionInfo{7, nullptr, "ResumeUserAccountEventService" },
FunctionInfo{8, nullptr, "NotifyLibraryAppletEvent" },
FunctionInfo{9, nullptr, "Cmd9" },
FunctionInfo{20, nullptr, "Cmd20" },
FunctionInfo{30, nullptr, "Cmd30" },
FunctionInfo{100, nullptr, "Cmd100" },
FunctionInfo{101, nullptr, "Cmd101" }
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "NotifyAppletEvent" },
FunctionInfo{2, nullptr, "NotifyOperationModeChangeEvent" },
FunctionInfo{3, nullptr, "NotifyPowerStateChangeEvent" },
FunctionInfo{4, nullptr, "NotifyClearAllEvent" },
FunctionInfo{5, nullptr, "NotifyEventForDebug" },
FunctionInfo{6, nullptr, "SuspendUserAccountEventService" },
FunctionInfo{7, nullptr, "ResumeUserAccountEventService" },
FunctionInfo{8, nullptr, "NotifyLibraryAppletEvent" },
FunctionInfo{9, nullptr, "Cmd9" },
FunctionInfo{20, nullptr, "Cmd20" },
FunctionInfo{30, nullptr, "Cmd30" },
FunctionInfo{100, nullptr, "Cmd100" },
FunctionInfo{101, nullptr, "Cmd101" }
);
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -47,14 +48,7 @@ public:
: ServiceFramework{system_, "ns:vm"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{1200, D<&IVulnerabilityManagerInterface::NeedsUpdateVulnerability>, "NeedsUpdateVulnerability"},
FunctionInfo{1201, nullptr, "UpdateSafeSystemVersionForDebug"},
FunctionInfo{1202, nullptr, "GetSafeSystemVersion"},
FunctionInfo{3100, D<&IVulnerabilityManagerInterface::GetSafeSystemVersionCheckInfo>, "GetSafeSystemVersionCheckInfo"},
FunctionInfo{3101, nullptr, "RequestUpdateSafeSystemVersionCheckInfo"},
FunctionInfo{3102, D<&IVulnerabilityManagerInterface::ResetSafeSystemVersionCheckInfo>, "ResetSafeSystemVersionCheckInfo"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~IVulnerabilityManagerInterface() override = default;
@@ -74,6 +68,15 @@ public:
LOG_WARNING(Service_NS, "(STUBBED)");
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{1200, D<&IVulnerabilityManagerInterface::NeedsUpdateVulnerability>, "NeedsUpdateVulnerability"},
FunctionInfo{1201, nullptr, "UpdateSafeSystemVersionForDebug"},
FunctionInfo{1202, nullptr, "GetSafeSystemVersion"},
FunctionInfo{3100, D<&IVulnerabilityManagerInterface::GetSafeSystemVersionCheckInfo>, "GetSafeSystemVersionCheckInfo"},
FunctionInfo{3101, nullptr, "RequestUpdateSafeSystemVersionCheckInfo"},
FunctionInfo{3102, D<&IVulnerabilityManagerInterface::ResetSafeSystemVersionCheckInfo>, "ResetSafeSystemVersionCheckInfo"}
);
};
void LoopProcess(Core::System& system) {
+9 -6
View File
@@ -17,8 +17,7 @@ class ISession final : public ServiceFramework<ISession> {
public:
explicit ISession(Core::System& system_) : ServiceFramework{system_, "ISession"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "QueryFunctions"},
FunctionInfo{1, nullptr, "AcquireFunction"},
FunctionInfo{2, nullptr, "ReleaseFunction"},
@@ -44,6 +43,8 @@ public:
FunctionInfo{22, nullptr, "SetResetUponResumeEnable"},
FunctionInfo{23, nullptr, "ResetFunction"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -51,11 +52,12 @@ class PCIE final : public ServiceFramework<PCIE> {
public:
explicit PCIE(Core::System& system_) : ServiceFramework{system_, "pcie"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "RegisterClassDriver"},
FunctionInfo{1, nullptr, "QueryFunctionsUnregistered"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -63,11 +65,12 @@ class PCIE_LOG final : public ServiceFramework<PCIE_LOG> {
public:
explicit PCIE_LOG(Core::System& system_) : ServiceFramework{system_, "pcie:log"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetLoggedState"},
FunctionInfo{1, nullptr, "GetLoggedStateEvent"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+37 -30
View File
@@ -17,8 +17,7 @@ class PCV final : public ServiceFramework<PCV> {
public:
explicit PCV(Core::System& system_) : ServiceFramework{system_, "pcv"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "SetPowerEnabled"},
FunctionInfo{1, nullptr, "SetClockEnabled"},
FunctionInfo{2, nullptr, "SetClockRate"},
@@ -50,6 +49,8 @@ public:
FunctionInfo{28, nullptr, "IsPoweredOn"},
FunctionInfo{29, nullptr, "GetVoltage"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -57,10 +58,11 @@ class PCV_ARB final : public ServiceFramework<PCV_ARB> {
public:
explicit PCV_ARB(Core::System& system_) : ServiceFramework{system_, "pcv:arb"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "ReleaseControl"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -68,10 +70,11 @@ class PCV_IMM final : public ServiceFramework<PCV_IMM> {
public:
explicit PCV_IMM(Core::System& system_) : ServiceFramework{system_, "pcv:imm"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "SetClockRate"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -81,20 +84,7 @@ public:
: ServiceFramework{system_, "IClkrstSession"}, device_code(device_code_) {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "SetClockEnabled"},
FunctionInfo{1, nullptr, "SetClockDisabled"},
FunctionInfo{2, nullptr, "SetResetAsserted"},
FunctionInfo{3, nullptr, "SetResetDeasserted"},
FunctionInfo{4, nullptr, "SetPowerEnabled"},
FunctionInfo{5, nullptr, "SetPowerDisabled"},
FunctionInfo{6, nullptr, "GetState"},
FunctionInfo{7, &IClkrstSession::SetClockRate, "SetClockRate"},
FunctionInfo{8, &IClkrstSession::GetClockRate, "GetClockRate"},
FunctionInfo{9, nullptr, "SetMinVClockRate"},
FunctionInfo{10, nullptr, "GetPossibleClockRates"},
FunctionInfo{11, nullptr, "GetDvfsTable"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -115,6 +105,20 @@ private:
rb.Push<u32>(clock_rate);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "SetClockEnabled"},
FunctionInfo{1, nullptr, "SetClockDisabled"},
FunctionInfo{2, nullptr, "SetResetAsserted"},
FunctionInfo{3, nullptr, "SetResetDeasserted"},
FunctionInfo{4, nullptr, "SetPowerEnabled"},
FunctionInfo{5, nullptr, "SetPowerDisabled"},
FunctionInfo{6, nullptr, "GetState"},
FunctionInfo{7, &IClkrstSession::SetClockRate, "SetClockRate"},
FunctionInfo{8, &IClkrstSession::GetClockRate, "GetClockRate"},
FunctionInfo{9, nullptr, "SetMinVClockRate"},
FunctionInfo{10, nullptr, "GetPossibleClockRates"},
FunctionInfo{11, nullptr, "GetDvfsTable"}
);
DeviceCode device_code;
u32 clock_rate{};
};
@@ -124,14 +128,7 @@ public:
explicit CLKRST(Core::System& system_, const char* name) : ServiceFramework{system_, name} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &CLKRST::OpenSession, "OpenSession"},
FunctionInfo{1, nullptr, "GetTemperatureThresholds"},
FunctionInfo{2, nullptr, "SetTemperature"},
FunctionInfo{3, nullptr, "GetModuleStateTable"},
FunctionInfo{4, nullptr, "GetModuleStateTableEvent"},
FunctionInfo{5, nullptr, "GetModuleStateTableMaxCount"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -146,16 +143,26 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<IClkrstSession>(ctx, system, device_code);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &CLKRST::OpenSession, "OpenSession"},
FunctionInfo{1, nullptr, "GetTemperatureThresholds"},
FunctionInfo{2, nullptr, "SetTemperature"},
FunctionInfo{3, nullptr, "GetModuleStateTable"},
FunctionInfo{4, nullptr, "GetModuleStateTableEvent"},
FunctionInfo{5, nullptr, "GetModuleStateTableMaxCount"}
);
};
class CLKRST_A final : public ServiceFramework<CLKRST_A> {
public:
explicit CLKRST_A(Core::System& system_) : ServiceFramework{system_, "clkrst:a"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "ReleaseControl"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+27 -23
View File
@@ -81,17 +81,7 @@ public:
explicit DebugMonitor(Core::System& system_) : ServiceFramework{system_, "pm:dmnt"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "GetJitDebugProcessIdList"},
FunctionInfo{1, nullptr, "StartProcess"},
FunctionInfo{2, &DebugMonitor::GetProcessId, "GetProcessId"},
FunctionInfo{3, nullptr, "HookToCreateProcess"},
FunctionInfo{4, &DebugMonitor::GetApplicationProcessId, "GetApplicationProcessId"},
FunctionInfo{5, nullptr, "HookToCreateApplicationProgress"},
FunctionInfo{6, nullptr, "ClearHook"},
FunctionInfo{65000, &DebugMonitor::AtmosphereGetProcessInfo, "AtmosphereGetProcessInfo"},
FunctionInfo{65001, nullptr, "AtmosphereGetCurrentLimitInfo"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -162,6 +152,18 @@ private:
rb.PushRaw(program_location);
rb.PushRaw(override_status);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetJitDebugProcessIdList"},
FunctionInfo{1, nullptr, "StartProcess"},
FunctionInfo{2, &DebugMonitor::GetProcessId, "GetProcessId"},
FunctionInfo{3, nullptr, "HookToCreateProcess"},
FunctionInfo{4, &DebugMonitor::GetApplicationProcessId, "GetApplicationProcessId"},
FunctionInfo{5, nullptr, "HookToCreateApplicationProgress"},
FunctionInfo{6, nullptr, "ClearHook"},
FunctionInfo{65000, &DebugMonitor::AtmosphereGetProcessInfo, "AtmosphereGetProcessInfo"},
FunctionInfo{65001, nullptr, "AtmosphereGetCurrentLimitInfo"}
);
};
class Info final : public ServiceFramework<Info> {
@@ -223,18 +225,7 @@ public:
explicit Shell(Core::System& system_) : ServiceFramework{system_, "pm:shell"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "LaunchProgram"},
FunctionInfo{1, nullptr, "TerminateProcess"},
FunctionInfo{2, nullptr, "TerminateProgram"},
FunctionInfo{3, nullptr, "GetProcessEventHandle"},
FunctionInfo{4, nullptr, "GetProcessEventInfo"},
FunctionInfo{5, nullptr, "NotifyBootFinished"},
FunctionInfo{6, &Shell::GetApplicationProcessIdForShell, "GetApplicationProcessIdForShell"},
FunctionInfo{7, nullptr, "BoostSystemMemoryResourceLimit"},
FunctionInfo{8, nullptr, "BoostApplicationThreadResourceLimit"},
FunctionInfo{9, nullptr, "GetBootFinishedEventHandle"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -243,6 +234,19 @@ private:
auto list = kernel.GetProcessList();
GetApplicationPidGeneric(system.Kernel(), ctx, list);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "LaunchProgram"},
FunctionInfo{1, nullptr, "TerminateProcess"},
FunctionInfo{2, nullptr, "TerminateProgram"},
FunctionInfo{3, nullptr, "GetProcessEventHandle"},
FunctionInfo{4, nullptr, "GetProcessEventInfo"},
FunctionInfo{5, nullptr, "NotifyBootFinished"},
FunctionInfo{6, &Shell::GetApplicationProcessIdForShell, "GetApplicationProcessIdForShell"},
FunctionInfo{7, nullptr, "BoostSystemMemoryResourceLimit"},
FunctionInfo{8, nullptr, "BoostApplicationThreadResourceLimit"},
FunctionInfo{9, nullptr, "GetBootFinishedEventHandle"}
);
};
void LoopProcess(Core::System& system) {
+41 -44
View File
@@ -24,40 +24,7 @@ public:
explicit PlayReport(const char* name, Core::System& system_) : ServiceFramework{system_, name} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{10100, &PlayReport::SaveReport<Core::Reporter::PlayReportType::Old>, "SaveReportOld"},
FunctionInfo{10101, &PlayReport::SaveReportWithUser<Core::Reporter::PlayReportType::Old>, "SaveReportWithUserOld"},
FunctionInfo{10102, &PlayReport::SaveReport<Core::Reporter::PlayReportType::Old2>, "SaveReportOld2"},
FunctionInfo{10103, &PlayReport::SaveReportWithUser<Core::Reporter::PlayReportType::Old2>, "SaveReportWithUserOld2"},
FunctionInfo{10104, &PlayReport::SaveReport<Core::Reporter::PlayReportType::Old3>, "SaveReportOld3"},
FunctionInfo{10105, &PlayReport::SaveReportWithUser<Core::Reporter::PlayReportType::Old3>, "SaveReportWithUserOld3"},
FunctionInfo{10106, &PlayReport::SaveReport<Core::Reporter::PlayReportType::New>, "SaveReport"},
FunctionInfo{10107, &PlayReport::SaveReportWithUser<Core::Reporter::PlayReportType::New>, "SaveReportWithUser"},
FunctionInfo{10200, &PlayReport::RequestImmediateTransmission, "RequestImmediateTransmission"},
FunctionInfo{10300, &PlayReport::GetTransmissionStatus, "GetTransmissionStatus"},
FunctionInfo{10400, &PlayReport::GetSystemSessionId, "GetSystemSessionId"},
FunctionInfo{20100, &PlayReport::SaveSystemReportOld, "SaveSystemReport"},
FunctionInfo{20101, &PlayReport::SaveSystemReportWithUserOld, "SaveSystemReportWithUser"},
FunctionInfo{20102, &PlayReport::SaveSystemReport, "SaveSystemReport"},
FunctionInfo{20103, &PlayReport::SaveSystemReportWithUser, "SaveSystemReportWithUser"},
FunctionInfo{20200, nullptr, "SetOperationMode"},
FunctionInfo{30100, nullptr, "ClearStorage"},
FunctionInfo{30200, nullptr, "ClearStatistics"},
FunctionInfo{30300, nullptr, "GetStorageUsage"},
FunctionInfo{30400, nullptr, "GetStatistics"},
FunctionInfo{30401, nullptr, "GetThroughputHistory"},
FunctionInfo{30500, nullptr, "GetLastUploadError"},
FunctionInfo{30600, nullptr, "GetApplicationUploadSummary"},
FunctionInfo{40100, nullptr, "IsUserAgreementCheckEnabled"},
FunctionInfo{40101, nullptr, "SetUserAgreementCheckEnabled"},
FunctionInfo{50100, nullptr, "ReadAllApplicationReportFiles"},
FunctionInfo{90100, nullptr, "ReadAllReportFiles"},
FunctionInfo{90101, nullptr, "Unknown90101"},
FunctionInfo{90102, nullptr, "Unknown90102"},
FunctionInfo{90200, nullptr, "GetStatistics"},
FunctionInfo{90201, nullptr, "GetThroughputHistory"},
FunctionInfo{90300, nullptr, "GetLastUploadError"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -212,21 +179,51 @@ private:
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{10100, &PlayReport::SaveReport<Core::Reporter::PlayReportType::Old>, "SaveReportOld"},
FunctionInfo{10101, &PlayReport::SaveReportWithUser<Core::Reporter::PlayReportType::Old>, "SaveReportWithUserOld"},
FunctionInfo{10102, &PlayReport::SaveReport<Core::Reporter::PlayReportType::Old2>, "SaveReportOld2"},
FunctionInfo{10103, &PlayReport::SaveReportWithUser<Core::Reporter::PlayReportType::Old2>, "SaveReportWithUserOld2"},
FunctionInfo{10104, &PlayReport::SaveReport<Core::Reporter::PlayReportType::Old3>, "SaveReportOld3"},
FunctionInfo{10105, &PlayReport::SaveReportWithUser<Core::Reporter::PlayReportType::Old3>, "SaveReportWithUserOld3"},
FunctionInfo{10106, &PlayReport::SaveReport<Core::Reporter::PlayReportType::New>, "SaveReport"},
FunctionInfo{10107, &PlayReport::SaveReportWithUser<Core::Reporter::PlayReportType::New>, "SaveReportWithUser"},
FunctionInfo{10200, &PlayReport::RequestImmediateTransmission, "RequestImmediateTransmission"},
FunctionInfo{10300, &PlayReport::GetTransmissionStatus, "GetTransmissionStatus"},
FunctionInfo{10400, &PlayReport::GetSystemSessionId, "GetSystemSessionId"},
FunctionInfo{20100, &PlayReport::SaveSystemReportOld, "SaveSystemReport"},
FunctionInfo{20101, &PlayReport::SaveSystemReportWithUserOld, "SaveSystemReportWithUser"},
FunctionInfo{20102, &PlayReport::SaveSystemReport, "SaveSystemReport"},
FunctionInfo{20103, &PlayReport::SaveSystemReportWithUser, "SaveSystemReportWithUser"},
FunctionInfo{20200, nullptr, "SetOperationMode"},
FunctionInfo{30100, nullptr, "ClearStorage"},
FunctionInfo{30200, nullptr, "ClearStatistics"},
FunctionInfo{30300, nullptr, "GetStorageUsage"},
FunctionInfo{30400, nullptr, "GetStatistics"},
FunctionInfo{30401, nullptr, "GetThroughputHistory"},
FunctionInfo{30500, nullptr, "GetLastUploadError"},
FunctionInfo{30600, nullptr, "GetApplicationUploadSummary"},
FunctionInfo{40100, nullptr, "IsUserAgreementCheckEnabled"},
FunctionInfo{40101, nullptr, "SetUserAgreementCheckEnabled"},
FunctionInfo{50100, nullptr, "ReadAllApplicationReportFiles"},
FunctionInfo{90100, nullptr, "ReadAllReportFiles"},
FunctionInfo{90101, nullptr, "Unknown90101"},
FunctionInfo{90102, nullptr, "Unknown90102"},
FunctionInfo{90200, nullptr, "GetStatistics"},
FunctionInfo{90201, nullptr, "GetThroughputHistory"},
FunctionInfo{90300, nullptr, "GetLastUploadError"}
);
};
void LoopProcess(Core::System& system) {
auto server_manager = std::make_unique<ServerManager>(system);
server_manager->RegisterNamedService("prepo:a",
std::make_shared<PlayReport>("prepo:a", system));
server_manager->RegisterNamedService("prepo:a2",
std::make_shared<PlayReport>("prepo:a2", system));
server_manager->RegisterNamedService("prepo:m",
std::make_shared<PlayReport>("prepo:m", system));
server_manager->RegisterNamedService("prepo:s",
std::make_shared<PlayReport>("prepo:s", system));
server_manager->RegisterNamedService("prepo:u",
std::make_shared<PlayReport>("prepo:u", system));
server_manager->RegisterNamedService("prepo:a", std::make_shared<PlayReport>("prepo:a", system));
server_manager->RegisterNamedService("prepo:a2", std::make_shared<PlayReport>("prepo:a2", system));
server_manager->RegisterNamedService("prepo:m", std::make_shared<PlayReport>("prepo:m", system));
server_manager->RegisterNamedService("prepo:s", std::make_shared<PlayReport>("prepo:s", system));
server_manager->RegisterNamedService("prepo:u", std::make_shared<PlayReport>("prepo:u", system));
ServerManager::RunServer(std::move(server_manager));
}
+26 -21
View File
@@ -21,14 +21,15 @@ class PSC_L final : public ServiceFramework<PSC_L> {
public:
explicit PSC_L(Core::System& system_) : ServiceFramework{system_, "psc:l"} {}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "Initialize_3"},
FunctionInfo{1, nullptr, "Lock"},
FunctionInfo{2, nullptr, "Unlock"},
FunctionInfo{3, nullptr, "IsLocked"},
FunctionInfo{4, nullptr, "GetRelatedState"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "Initialize_3"},
FunctionInfo{1, nullptr, "Lock"},
FunctionInfo{2, nullptr, "Unlock"},
FunctionInfo{3, nullptr, "IsLocked"},
FunctionInfo{4, nullptr, "GetRelatedState"}
);
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -36,11 +37,12 @@ class INS_R final : public ServiceFramework<INS_R> {
public:
explicit INS_R(Core::System& system_) : ServiceFramework{system_, "ins:r"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetInputSourceState"},
FunctionInfo{1, nullptr, "GetTriggerTargetEvent"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -48,10 +50,11 @@ class INS_S final : public ServiceFramework<INS_S> {
public:
explicit INS_S(Core::System& system_) : ServiceFramework{system_, "ins:s"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetNotifyEvent"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -59,8 +62,7 @@ class HSHL_SYS final : public ServiceFramework<HSHL_SYS> {
public:
explicit HSHL_SYS(Core::System& system_) : ServiceFramework{system_, "hshl:sys"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetBatteryPercentage"},
FunctionInfo{1, nullptr, "GetChargerType"},
FunctionInfo{2, nullptr, "OpenChargeSession"},
@@ -78,6 +80,8 @@ public:
FunctionInfo{14, nullptr, "Cmd14"},
FunctionInfo{15, nullptr, "Cmd15"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -85,15 +89,16 @@ class HSHL_SET final : public ServiceFramework<HSHL_SET> {
public:
explicit HSHL_SET(Core::System& system_) : ServiceFramework{system_, "hshl:set"} {}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "OpenChargeSession_2"},
FunctionInfo{1, nullptr, "OpenThermalSession_2"},
FunctionInfo{2, nullptr, "SetClockRate"},
FunctionInfo{3, nullptr, "SetBridgePowerSupply"},
FunctionInfo{4, nullptr, "Cmd4"},
FunctionInfo{5, nullptr, "Cmd5"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "OpenChargeSession_2"},
FunctionInfo{1, nullptr, "OpenThermalSession_2"},
FunctionInfo{2, nullptr, "SetClockRate"},
FunctionInfo{3, nullptr, "SetBridgePowerSupply"},
FunctionInfo{4, nullptr, "Cmd4"},
FunctionInfo{5, nullptr, "Cmd5"}
);
return HandlerTableGenerateWithFind(key, functions);
}
};
+9 -8
View File
@@ -27,13 +27,7 @@ public:
}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IPsmSession::BindStateChangeEvent, "BindStateChangeEvent"},
FunctionInfo{1, &IPsmSession::UnbindStateChangeEvent, "UnbindStateChangeEvent"},
FunctionInfo{2, &IPsmSession::SetChargerTypeChangeEventEnabled, "SetChargerTypeChangeEventEnabled"},
FunctionInfo{3, &IPsmSession::SetPowerSupplyChangeEventEnabled, "SetPowerSupplyChangeEventEnabled"},
FunctionInfo{4, &IPsmSession::SetBatteryVoltageStateChangeEventEnabled, "SetBatteryVoltageStateChangeEventEnabled"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~IPsmSession() override {
@@ -111,8 +105,15 @@ private:
rb.Push(ResultSuccess);
}
KernelHelpers::ServiceContext service_context;
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IPsmSession::BindStateChangeEvent, "BindStateChangeEvent"},
FunctionInfo{1, &IPsmSession::UnbindStateChangeEvent, "UnbindStateChangeEvent"},
FunctionInfo{2, &IPsmSession::SetChargerTypeChangeEventEnabled, "SetChargerTypeChangeEventEnabled"},
FunctionInfo{3, &IPsmSession::SetPowerSupplyChangeEventEnabled, "SetPowerSupplyChangeEventEnabled"},
FunctionInfo{4, &IPsmSession::SetBatteryVoltageStateChangeEventEnabled, "SetBatteryVoltageStateChangeEventEnabled"}
);
KernelHelpers::ServiceContext service_context;
bool should_signal_charger_type{};
bool should_signal_power_supply{};
bool should_signal_battery_voltage{};
+6 -4
View File
@@ -19,12 +19,13 @@ public:
explicit PSM_MANU(Core::System& system_)
: ServiceFramework{system_, "psm:manu"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "EnableVdd50StateControl"},
FunctionInfo{1, nullptr, "DisableVdd50StateControl"},
FunctionInfo{2, nullptr, "SetVdd50State"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -33,10 +34,11 @@ public:
explicit POWCTL(Core::System& system_)
: ServiceFramework{system_, "powctl"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "OpenSession"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+7 -5
View File
@@ -22,11 +22,7 @@ public:
explicit ISession(Core::System& system_) : ServiceFramework{system_, "ISession"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, nullptr, "GetTemperatureRange"},
FunctionInfo{2, nullptr, "SetMeasurementMode"},
FunctionInfo{4, &ISession::GetTemperature, "GetTemperature"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -37,6 +33,12 @@ private:
rb.Push(ResultSuccess);
rb.Push(temperature);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetTemperatureRange"},
FunctionInfo{2, nullptr, "SetMeasurementMode"},
FunctionInfo{4, &ISession::GetTemperature, "GetTemperature"}
);
};
TS::TS(Core::System& system_) : ServiceFramework{system_, "ts"} {
+9 -8
View File
@@ -513,14 +513,7 @@ public:
{}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, C<&RoInterface::MapManualLoadModuleMemory>, "MapManualLoadModuleMemory"},
FunctionInfo{1, C<&RoInterface::UnmapManualLoadModuleMemory>, "UnmapManualLoadModuleMemory"},
FunctionInfo{2, C<&RoInterface::RegisterModuleInfo>, "RegisterModuleInfo"},
FunctionInfo{3, C<&RoInterface::UnregisterModuleInfo>, "UnregisterModuleInfo"},
FunctionInfo{4, C<&RoInterface::RegisterProcessHandle>, "RegisterProcessHandle"},
FunctionInfo{10, C<&RoInterface::RegisterProcessModuleInfo>, "RegisterProcessModuleInfo"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~RoInterface() {
@@ -563,6 +556,14 @@ public:
}
private:
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, C<&RoInterface::MapManualLoadModuleMemory>, "MapManualLoadModuleMemory"},
FunctionInfo{1, C<&RoInterface::UnmapManualLoadModuleMemory>, "UnmapManualLoadModuleMemory"},
FunctionInfo{2, C<&RoInterface::RegisterModuleInfo>, "RegisterModuleInfo"},
FunctionInfo{3, C<&RoInterface::UnregisterModuleInfo>, "UnregisterModuleInfo"},
FunctionInfo{4, C<&RoInterface::RegisterProcessHandle>, "RegisterProcessHandle"},
FunctionInfo{10, C<&RoInterface::RegisterProcessModuleInfo>, "RegisterProcessModuleInfo"}
);
std::shared_ptr<RoContext> m_ro{};
size_t m_context_id{};
NrrKind m_nrr_kind{};
+16 -11
View File
@@ -10,6 +10,7 @@
#include <memory>
#include <mutex>
#include <tuple>
#include <type_traits>
#include "frozen/map.h"
#include "common/container/unordered_map.h"
#include "common/common_types.h"
@@ -94,6 +95,7 @@ protected:
const char* name;
u32 version_gating;
};
static_assert(std::is_trivially_constructible_v<FunctionInfoBase>);
private:
template <typename T>
friend class ServiceFramework;
@@ -153,6 +155,9 @@ protected:
/// @param expected_header_ request header in the command buffer which will trigger dispatch to this handler
/// @param handler_callback_ member function in this service which will be called to handle the request
/// @param name_ human-friendly name for the request. Used mostly for logging purposes.
#ifndef _MSC_VER
constexpr
#endif
FunctionInfoTyped(u32 expected_header_, HandlerFnP<T> handler_callback_, const char* name_, u32 version_gating_ = 0)
: FunctionInfoBase{expected_header_, HandlerFnP<ServiceFrameworkBase>(handler_callback_), name_, version_gating_}
{}
@@ -161,10 +166,14 @@ protected:
template<typename ...Ts>
requires (std::same_as<Ts, FunctionInfo> && ...)
static FunctionInfoBase const* HandlerTableGenerateWithFind(u32 key, Ts... args) {
static auto const map = frozen::map<u32, FunctionInfo, sizeof...(args)>{
static constexpr frozen::map<u32, FunctionInfo, sizeof...(Ts)> CreateStaticMap(Ts... args) {
return frozen::map<u32, FunctionInfo, sizeof...(args)>{
{args.expected_header, FunctionInfo(args)}...
};
}
template<typename T>
static FunctionInfoBase const* HandlerTableGenerateWithFind(u32 key, T const& map) {
auto const it = map.find(key);
return it != map.end() ? std::addressof(it->second) : nullptr;
}
@@ -208,25 +217,21 @@ protected:
RegisterHandlers(functions, N);
}
/**
* Registers handlers in the service. Usually prefer using the other RegisterHandlers
* overload in order to avoid needing to specify the array size.
*/
/// @brief Registers handlers in the service. Usually prefer using the other RegisterHandlers
/// overload in order to avoid needing to specify the array size.
template <typename T = Self>
constexpr void RegisterHandlers(const FunctionInfoTyped<T>* functions, std::size_t n) {
RegisterHandlersBase(functions, n);
}
/// Registers handlers in the service.
/// @brief Registers handlers in the service.
template <typename T = Self, std::size_t N>
constexpr void RegisterHandlersTipc(const FunctionInfoTyped<T> (&functions)[N]) {
RegisterHandlersTipc(functions, N);
}
/**
* Registers handlers in the service. Usually prefer using the other RegisterHandlers
* overload in order to avoid needing to specify the array size.
*/
/// @brief Registers handlers in the service. Usually prefer using the other RegisterHandlers
/// overload in order to avoid needing to specify the array size.
template <typename T = Self>
constexpr void RegisterHandlersTipc(const FunctionInfoTyped<T>* functions, std::size_t n) {
RegisterHandlersBaseTipc(functions, n);
+9 -6
View File
@@ -17,8 +17,7 @@ public:
explicit ETHC_C(Core::System& system_)
: ServiceFramework{system_, "ethc:c"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "Initialize"},
FunctionInfo{1, nullptr, "Cancel"},
FunctionInfo{2, nullptr, "GetResult"},
@@ -27,6 +26,8 @@ public:
FunctionInfo{5, nullptr, "GetMediaType"},
FunctionInfo{6, nullptr, "GetMacAddress"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -35,14 +36,15 @@ public:
explicit ETHC_I(Core::System& system_)
: ServiceFramework{system_, "ethc:i"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetReadableHandle"},
FunctionInfo{1, nullptr, "Cancel"},
FunctionInfo{2, nullptr, "GetResult"},
FunctionInfo{3, nullptr, "GetInterfaceList"},
FunctionInfo{4, nullptr, "GetInterfaceCount"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -51,10 +53,11 @@ public:
explicit ISfDriverServiceCreator(Core::System& system_)
: ServiceFramework{system_, "eth:nd"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "CreateDriverService"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
+53 -52
View File
@@ -84,44 +84,7 @@ public:
}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, D<&ISslConnection::SetSocketDescriptor>, "SetSocketDescriptor"},
FunctionInfo{1, D<&ISslConnection::SetHostName>, "SetHostName"},
FunctionInfo{2, D<&ISslConnection::SetVerifyOption>, "SetVerifyOption"},
FunctionInfo{3, D<&ISslConnection::SetIoMode>, "SetIoMode"},
FunctionInfo{4, D<&ISslConnection::GetSocketDescriptor>, "GetSocketDescriptor"},
FunctionInfo{5, D<&ISslConnection::GetHostName>, "GetHostName"},
FunctionInfo{6, nullptr, "GetVerifyOption"},
FunctionInfo{7, D<&ISslConnection::GetIoMode>, "GetIoMode"},
FunctionInfo{8, D<&ISslConnection::DoHandshake>, "DoHandshake"},
FunctionInfo{9, &ISslConnection::DoHandshakeGetServerCert, "DoHandshakeGetServerCert"},
FunctionInfo{10, D<&ISslConnection::Read>, "Read"},
FunctionInfo{11, D<&ISslConnection::Write>, "Write"},
FunctionInfo{12, D<&ISslConnection::Pending>, "Pending"},
FunctionInfo{13, D<&ISslConnection::Peek>, "Peek"},
FunctionInfo{14, D<&ISslConnection::Poll>, "Poll"},
FunctionInfo{15, D<&ISslConnection::GetVerifyCertError>, "GetVerifyCertError"},
FunctionInfo{16, D<&ISslConnection::GetNeededServerCertBufferSize>, "GetNeededServerCertBufferSize"},
FunctionInfo{17, D<&ISslConnection::SetSessionCacheMode>, "SetSessionCacheMode"},
FunctionInfo{18, D<&ISslConnection::GetSessionCacheMode>, "GetSessionCacheMode"},
FunctionInfo{19, D<&ISslConnection::FlushSessionCache>, "FlushSessionCache"},
FunctionInfo{20, D<&ISslConnection::SetRenegotiationMode>, "SetRenegotiationMode"},
FunctionInfo{21, D<&ISslConnection::GetRenegotiationMode>, "GetRenegotiationMode"},
FunctionInfo{22, D<&ISslConnection::SetOption>, "SetOption"},
FunctionInfo{23, D<&ISslConnection::GetOption>, "GetOption"},
FunctionInfo{24, nullptr, "GetVerifyCertErrors"},
FunctionInfo{25, nullptr, "GetCipherInfo"},
FunctionInfo{26, D<&ISslConnection::SetNextAlpnProto>, "SetNextAlpnProto"},
FunctionInfo{27, D<&ISslConnection::GetNextAlpnProto>, "GetNextAlpnProto"},
FunctionInfo{28, nullptr, "SetDtlsSocketDescriptor"},
FunctionInfo{29, nullptr, "GetDtlsHandshakeTimeout"},
FunctionInfo{30, nullptr, "SetPrivateOption"},
FunctionInfo{31, nullptr, "SetSrtpCiphers"},
FunctionInfo{32, nullptr, "GetSrtpCipher"},
FunctionInfo{33, nullptr, "ExportKeyingMaterial"},
FunctionInfo{34, nullptr, "SetIoTimeout"},
FunctionInfo{35, nullptr, "GetIoTimeout"}
);
return HandlerTableGenerateWithFind(key, functions);
}
~ISslConnection() {
@@ -429,6 +392,44 @@ private:
R_SUCCEED();
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, D<&ISslConnection::SetSocketDescriptor>, "SetSocketDescriptor"},
FunctionInfo{1, D<&ISslConnection::SetHostName>, "SetHostName"},
FunctionInfo{2, D<&ISslConnection::SetVerifyOption>, "SetVerifyOption"},
FunctionInfo{3, D<&ISslConnection::SetIoMode>, "SetIoMode"},
FunctionInfo{4, D<&ISslConnection::GetSocketDescriptor>, "GetSocketDescriptor"},
FunctionInfo{5, D<&ISslConnection::GetHostName>, "GetHostName"},
FunctionInfo{6, nullptr, "GetVerifyOption"},
FunctionInfo{7, D<&ISslConnection::GetIoMode>, "GetIoMode"},
FunctionInfo{8, D<&ISslConnection::DoHandshake>, "DoHandshake"},
FunctionInfo{9, &ISslConnection::DoHandshakeGetServerCert, "DoHandshakeGetServerCert"},
FunctionInfo{10, D<&ISslConnection::Read>, "Read"},
FunctionInfo{11, D<&ISslConnection::Write>, "Write"},
FunctionInfo{12, D<&ISslConnection::Pending>, "Pending"},
FunctionInfo{13, D<&ISslConnection::Peek>, "Peek"},
FunctionInfo{14, D<&ISslConnection::Poll>, "Poll"},
FunctionInfo{15, D<&ISslConnection::GetVerifyCertError>, "GetVerifyCertError"},
FunctionInfo{16, D<&ISslConnection::GetNeededServerCertBufferSize>, "GetNeededServerCertBufferSize"},
FunctionInfo{17, D<&ISslConnection::SetSessionCacheMode>, "SetSessionCacheMode"},
FunctionInfo{18, D<&ISslConnection::GetSessionCacheMode>, "GetSessionCacheMode"},
FunctionInfo{19, D<&ISslConnection::FlushSessionCache>, "FlushSessionCache"},
FunctionInfo{20, D<&ISslConnection::SetRenegotiationMode>, "SetRenegotiationMode"},
FunctionInfo{21, D<&ISslConnection::GetRenegotiationMode>, "GetRenegotiationMode"},
FunctionInfo{22, D<&ISslConnection::SetOption>, "SetOption"},
FunctionInfo{23, D<&ISslConnection::GetOption>, "GetOption"},
FunctionInfo{24, nullptr, "GetVerifyCertErrors"},
FunctionInfo{25, nullptr, "GetCipherInfo"},
FunctionInfo{26, D<&ISslConnection::SetNextAlpnProto>, "SetNextAlpnProto"},
FunctionInfo{27, D<&ISslConnection::GetNextAlpnProto>, "GetNextAlpnProto"},
FunctionInfo{28, nullptr, "SetDtlsSocketDescriptor"},
FunctionInfo{29, nullptr, "GetDtlsHandshakeTimeout"},
FunctionInfo{30, nullptr, "SetPrivateOption"},
FunctionInfo{31, nullptr, "SetSrtpCiphers"},
FunctionInfo{32, nullptr, "GetSrtpCipher"},
FunctionInfo{33, nullptr, "ExportKeyingMaterial"},
FunctionInfo{34, nullptr, "SetIoTimeout"},
FunctionInfo{35, nullptr, "GetIoTimeout"}
);
SslVersion ssl_version;
std::shared_ptr<SslContextSharedData> shared_data;
std::unique_ptr<SSLConnectionBackend> backend;
@@ -562,22 +563,10 @@ private:
class ISslService final : public ServiceFramework<ISslService> {
public:
explicit ISslService(Core::System& system_)
: ServiceFramework{system_, "ssl"}, cert_store{system} {}
explicit ISslService(Core::System& system_) : ServiceFramework{system_, "ssl"}, cert_store{system} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &ISslService::CreateContext, "CreateContext"},
FunctionInfo{1, nullptr, "GetContextCount"},
FunctionInfo{2, D<&ISslService::GetCertificates>, "GetCertificates"},
FunctionInfo{3, D<&ISslService::GetCertificateBufSize>, "GetCertificateBufSize"},
FunctionInfo{4, nullptr, "DebugIoctl"},
FunctionInfo{5, &ISslService::SetInterfaceVersion, "SetInterfaceVersion"},
FunctionInfo{6, nullptr, "FlushSessionCache"},
FunctionInfo{7, nullptr, "SetDebugOption"},
FunctionInfo{8, nullptr, "GetDebugOption"},
FunctionInfo{8, nullptr, "ClearTls12FallbackFlag"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -623,6 +612,18 @@ private:
}
private:
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &ISslService::CreateContext, "CreateContext"},
FunctionInfo{1, nullptr, "GetContextCount"},
FunctionInfo{2, D<&ISslService::GetCertificates>, "GetCertificates"},
FunctionInfo{3, D<&ISslService::GetCertificateBufSize>, "GetCertificateBufSize"},
FunctionInfo{4, nullptr, "DebugIoctl"},
FunctionInfo{5, &ISslService::SetInterfaceVersion, "SetInterfaceVersion"},
FunctionInfo{6, nullptr, "FlushSessionCache"},
FunctionInfo{7, nullptr, "SetDebugOption"},
FunctionInfo{8, nullptr, "GetDebugOption"},
FunctionInfo{8, nullptr, "ClearTls12FallbackFlag"}
);
CertStore cert_store;
};
+43 -28
View File
@@ -19,8 +19,7 @@ class IDsInterface final : public ServiceFramework<IDsInterface> {
public:
explicit IDsInterface(Core::System& system_) : ServiceFramework{system_, "IDsInterface"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "AddEndpoint"},
FunctionInfo{1, nullptr, "GetSetupEvent"},
FunctionInfo{2, nullptr, "GetSetupPacket"},
@@ -35,6 +34,8 @@ public:
FunctionInfo{11, nullptr, "CtrlStall"},
FunctionInfo{12, nullptr, "AppendConfigurationData"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -42,10 +43,11 @@ class IDsRootSession final : public ServiceFramework<IDsRootSession> {
public:
explicit IDsRootSession(Core::System& system_) : ServiceFramework{system_, "usb:ds"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "OpenDsService"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -54,8 +56,7 @@ public:
explicit IClientEpSession(Core::System& system_)
: ServiceFramework{system_, "IClientEpSession"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "ReOpen"},
FunctionInfo{1, nullptr, "Close"},
FunctionInfo{2, nullptr, "GetCompletionEvent"},
@@ -66,6 +67,8 @@ public:
FunctionInfo{7, nullptr, "CreateSmmuSpace"},
FunctionInfo{8, nullptr, "ShareReportRing"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -74,8 +77,7 @@ public:
explicit IClientIfSession(Core::System& system_)
: ServiceFramework{system_, "IClientIfSession"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetStateChangeEvent"},
FunctionInfo{1, nullptr, "SetInterface"},
FunctionInfo{2, nullptr, "GetInterface"},
@@ -87,6 +89,8 @@ public:
FunctionInfo{8, nullptr, "ResetDevice"},
FunctionInfo{9, nullptr, "OpenUsbEp"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -94,8 +98,7 @@ class IClientRootSession final : public ServiceFramework<IClientRootSession> {
public:
explicit IClientRootSession(Core::System& system_) : ServiceFramework{system_, "usb:hs"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "BindClientProcess"},
FunctionInfo{1, nullptr, "QueryAllInterfaces"},
FunctionInfo{2, nullptr, "QueryAvailableInterfaces"},
@@ -106,6 +109,8 @@ public:
FunctionInfo{7, nullptr, "AcquireUsbIf"},
FunctionInfo{8, nullptr, "SetTestMode"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -113,8 +118,7 @@ class IPdSession final : public ServiceFramework<IPdSession> {
public:
explicit IPdSession(Core::System& system_) : ServiceFramework{system_, "IPdSession"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "BindNoticeEvent"},
FunctionInfo{1, nullptr, "UnbindNoticeEvent"},
FunctionInfo{2, nullptr, "GetStatus"},
@@ -123,6 +127,8 @@ public:
FunctionInfo{5, nullptr, "DisablePowerRequestNotice"},
FunctionInfo{6, nullptr, "ReplyPowerRequest"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -131,9 +137,7 @@ public:
explicit IPdManager(Core::System& system_) : ServiceFramework{system_, "usb:pd"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IPdManager::OpenSession, "OpenSession"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -144,6 +148,10 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<IPdSession>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IPdManager::OpenSession, "OpenSession"}
);
};
class IPdCradleSession final : public ServiceFramework<IPdCradleSession> {
@@ -151,8 +159,7 @@ public:
explicit IPdCradleSession(Core::System& system_)
: ServiceFramework{system_, "IPdCradleSession"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "SetCradleVdo"},
FunctionInfo{1, nullptr, "GetCradleVdo"},
FunctionInfo{2, nullptr, "ResetCradleUsbHub"},
@@ -163,6 +170,8 @@ public:
FunctionInfo{7, nullptr, "EnableCradleRecovery"},
FunctionInfo{8, nullptr, "DisableCradleRecovery"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -171,9 +180,7 @@ public:
explicit IPdCradleManager(Core::System& system_) : ServiceFramework{system_, "usb:pd:c"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
FunctionInfo{0, &IPdCradleManager::OpenCradleSession, "OpenCradleSession"}
);
return HandlerTableGenerateWithFind(key, functions);
}
private:
@@ -184,14 +191,17 @@ private:
rb.Push(ResultSuccess);
rb.PushIpcInterface<IPdCradleSession>(ctx, system);
}
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, &IPdCradleManager::OpenCradleSession, "OpenCradleSession"}
);
};
class IPmMainService final : public ServiceFramework<IPmMainService> {
public:
explicit IPmMainService(Core::System& system_) : ServiceFramework{system_, "usb:pm"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetPowerEvent"},
FunctionInfo{1, nullptr, "GetPowerState"},
FunctionInfo{2, nullptr, "GetDataEvent"},
@@ -199,6 +209,8 @@ public:
FunctionInfo{4, nullptr, "SetDiagData"},
FunctionInfo{5, nullptr, "GetDiagData"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -206,10 +218,11 @@ class IPdManufactureManager final : public ServiceFramework<IPdManufactureManage
public:
explicit IPdManufactureManager(Core::System& system_) : ServiceFramework{system_, "usb:pd:m"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "OpenManufactureSession"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -217,11 +230,12 @@ class IQdbManager final : public ServiceFramework<IQdbManager> {
public:
explicit IQdbManager(Core::System& system_) : ServiceFramework{system_, "usb:qdb"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "ImportQuirkDevices"},
FunctionInfo{1, nullptr, "HasQuirk"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};
@@ -229,11 +243,12 @@ class IPmObserverService final : public ServiceFramework<IPmObserverService> {
public:
explicit IPmObserverService(Core::System& system_) : ServiceFramework{system_, "usb:obsv"} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key,
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetTopologyChangeEvent"},
FunctionInfo{1, nullptr, "GetFlattenedTopology"}
);
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
};