|
|
@ -737,6 +737,18 @@ static ResultCode SetThreadCoreMask(u64, u64, u64) { |
|
|
return RESULT_SUCCESS; |
|
|
return RESULT_SUCCESS; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static ResultCode CreateSharedMemory(Handle* handle, u64 sz, u32 local_permissions, |
|
|
|
|
|
u32 remote_permissions) { |
|
|
|
|
|
LOG_TRACE(Kernel_SVC, "called, sz=0x%llx, localPerms=0x%08x, remotePerms=0x%08x", sz, |
|
|
|
|
|
local_permissions, remote_permissions); |
|
|
|
|
|
auto sharedMemHandle = SharedMemory::Create( |
|
|
|
|
|
g_handle_table.Get<Process>(KernelHandle::CurrentProcess), sz, |
|
|
|
|
|
(Kernel::MemoryPermission)local_permissions, (Kernel::MemoryPermission)remote_permissions); |
|
|
|
|
|
|
|
|
|
|
|
CASCADE_RESULT(*handle, g_handle_table.Create(sharedMemHandle)); |
|
|
|
|
|
return RESULT_SUCCESS; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
namespace { |
|
|
namespace { |
|
|
struct FunctionDef { |
|
|
struct FunctionDef { |
|
|
using Func = void(); |
|
|
using Func = void(); |
|
|
@ -828,7 +840,7 @@ static const FunctionDef SVC_Table[] = { |
|
|
{0x4D, nullptr, "SleepSystem"}, |
|
|
{0x4D, nullptr, "SleepSystem"}, |
|
|
{0x4E, nullptr, "ReadWriteRegister"}, |
|
|
{0x4E, nullptr, "ReadWriteRegister"}, |
|
|
{0x4F, nullptr, "SetProcessActivity"}, |
|
|
{0x4F, nullptr, "SetProcessActivity"}, |
|
|
{0x50, nullptr, "CreateSharedMemory"}, |
|
|
|
|
|
|
|
|
{0x50, SvcWrap<CreateSharedMemory>, "CreateSharedMemory"}, |
|
|
{0x51, nullptr, "MapTransferMemory"}, |
|
|
{0x51, nullptr, "MapTransferMemory"}, |
|
|
{0x52, nullptr, "UnmapTransferMemory"}, |
|
|
{0x52, nullptr, "UnmapTransferMemory"}, |
|
|
{0x53, nullptr, "CreateInterruptEvent"}, |
|
|
{0x53, nullptr, "CreateInterruptEvent"}, |
|
|
|