aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/apm/interface.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2018-08-07 10:05:24 -0400
committerLioncash <mathew1800@gmail.com>2018-08-07 10:05:26 -0400
commit12ab5a05474bf4bfc70257f604420e5a76927913 (patch)
treed8f5648c4bd68b747e1cf8330af4127320e4de2f /src/core/hle/service/apm/interface.cpp
parent826b1394e85720b62938c5f7af4a876e203316af (diff)
service/apm: Add the apm:sys service
Adds the basic skeleton of the apm:sys service based off the information on Switch Brew.
Diffstat (limited to 'src/core/hle/service/apm/interface.cpp')
-rw-r--r--src/core/hle/service/apm/interface.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/core/hle/service/apm/interface.cpp b/src/core/hle/service/apm/interface.cpp
index ce943d829..4cd8132f5 100644
--- a/src/core/hle/service/apm/interface.cpp
+++ b/src/core/hle/service/apm/interface.cpp
@@ -74,6 +74,31 @@ void APM::OpenSession(Kernel::HLERequestContext& ctx) {
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(RESULT_SUCCESS);
rb.PushIpcInterface<ISession>();
+
+ LOG_DEBUG(Service_APM, "called");
+}
+
+APM_Sys::APM_Sys() : ServiceFramework{"apm:sys"} {
+ // clang-format off
+ static const FunctionInfo functions[] = {
+ {0, nullptr, "RequestPerformanceMode"},
+ {1, &APM_Sys::GetPerformanceEvent, "GetPerformanceEvent"},
+ {2, nullptr, "GetThrottlingState"},
+ {3, nullptr, "GetLastThrottlingState"},
+ {4, nullptr, "ClearLastThrottlingState"},
+ {5, nullptr, "LoadAndApplySettings"},
+ };
+ // clang-format on
+
+ RegisterHandlers(functions);
+}
+
+void APM_Sys::GetPerformanceEvent(Kernel::HLERequestContext& ctx) {
+ IPC::ResponseBuilder rb{ctx, 2, 0, 1};
+ rb.Push(RESULT_SUCCESS);
+ rb.PushIpcInterface<ISession>();
+
+ LOG_DEBUG(Service_APM, "called");
}
} // namespace Service::APM