diff options
| author | 2018-01-19 16:35:25 -0800 | |
|---|---|---|
| committer | 2018-01-19 19:35:25 -0500 | |
| commit | 0b6da0c1abaa34a082b627dfe909b6651d8b6fee (patch) | |
| tree | a1aa6aeee7e4b435a9d6673b6b829c0e16aedca2 /src/core/hle/kernel/svc.cpp | |
| parent | Fixes some cast warnings, partial port of citra #3064 (#106) (diff) | |
| download | yuzu-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.cpp | 14 |
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 | ||
| 740 | static 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 | |||
| 740 | namespace { | 752 | namespace { |
| 741 | struct FunctionDef { | 753 | struct 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"}, |