mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-09-26 19:11:00 +00:00
@@ -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);
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
+778
-723
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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{};
|
||||
|
||||
@@ -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"} {
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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{};
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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};
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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> {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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{};
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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"} {
|
||||
|
||||
@@ -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{};
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user