pm: update with new meme command for 8.0.0

This commit is contained in:
Michael Scire 2019-04-18 00:18:53 -07:00 committed by SciresM
parent d0659377e8
commit a67d4064f0
3 changed files with 19 additions and 2 deletions

@ -1 +1 @@
Subproject commit b9724cdcadd5ea5fbead8f1a9c9b7de11daf6b60 Subproject commit 163d9259a365c3a89c1a837b28e7609d45795e40

View file

@ -111,3 +111,15 @@ Result ShellService::BoostSystemThreadsResourceLimit() {
/* We will simply not reduce the number of system threads available for no reason. */ /* We will simply not reduce the number of system threads available for no reason. */
return ResultSuccess; return ResultSuccess;
} }
Result ShellService::GetUnimplementedEventHandle(Out<CopiedHandle> event) {
/* In 8.0.0, Nintendo added this command which should return an event handle. */
/* In addition, they also added code to create a new event in the global PM constructor. */
/* However, nothing signals this event, and this command currently does std::abort();. */
/* We will oblige. */
std::abort();
/* TODO: Return an event handle, once N makes this command a real thing in the future. */
/* TODO: return ResultSuccess; */
}

View file

@ -43,7 +43,8 @@ enum ShellCmd_5X {
Shell_Cmd_5X_GetApplicationProcessId = 6, Shell_Cmd_5X_GetApplicationProcessId = 6,
Shell_Cmd_5X_BoostSystemMemoryResourceLimit = 7, Shell_Cmd_5X_BoostSystemMemoryResourceLimit = 7,
Shell_Cmd_BoostSystemThreadsResourceLimit = 8 Shell_Cmd_BoostSystemThreadsResourceLimit = 8,
Shell_Cmd_GetUnimplementedEventHandle = 9 /* TODO: Rename when Nintendo implements this. */
}; };
class ShellService final : public IServiceObject { class ShellService final : public IServiceObject {
@ -60,6 +61,7 @@ class ShellService final : public IServiceObject {
Result GetApplicationProcessId(Out<u64> pid); Result GetApplicationProcessId(Out<u64> pid);
Result BoostSystemMemoryResourceLimit(u64 sysmem_size); Result BoostSystemMemoryResourceLimit(u64 sysmem_size);
Result BoostSystemThreadsResourceLimit(); Result BoostSystemThreadsResourceLimit();
Result GetUnimplementedEventHandle(Out<CopiedHandle> event);
public: public:
DEFINE_SERVICE_DISPATCH_TABLE { DEFINE_SERVICE_DISPATCH_TABLE {
/* 1.0.0-4.0.0 */ /* 1.0.0-4.0.0 */
@ -88,5 +90,8 @@ class ShellService final : public IServiceObject {
/* 7.0.0-* */ /* 7.0.0-* */
MakeServiceCommandMeta<Shell_Cmd_BoostSystemThreadsResourceLimit, &ShellService::BoostSystemThreadsResourceLimit, FirmwareVersion_700>(), MakeServiceCommandMeta<Shell_Cmd_BoostSystemThreadsResourceLimit, &ShellService::BoostSystemThreadsResourceLimit, FirmwareVersion_700>(),
/* 8.0.0-* */
MakeServiceCommandMeta<Shell_Cmd_GetUnimplementedEventHandle, &ShellService::GetUnimplementedEventHandle, FirmwareVersion_800>(),
}; };
}; };