summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/jit/jit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/jit/jit.cpp')
-rw-r--r--src/core/hle/service/jit/jit.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/core/hle/service/jit/jit.cpp b/src/core/hle/service/jit/jit.cpp
index 47a1277ea..46bcfd695 100644
--- a/src/core/hle/service/jit/jit.cpp
+++ b/src/core/hle/service/jit/jit.cpp
@@ -3,12 +3,13 @@
#include "core/arm/symbols.h"
#include "core/core.h"
-#include "core/hle/ipc_helpers.h"
#include "core/hle/kernel/k_code_memory.h"
#include "core/hle/kernel/k_transfer_memory.h"
#include "core/hle/result.h"
+#include "core/hle/service/ipc_helpers.h"
#include "core/hle/service/jit/jit.h"
#include "core/hle/service/jit/jit_context.h"
+#include "core/hle/service/server_manager.h"
#include "core/hle/service/service.h"
#include "core/memory.h"
@@ -23,8 +24,8 @@ class IJitEnvironment final : public ServiceFramework<IJitEnvironment> {
public:
explicit IJitEnvironment(Core::System& system_, Kernel::KProcess& process_, CodeRange user_rx,
CodeRange user_ro)
- : ServiceFramework{system_, "IJitEnvironment", ServiceThreadType::CreateNew},
- process{&process_}, context{system_.Memory()} {
+ : ServiceFramework{system_, "IJitEnvironment"}, process{&process_}, context{
+ system_.Memory()} {
// clang-format off
static const FunctionInfo functions[] = {
{0, &IJitEnvironment::GenerateCode, "GenerateCode"},
@@ -43,7 +44,7 @@ public:
configuration.sys_rx_memory = user_rx;
}
- void GenerateCode(Kernel::HLERequestContext& ctx) {
+ void GenerateCode(HLERequestContext& ctx) {
LOG_DEBUG(Service_JIT, "called");
struct InputParameters {
@@ -125,7 +126,7 @@ public:
}
};
- void Control(Kernel::HLERequestContext& ctx) {
+ void Control(HLERequestContext& ctx) {
LOG_DEBUG(Service_JIT, "called");
IPC::RequestParser rp{ctx};
@@ -170,7 +171,7 @@ public:
}
}
- void LoadPlugin(Kernel::HLERequestContext& ctx) {
+ void LoadPlugin(HLERequestContext& ctx) {
LOG_DEBUG(Service_JIT, "called");
IPC::RequestParser rp{ctx};
@@ -276,7 +277,7 @@ public:
rb.Push(ResultSuccess);
}
- void GetCodeAddress(Kernel::HLERequestContext& ctx) {
+ void GetCodeAddress(HLERequestContext& ctx) {
LOG_DEBUG(Service_JIT, "called");
IPC::ResponseBuilder rb{ctx, 6};
@@ -332,7 +333,7 @@ public:
RegisterHandlers(functions);
}
- void CreateJitEnvironment(Kernel::HLERequestContext& ctx) {
+ void CreateJitEnvironment(HLERequestContext& ctx) {
LOG_DEBUG(Service_JIT, "called");
struct Parameters {
@@ -397,8 +398,11 @@ public:
}
};
-void InstallInterfaces(SM::ServiceManager& sm, Core::System& system) {
- std::make_shared<JITU>(system)->InstallAsService(sm);
+void LoopProcess(Core::System& system) {
+ auto server_manager = std::make_unique<ServerManager>(system);
+
+ server_manager->RegisterNamedService("jit:u", std::make_shared<JITU>(system));
+ ServerManager::RunServer(std::move(server_manager));
}
} // namespace Service::JIT