2026-09-26 07:29:19

Signed-off-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
lizzie
2026-09-26 07:29:19 +00:00
parent bb33424964
commit 65bfa66cc0
8 changed files with 277 additions and 259 deletions
@@ -12,17 +12,6 @@
namespace Service::Account { namespace Service::Account {
IAsyncContext::IAsyncContext(Core::System& system_) IAsyncContext::IAsyncContext(Core::System& system_)
: ServiceFramework{system_, "IAsyncContext"}, service_context{system_, "IAsyncContext"} { : 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"); completion_event = service_context.CreateEvent("IAsyncContext:CompletionEvent");
} }
+10
View File
@@ -30,6 +30,16 @@ protected:
void MarkComplete(); 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; KernelHelpers::ServiceContext service_context;
std::atomic<bool> is_complete{false}; std::atomic<bool> is_complete{false};
+11 -9
View File
@@ -512,14 +512,14 @@ public:
, m_nrr_kind(nrr_kind) , m_nrr_kind(nrr_kind)
{} {}
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
~RoInterface() { ~RoInterface() {
m_ro->UnregisterProcess(system.Kernel(), m_context_id); m_ro->UnregisterProcess(system.Kernel(), m_context_id);
} }
FunctionInfoBase const* FindRequest(u32 key) override {
return HandlerTableGenerateWithFind(key, functions);
}
Result MapManualLoadModuleMemory(Out<u64> out_load_address, ClientProcessId client_pid, Result MapManualLoadModuleMemory(Out<u64> out_load_address, ClientProcessId client_pid,
u64 nro_address, u64 nro_size, u64 bss_address, u64 bss_size) { u64 nro_address, u64 nro_size, u64 bss_address, u64 bss_size) {
R_TRY(m_ro->ValidateProcess(m_context_id, *client_pid)); R_TRY(m_ro->ValidateProcess(m_context_id, *client_pid));
@@ -576,12 +576,14 @@ class IDebugMonitorInterface final : public ServiceFramework<IDebugMonitorInterf
public: public:
explicit IDebugMonitorInterface(Core::System& system_) explicit IDebugMonitorInterface(Core::System& system_)
: ServiceFramework{system_, "ro:dmnt"} : ServiceFramework{system_, "ro:dmnt"}
{ {}
static const FunctionInfo functions[] = {
FunctionInfo{0, nullptr, "GetProcessModuleInfo" }, FunctionInfoBase const* FindRequest(u32 key) override {
}; return HandlerTableGenerateWithFind(key, functions);
RegisterHandlers(functions);
} }
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetProcessModuleInfo" }
);
}; };
void LoopProcess(Core::System& system) { void LoopProcess(Core::System& system) {
@@ -12,62 +12,9 @@
namespace Service::VI { namespace Service::VI {
ISystemDisplayService::ISystemDisplayService(Core::System& system_, ISystemDisplayService::ISystemDisplayService(Core::System& system_, std::shared_ptr<Container> container)
std::shared_ptr<Container> container) : ServiceFramework{system_, "ISystemDisplayService"}, m_container{std::move(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() = default; ISystemDisplayService::~ISystemDisplayService() = default;
@@ -47,6 +47,58 @@ private:
Result CancelSharedFrameBuffer(u64 layer_id, s64 slot); Result CancelSharedFrameBuffer(u64 layer_id, s64 slot);
private: 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<Container> m_container; const std::shared_ptr<Container> m_container;
}; };
@@ -12,13 +12,8 @@
namespace Service::VI { namespace Service::VI {
ISystemRootService::ISystemRootService(Core::System& system_, std::shared_ptr<Container> container) ISystemRootService::ISystemRootService(Core::System& system_, std::shared_ptr<Container> container)
: ServiceFramework{system_, "vi:s"}, m_container{std::move(container)} { : ServiceFramework{system_, "vi:s"}, m_container{std::move(container)}
static const FunctionInfo functions[] = { {}
{1, C<&ISystemRootService::GetDisplayService>, "GetDisplayService"},
{3, nullptr, "GetDisplayServiceWithProxyNameExchange"},
};
RegisterHandlers(functions);
}
ISystemRootService::~ISystemRootService() = default; ISystemRootService::~ISystemRootService() = default;
@@ -26,6 +26,13 @@ private:
Out<SharedPointer<IApplicationDisplayService>> out_application_display_service, Out<SharedPointer<IApplicationDisplayService>> out_application_display_service,
Policy policy); 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<Container> m_container; const std::shared_ptr<Container> m_container;
}; };
+192 -176
View File
@@ -16,232 +16,248 @@ class ILocalManager final : public ServiceFramework<ILocalManager> {
public: public:
explicit ILocalManager(Core::System& system_) explicit ILocalManager(Core::System& system_)
: ServiceFramework{system_, "wlan:lcl"} : ServiceFramework{system_, "wlan:lcl"}
{ {}
static const FunctionInfo functions[] = {
FunctionInfo{0, nullptr, "OpenMasterMode" }, FunctionInfoBase const* FindRequest(u32 key) override {
FunctionInfo{0, nullptr, "OpenMode_2" }, return HandlerTableGenerateWithFind(key, functions);
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);
} }
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<ILocalGetFrame> { class ILocalGetFrame final : public ServiceFramework<ILocalGetFrame> {
public: public:
explicit ILocalGetFrame(Core::System& system_) explicit ILocalGetFrame(Core::System& system_)
: ServiceFramework{system_, "wlan:lg"} : ServiceFramework{system_, "wlan:lg"}
{ {}
static const FunctionInfo functions[] = {
FunctionInfo{0, nullptr, "GetFrameRaw" }, FunctionInfoBase const* FindRequest(u32 key) override {
}; return HandlerTableGenerateWithFind(key, functions);
RegisterHandlers(functions);
} }
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetFrameRaw" }
);
}; };
class ILocalGetActionFrame final : public ServiceFramework<ILocalGetActionFrame> { class ILocalGetActionFrame final : public ServiceFramework<ILocalGetActionFrame> {
public: public:
explicit ILocalGetActionFrame(Core::System& system_) explicit ILocalGetActionFrame(Core::System& system_)
: ServiceFramework{system_, "wlan:lga"} : ServiceFramework{system_, "wlan:lga"}
{ {}
static const FunctionInfo functions[] = {
FunctionInfo{0, nullptr, "GetActionFrame" }, FunctionInfoBase const* FindRequest(u32 key) override {
}; return HandlerTableGenerateWithFind(key, functions);
RegisterHandlers(functions);
} }
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetActionFrame" }
);
}; };
class ISocketGetFrame final : public ServiceFramework<ISocketGetFrame> { class ISocketGetFrame final : public ServiceFramework<ISocketGetFrame> {
public: public:
explicit ISocketGetFrame(Core::System& system_) explicit ISocketGetFrame(Core::System& system_)
: ServiceFramework{system_, "wlan:sg"} : ServiceFramework{system_, "wlan:sg"}
{ {}
static const FunctionInfo functions[] = {
FunctionInfo{0, nullptr, "GetFrameRaw" }, FunctionInfoBase const* FindRequest(u32 key) override {
}; return HandlerTableGenerateWithFind(key, functions);
RegisterHandlers(functions);
} }
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "GetFrameRaw" }
);
}; };
class ISocketManager final : public ServiceFramework<ISocketManager> { class ISocketManager final : public ServiceFramework<ISocketManager> {
public: public:
explicit ISocketManager(Core::System& system_) explicit ISocketManager(Core::System& system_)
: ServiceFramework{system_, "wlan:soc"} : ServiceFramework{system_, "wlan:soc"}
{ {}
static const FunctionInfo functions[] = {
FunctionInfo{0, nullptr, "PutFrameRaw_2" }, FunctionInfoBase const* FindRequest(u32 key) override {
FunctionInfo{1, nullptr, "CancelGetFrame_2" }, return HandlerTableGenerateWithFind(key, functions);
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);
} }
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<IDetectManager> { class IDetectManager final : public ServiceFramework<IDetectManager> {
public: public:
explicit IDetectManager(Core::System& system_) explicit IDetectManager(Core::System& system_)
: ServiceFramework{system_, "wlan:dtc"} : ServiceFramework{system_, "wlan:dtc"}
{ {}
static const FunctionInfo functions[] = {
FunctionInfo{0, nullptr, "Cmd0" }, FunctionInfoBase const* FindRequest(u32 key) override {
FunctionInfo{1, nullptr, "Cmd1" }, return HandlerTableGenerateWithFind(key, functions);
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);
} }
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<IPrivateServiceCreator> { class IPrivateServiceCreator final : public ServiceFramework<IPrivateServiceCreator> {
public: public:
explicit IPrivateServiceCreator(Core::System& system_) explicit IPrivateServiceCreator(Core::System& system_)
: ServiceFramework{system_, "wlan:p"} : ServiceFramework{system_, "wlan:p"}
{ {}
static const FunctionInfo functions[] = {
FunctionInfo{0, nullptr, "CreateWirelessCommunicationService" }, FunctionInfoBase const* FindRequest(u32 key) override {
FunctionInfo{1, nullptr, "CreatePrivateWirelessCommunicationService" }, return HandlerTableGenerateWithFind(key, functions);
};
RegisterHandlers(functions);
} }
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "CreateWirelessCommunicationService" },
FunctionInfo{1, nullptr, "CreatePrivateWirelessCommunicationService" }
);
}; };
class ISfDriverServiceCreator final : public ServiceFramework<ISfDriverServiceCreator> { class ISfDriverServiceCreator final : public ServiceFramework<ISfDriverServiceCreator> {
public: public:
explicit ISfDriverServiceCreator(Core::System& system_) explicit ISfDriverServiceCreator(Core::System& system_)
: ServiceFramework{system_, "wlan:nd"} : ServiceFramework{system_, "wlan:nd"}
{ {}
static const FunctionInfo functions[] = {
FunctionInfo{0, nullptr, "CreateDriverService" }, FunctionInfoBase const* FindRequest(u32 key) override {
}; return HandlerTableGenerateWithFind(key, functions);
RegisterHandlers(functions);
} }
static constexpr auto functions = CreateStaticMap(
FunctionInfo{0, nullptr, "CreateDriverService" }
);
}; };
void LoopProcess(Core::System& system) { void LoopProcess(Core::System& system) {