diff --git a/src/core/hle/service/acc/async_context.cpp b/src/core/hle/service/acc/async_context.cpp index 8dec886ad7..a7f751d756 100644 --- a/src/core/hle/service/acc/async_context.cpp +++ b/src/core/hle/service/acc/async_context.cpp @@ -12,17 +12,6 @@ namespace Service::Account { IAsyncContext::IAsyncContext(Core::System& system_) : ServiceFramework{system_, "IAsyncContext"}, service_context{system_, "IAsyncContext"} { - // clang-format off - static const FunctionInfo functions[] = { - {0, &IAsyncContext::GetSystemEvent, "GetSystemEvent"}, - {1, &IAsyncContext::Cancel, "Cancel"}, - {2, &IAsyncContext::HasDone, "HasDone"}, - {3, &IAsyncContext::GetResult, "GetResult"}, - }; - // clang-format on - - RegisterHandlers(functions); - completion_event = service_context.CreateEvent("IAsyncContext:CompletionEvent"); } diff --git a/src/core/hle/service/acc/async_context.h b/src/core/hle/service/acc/async_context.h index d7bffc055e..fa898a7a98 100644 --- a/src/core/hle/service/acc/async_context.h +++ b/src/core/hle/service/acc/async_context.h @@ -30,6 +30,16 @@ protected: void MarkComplete(); + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); + } + static constexpr auto functions = CreateStaticMap( + FunctionInfo{0, &IAsyncContext::GetSystemEvent, "GetSystemEvent"}, + FunctionInfo{1, &IAsyncContext::Cancel, "Cancel"}, + FunctionInfo{2, &IAsyncContext::HasDone, "HasDone"}, + FunctionInfo{3, &IAsyncContext::GetResult, "GetResult"} + ); + KernelHelpers::ServiceContext service_context; std::atomic is_complete{false}; diff --git a/src/core/hle/service/ro/ro.cpp b/src/core/hle/service/ro/ro.cpp index 6be1ba8ca5..5bd6b18087 100644 --- a/src/core/hle/service/ro/ro.cpp +++ b/src/core/hle/service/ro/ro.cpp @@ -512,14 +512,14 @@ public: , m_nrr_kind(nrr_kind) {} - FunctionInfoBase const* FindRequest(u32 key) override { - return HandlerTableGenerateWithFind(key, functions); - } - ~RoInterface() { m_ro->UnregisterProcess(system.Kernel(), m_context_id); } + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); + } + Result MapManualLoadModuleMemory(Out out_load_address, ClientProcessId client_pid, u64 nro_address, u64 nro_size, u64 bss_address, u64 bss_size) { R_TRY(m_ro->ValidateProcess(m_context_id, *client_pid)); @@ -576,12 +576,14 @@ class IDebugMonitorInterface final : public ServiceFramework container) - : ServiceFramework{system_, "ISystemDisplayService"}, m_container{std::move(container)} { - // clang-format off - static const FunctionInfo functions[] = { - {1200, nullptr, "GetZOrderCountMin"}, - {1202, nullptr, "GetZOrderCountMax"}, - {1203, nullptr, "GetDisplayLogicalResolution"}, - {1204, nullptr, "SetDisplayMagnification"}, - {2201, nullptr, "SetLayerPosition"}, - {2203, nullptr, "SetLayerSize"}, - {2204, C<&ISystemDisplayService::GetLayerZ>, "GetLayerZ"}, - {2205, C<&ISystemDisplayService::SetLayerZ>, "SetLayerZ"}, - {2207, C<&ISystemDisplayService::SetLayerVisibility>, "SetLayerVisibility"}, - {2209, nullptr, "SetLayerAlpha"}, - {2210, nullptr, "SetLayerPositionAndSize"}, - {2312, nullptr, "CreateStrayLayer"}, - {2400, nullptr, "OpenIndirectLayer"}, - {2401, nullptr, "CloseIndirectLayer"}, - {2402, nullptr, "FlipIndirectLayer"}, - {3000, C<&ISystemDisplayService::ListDisplayModes>, "ListDisplayModes"}, - {3001, nullptr, "ListDisplayRgbRanges"}, - {3002, nullptr, "ListDisplayContentTypes"}, - {3200, C<&ISystemDisplayService::GetDisplayMode>, "GetDisplayMode"}, - {3201, nullptr, "SetDisplayMode"}, - {3202, nullptr, "GetDisplayUnderscan"}, - {3203, nullptr, "SetDisplayUnderscan"}, - {3204, nullptr, "GetDisplayContentType"}, - {3205, nullptr, "SetDisplayContentType"}, - {3206, nullptr, "GetDisplayRgbRange"}, - {3207, nullptr, "SetDisplayRgbRange"}, - {3208, nullptr, "GetDisplayCmuMode"}, - {3209, nullptr, "SetDisplayCmuMode"}, - {3210, nullptr, "GetDisplayContrastRatio"}, - {3211, nullptr, "SetDisplayContrastRatio"}, - {3214, nullptr, "GetDisplayGamma"}, - {3215, nullptr, "SetDisplayGamma"}, - {3216, nullptr, "GetDisplayCmuLuma"}, - {3217, nullptr, "SetDisplayCmuLuma"}, - {3218, nullptr, "SetDisplayCrcMode"}, - {6013, nullptr, "GetLayerPresentationSubmissionTimestamps"}, - {8225, C<&ISystemDisplayService::GetSharedBufferMemoryHandleId>, "GetSharedBufferMemoryHandleId"}, - {8250, C<&ISystemDisplayService::OpenSharedLayer>, "OpenSharedLayer"}, - {8251, nullptr, "CloseSharedLayer"}, - {8252, C<&ISystemDisplayService::ConnectSharedLayer>, "ConnectSharedLayer"}, - {8253, nullptr, "DisconnectSharedLayer"}, - {8254, C<&ISystemDisplayService::AcquireSharedFrameBuffer>, "AcquireSharedFrameBuffer"}, - {8255, C<&ISystemDisplayService::PresentSharedFrameBuffer>, "PresentSharedFrameBuffer"}, - {8256, C<&ISystemDisplayService::GetSharedFrameBufferAcquirableEvent>, "GetSharedFrameBufferAcquirableEvent"}, - {8257, nullptr, "FillSharedFrameBufferColor"}, - {8258, C<&ISystemDisplayService::CancelSharedFrameBuffer>, "CancelSharedFrameBuffer"}, - {9000, nullptr, "GetDp2hdmiController"}, - }; - // clang-format on - RegisterHandlers(functions); -} +ISystemDisplayService::ISystemDisplayService(Core::System& system_, std::shared_ptr container) + : ServiceFramework{system_, "ISystemDisplayService"}, m_container{std::move(container)} +{} ISystemDisplayService::~ISystemDisplayService() = default; diff --git a/src/core/hle/service/vi/system_display_service.h b/src/core/hle/service/vi/system_display_service.h index a3b88c519d..12f64ac45c 100644 --- a/src/core/hle/service/vi/system_display_service.h +++ b/src/core/hle/service/vi/system_display_service.h @@ -47,6 +47,58 @@ private: Result CancelSharedFrameBuffer(u64 layer_id, s64 slot); private: + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); + } + static constexpr auto functions = CreateStaticMap( + FunctionInfo{1200, nullptr, "GetZOrderCountMin"}, + FunctionInfo{1202, nullptr, "GetZOrderCountMax"}, + FunctionInfo{1203, nullptr, "GetDisplayLogicalResolution"}, + FunctionInfo{1204, nullptr, "SetDisplayMagnification"}, + FunctionInfo{2201, nullptr, "SetLayerPosition"}, + FunctionInfo{2203, nullptr, "SetLayerSize"}, + FunctionInfo{2204, C<&ISystemDisplayService::GetLayerZ>, "GetLayerZ"}, + FunctionInfo{2205, C<&ISystemDisplayService::SetLayerZ>, "SetLayerZ"}, + FunctionInfo{2207, C<&ISystemDisplayService::SetLayerVisibility>, "SetLayerVisibility"}, + FunctionInfo{2209, nullptr, "SetLayerAlpha"}, + FunctionInfo{2210, nullptr, "SetLayerPositionAndSize"}, + FunctionInfo{2312, nullptr, "CreateStrayLayer"}, + FunctionInfo{2400, nullptr, "OpenIndirectLayer"}, + FunctionInfo{2401, nullptr, "CloseIndirectLayer"}, + FunctionInfo{2402, nullptr, "FlipIndirectLayer"}, + FunctionInfo{3000, C<&ISystemDisplayService::ListDisplayModes>, "ListDisplayModes"}, + FunctionInfo{3001, nullptr, "ListDisplayRgbRanges"}, + FunctionInfo{3002, nullptr, "ListDisplayContentTypes"}, + FunctionInfo{3200, C<&ISystemDisplayService::GetDisplayMode>, "GetDisplayMode"}, + FunctionInfo{3201, nullptr, "SetDisplayMode"}, + FunctionInfo{3202, nullptr, "GetDisplayUnderscan"}, + FunctionInfo{3203, nullptr, "SetDisplayUnderscan"}, + FunctionInfo{3204, nullptr, "GetDisplayContentType"}, + FunctionInfo{3205, nullptr, "SetDisplayContentType"}, + FunctionInfo{3206, nullptr, "GetDisplayRgbRange"}, + FunctionInfo{3207, nullptr, "SetDisplayRgbRange"}, + FunctionInfo{3208, nullptr, "GetDisplayCmuMode"}, + FunctionInfo{3209, nullptr, "SetDisplayCmuMode"}, + FunctionInfo{3210, nullptr, "GetDisplayContrastRatio"}, + FunctionInfo{3211, nullptr, "SetDisplayContrastRatio"}, + FunctionInfo{3214, nullptr, "GetDisplayGamma"}, + FunctionInfo{3215, nullptr, "SetDisplayGamma"}, + FunctionInfo{3216, nullptr, "GetDisplayCmuLuma"}, + FunctionInfo{3217, nullptr, "SetDisplayCmuLuma"}, + FunctionInfo{3218, nullptr, "SetDisplayCrcMode"}, + FunctionInfo{6013, nullptr, "GetLayerPresentationSubmissionTimestamps"}, + FunctionInfo{8225, C<&ISystemDisplayService::GetSharedBufferMemoryHandleId>, "GetSharedBufferMemoryHandleId"}, + FunctionInfo{8250, C<&ISystemDisplayService::OpenSharedLayer>, "OpenSharedLayer"}, + FunctionInfo{8251, nullptr, "CloseSharedLayer"}, + FunctionInfo{8252, C<&ISystemDisplayService::ConnectSharedLayer>, "ConnectSharedLayer"}, + FunctionInfo{8253, nullptr, "DisconnectSharedLayer"}, + FunctionInfo{8254, C<&ISystemDisplayService::AcquireSharedFrameBuffer>, "AcquireSharedFrameBuffer"}, + FunctionInfo{8255, C<&ISystemDisplayService::PresentSharedFrameBuffer>, "PresentSharedFrameBuffer"}, + FunctionInfo{8256, C<&ISystemDisplayService::GetSharedFrameBufferAcquirableEvent>, "GetSharedFrameBufferAcquirableEvent"}, + FunctionInfo{8257, nullptr, "FillSharedFrameBufferColor"}, + FunctionInfo{8258, C<&ISystemDisplayService::CancelSharedFrameBuffer>, "CancelSharedFrameBuffer"}, + FunctionInfo{9000, nullptr, "GetDp2hdmiController"} + ); const std::shared_ptr m_container; }; diff --git a/src/core/hle/service/vi/system_root_service.cpp b/src/core/hle/service/vi/system_root_service.cpp index 3489727d81..1b71634c8a 100644 --- a/src/core/hle/service/vi/system_root_service.cpp +++ b/src/core/hle/service/vi/system_root_service.cpp @@ -12,13 +12,8 @@ namespace Service::VI { ISystemRootService::ISystemRootService(Core::System& system_, std::shared_ptr container) - : ServiceFramework{system_, "vi:s"}, m_container{std::move(container)} { - static const FunctionInfo functions[] = { - {1, C<&ISystemRootService::GetDisplayService>, "GetDisplayService"}, - {3, nullptr, "GetDisplayServiceWithProxyNameExchange"}, - }; - RegisterHandlers(functions); -} + : ServiceFramework{system_, "vi:s"}, m_container{std::move(container)} +{} ISystemRootService::~ISystemRootService() = default; diff --git a/src/core/hle/service/vi/system_root_service.h b/src/core/hle/service/vi/system_root_service.h index 9d5aa53d38..49b4165f54 100644 --- a/src/core/hle/service/vi/system_root_service.h +++ b/src/core/hle/service/vi/system_root_service.h @@ -26,6 +26,13 @@ private: Out> out_application_display_service, Policy policy); + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); + } + static constexpr auto functions = CreateStaticMap( + FunctionInfo{1, C<&ISystemRootService::GetDisplayService>, "GetDisplayService"}, + FunctionInfo{3, nullptr, "GetDisplayServiceWithProxyNameExchange"} + ); const std::shared_ptr m_container; }; diff --git a/src/core/hle/service/wlan/wlan.cpp b/src/core/hle/service/wlan/wlan.cpp index 129dcfedbb..4e6e382810 100644 --- a/src/core/hle/service/wlan/wlan.cpp +++ b/src/core/hle/service/wlan/wlan.cpp @@ -16,232 +16,248 @@ class ILocalManager final : public ServiceFramework { public: explicit ILocalManager(Core::System& system_) : ServiceFramework{system_, "wlan:lcl"} - { - static const FunctionInfo functions[] = { - FunctionInfo{0, nullptr, "OpenMasterMode" }, - FunctionInfo{0, nullptr, "OpenMode_2" }, - FunctionInfo{1, nullptr, "CloseMasterMode" }, - FunctionInfo{1, nullptr, "CloseMode_2" }, - FunctionInfo{2, nullptr, "OpenClientMode" }, - FunctionInfo{2, nullptr, "GetMacAddress_2" }, - FunctionInfo{3, nullptr, "CloseClientMode" }, - FunctionInfo{3, nullptr, "CreateBss" }, - FunctionInfo{4, nullptr, "OpenSpectatorMode" }, - FunctionInfo{4, nullptr, "DestroyBss" }, - FunctionInfo{5, nullptr, "CloseSpectatorMode" }, - FunctionInfo{5, nullptr, "StartScan_2" }, - FunctionInfo{6, nullptr, "GetMacAddress_2" }, - FunctionInfo{6, nullptr, "StopScan_2" }, - FunctionInfo{7, nullptr, "CreateBss" }, - FunctionInfo{7, nullptr, "Connect_2" }, - FunctionInfo{8, nullptr, "DestroyBss" }, - FunctionInfo{8, nullptr, "CancelConnect_2" }, - FunctionInfo{9, nullptr, "StartScan_2" }, - FunctionInfo{9, nullptr, "Join" }, - FunctionInfo{10, nullptr, "StopScan_2" }, - FunctionInfo{10, nullptr, "CancelJoin" }, - FunctionInfo{11, nullptr, "Connect_2" }, - FunctionInfo{11, nullptr, "Disconnect_2" }, - FunctionInfo{12, nullptr, "CancelConnect_2" }, - FunctionInfo{12, nullptr, "SetBeaconLostCount" }, - FunctionInfo{13, nullptr, "Join" }, - FunctionInfo{13, nullptr, "GetSystemEvent_2" }, - FunctionInfo{14, nullptr, "CancelJoin" }, - FunctionInfo{14, nullptr, "GetConnectionStatus_2" }, - FunctionInfo{15, nullptr, "Disconnect_2" }, - FunctionInfo{15, nullptr, "GetClientStatus" }, - FunctionInfo{16, nullptr, "SetBeaconLostCount" }, - FunctionInfo{16, nullptr, "GetBssIndicationEvent" }, - FunctionInfo{17, nullptr, "GetSystemEvent_2" }, - FunctionInfo{17, nullptr, "GetBssIndicationInfo" }, - FunctionInfo{18, nullptr, "GetConnectionStatus_2" }, - FunctionInfo{18, nullptr, "GetState_2" }, - FunctionInfo{19, nullptr, "GetClientStatus" }, - FunctionInfo{19, nullptr, "GetAllowedChannels" }, - FunctionInfo{20, nullptr, "GetBssIndicationEvent" }, - FunctionInfo{20, nullptr, "AddIe" }, - FunctionInfo{21, nullptr, "GetBssIndicationInfo" }, - FunctionInfo{21, nullptr, "DeleteIe" }, - FunctionInfo{22, nullptr, "GetState_2" }, - FunctionInfo{22, nullptr, "PutFrameRaw" }, - FunctionInfo{23, nullptr, "GetAllowedChannels" }, - FunctionInfo{23, nullptr, "CancelGetFrame" }, - FunctionInfo{24, nullptr, "AddIe" }, - FunctionInfo{24, nullptr, "CreateRxEntry" }, - FunctionInfo{25, nullptr, "DeleteIe" }, - FunctionInfo{25, nullptr, "DeleteRxEntry" }, - FunctionInfo{26, nullptr, "PutFrameRaw" }, - FunctionInfo{26, nullptr, "AddEthertypeToRxEntry" }, - FunctionInfo{27, nullptr, "CancelGetFrame" }, - FunctionInfo{27, nullptr, "DeleteEthertypeFromRxEntry" }, - FunctionInfo{28, nullptr, "CreateRxEntry" }, - FunctionInfo{28, nullptr, "AddMatchingDataToRxEntry" }, - FunctionInfo{29, nullptr, "DeleteRxEntry" }, - FunctionInfo{29, nullptr, "RemoveMatchingDataFromRxEntry" }, - FunctionInfo{30, nullptr, "AddEthertypeToRxEntry" }, - FunctionInfo{30, nullptr, "GetScanResult_2" }, - FunctionInfo{31, nullptr, "DeleteEthertypeFromRxEntry" }, - FunctionInfo{31, nullptr, "PutActionFrameOneShot" }, - FunctionInfo{32, nullptr, "AddMatchingDataToRxEntry" }, - FunctionInfo{32, nullptr, "SetActionFrameWithBeacon" }, - FunctionInfo{33, nullptr, "RemoveMatchingDataFromRxEntry" }, - FunctionInfo{33, nullptr, "CancelActionFrameWithBeacon" }, - FunctionInfo{34, nullptr, "GetScanResult_2" }, - FunctionInfo{34, nullptr, "CreateRxEntryForActionFrame" }, - FunctionInfo{35, nullptr, "PutActionFrameOneShot" }, - FunctionInfo{35, nullptr, "DeleteRxEntryForActionFrame" }, - FunctionInfo{36, nullptr, "SetActionFrameWithBeacon" }, - FunctionInfo{36, nullptr, "AddSubtypeToRxEntryForActionFrame" }, - FunctionInfo{37, nullptr, "CancelActionFrameWithBeacon" }, - FunctionInfo{37, nullptr, "DeleteSubtypeFromRxEntryForActionFrame" }, - FunctionInfo{38, nullptr, "CreateRxEntryForActionFrame" }, - FunctionInfo{38, nullptr, "CancelGetActionFrame" }, - FunctionInfo{39, nullptr, "DeleteRxEntryForActionFrame" }, - FunctionInfo{39, nullptr, "GetRssi_2" }, - FunctionInfo{40, nullptr, "AddSubtypeToRxEntryForActionFrame" }, - FunctionInfo{40, nullptr, "SetMaxAssociationNumber" }, - FunctionInfo{41, nullptr, "DeleteSubtypeFromRxEntryForActionFrame" }, - FunctionInfo{41, nullptr, "Cmd41" }, - FunctionInfo{42, nullptr, "CancelGetActionFrame" }, - FunctionInfo{42, nullptr, "Cmd42" }, - FunctionInfo{43, nullptr, "GetRssi_2" }, - FunctionInfo{43, nullptr, "Cmd43" }, - FunctionInfo{44, nullptr, "SetMaxAssociationNumber" }, - FunctionInfo{45, nullptr, "OpenLcsMasterMode" }, - FunctionInfo{46, nullptr, "CloseLcsMasterMode" }, - FunctionInfo{47, nullptr, "OpenLcsClientMode" }, - FunctionInfo{48, nullptr, "CloseLcsClientMode" }, - FunctionInfo{49, nullptr, "GetChannelStats" }, - FunctionInfo{50, nullptr, "Cmd50" }, - FunctionInfo{51, nullptr, "Cmd51" }, - FunctionInfo{52, nullptr, "Cmd52" }, - }; - RegisterHandlers(functions); + {} + + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); } + static constexpr auto functions = CreateStaticMap( + FunctionInfo{0, nullptr, "OpenMasterMode" }, + FunctionInfo{0, nullptr, "OpenMode_2" }, + FunctionInfo{1, nullptr, "CloseMasterMode" }, + FunctionInfo{1, nullptr, "CloseMode_2" }, + FunctionInfo{2, nullptr, "OpenClientMode" }, + FunctionInfo{2, nullptr, "GetMacAddress_2" }, + FunctionInfo{3, nullptr, "CloseClientMode" }, + FunctionInfo{3, nullptr, "CreateBss" }, + FunctionInfo{4, nullptr, "OpenSpectatorMode" }, + FunctionInfo{4, nullptr, "DestroyBss" }, + FunctionInfo{5, nullptr, "CloseSpectatorMode" }, + FunctionInfo{5, nullptr, "StartScan_2" }, + FunctionInfo{6, nullptr, "GetMacAddress_2" }, + FunctionInfo{6, nullptr, "StopScan_2" }, + FunctionInfo{7, nullptr, "CreateBss" }, + FunctionInfo{7, nullptr, "Connect_2" }, + FunctionInfo{8, nullptr, "DestroyBss" }, + FunctionInfo{8, nullptr, "CancelConnect_2" }, + FunctionInfo{9, nullptr, "StartScan_2" }, + FunctionInfo{9, nullptr, "Join" }, + FunctionInfo{10, nullptr, "StopScan_2" }, + FunctionInfo{10, nullptr, "CancelJoin" }, + FunctionInfo{11, nullptr, "Connect_2" }, + FunctionInfo{11, nullptr, "Disconnect_2" }, + FunctionInfo{12, nullptr, "CancelConnect_2" }, + FunctionInfo{12, nullptr, "SetBeaconLostCount" }, + FunctionInfo{13, nullptr, "Join" }, + FunctionInfo{13, nullptr, "GetSystemEvent_2" }, + FunctionInfo{14, nullptr, "CancelJoin" }, + FunctionInfo{14, nullptr, "GetConnectionStatus_2" }, + FunctionInfo{15, nullptr, "Disconnect_2" }, + FunctionInfo{15, nullptr, "GetClientStatus" }, + FunctionInfo{16, nullptr, "SetBeaconLostCount" }, + FunctionInfo{16, nullptr, "GetBssIndicationEvent" }, + FunctionInfo{17, nullptr, "GetSystemEvent_2" }, + FunctionInfo{17, nullptr, "GetBssIndicationInfo" }, + FunctionInfo{18, nullptr, "GetConnectionStatus_2" }, + FunctionInfo{18, nullptr, "GetState_2" }, + FunctionInfo{19, nullptr, "GetClientStatus" }, + FunctionInfo{19, nullptr, "GetAllowedChannels" }, + FunctionInfo{20, nullptr, "GetBssIndicationEvent" }, + FunctionInfo{20, nullptr, "AddIe" }, + FunctionInfo{21, nullptr, "GetBssIndicationInfo" }, + FunctionInfo{21, nullptr, "DeleteIe" }, + FunctionInfo{22, nullptr, "GetState_2" }, + FunctionInfo{22, nullptr, "PutFrameRaw" }, + FunctionInfo{23, nullptr, "GetAllowedChannels" }, + FunctionInfo{23, nullptr, "CancelGetFrame" }, + FunctionInfo{24, nullptr, "AddIe" }, + FunctionInfo{24, nullptr, "CreateRxEntry" }, + FunctionInfo{25, nullptr, "DeleteIe" }, + FunctionInfo{25, nullptr, "DeleteRxEntry" }, + FunctionInfo{26, nullptr, "PutFrameRaw" }, + FunctionInfo{26, nullptr, "AddEthertypeToRxEntry" }, + FunctionInfo{27, nullptr, "CancelGetFrame" }, + FunctionInfo{27, nullptr, "DeleteEthertypeFromRxEntry" }, + FunctionInfo{28, nullptr, "CreateRxEntry" }, + FunctionInfo{28, nullptr, "AddMatchingDataToRxEntry" }, + FunctionInfo{29, nullptr, "DeleteRxEntry" }, + FunctionInfo{29, nullptr, "RemoveMatchingDataFromRxEntry" }, + FunctionInfo{30, nullptr, "AddEthertypeToRxEntry" }, + FunctionInfo{30, nullptr, "GetScanResult_2" }, + FunctionInfo{31, nullptr, "DeleteEthertypeFromRxEntry" }, + FunctionInfo{31, nullptr, "PutActionFrameOneShot" }, + FunctionInfo{32, nullptr, "AddMatchingDataToRxEntry" }, + FunctionInfo{32, nullptr, "SetActionFrameWithBeacon" }, + FunctionInfo{33, nullptr, "RemoveMatchingDataFromRxEntry" }, + FunctionInfo{33, nullptr, "CancelActionFrameWithBeacon" }, + FunctionInfo{34, nullptr, "GetScanResult_2" }, + FunctionInfo{34, nullptr, "CreateRxEntryForActionFrame" }, + FunctionInfo{35, nullptr, "PutActionFrameOneShot" }, + FunctionInfo{35, nullptr, "DeleteRxEntryForActionFrame" }, + FunctionInfo{36, nullptr, "SetActionFrameWithBeacon" }, + FunctionInfo{36, nullptr, "AddSubtypeToRxEntryForActionFrame" }, + FunctionInfo{37, nullptr, "CancelActionFrameWithBeacon" }, + FunctionInfo{37, nullptr, "DeleteSubtypeFromRxEntryForActionFrame" }, + FunctionInfo{38, nullptr, "CreateRxEntryForActionFrame" }, + FunctionInfo{38, nullptr, "CancelGetActionFrame" }, + FunctionInfo{39, nullptr, "DeleteRxEntryForActionFrame" }, + FunctionInfo{39, nullptr, "GetRssi_2" }, + FunctionInfo{40, nullptr, "AddSubtypeToRxEntryForActionFrame" }, + FunctionInfo{40, nullptr, "SetMaxAssociationNumber" }, + FunctionInfo{41, nullptr, "DeleteSubtypeFromRxEntryForActionFrame" }, + FunctionInfo{41, nullptr, "Cmd41" }, + FunctionInfo{42, nullptr, "CancelGetActionFrame" }, + FunctionInfo{42, nullptr, "Cmd42" }, + FunctionInfo{43, nullptr, "GetRssi_2" }, + FunctionInfo{43, nullptr, "Cmd43" }, + FunctionInfo{44, nullptr, "SetMaxAssociationNumber" }, + FunctionInfo{45, nullptr, "OpenLcsMasterMode" }, + FunctionInfo{46, nullptr, "CloseLcsMasterMode" }, + FunctionInfo{47, nullptr, "OpenLcsClientMode" }, + FunctionInfo{48, nullptr, "CloseLcsClientMode" }, + FunctionInfo{49, nullptr, "GetChannelStats" }, + FunctionInfo{50, nullptr, "Cmd50" }, + FunctionInfo{51, nullptr, "Cmd51" }, + FunctionInfo{52, nullptr, "Cmd52" } + ); }; class ILocalGetFrame final : public ServiceFramework { public: explicit ILocalGetFrame(Core::System& system_) : ServiceFramework{system_, "wlan:lg"} - { - static const FunctionInfo functions[] = { - FunctionInfo{0, nullptr, "GetFrameRaw" }, - }; - RegisterHandlers(functions); + {} + + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); } + static constexpr auto functions = CreateStaticMap( + FunctionInfo{0, nullptr, "GetFrameRaw" } + ); }; class ILocalGetActionFrame final : public ServiceFramework { public: explicit ILocalGetActionFrame(Core::System& system_) : ServiceFramework{system_, "wlan:lga"} - { - static const FunctionInfo functions[] = { - FunctionInfo{0, nullptr, "GetActionFrame" }, - }; - RegisterHandlers(functions); + {} + + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); } + static constexpr auto functions = CreateStaticMap( + FunctionInfo{0, nullptr, "GetActionFrame" } + ); }; class ISocketGetFrame final : public ServiceFramework { public: explicit ISocketGetFrame(Core::System& system_) : ServiceFramework{system_, "wlan:sg"} - { - static const FunctionInfo functions[] = { - FunctionInfo{0, nullptr, "GetFrameRaw" }, - }; - RegisterHandlers(functions); + {} + + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); } + static constexpr auto functions = CreateStaticMap( + FunctionInfo{0, nullptr, "GetFrameRaw" } + ); }; class ISocketManager final : public ServiceFramework { public: explicit ISocketManager(Core::System& system_) : ServiceFramework{system_, "wlan:soc"} - { - static const FunctionInfo functions[] = { - FunctionInfo{0, nullptr, "PutFrameRaw_2" }, - FunctionInfo{1, nullptr, "CancelGetFrame_2" }, - FunctionInfo{2, nullptr, "CreateRxEntry_2" }, - FunctionInfo{3, nullptr, "DeleteRxEntry_2" }, - FunctionInfo{4, nullptr, "AddEthertypeToRxEntry_2" }, - FunctionInfo{5, nullptr, "DeleteEthertypeFromRxEntry_2" }, - FunctionInfo{6, nullptr, "GetMacAddress_3" }, - FunctionInfo{7, nullptr, "SwitchTsfTimerFunction" }, - FunctionInfo{8, nullptr, "GetDeltaTimeBetweenSystemAndTsf" }, - FunctionInfo{9, nullptr, "RegisterSharedMemory" }, - FunctionInfo{10, nullptr, "UnregisterSharedMemory" }, - FunctionInfo{11, nullptr, "EnableSharedMemory" }, - FunctionInfo{12, nullptr, "SetMulticastFilter" }, - }; - RegisterHandlers(functions); + {} + + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); } + static constexpr auto functions = CreateStaticMap( + FunctionInfo{0, nullptr, "PutFrameRaw_2" }, + FunctionInfo{1, nullptr, "CancelGetFrame_2" }, + FunctionInfo{2, nullptr, "CreateRxEntry_2" }, + FunctionInfo{3, nullptr, "DeleteRxEntry_2" }, + FunctionInfo{4, nullptr, "AddEthertypeToRxEntry_2" }, + FunctionInfo{5, nullptr, "DeleteEthertypeFromRxEntry_2" }, + FunctionInfo{6, nullptr, "GetMacAddress_3" }, + FunctionInfo{7, nullptr, "SwitchTsfTimerFunction" }, + FunctionInfo{8, nullptr, "GetDeltaTimeBetweenSystemAndTsf" }, + FunctionInfo{9, nullptr, "RegisterSharedMemory" }, + FunctionInfo{10, nullptr, "UnregisterSharedMemory" }, + FunctionInfo{11, nullptr, "EnableSharedMemory" }, + FunctionInfo{12, nullptr, "SetMulticastFilter" } + ); }; class IDetectManager final : public ServiceFramework { public: explicit IDetectManager(Core::System& system_) : ServiceFramework{system_, "wlan:dtc"} - { - static const FunctionInfo functions[] = { - FunctionInfo{0, nullptr, "Cmd0" }, - FunctionInfo{1, nullptr, "Cmd1" }, - FunctionInfo{2, nullptr, "Cmd2" }, - FunctionInfo{3, nullptr, "Cmd3" }, - FunctionInfo{4, nullptr, "Cmd4" }, - FunctionInfo{5, nullptr, "Cmd5" }, - FunctionInfo{6, nullptr, "Cmd6" }, - FunctionInfo{7, nullptr, "Cmd7" }, - FunctionInfo{8, nullptr, "Cmd8" }, - FunctionInfo{9, nullptr, "Cmd9" }, - FunctionInfo{10, nullptr, "Cmd10" }, - FunctionInfo{11, nullptr, "Cmd11" }, - FunctionInfo{12, nullptr, "Cmd12" }, - FunctionInfo{13, nullptr, "Cmd13" }, - FunctionInfo{14, nullptr, "Cmd14" }, - FunctionInfo{15, nullptr, "Cmd15" }, - FunctionInfo{16, nullptr, "Cmd16" }, - FunctionInfo{17, nullptr, "Cmd17" }, - FunctionInfo{18, nullptr, "Cmd18" }, - FunctionInfo{19, nullptr, "Cmd19" }, - FunctionInfo{20, nullptr, "Cmd20" }, - FunctionInfo{21, nullptr, "Cmd21" }, - FunctionInfo{22, nullptr, "Cmd22" }, - FunctionInfo{23, nullptr, "Cmd23" }, - FunctionInfo{24, nullptr, "Cmd24" }, - FunctionInfo{25, nullptr, "Cmd25" }, - FunctionInfo{26, nullptr, "Cmd26" }, - FunctionInfo{27, nullptr, "Cmd27" }, - }; - RegisterHandlers(functions); + {} + + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); } + static constexpr auto functions = CreateStaticMap( + FunctionInfo{0, nullptr, "Cmd0" }, + FunctionInfo{1, nullptr, "Cmd1" }, + FunctionInfo{2, nullptr, "Cmd2" }, + FunctionInfo{3, nullptr, "Cmd3" }, + FunctionInfo{4, nullptr, "Cmd4" }, + FunctionInfo{5, nullptr, "Cmd5" }, + FunctionInfo{6, nullptr, "Cmd6" }, + FunctionInfo{7, nullptr, "Cmd7" }, + FunctionInfo{8, nullptr, "Cmd8" }, + FunctionInfo{9, nullptr, "Cmd9" }, + FunctionInfo{10, nullptr, "Cmd10" }, + FunctionInfo{11, nullptr, "Cmd11" }, + FunctionInfo{12, nullptr, "Cmd12" }, + FunctionInfo{13, nullptr, "Cmd13" }, + FunctionInfo{14, nullptr, "Cmd14" }, + FunctionInfo{15, nullptr, "Cmd15" }, + FunctionInfo{16, nullptr, "Cmd16" }, + FunctionInfo{17, nullptr, "Cmd17" }, + FunctionInfo{18, nullptr, "Cmd18" }, + FunctionInfo{19, nullptr, "Cmd19" }, + FunctionInfo{20, nullptr, "Cmd20" }, + FunctionInfo{21, nullptr, "Cmd21" }, + FunctionInfo{22, nullptr, "Cmd22" }, + FunctionInfo{23, nullptr, "Cmd23" }, + FunctionInfo{24, nullptr, "Cmd24" }, + FunctionInfo{25, nullptr, "Cmd25" }, + FunctionInfo{26, nullptr, "Cmd26" }, + FunctionInfo{27, nullptr, "Cmd27" } + ); }; class IPrivateServiceCreator final : public ServiceFramework { public: explicit IPrivateServiceCreator(Core::System& system_) : ServiceFramework{system_, "wlan:p"} - { - static const FunctionInfo functions[] = { - FunctionInfo{0, nullptr, "CreateWirelessCommunicationService" }, - FunctionInfo{1, nullptr, "CreatePrivateWirelessCommunicationService" }, - }; - RegisterHandlers(functions); + {} + + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); } + static constexpr auto functions = CreateStaticMap( + FunctionInfo{0, nullptr, "CreateWirelessCommunicationService" }, + FunctionInfo{1, nullptr, "CreatePrivateWirelessCommunicationService" } + ); }; class ISfDriverServiceCreator final : public ServiceFramework { public: explicit ISfDriverServiceCreator(Core::System& system_) : ServiceFramework{system_, "wlan:nd"} - { - static const FunctionInfo functions[] = { - FunctionInfo{0, nullptr, "CreateDriverService" }, - }; - RegisterHandlers(functions); + {} + + FunctionInfoBase const* FindRequest(u32 key) override { + return HandlerTableGenerateWithFind(key, functions); } + static constexpr auto functions = CreateStaticMap( + FunctionInfo{0, nullptr, "CreateDriverService" } + ); }; void LoopProcess(Core::System& system) {