summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/svc.cpp
diff options
context:
space:
mode:
authorGravatar David2018-01-19 16:35:25 -0800
committerGravatar bunnei2018-01-19 19:35:25 -0500
commit0b6da0c1abaa34a082b627dfe909b6651d8b6fee (patch)
treea1aa6aeee7e4b435a9d6673b6b829c0e16aedca2 /src/core/hle/kernel/svc.cpp
parentFixes some cast warnings, partial port of citra #3064 (#106) (diff)
downloadyuzu-0b6da0c1abaa34a082b627dfe909b6651d8b6fee.tar.gz
yuzu-0b6da0c1abaa34a082b627dfe909b6651d8b6fee.tar.xz
yuzu-0b6da0c1abaa34a082b627dfe909b6651d8b6fee.zip
Added CreateSharedMemory & UNIMPLEMENTED() for non existent services. (#113)
* Added svcCreateSharedMemory * Services which are not implemented now throw UNIMPLEMENTED() * clang-format * changed perms to u32 * removed camelcase
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
-rw-r--r--src/core/hle/kernel/svc.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 339374aff..d267b6c2e 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -737,6 +737,18 @@ static ResultCode SetThreadCoreMask(u64, u64, u64) {
737 return RESULT_SUCCESS; 737 return RESULT_SUCCESS;
738} 738}
739 739
740static ResultCode CreateSharedMemory(Handle* handle, u64 sz, u32 local_permissions,
741 u32 remote_permissions) {
742 LOG_TRACE(Kernel_SVC, "called, sz=0x%llx, localPerms=0x%08x, remotePerms=0x%08x", sz,
743 local_permissions, remote_permissions);
744 auto sharedMemHandle = SharedMemory::Create(
745 g_handle_table.Get<Process>(KernelHandle::CurrentProcess), sz,
746 (Kernel::MemoryPermission)local_permissions, (Kernel::MemoryPermission)remote_permissions);
747
748 CASCADE_RESULT(*handle, g_handle_table.Create(sharedMemHandle));
749 return RESULT_SUCCESS;
750}
751
740namespace { 752namespace {
741struct FunctionDef { 753struct FunctionDef {
742 using Func = void(); 754 using Func = void();
@@ -828,7 +840,7 @@ static const FunctionDef SVC_Table[] = {
828 {0x4D, nullptr, "SleepSystem"}, 840 {0x4D, nullptr, "SleepSystem"},
829 {0x4E, nullptr, "ReadWriteRegister"}, 841 {0x4E, nullptr, "ReadWriteRegister"},
830 {0x4F, nullptr, "SetProcessActivity"}, 842 {0x4F, nullptr, "SetProcessActivity"},
831 {0x50, nullptr, "CreateSharedMemory"}, 843 {0x50, SvcWrap<CreateSharedMemory>, "CreateSharedMemory"},
832 {0x51, nullptr, "MapTransferMemory"}, 844 {0x51, nullptr, "MapTransferMemory"},
833 {0x52, nullptr, "UnmapTransferMemory"}, 845 {0x52, nullptr, "UnmapTransferMemory"},
834 {0x53, nullptr, "CreateInterruptEvent"}, 846 {0x53, nullptr, "CreateInterruptEvent"},