summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/hle/service/sm/sm.cpp6
-rw-r--r--src/core/hle/service/sm/sm.h2
-rw-r--r--src/core/hle/service/sm/sm_controller.cpp8
3 files changed, 9 insertions, 7 deletions
diff --git a/src/core/hle/service/sm/sm.cpp b/src/core/hle/service/sm/sm.cpp
index 8a92d9146..fe951298d 100644
--- a/src/core/hle/service/sm/sm.cpp
+++ b/src/core/hle/service/sm/sm.cpp
@@ -18,11 +18,11 @@
namespace Service::SM {
+[[maybe_unused]] constexpr Result ResultNotAllowed(ErrorModule::SM, 1);
constexpr Result ResultInvalidClient(ErrorModule::SM, 2);
constexpr Result ResultAlreadyRegistered(ErrorModule::SM, 4);
constexpr Result ResultInvalidServiceName(ErrorModule::SM, 6);
constexpr Result ResultNotRegistered(ErrorModule::SM, 7);
-[[maybe_unused]] constexpr Result ResultNotAllowed(ErrorModule::SM, 1);
ServiceManager::ServiceManager(Kernel::KernelCore& kernel_) : kernel{kernel_} {
controller_interface = std::make_unique<Controller>(kernel.System());
@@ -282,14 +282,14 @@ SM::SM(ServiceManager& service_manager_, Core::System& system_)
: ServiceFramework{system_, "sm:", 4},
service_manager{service_manager_}, kernel{system_.Kernel()} {
RegisterHandlers({
- {0, &SM::RegisterClient, "RegisterClient"},
+ {0, &SM::Initialize, "Initialize"},
{1, &SM::GetServiceCmif, "GetService"},
{2, &SM::RegisterServiceCmif, "RegisterService"},
{3, &SM::UnregisterService, "UnregisterService"},
{4, &SM::DetachClient, "DetachClient"},
});
RegisterHandlersTipc({
- {0, &SM::RegisterClient, "RegisterClient"},
+ {0, &SM::Initialize, "Initialize"},
{1, &SM::GetServiceTipc, "GetService"},
{2, &SM::RegisterServiceTipc, "RegisterService"},
{3, &SM::UnregisterService, "UnregisterService"},
diff --git a/src/core/hle/service/sm/sm.h b/src/core/hle/service/sm/sm.h
index d73eac08e..162189d66 100644
--- a/src/core/hle/service/sm/sm.h
+++ b/src/core/hle/service/sm/sm.h
@@ -38,8 +38,8 @@ public:
~SM() override;
private:
- void RegisterClient(HLERequestContext& ctx);
void Initialize(HLERequestContext& ctx);
+ void RegisterClient(HLERequestContext& ctx);
void GetServiceCmif(HLERequestContext& ctx);
void GetServiceTipc(HLERequestContext& ctx);
void RegisterServiceCmif(HLERequestContext& ctx);
diff --git a/src/core/hle/service/sm/sm_controller.cpp b/src/core/hle/service/sm/sm_controller.cpp
index 60e1980b2..2d3f17e55 100644
--- a/src/core/hle/service/sm/sm_controller.cpp
+++ b/src/core/hle/service/sm/sm_controller.cpp
@@ -13,6 +13,8 @@
#include "core/hle/service/server_manager.h"
#include "core/hle/service/sm/sm_controller.h"
+#include <limits>
+
namespace Service::SM {
void Controller::ConvertCurrentObjectToDomain(HLERequestContext& ctx) {
@@ -68,13 +70,13 @@ void Controller::CloneCurrentObjectEx(HLERequestContext& ctx) {
}
void Controller::QueryPointerBufferSize(HLERequestContext& ctx) {
- LOG_DEBUG(Service, "called");
+ LOG_DEBUG(Service, "Querying maximum pointer buffer size");
- u16 pointer_buffer_size = 0x8000; // Replace with the actual size if known
+ constexpr u16 MAX_TRANSFER_MEMORY_SIZE = 0xFFFF;
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(ResultSuccess);
- rb.Push<u16>(pointer_buffer_size);
+ rb.Push<u16>(MAX_TRANSFER_MEMORY_SIZE);
}
// https://switchbrew.org/wiki/IPC_Marshalling