Merge pull request #4203 from VolcaEM/services

service: Update function tables
master
bunnei 2020-07-11 00:02:36 +07:00 committed by GitHub
commit a0ee597b19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 282 additions and 154 deletions

@ -121,11 +121,83 @@ public:
{39, nullptr, "PrepareShutdown"}, {39, nullptr, "PrepareShutdown"},
{40, nullptr, "ListApplyDeltaTask"}, {40, nullptr, "ListApplyDeltaTask"},
{41, nullptr, "ClearNotEnoughSpaceStateOfApplyDeltaTask"}, {41, nullptr, "ClearNotEnoughSpaceStateOfApplyDeltaTask"},
{42, nullptr, "Unknown1"}, {42, nullptr, "Unknown42"},
{43, nullptr, "Unknown2"}, {43, nullptr, "Unknown43"},
{44, nullptr, "Unknown3"}, {44, nullptr, "Unknown44"},
{45, nullptr, "Unknown4"}, {45, nullptr, "Unknown45"},
{46, nullptr, "Unknown5"}, {46, nullptr, "Unknown46"},
{47, nullptr, "Unknown47"},
{48, nullptr, "Unknown48"},
{49, nullptr, "Unknown49"},
{50, nullptr, "Unknown50"},
{51, nullptr, "Unknown51"},
{52, nullptr, "Unknown52"},
{53, nullptr, "Unknown53"},
{54, nullptr, "Unknown54"},
{55, nullptr, "Unknown55"},
{56, nullptr, "Unknown56"},
{57, nullptr, "Unknown57"},
{58, nullptr, "Unknown58"},
{59, nullptr, "Unknown59"},
{60, nullptr, "Unknown60"},
{61, nullptr, "Unknown61"},
{62, nullptr, "Unknown62"},
{63, nullptr, "Unknown63"},
{64, nullptr, "Unknown64"},
{65, nullptr, "Unknown65"},
{66, nullptr, "Unknown66"},
{67, nullptr, "Unknown67"},
{68, nullptr, "Unknown68"},
{69, nullptr, "Unknown69"},
{70, nullptr, "Unknown70"},
{71, nullptr, "Unknown71"},
{72, nullptr, "Unknown72"},
{73, nullptr, "Unknown73"},
{74, nullptr, "Unknown74"},
{75, nullptr, "Unknown75"},
{76, nullptr, "Unknown76"},
{77, nullptr, "Unknown77"},
{78, nullptr, "Unknown78"},
{79, nullptr, "Unknown79"},
{80, nullptr, "Unknown80"},
{81, nullptr, "Unknown81"},
{82, nullptr, "Unknown82"},
{83, nullptr, "Unknown83"},
{84, nullptr, "Unknown84"},
{85, nullptr, "Unknown85"},
{86, nullptr, "Unknown86"},
{87, nullptr, "Unknown87"},
{88, nullptr, "Unknown88"},
{89, nullptr, "Unknown89"},
{90, nullptr, "Unknown90"},
{91, nullptr, "Unknown91"},
{92, nullptr, "Unknown92"},
{93, nullptr, "Unknown93"},
{94, nullptr, "Unknown94"},
{95, nullptr, "Unknown95"},
{96, nullptr, "Unknown96"},
{97, nullptr, "Unknown97"},
{98, nullptr, "Unknown98"},
{99, nullptr, "Unknown99"},
{100, nullptr, "Unknown100"},
{101, nullptr, "Unknown101"},
{102, nullptr, "Unknown102"},
{103, nullptr, "Unknown103"},
{104, nullptr, "Unknown104"},
{105, nullptr, "Unknown105"},
{106, nullptr, "Unknown106"},
{107, nullptr, "Unknown107"},
{108, nullptr, "Unknown108"},
{109, nullptr, "Unknown109"},
{110, nullptr, "Unknown110"},
{111, nullptr, "Unknown111"},
{112, nullptr, "Unknown112"},
{113, nullptr, "Unknown113"},
{114, nullptr, "Unknown114"},
{115, nullptr, "Unknown115"},
{116, nullptr, "Unknown116"},
{117, nullptr, "Unknown117"},
{118, nullptr, "Unknown118"},
}; };
// clang-format on // clang-format on
@ -142,6 +214,7 @@ public:
{1, nullptr, "RefreshDebugAvailability"}, {1, nullptr, "RefreshDebugAvailability"},
{2, nullptr, "ClearDebugResponse"}, {2, nullptr, "ClearDebugResponse"},
{3, nullptr, "RegisterDebugResponse"}, {3, nullptr, "RegisterDebugResponse"},
{4, nullptr, "IsLargeResourceAvailable"},
}; };
// clang-format on // clang-format on
@ -164,6 +237,8 @@ public:
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "RequestDeviceAuthenticationToken"}, {0, nullptr, "RequestDeviceAuthenticationToken"},
{1, nullptr, "RequestCachedDeviceAuthenticationToken"}, {1, nullptr, "RequestCachedDeviceAuthenticationToken"},
{2, nullptr, "RequestEdgeToken"},
{3, nullptr, "RequestCachedEdgeToken"},
{100, nullptr, "RequestRegisterDeviceAccount"}, {100, nullptr, "RequestRegisterDeviceAccount"},
{101, nullptr, "RequestUnregisterDeviceAccount"}, {101, nullptr, "RequestUnregisterDeviceAccount"},
{102, nullptr, "RequestDeviceAccountStatus"}, {102, nullptr, "RequestDeviceAccountStatus"},
@ -181,7 +256,8 @@ public:
{305, nullptr, "RequestCreateVirtualAccount"}, {305, nullptr, "RequestCreateVirtualAccount"},
{306, nullptr, "RequestDeviceLinkStatus"}, {306, nullptr, "RequestDeviceLinkStatus"},
{400, nullptr, "GetAccountByVirtualAccount"}, {400, nullptr, "GetAccountByVirtualAccount"},
{500, nullptr, "RequestSyncTicket"}, {401, nullptr, "GetVirtualAccount"},
{500, nullptr, "RequestSyncTicketLegacy"},
{501, nullptr, "RequestDownloadTicket"}, {501, nullptr, "RequestDownloadTicket"},
{502, nullptr, "RequestDownloadTicketForPrepurchasedContents"}, {502, nullptr, "RequestDownloadTicketForPrepurchasedContents"},
{503, nullptr, "RequestSyncTicket"}, {503, nullptr, "RequestSyncTicket"},

@ -30,6 +30,7 @@ public:
{23, nullptr, "DestroyToken"}, {23, nullptr, "DestroyToken"},
{24, nullptr, "DestroyTokenWithApplicationId"}, {24, nullptr, "DestroyTokenWithApplicationId"},
{25, nullptr, "QueryIsTokenValid"}, {25, nullptr, "QueryIsTokenValid"},
{26, nullptr, "ListenToMyApplicationId"},
{31, nullptr, "UploadTokenToBaaS"}, {31, nullptr, "UploadTokenToBaaS"},
{32, nullptr, "DestroyTokenForBaaS"}, {32, nullptr, "DestroyTokenForBaaS"},
{33, nullptr, "CreateTokenForBaaS"}, {33, nullptr, "CreateTokenForBaaS"},

@ -104,7 +104,7 @@ IApplicationManagerInterface::IApplicationManagerInterface()
{94, nullptr, "LaunchApplication"}, {94, nullptr, "LaunchApplication"},
{95, nullptr, "GetApplicationLaunchInfo"}, {95, nullptr, "GetApplicationLaunchInfo"},
{96, nullptr, "AcquireApplicationLaunchInfo"}, {96, nullptr, "AcquireApplicationLaunchInfo"},
{97, nullptr, "GetMainApplicationProgramIndex2"}, {97, nullptr, "GetMainApplicationProgramIndexByApplicationLaunchInfo"},
{98, nullptr, "EnableApplicationAllThreadDumpOnCrash"}, {98, nullptr, "EnableApplicationAllThreadDumpOnCrash"},
{99, nullptr, "LaunchDevMenu"}, {99, nullptr, "LaunchDevMenu"},
{100, nullptr, "ResetToFactorySettings"}, {100, nullptr, "ResetToFactorySettings"},
@ -254,7 +254,7 @@ IApplicationManagerInterface::IApplicationManagerInterface()
{2170, nullptr, "GetRightsEnvironmentStatus"}, {2170, nullptr, "GetRightsEnvironmentStatus"},
{2171, nullptr, "GetRightsEnvironmentStatusChangedEvent"}, {2171, nullptr, "GetRightsEnvironmentStatusChangedEvent"},
{2180, nullptr, "RequestExtendRightsInRightsEnvironment"}, {2180, nullptr, "RequestExtendRightsInRightsEnvironment"},
{2181, nullptr, "GetLastResultOfExtendRightsInRightsEnvironment"}, {2181, nullptr, "GetResultOfExtendRightsInRightsEnvironment"},
{2182, nullptr, "SetActiveRightsContextUsingStateToRightsEnvironment"}, {2182, nullptr, "SetActiveRightsContextUsingStateToRightsEnvironment"},
{2190, nullptr, "GetRightsEnvironmentHandleForApplication"}, {2190, nullptr, "GetRightsEnvironmentHandleForApplication"},
{2199, nullptr, "GetRightsEnvironmentCountForDebug"}, {2199, nullptr, "GetRightsEnvironmentCountForDebug"},
@ -446,8 +446,8 @@ IApplicationVersionInterface::IApplicationVersionInterface()
IApplicationVersionInterface::~IApplicationVersionInterface() = default; IApplicationVersionInterface::~IApplicationVersionInterface() = default;
IContentManagerInterface::IContentManagerInterface() IContentManagementInterface::IContentManagementInterface()
: ServiceFramework{"IContentManagerInterface"} { : ServiceFramework{"IContentManagementInterface"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{11, nullptr, "CalculateApplicationOccupiedSize"}, {11, nullptr, "CalculateApplicationOccupiedSize"},
@ -464,7 +464,7 @@ IContentManagerInterface::IContentManagerInterface()
RegisterHandlers(functions); RegisterHandlers(functions);
} }
IContentManagerInterface::~IContentManagerInterface() = default; IContentManagementInterface::~IContentManagementInterface() = default;
IDocumentInterface::IDocumentInterface() : ServiceFramework{"IDocumentInterface"} { IDocumentInterface::IDocumentInterface() : ServiceFramework{"IDocumentInterface"} {
// clang-format off // clang-format off
@ -546,7 +546,7 @@ NS::NS(const char* name) : ServiceFramework{name} {
{7995, &NS::PushInterface<IAccountProxyInterface>, "GetAccountProxyInterface"}, {7995, &NS::PushInterface<IAccountProxyInterface>, "GetAccountProxyInterface"},
{7996, &NS::PushInterface<IApplicationManagerInterface>, "GetApplicationManagerInterface"}, {7996, &NS::PushInterface<IApplicationManagerInterface>, "GetApplicationManagerInterface"},
{7997, &NS::PushInterface<IDownloadTaskInterface>, "GetDownloadTaskInterface"}, {7997, &NS::PushInterface<IDownloadTaskInterface>, "GetDownloadTaskInterface"},
{7998, &NS::PushInterface<IContentManagerInterface>, "GetContentManagementInterface"}, {7998, &NS::PushInterface<IContentManagementInterface>, "GetContentManagementInterface"},
{7999, &NS::PushInterface<IDocumentInterface>, "GetDocumentInterface"}, {7999, &NS::PushInterface<IDocumentInterface>, "GetDocumentInterface"},
}; };
// clang-format on // clang-format on
@ -573,9 +573,9 @@ public:
{6, nullptr, "TerminateApplication"}, {6, nullptr, "TerminateApplication"},
{7, nullptr, "PrepareLaunchProgramFromHost"}, {7, nullptr, "PrepareLaunchProgramFromHost"},
{8, nullptr, "LaunchApplication"}, {8, nullptr, "LaunchApplication"},
{9, nullptr, "LaunchApplicationWithStorageId"}, {9, nullptr, "LaunchApplicationWithStorageIdForDevelop"},
{10, nullptr, "TerminateApplication2"}, {10, nullptr, "IsSystemMemoryResourceLimitBoosted"},
{11, nullptr, "GetRunningApplicationProcessId"}, {11, nullptr, "GetRunningApplicationProcessIdForDevelop"},
{12, nullptr, "SetCurrentApplicationRightsEnvironmentCanBeActive"}, {12, nullptr, "SetCurrentApplicationRightsEnvironmentCanBeActive"},
{13, nullptr, "CreateApplicationResourceForDevelop"}, {13, nullptr, "CreateApplicationResourceForDevelop"},
{14, nullptr, "IsPreomiaForDevelop"}, {14, nullptr, "IsPreomiaForDevelop"},
@ -637,6 +637,10 @@ public:
{9, nullptr, "GetSystemUpdateNotificationEventForContentDelivery"}, {9, nullptr, "GetSystemUpdateNotificationEventForContentDelivery"},
{10, nullptr, "NotifySystemUpdateForContentDelivery"}, {10, nullptr, "NotifySystemUpdateForContentDelivery"},
{11, nullptr, "PrepareShutdown"}, {11, nullptr, "PrepareShutdown"},
{12, nullptr, "Unknown12"},
{13, nullptr, "Unknown13"},
{14, nullptr, "Unknown14"},
{15, nullptr, "Unknown15"},
{16, nullptr, "DestroySystemUpdateTask"}, {16, nullptr, "DestroySystemUpdateTask"},
{17, nullptr, "RequestSendSystemUpdate"}, {17, nullptr, "RequestSendSystemUpdate"},
{18, nullptr, "GetSendSystemUpdateProgress"}, {18, nullptr, "GetSendSystemUpdateProgress"},

@ -40,10 +40,10 @@ public:
~IApplicationVersionInterface() override; ~IApplicationVersionInterface() override;
}; };
class IContentManagerInterface final : public ServiceFramework<IContentManagerInterface> { class IContentManagementInterface final : public ServiceFramework<IContentManagementInterface> {
public: public:
explicit IContentManagerInterface(); explicit IContentManagementInterface();
~IContentManagerInterface() override; ~IContentManagementInterface() override;
}; };
class IDocumentInterface final : public ServiceFramework<IDocumentInterface> { class IDocumentInterface final : public ServiceFramework<IDocumentInterface> {

@ -163,7 +163,7 @@ PL_U::PL_U(Core::System& system)
{5, &PL_U::GetSharedFontInOrderOfPriority, "GetSharedFontInOrderOfPriority"}, {5, &PL_U::GetSharedFontInOrderOfPriority, "GetSharedFontInOrderOfPriority"},
{6, nullptr, "GetSharedFontInOrderOfPriorityForSystem"}, {6, nullptr, "GetSharedFontInOrderOfPriorityForSystem"},
{100, nullptr, "RequestApplicationFunctionAuthorization"}, {100, nullptr, "RequestApplicationFunctionAuthorization"},
{101, nullptr, "RequestApplicationFunctionAuthorizationForSystem"}, {101, nullptr, "RequestApplicationFunctionAuthorizationByProcessId"},
{102, nullptr, "RequestApplicationFunctionAuthorizationByApplicationId"}, {102, nullptr, "RequestApplicationFunctionAuthorizationByApplicationId"},
{1000, nullptr, "LoadNgWordDataForPlatformRegionChina"}, {1000, nullptr, "LoadNgWordDataForPlatformRegionChina"},
{1001, nullptr, "GetNgWordDataSizeForPlatformRegionChina"}, {1001, nullptr, "GetNgWordDataSizeForPlatformRegionChina"},

@ -144,7 +144,7 @@ void NVDRV::QueryEvent(Kernel::HLERequestContext& ctx) {
} }
} }
void NVDRV::SetClientPID(Kernel::HLERequestContext& ctx) { void NVDRV::SetAruid(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp{ctx}; IPC::RequestParser rp{ctx};
pid = rp.Pop<u64>(); pid = rp.Pop<u64>();
LOG_WARNING(Service_NVDRV, "(STUBBED) called, pid=0x{:X}", pid); LOG_WARNING(Service_NVDRV, "(STUBBED) called, pid=0x{:X}", pid);
@ -154,7 +154,7 @@ void NVDRV::SetClientPID(Kernel::HLERequestContext& ctx) {
rb.Push<u32>(0); rb.Push<u32>(0);
} }
void NVDRV::FinishInitialize(Kernel::HLERequestContext& ctx) { void NVDRV::SetGraphicsFirmwareMemoryMarginEnabled(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_NVDRV, "(STUBBED) called"); LOG_WARNING(Service_NVDRV, "(STUBBED) called");
IPC::ResponseBuilder rb{ctx, 2}; IPC::ResponseBuilder rb{ctx, 2};
@ -187,13 +187,14 @@ NVDRV::NVDRV(std::shared_ptr<Module> nvdrv, const char* name)
{4, &NVDRV::QueryEvent, "QueryEvent"}, {4, &NVDRV::QueryEvent, "QueryEvent"},
{5, nullptr, "MapSharedMem"}, {5, nullptr, "MapSharedMem"},
{6, &NVDRV::GetStatus, "GetStatus"}, {6, &NVDRV::GetStatus, "GetStatus"},
{7, nullptr, "ForceSetClientPID"}, {7, nullptr, "SetAruidForTest"},
{8, &NVDRV::SetClientPID, "SetClientPID"}, {8, &NVDRV::SetAruid, "SetAruid"},
{9, &NVDRV::DumpGraphicsMemoryInfo, "DumpGraphicsMemoryInfo"}, {9, &NVDRV::DumpGraphicsMemoryInfo, "DumpGraphicsMemoryInfo"},
{10, nullptr, "InitializeDevtools"}, {10, nullptr, "InitializeDevtools"},
{11, &NVDRV::Ioctl2, "Ioctl2"}, {11, &NVDRV::Ioctl2, "Ioctl2"},
{12, &NVDRV::Ioctl3, "Ioctl3"}, {12, &NVDRV::Ioctl3, "Ioctl3"},
{13, &NVDRV::FinishInitialize, "FinishInitialize"}, {13, &NVDRV::SetGraphicsFirmwareMemoryMarginEnabled,
"SetGraphicsFirmwareMemoryMarginEnabled"},
}; };
RegisterHandlers(functions); RegisterHandlers(functions);
} }

@ -29,8 +29,8 @@ private:
void Close(Kernel::HLERequestContext& ctx); void Close(Kernel::HLERequestContext& ctx);
void Initialize(Kernel::HLERequestContext& ctx); void Initialize(Kernel::HLERequestContext& ctx);
void QueryEvent(Kernel::HLERequestContext& ctx); void QueryEvent(Kernel::HLERequestContext& ctx);
void SetClientPID(Kernel::HLERequestContext& ctx); void SetAruid(Kernel::HLERequestContext& ctx);
void FinishInitialize(Kernel::HLERequestContext& ctx); void SetGraphicsFirmwareMemoryMarginEnabled(Kernel::HLERequestContext& ctx);
void GetStatus(Kernel::HLERequestContext& ctx); void GetStatus(Kernel::HLERequestContext& ctx);
void DumpGraphicsMemoryInfo(Kernel::HLERequestContext& ctx); void DumpGraphicsMemoryInfo(Kernel::HLERequestContext& ctx);
void IoctlBase(Kernel::HLERequestContext& ctx, IoctlVersion version); void IoctlBase(Kernel::HLERequestContext& ctx, IoctlVersion version);

@ -10,19 +10,19 @@ namespace Service::Nvidia {
NVMEMP::NVMEMP() : ServiceFramework("nvmemp") { NVMEMP::NVMEMP() : ServiceFramework("nvmemp") {
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, &NVMEMP::Cmd0, "Cmd0"}, {0, &NVMEMP::Open, "Open"},
{1, &NVMEMP::Cmd1, "Cmd1"}, {1, &NVMEMP::GetAruid, "GetAruid"},
}; };
RegisterHandlers(functions); RegisterHandlers(functions);
} }
NVMEMP::~NVMEMP() = default; NVMEMP::~NVMEMP() = default;
void NVMEMP::Cmd0(Kernel::HLERequestContext& ctx) { void NVMEMP::Open(Kernel::HLERequestContext& ctx) {
UNIMPLEMENTED(); UNIMPLEMENTED();
} }
void NVMEMP::Cmd1(Kernel::HLERequestContext& ctx) { void NVMEMP::GetAruid(Kernel::HLERequestContext& ctx) {
UNIMPLEMENTED(); UNIMPLEMENTED();
} }

@ -14,8 +14,8 @@ public:
~NVMEMP() override; ~NVMEMP() override;
private: private:
void Cmd0(Kernel::HLERequestContext& ctx); void Open(Kernel::HLERequestContext& ctx);
void Cmd1(Kernel::HLERequestContext& ctx); void GetAruid(Kernel::HLERequestContext& ctx);
}; };
} // namespace Service::Nvidia } // namespace Service::Nvidia

@ -36,6 +36,9 @@ public:
{18, nullptr, "ReleaseIrq"}, {18, nullptr, "ReleaseIrq"},
{19, nullptr, "SetIrqEnable"}, {19, nullptr, "SetIrqEnable"},
{20, nullptr, "SetAspmEnable"}, {20, nullptr, "SetAspmEnable"},
{21, nullptr, "SetResetUponResumeEnable"},
{22, nullptr, "Unknown22"},
{23, nullptr, "Unknown23"},
}; };
// clang-format on // clang-format on

@ -42,6 +42,9 @@ public:
{24, nullptr, "GetModuleStateTable"}, {24, nullptr, "GetModuleStateTable"},
{25, nullptr, "GetPowerDomainStateTable"}, {25, nullptr, "GetPowerDomainStateTable"},
{26, nullptr, "GetFuseInfo"}, {26, nullptr, "GetFuseInfo"},
{27, nullptr, "GetDramId"},
{28, nullptr, "IsPoweredOn"},
{29, nullptr, "GetVoltage"},
}; };
// clang-format on // clang-format on

@ -78,13 +78,13 @@ public:
: ServiceFramework{"pm:dmnt"}, kernel(kernel) { : ServiceFramework{"pm:dmnt"}, kernel(kernel) {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "GetDebugProcesses"}, {0, nullptr, "GetJitDebugProcessIdList"},
{1, nullptr, "StartDebugProcess"}, {1, nullptr, "StartProcess"},
{2, &DebugMonitor::GetTitlePid, "GetTitlePid"}, {2, &DebugMonitor::GetProcessId, "GetProcessId"},
{3, nullptr, "EnableDebugForTitleId"}, {3, nullptr, "HookToCreateProcess"},
{4, &DebugMonitor::GetApplicationPid, "GetApplicationPid"}, {4, &DebugMonitor::GetApplicationProcessId, "GetApplicationProcessId"},
{5, nullptr, "EnableDebugForApplication"}, {5, nullptr, "HookToCreateApplicationProgress"},
{6, nullptr, "DisableDebug"}, {6, nullptr, "ClearHook"},
}; };
// clang-format on // clang-format on
@ -92,7 +92,7 @@ public:
} }
private: private:
void GetTitlePid(Kernel::HLERequestContext& ctx) { void GetProcessId(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp{ctx}; IPC::RequestParser rp{ctx};
const auto title_id = rp.PopRaw<u64>(); const auto title_id = rp.PopRaw<u64>();
@ -114,7 +114,7 @@ private:
rb.Push((*process)->GetProcessID()); rb.Push((*process)->GetProcessID());
} }
void GetApplicationPid(Kernel::HLERequestContext& ctx) { void GetApplicationProcessId(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_PM, "called"); LOG_DEBUG(Service_PM, "called");
GetApplicationPidGeneric(ctx, kernel.GetProcessList()); GetApplicationPidGeneric(ctx, kernel.GetProcessList());
} }
@ -163,15 +163,15 @@ public:
: ServiceFramework{"pm:shell"}, kernel(kernel) { : ServiceFramework{"pm:shell"}, kernel(kernel) {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "LaunchProcess"}, {0, nullptr, "LaunchProgram"},
{1, nullptr, "TerminateProcessByPid"}, {1, nullptr, "TerminateProcess"},
{2, nullptr, "TerminateProcessByTitleId"}, {2, nullptr, "TerminateProgram"},
{3, nullptr, "GetProcessEventWaiter"}, {3, nullptr, "GetProcessEventHandle"},
{4, nullptr, "GetProcessEventType"}, {4, nullptr, "GetProcessEventInfo"},
{5, nullptr, "NotifyBootFinished"}, {5, nullptr, "NotifyBootFinished"},
{6, &Shell::GetApplicationPid, "GetApplicationPid"}, {6, &Shell::GetApplicationProcessIdForShell, "GetApplicationProcessIdForShell"},
{7, nullptr, "BoostSystemMemoryResourceLimit"}, {7, nullptr, "BoostSystemMemoryResourceLimit"},
{8, nullptr, "EnableAdditionalSystemThreads"}, {8, nullptr, "BoostApplicationThreadResourceLimit"},
{9, nullptr, "GetBootFinishedEventHandle"}, {9, nullptr, "GetBootFinishedEventHandle"},
}; };
// clang-format on // clang-format on
@ -180,7 +180,7 @@ public:
} }
private: private:
void GetApplicationPid(Kernel::HLERequestContext& ctx) { void GetApplicationProcessIdForShell(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_PM, "called"); LOG_DEBUG(Service_PM, "called");
GetApplicationPidGeneric(ctx, kernel.GetProcessList()); GetApplicationPidGeneric(ctx, kernel.GetProcessList());
} }

@ -42,6 +42,11 @@ public:
{40101, nullptr, "SetUserAgreementCheckEnabled"}, {40101, nullptr, "SetUserAgreementCheckEnabled"},
{50100, nullptr, "ReadAllApplicationReportFiles"}, {50100, nullptr, "ReadAllApplicationReportFiles"},
{90100, nullptr, "ReadAllReportFiles"}, {90100, nullptr, "ReadAllReportFiles"},
{90101, nullptr, "Unknown90101"},
{90102, nullptr, "Unknown90102"},
{90200, nullptr, "GetStatistics"},
{90201, nullptr, "GetThroughputHistory"},
{90300, nullptr, "GetLastUploadError"},
}; };
// clang-format on // clang-format on

@ -24,6 +24,8 @@ public:
{4, nullptr, "Cancel"}, {4, nullptr, "Cancel"},
{5, nullptr, "PrintModuleInformation"}, {5, nullptr, "PrintModuleInformation"},
{6, nullptr, "GetModuleInformation"}, {6, nullptr, "GetModuleInformation"},
{10, nullptr, "Unknown10"},
{11, nullptr, "Unknown11"},
}; };
// clang-format on // clang-format on

@ -35,6 +35,7 @@ public:
{15, nullptr, "GetBatteryAgePercentage"}, {15, nullptr, "GetBatteryAgePercentage"},
{16, nullptr, "GetBatteryChargeInfoEvent"}, {16, nullptr, "GetBatteryChargeInfoEvent"},
{17, nullptr, "GetBatteryChargeInfoFields"}, {17, nullptr, "GetBatteryChargeInfoFields"},
{18, nullptr, "GetBatteryChargeCalibratedEvent"},
}; };
// clang-format on // clang-format on

@ -12,7 +12,7 @@
namespace Service::SM { namespace Service::SM {
void Controller::ConvertSessionToDomain(Kernel::HLERequestContext& ctx) { void Controller::ConvertCurrentObjectToDomain(Kernel::HLERequestContext& ctx) {
ASSERT_MSG(ctx.Session()->IsSession(), "Session is already a domain"); ASSERT_MSG(ctx.Session()->IsSession(), "Session is already a domain");
LOG_DEBUG(Service, "called, server_session={}", ctx.Session()->GetObjectId()); LOG_DEBUG(Service, "called, server_session={}", ctx.Session()->GetObjectId());
ctx.Session()->ConvertToDomain(); ctx.Session()->ConvertToDomain();
@ -22,7 +22,7 @@ void Controller::ConvertSessionToDomain(Kernel::HLERequestContext& ctx) {
rb.Push<u32>(1); // Converted sessions start with 1 request handler rb.Push<u32>(1); // Converted sessions start with 1 request handler
} }
void Controller::DuplicateSession(Kernel::HLERequestContext& ctx) { void Controller::CloneCurrentObject(Kernel::HLERequestContext& ctx) {
// TODO(bunnei): This is just creating a new handle to the same Session. I assume this is wrong // TODO(bunnei): This is just creating a new handle to the same Session. I assume this is wrong
// and that we probably want to actually make an entirely new Session, but we still need to // and that we probably want to actually make an entirely new Session, but we still need to
// verify this on hardware. // verify this on hardware.
@ -33,10 +33,10 @@ void Controller::DuplicateSession(Kernel::HLERequestContext& ctx) {
rb.PushMoveObjects(ctx.Session()->GetParent()->Client()); rb.PushMoveObjects(ctx.Session()->GetParent()->Client());
} }
void Controller::DuplicateSessionEx(Kernel::HLERequestContext& ctx) { void Controller::CloneCurrentObjectEx(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service, "(STUBBED) called, using DuplicateSession"); LOG_WARNING(Service, "(STUBBED) called, using CloneCurrentObject");
DuplicateSession(ctx); CloneCurrentObject(ctx);
} }
void Controller::QueryPointerBufferSize(Kernel::HLERequestContext& ctx) { void Controller::QueryPointerBufferSize(Kernel::HLERequestContext& ctx) {
@ -47,13 +47,14 @@ void Controller::QueryPointerBufferSize(Kernel::HLERequestContext& ctx) {
rb.Push<u16>(0x1000); rb.Push<u16>(0x1000);
} }
// https://switchbrew.org/wiki/IPC_Marshalling
Controller::Controller() : ServiceFramework("IpcController") { Controller::Controller() : ServiceFramework("IpcController") {
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0x00000000, &Controller::ConvertSessionToDomain, "ConvertSessionToDomain"}, {0, &Controller::ConvertCurrentObjectToDomain, "ConvertCurrentObjectToDomain"},
{0x00000001, nullptr, "ConvertDomainToSession"}, {1, nullptr, "CopyFromCurrentDomain"},
{0x00000002, &Controller::DuplicateSession, "DuplicateSession"}, {2, &Controller::CloneCurrentObject, "CloneCurrentObject"},
{0x00000003, &Controller::QueryPointerBufferSize, "QueryPointerBufferSize"}, {3, &Controller::QueryPointerBufferSize, "QueryPointerBufferSize"},
{0x00000004, &Controller::DuplicateSessionEx, "DuplicateSessionEx"}, {4, &Controller::CloneCurrentObjectEx, "CloneCurrentObjectEx"},
}; };
RegisterHandlers(functions); RegisterHandlers(functions);
} }

@ -14,9 +14,9 @@ public:
~Controller() override; ~Controller() override;
private: private:
void ConvertSessionToDomain(Kernel::HLERequestContext& ctx); void ConvertCurrentObjectToDomain(Kernel::HLERequestContext& ctx);
void DuplicateSession(Kernel::HLERequestContext& ctx); void CloneCurrentObject(Kernel::HLERequestContext& ctx);
void DuplicateSessionEx(Kernel::HLERequestContext& ctx); void CloneCurrentObjectEx(Kernel::HLERequestContext& ctx);
void QueryPointerBufferSize(Kernel::HLERequestContext& ctx); void QueryPointerBufferSize(Kernel::HLERequestContext& ctx);
}; };

@ -14,6 +14,7 @@ NSD::NSD(const char* name) : ServiceFramework(name) {
{12, nullptr, "GetDeviceId"}, {12, nullptr, "GetDeviceId"},
{13, nullptr, "DeleteSettings"}, {13, nullptr, "DeleteSettings"},
{14, nullptr, "ImportSettings"}, {14, nullptr, "ImportSettings"},
{15, nullptr, "SetChangeEnvironmentIdentifierDisabled"},
{20, nullptr, "Resolve"}, {20, nullptr, "Resolve"},
{21, nullptr, "ResolveEx"}, {21, nullptr, "ResolveEx"},
{30, nullptr, "GetNasServiceSetting"}, {30, nullptr, "GetNasServiceSetting"},
@ -28,6 +29,11 @@ NSD::NSD(const char* name) : ServiceFramework(name) {
{60, nullptr, "ReadSaveDataFromFsForTest"}, {60, nullptr, "ReadSaveDataFromFsForTest"},
{61, nullptr, "WriteSaveDataToFsForTest"}, {61, nullptr, "WriteSaveDataToFsForTest"},
{62, nullptr, "DeleteSaveDataOfFsForTest"}, {62, nullptr, "DeleteSaveDataOfFsForTest"},
{63, nullptr, "IsChangeEnvironmentIdentifierDisabled"},
{64, nullptr, "SetWithoutDomainExchangeFqdns"},
{100, nullptr, "GetApplicationServerEnvironmentType"},
{101, nullptr, "SetApplicationServerEnvironmentType"},
{102, nullptr, "DeleteApplicationServerEnvironmentType"},
}; };
// clang-format on // clang-format on

@ -7,7 +7,7 @@
namespace Service::Sockets { namespace Service::Sockets {
void SFDNSRES::GetAddrInfo(Kernel::HLERequestContext& ctx) { void SFDNSRES::GetAddrInfoRequest(Kernel::HLERequestContext& ctx) {
struct Parameters { struct Parameters {
u8 use_nsd_resolve; u8 use_nsd_resolve;
u32 unknown; u32 unknown;
@ -29,15 +29,20 @@ SFDNSRES::SFDNSRES() : ServiceFramework("sfdnsres") {
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "SetDnsAddressesPrivate"}, {0, nullptr, "SetDnsAddressesPrivate"},
{1, nullptr, "GetDnsAddressPrivate"}, {1, nullptr, "GetDnsAddressPrivate"},
{2, nullptr, "GetHostByName"}, {2, nullptr, "GetHostByNameRequest"},
{3, nullptr, "GetHostByAddr"}, {3, nullptr, "GetHostByAddrRequest"},
{4, nullptr, "GetHostStringError"}, {4, nullptr, "GetHostStringErrorRequest"},
{5, nullptr, "GetGaiStringError"}, {5, nullptr, "GetGaiStringErrorRequest"},
{6, &SFDNSRES::GetAddrInfo, "GetAddrInfo"}, {6, &SFDNSRES::GetAddrInfoRequest, "GetAddrInfoRequest"},
{7, nullptr, "GetNameInfo"}, {7, nullptr, "GetNameInfoRequest"},
{8, nullptr, "RequestCancelHandle"}, {8, nullptr, "RequestCancelHandleRequest"},
{9, nullptr, "CancelSocketCall"}, {9, nullptr, "CancelRequest"},
{11, nullptr, "ClearDnsIpServerAddressArray"}, {10, nullptr, "GetHostByNameRequestWithOptions"},
{11, nullptr, "GetHostByAddrRequestWithOptions"},
{12, nullptr, "GetAddrInfoRequestWithOptions"},
{13, nullptr, "GetNameInfoRequestWithOptions"},
{14, nullptr, "ResolverSetOptionRequest"},
{15, nullptr, "ResolverGetOptionRequest"},
}; };
RegisterHandlers(functions); RegisterHandlers(functions);
} }

@ -15,7 +15,7 @@ public:
~SFDNSRES() override; ~SFDNSRES() override;
private: private:
void GetAddrInfo(Kernel::HLERequestContext& ctx); void GetAddrInfoRequest(Kernel::HLERequestContext& ctx);
}; };
} // namespace Service::Sockets } // namespace Service::Sockets

@ -9,35 +9,36 @@ namespace Service::SPL {
SPL::SPL(std::shared_ptr<Module> module) : Module::Interface(std::move(module), "spl:") { SPL::SPL(std::shared_ptr<Module> module) : Module::Interface(std::move(module), "spl:") {
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "GetConfig"}, {0, nullptr, "GetConfig"},
{1, nullptr, "UserExpMod"}, {1, nullptr, "ModularExponentiate"},
{2, nullptr, "GenerateAesKek"}, {2, nullptr, "GenerateAesKek"},
{3, nullptr, "LoadAesKey"}, {3, nullptr, "LoadAesKey"},
{4, nullptr, "GenerateAesKey"}, {4, nullptr, "GenerateAesKey"},
{5, nullptr, "SetConfig"}, {5, nullptr, "SetConfig"},
{7, &SPL::GetRandomBytes, "GetRandomBytes"}, {7, &SPL::GetRandomBytes, "GetRandomBytes"},
{9, nullptr, "LoadSecureExpModKey"}, {9, nullptr, "ImportLotusKey"},
{10, nullptr, "SecureExpMod"}, {10, nullptr, "DecryptLotusMessage"},
{11, nullptr, "IsDevelopment"}, {11, nullptr, "IsDevelopment"},
{12, nullptr, "GenerateSpecificAesKey"}, {12, nullptr, "GenerateSpecificAesKey"},
{13, nullptr, "DecryptPrivk"}, {13, nullptr, "DecryptDeviceUniqueData"},
{14, nullptr, "DecryptAesKey"}, {14, nullptr, "DecryptAesKey"},
{15, nullptr, "DecryptAesCtr"}, {15, nullptr, "CryptAesCtr"},
{16, nullptr, "ComputeCmac"}, {16, nullptr, "ComputeCmac"},
{17, nullptr, "LoadRsaOaepKey"}, {17, nullptr, "ImportEsKey"},
{18, nullptr, "UnwrapRsaOaepWrappedTitleKey"}, {18, nullptr, "UnwrapTitleKey"},
{19, nullptr, "LoadTitleKey"}, {19, nullptr, "LoadTitleKey"},
{20, nullptr, "UnwrapAesWrappedTitleKey"}, {20, nullptr, "PrepareEsCommonKey"},
{21, nullptr, "LockAesEngine"}, {21, nullptr, "AllocateAesKeyslot"},
{22, nullptr, "UnlockAesEngine"}, {22, nullptr, "DeallocateAesKeySlot"},
{23, nullptr, "GetSplWaitEvent"}, {23, nullptr, "GetAesKeyslotAvailableEvent"},
{24, nullptr, "SetSharedData"}, {24, nullptr, "SetBootReason"},
{25, nullptr, "GetSharedData"}, {25, nullptr, "GetBootReason"},
{26, nullptr, "ImportSslRsaKey"}, {26, nullptr, "DecryptAndStoreSslClientCertKey"},
{27, nullptr, "SecureExpModWithSslKey"}, {27, nullptr, "ModularExponentiateWithSslClientCertKey"},
{28, nullptr, "ImportEsRsaKey"}, {28, nullptr, "DecryptAndStoreDrmDeviceCertKey"},
{29, nullptr, "SecureExpModWithEsKey"}, {29, nullptr, "ModularExponentiateWithDrmDeviceCertKey"},
{30, nullptr, "EncryptManuRsaKeyForImport"}, {30, nullptr, "ReencryptDeviceUniqueData "},
{31, nullptr, "GetPackage2Hash"}, {31, nullptr, "PrepareEsArchiveKey"}, // This is also GetPackage2Hash?
{32, nullptr, "LoadPreparedAesKey"},
}; };
RegisterHandlers(functions); RegisterHandlers(functions);
} }

@ -90,6 +90,13 @@ public:
: ServiceFramework("ISteadyClock"), clock_core{clock_core}, system{system} { : ServiceFramework("ISteadyClock"), clock_core{clock_core}, system{system} {
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, &ISteadyClock::GetCurrentTimePoint, "GetCurrentTimePoint"}, {0, &ISteadyClock::GetCurrentTimePoint, "GetCurrentTimePoint"},
{2, nullptr, "GetTestOffset"},
{3, nullptr, "SetTestOffset"},
{100, nullptr, "GetRtcValue"},
{101, nullptr, "IsRtcResetDetected"},
{102, nullptr, "GetSetupResultValue"},
{200, nullptr, "GetInternalOffset"},
{201, nullptr, "SetInternalOffset"},
}; };
RegisterHandlers(functions); RegisterHandlers(functions);
} }

@ -20,7 +20,7 @@ public:
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "GetDsEndpoint"}, {0, nullptr, "GetDsEndpoint"},
{1, nullptr, "GetSetupEvent"}, {1, nullptr, "GetSetupEvent"},
{2, nullptr, "Unknown"}, {2, nullptr, "Unknown2"},
{3, nullptr, "EnableInterface"}, {3, nullptr, "EnableInterface"},
{4, nullptr, "DisableInterface"}, {4, nullptr, "DisableInterface"},
{5, nullptr, "CtrlInPostBufferAsync"}, {5, nullptr, "CtrlInPostBufferAsync"},
@ -55,6 +55,7 @@ public:
{9, nullptr, "SetBinaryObjectStore"}, {9, nullptr, "SetBinaryObjectStore"},
{10, nullptr, "Enable"}, {10, nullptr, "Enable"},
{11, nullptr, "Disable"}, {11, nullptr, "Disable"},
{12, nullptr, "Unknown12"},
}; };
// clang-format on // clang-format on
@ -69,13 +70,13 @@ public:
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "Open"}, {0, nullptr, "Open"},
{1, nullptr, "Close"}, {1, nullptr, "Close"},
{2, nullptr, "Unknown1"}, {2, nullptr, "Unknown2"},
{3, nullptr, "Populate"}, {3, nullptr, "Populate"},
{4, nullptr, "PostBufferAsync"}, {4, nullptr, "PostBufferAsync"},
{5, nullptr, "GetXferReport"}, {5, nullptr, "GetXferReport"},
{6, nullptr, "PostBufferMultiAsync"}, {6, nullptr, "PostBufferMultiAsync"},
{7, nullptr, "Unknown3"}, {7, nullptr, "Unknown7"},
{8, nullptr, "Unknown4"}, {8, nullptr, "Unknown8"},
}; };
// clang-format on // clang-format on
@ -88,13 +89,13 @@ public:
explicit IClientIfSession() : ServiceFramework{"IClientIfSession"} { explicit IClientIfSession() : ServiceFramework{"IClientIfSession"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "Unknown1"}, {0, nullptr, "Unknown0"},
{1, nullptr, "SetInterface"}, {1, nullptr, "SetInterface"},
{2, nullptr, "GetInterface"}, {2, nullptr, "GetInterface"},
{3, nullptr, "GetAlternateInterface"}, {3, nullptr, "GetAlternateInterface"},
{4, nullptr, "GetCurrentFrame"}, {4, nullptr, "GetCurrentFrame"},
{5, nullptr, "CtrlXferAsync"}, {5, nullptr, "CtrlXferAsync"},
{6, nullptr, "Unknown2"}, {6, nullptr, "Unknown6"},
{7, nullptr, "GetCtrlXferReport"}, {7, nullptr, "GetCtrlXferReport"},
{8, nullptr, "ResetDevice"}, {8, nullptr, "ResetDevice"},
{9, nullptr, "OpenUsbEp"}, {9, nullptr, "OpenUsbEp"},
@ -118,7 +119,7 @@ public:
{5, nullptr, "DestroyInterfaceAvailableEvent"}, {5, nullptr, "DestroyInterfaceAvailableEvent"},
{6, nullptr, "GetInterfaceStateChangeEvent"}, {6, nullptr, "GetInterfaceStateChangeEvent"},
{7, nullptr, "AcquireUsbIf"}, {7, nullptr, "AcquireUsbIf"},
{8, nullptr, "Unknown1"}, {8, nullptr, "Unknown8"},
}; };
// clang-format on // clang-format on
@ -179,8 +180,8 @@ public:
{4, nullptr, "GetFwRevision"}, {4, nullptr, "GetFwRevision"},
{5, nullptr, "GetManufacturerId"}, {5, nullptr, "GetManufacturerId"},
{6, nullptr, "GetDeviceId"}, {6, nullptr, "GetDeviceId"},
{7, nullptr, "Unknown1"}, {7, nullptr, "Unknown7"},
{8, nullptr, "Unknown2"}, {8, nullptr, "Unknown8"},
}; };
// clang-format on // clang-format on
@ -215,12 +216,12 @@ public:
explicit USB_PM() : ServiceFramework{"usb:pm"} { explicit USB_PM() : ServiceFramework{"usb:pm"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "Unknown1"}, {0, nullptr, "Unknown0"},
{1, nullptr, "Unknown2"}, {1, nullptr, "Unknown1"},
{2, nullptr, "Unknown3"}, {2, nullptr, "Unknown2"},
{3, nullptr, "Unknown4"}, {3, nullptr, "Unknown3"},
{4, nullptr, "Unknown5"}, {4, nullptr, "Unknown4"},
{5, nullptr, "Unknown6"}, {5, nullptr, "Unknown5"},
}; };
// clang-format on // clang-format on

@ -700,6 +700,7 @@ public:
{3215, nullptr, "SetDisplayGamma"}, {3215, nullptr, "SetDisplayGamma"},
{3216, nullptr, "GetDisplayCmuLuma"}, {3216, nullptr, "GetDisplayCmuLuma"},
{3217, nullptr, "SetDisplayCmuLuma"}, {3217, nullptr, "SetDisplayCmuLuma"},
{6013, nullptr, "GetLayerPresentationSubmissionTimestamps"},
{8225, nullptr, "GetSharedBufferMemoryHandleId"}, {8225, nullptr, "GetSharedBufferMemoryHandleId"},
{8250, nullptr, "OpenSharedLayer"}, {8250, nullptr, "OpenSharedLayer"},
{8251, nullptr, "CloseSharedLayer"}, {8251, nullptr, "CloseSharedLayer"},
@ -785,6 +786,7 @@ public:
{2300, nullptr, "AcquireLayerTexturePresentingEvent"}, {2300, nullptr, "AcquireLayerTexturePresentingEvent"},
{2301, nullptr, "ReleaseLayerTexturePresentingEvent"}, {2301, nullptr, "ReleaseLayerTexturePresentingEvent"},
{2302, nullptr, "GetDisplayHotplugEvent"}, {2302, nullptr, "GetDisplayHotplugEvent"},
{2303, nullptr, "GetDisplayModeChangedEvent"},
{2402, nullptr, "GetDisplayHotplugState"}, {2402, nullptr, "GetDisplayHotplugState"},
{2501, nullptr, "GetCompositorErrorInfo"}, {2501, nullptr, "GetCompositorErrorInfo"},
{2601, nullptr, "GetDisplayErrorEvent"}, {2601, nullptr, "GetDisplayErrorEvent"},

@ -12,6 +12,7 @@ VI_U::VI_U(std::shared_ptr<NVFlinger::NVFlinger> nv_flinger)
: ServiceFramework{"vi:u"}, nv_flinger{std::move(nv_flinger)} { : ServiceFramework{"vi:u"}, nv_flinger{std::move(nv_flinger)} {
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, &VI_U::GetDisplayService, "GetDisplayService"}, {0, &VI_U::GetDisplayService, "GetDisplayService"},
{1, nullptr, "GetDisplayServiceWithProxyNameExchange"},
}; };
RegisterHandlers(functions); RegisterHandlers(functions);
} }

@ -15,34 +15,37 @@ public:
explicit WLANInfra() : ServiceFramework{"wlan:inf"} { explicit WLANInfra() : ServiceFramework{"wlan:inf"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "Unknown1"}, {0, nullptr, "OpenMode"},
{1, nullptr, "Unknown2"}, {1, nullptr, "CloseMode"},
{2, nullptr, "GetMacAddress"}, {2, nullptr, "GetMacAddress"},
{3, nullptr, "StartScan"}, {3, nullptr, "StartScan"},
{4, nullptr, "StopScan"}, {4, nullptr, "StopScan"},
{5, nullptr, "Connect"}, {5, nullptr, "Connect"},
{6, nullptr, "CancelConnect"}, {6, nullptr, "CancelConnect"},
{7, nullptr, "Disconnect"}, {7, nullptr, "Disconnect"},
{8, nullptr, "Unknown3"}, {8, nullptr, "GetConnectionEvent"},
{9, nullptr, "Unknown4"}, {9, nullptr, "GetConnectionStatus"},
{10, nullptr, "GetState"}, {10, nullptr, "GetState"},
{11, nullptr, "GetScanResult"}, {11, nullptr, "GetScanResult"},
{12, nullptr, "GetRssi"}, {12, nullptr, "GetRssi"},
{13, nullptr, "ChangeRxAntenna"}, {13, nullptr, "ChangeRxAntenna"},
{14, nullptr, "Unknown5"}, {14, nullptr, "GetFwVersion"},
{15, nullptr, "Unknown6"}, {15, nullptr, "RequestSleep"},
{16, nullptr, "RequestWakeUp"}, {16, nullptr, "RequestWakeUp"},
{17, nullptr, "RequestIfUpDown"}, {17, nullptr, "RequestIfUpDown"},
{18, nullptr, "Unknown7"}, {18, nullptr, "Unknown18"},
{19, nullptr, "Unknown8"}, {19, nullptr, "Unknown19"},
{20, nullptr, "Unknown9"}, {20, nullptr, "Unknown20"},
{21, nullptr, "Unknown10"}, {21, nullptr, "Unknown21"},
{22, nullptr, "Unknown11"}, {22, nullptr, "Unknown22"},
{23, nullptr, "Unknown12"}, {23, nullptr, "Unknown23"},
{24, nullptr, "Unknown13"}, {24, nullptr, "Unknown24"},
{25, nullptr, "Unknown14"}, {25, nullptr, "Unknown25"},
{26, nullptr, "Unknown15"}, {26, nullptr, "Unknown26"},
{27, nullptr, "Unknown16"}, {27, nullptr, "Unknown27"},
{28, nullptr, "Unknown28"},
{29, nullptr, "Unknown29"},
{30, nullptr, "Unknown30"},
}; };
// clang-format on // clang-format on
@ -55,12 +58,12 @@ public:
explicit WLANLocal() : ServiceFramework{"wlan:lcl"} { explicit WLANLocal() : ServiceFramework{"wlan:lcl"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "Unknown1"}, {0, nullptr, "Unknown0"},
{1, nullptr, "Unknown2"}, {1, nullptr, "Unknown1"},
{2, nullptr, "Unknown3"}, {2, nullptr, "Unknown2"},
{3, nullptr, "Unknown4"}, {3, nullptr, "Unknown3"},
{4, nullptr, "Unknown5"}, {4, nullptr, "Unknown4"},
{5, nullptr, "Unknown6"}, {5, nullptr, "Unknown5"},
{6, nullptr, "GetMacAddress"}, {6, nullptr, "GetMacAddress"},
{7, nullptr, "CreateBss"}, {7, nullptr, "CreateBss"},
{8, nullptr, "DestroyBss"}, {8, nullptr, "DestroyBss"},
@ -72,38 +75,42 @@ public:
{14, nullptr, "CancelJoin"}, {14, nullptr, "CancelJoin"},
{15, nullptr, "Disconnect"}, {15, nullptr, "Disconnect"},
{16, nullptr, "SetBeaconLostCount"}, {16, nullptr, "SetBeaconLostCount"},
{17, nullptr, "Unknown7"}, {17, nullptr, "Unknown17"},
{18, nullptr, "Unknown8"}, {18, nullptr, "Unknown18"},
{19, nullptr, "Unknown9"}, {19, nullptr, "Unknown19"},
{20, nullptr, "GetBssIndicationEvent"}, {20, nullptr, "GetBssIndicationEvent"},
{21, nullptr, "GetBssIndicationInfo"}, {21, nullptr, "GetBssIndicationInfo"},
{22, nullptr, "GetState"}, {22, nullptr, "GetState"},
{23, nullptr, "GetAllowedChannels"}, {23, nullptr, "GetAllowedChannels"},
{24, nullptr, "AddIe"}, {24, nullptr, "AddIe"},
{25, nullptr, "DeleteIe"}, {25, nullptr, "DeleteIe"},
{26, nullptr, "Unknown10"}, {26, nullptr, "Unknown26"},
{27, nullptr, "Unknown11"}, {27, nullptr, "Unknown27"},
{28, nullptr, "CreateRxEntry"}, {28, nullptr, "CreateRxEntry"},
{29, nullptr, "DeleteRxEntry"}, {29, nullptr, "DeleteRxEntry"},
{30, nullptr, "Unknown12"}, {30, nullptr, "Unknown30"},
{31, nullptr, "Unknown13"}, {31, nullptr, "Unknown31"},
{32, nullptr, "AddMatchingDataToRxEntry"}, {32, nullptr, "AddMatchingDataToRxEntry"},
{33, nullptr, "RemoveMatchingDataFromRxEntry"}, {33, nullptr, "RemoveMatchingDataFromRxEntry"},
{34, nullptr, "GetScanResult"}, {34, nullptr, "GetScanResult"},
{35, nullptr, "Unknown14"}, {35, nullptr, "Unknown35"},
{36, nullptr, "SetActionFrameWithBeacon"}, {36, nullptr, "SetActionFrameWithBeacon"},
{37, nullptr, "CancelActionFrameWithBeacon"}, {37, nullptr, "CancelActionFrameWithBeacon"},
{38, nullptr, "CreateRxEntryForActionFrame"}, {38, nullptr, "CreateRxEntryForActionFrame"},
{39, nullptr, "DeleteRxEntryForActionFrame"}, {39, nullptr, "DeleteRxEntryForActionFrame"},
{40, nullptr, "Unknown15"}, {40, nullptr, "Unknown40"},
{41, nullptr, "Unknown16"}, {41, nullptr, "Unknown41"},
{42, nullptr, "CancelGetActionFrame"}, {42, nullptr, "CancelGetActionFrame"},
{43, nullptr, "GetRssi"}, {43, nullptr, "GetRssi"},
{44, nullptr, "Unknown17"}, {44, nullptr, "Unknown44"},
{45, nullptr, "Unknown18"}, {45, nullptr, "Unknown45"},
{46, nullptr, "Unknown19"}, {46, nullptr, "Unknown46"},
{47, nullptr, "Unknown20"}, {47, nullptr, "Unknown47"},
{48, nullptr, "Unknown21"}, {48, nullptr, "Unknown48"},
{49, nullptr, "Unknown49"},
{50, nullptr, "Unknown50"},
{51, nullptr, "Unknown51"},
{52, nullptr, "Unknown52"},
}; };
// clang-format on // clang-format on
@ -142,18 +149,19 @@ public:
explicit WLANSocketManager() : ServiceFramework{"wlan:soc"} { explicit WLANSocketManager() : ServiceFramework{"wlan:soc"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "Unknown1"}, {0, nullptr, "Unknown0"},
{1, nullptr, "Unknown2"}, {1, nullptr, "Unknown1"},
{2, nullptr, "Unknown3"}, {2, nullptr, "Unknown2"},
{3, nullptr, "Unknown4"}, {3, nullptr, "Unknown3"},
{4, nullptr, "Unknown5"}, {4, nullptr, "Unknown4"},
{5, nullptr, "Unknown6"}, {5, nullptr, "Unknown5"},
{6, nullptr, "GetMacAddress"}, {6, nullptr, "GetMacAddress"},
{7, nullptr, "SwitchTsfTimerFunction"}, {7, nullptr, "SwitchTsfTimerFunction"},
{8, nullptr, "Unknown7"}, {8, nullptr, "Unknown8"},
{9, nullptr, "Unknown8"}, {9, nullptr, "Unknown9"},
{10, nullptr, "Unknown9"}, {10, nullptr, "Unknown10"},
{11, nullptr, "Unknown10"}, {11, nullptr, "Unknown11"},
{12, nullptr, "Unknown12"},
}; };
// clang-format on // clang-format on