diff options
| author | 2014-05-26 20:52:00 -0400 | |
|---|---|---|
| committer | 2014-05-26 20:52:00 -0400 | |
| commit | 6448c2f30062c085330ff26a4812c9a91c7b492c (patch) | |
| tree | 386e32cf3ec053491fb8dfd8459a1c92553241d9 /src/core/hle/service/srv.cpp | |
| parent | Merge pull request #4 from archshift/patch-1 (diff) | |
| parent | service: fixed typo that MSVC did not catch as an error (diff) | |
| download | yuzu-6448c2f30062c085330ff26a4812c9a91c7b492c.tar.gz yuzu-6448c2f30062c085330ff26a4812c9a91c7b492c.tar.xz yuzu-6448c2f30062c085330ff26a4812c9a91c7b492c.zip | |
Merge pull request #9 from bunnei/master
Add initial kernel HLE, includes thread creation and context switching
Diffstat (limited to 'src/core/hle/service/srv.cpp')
| -rw-r--r-- | src/core/hle/service/srv.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/core/hle/service/srv.cpp b/src/core/hle/service/srv.cpp index 071741444..ff6da8f1c 100644 --- a/src/core/hle/service/srv.cpp +++ b/src/core/hle/service/srv.cpp | |||
| @@ -16,18 +16,24 @@ void Initialize(Service::Interface* self) { | |||
| 16 | NOTICE_LOG(OSHLE, "SRV::Sync - Initialize"); | 16 | NOTICE_LOG(OSHLE, "SRV::Sync - Initialize"); |
| 17 | } | 17 | } |
| 18 | 18 | ||
| 19 | void GetProcSemaphore(Service::Interface* self) { | ||
| 20 | // Get process semaphore? | ||
| 21 | u32* cmd_buff = Service::GetCommandBuffer(); | ||
| 22 | cmd_buff[3] = 0xDEADBEEF; // Return something... 0 == NULL, raises an exception | ||
| 23 | } | ||
| 24 | |||
| 19 | void GetServiceHandle(Service::Interface* self) { | 25 | void GetServiceHandle(Service::Interface* self) { |
| 20 | Syscall::Result res = 0; | 26 | Result res = 0; |
| 21 | u32* cmd_buff = Service::GetCommandBuffer(); | 27 | u32* cmd_buff = Service::GetCommandBuffer(); |
| 22 | 28 | ||
| 23 | std::string port_name = std::string((const char*)&cmd_buff[1], 0, Service::kMaxPortSize); | 29 | std::string port_name = std::string((const char*)&cmd_buff[1], 0, Service::kMaxPortSize); |
| 24 | Service::Interface* service = Service::g_manager->FetchFromPortName(port_name); | 30 | Service::Interface* service = Service::g_manager->FetchFromPortName(port_name); |
| 25 | 31 | ||
| 26 | NOTICE_LOG(OSHLE, "SRV::Sync - GetHandle - port: %s, handle: 0x%08X", port_name.c_str(), | 32 | NOTICE_LOG(OSHLE, "SRV::Sync - GetHandle - port: %s, handle: 0x%08X", port_name.c_str(), |
| 27 | service->GetUID()); | 33 | service->GetHandle()); |
| 28 | 34 | ||
| 29 | if (NULL != service) { | 35 | if (NULL != service) { |
| 30 | cmd_buff[3] = service->GetUID(); | 36 | cmd_buff[3] = service->GetHandle(); |
| 31 | } else { | 37 | } else { |
| 32 | ERROR_LOG(OSHLE, "Service %s does not exist", port_name.c_str()); | 38 | ERROR_LOG(OSHLE, "Service %s does not exist", port_name.c_str()); |
| 33 | res = -1; | 39 | res = -1; |
| @@ -39,7 +45,7 @@ void GetServiceHandle(Service::Interface* self) { | |||
| 39 | 45 | ||
| 40 | const Interface::FunctionInfo FunctionTable[] = { | 46 | const Interface::FunctionInfo FunctionTable[] = { |
| 41 | {0x00010002, Initialize, "Initialize"}, | 47 | {0x00010002, Initialize, "Initialize"}, |
| 42 | {0x00020000, NULL, "GetProcSemaphore"}, | 48 | {0x00020000, GetProcSemaphore, "GetProcSemaphore"}, |
| 43 | {0x00030100, NULL, "RegisterService"}, | 49 | {0x00030100, NULL, "RegisterService"}, |
| 44 | {0x000400C0, NULL, "UnregisterService"}, | 50 | {0x000400C0, NULL, "UnregisterService"}, |
| 45 | {0x00050100, GetServiceHandle, "GetServiceHandle"}, | 51 | {0x00050100, GetServiceHandle, "GetServiceHandle"}, |