aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/service/srv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/srv.cpp')
-rw-r--r--src/core/hle/service/srv.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/core/hle/service/srv.cpp b/src/core/hle/service/srv.cpp
index ff6da8f1..f45c0efc 100644
--- a/src/core/hle/service/srv.cpp
+++ b/src/core/hle/service/srv.cpp
@@ -5,21 +5,28 @@
#include "core/hle/hle.h"
#include "core/hle/service/srv.h"
#include "core/hle/service/service.h"
-
+#include "core/hle/kernel/mutex.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
// Namespace SRV
namespace SRV {
+Handle g_mutex = 0;
+
void Initialize(Service::Interface* self) {
- NOTICE_LOG(OSHLE, "SRV::Sync - Initialize");
+ DEBUG_LOG(OSHLE, "called");
+ if (!g_mutex) {
+ g_mutex = Kernel::CreateMutex(true, "SRV:Lock");
+ }
}
void GetProcSemaphore(Service::Interface* self) {
+ DEBUG_LOG(OSHLE, "called");
// Get process semaphore?
u32* cmd_buff = Service::GetCommandBuffer();
- cmd_buff[3] = 0xDEADBEEF; // Return something... 0 == NULL, raises an exception
+ cmd_buff[1] = 0; // No error
+ cmd_buff[3] = g_mutex; // Return something... 0 == nullptr, raises an exception
}
void GetServiceHandle(Service::Interface* self) {
@@ -29,25 +36,21 @@ void GetServiceHandle(Service::Interface* self) {
std::string port_name = std::string((const char*)&cmd_buff[1], 0, Service::kMaxPortSize);
Service::Interface* service = Service::g_manager->FetchFromPortName(port_name);
- NOTICE_LOG(OSHLE, "SRV::Sync - GetHandle - port: %s, handle: 0x%08X", port_name.c_str(),
- service->GetHandle());
-
- if (NULL != service) {
+ if (nullptr != service) {
cmd_buff[3] = service->GetHandle();
+ DEBUG_LOG(OSHLE, "called port=%s, handle=0x%08X", port_name.c_str(), cmd_buff[3]);
} else {
- ERROR_LOG(OSHLE, "Service %s does not exist", port_name.c_str());
+ ERROR_LOG(OSHLE, "(UNIMPLEMENTED) called port=%s", port_name.c_str());
res = -1;
}
cmd_buff[1] = res;
-
- //return res;
}
const Interface::FunctionInfo FunctionTable[] = {
{0x00010002, Initialize, "Initialize"},
{0x00020000, GetProcSemaphore, "GetProcSemaphore"},
- {0x00030100, NULL, "RegisterService"},
- {0x000400C0, NULL, "UnregisterService"},
+ {0x00030100, nullptr, "RegisterService"},
+ {0x000400C0, nullptr, "UnregisterService"},
{0x00050100, GetServiceHandle, "GetServiceHandle"},
};