From 142978a07663453cab268e63c9ff0775ae5a36d1 Mon Sep 17 00:00:00 2001 From: DH Date: Tue, 2 Dec 2025 05:16:29 +0300 Subject: [PATCH] orbis: implement sys_batch_map op 4 --- kernel/orbis/src/sys/sys_sce.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/kernel/orbis/src/sys/sys_sce.cpp b/kernel/orbis/src/sys/sys_sce.cpp index fa7dd85ef..772dfb65b 100644 --- a/kernel/orbis/src/sys/sys_sce.cpp +++ b/kernel/orbis/src/sys/sys_sce.cpp @@ -472,7 +472,10 @@ orbis::SysResult orbis::sys_batch_map(Thread *thread, sint unk, vmem::MapFlags::Void | vmem::MapFlags::Anon | flags, -1, 0); break; case 4: - ORBIS_LOG_ERROR(__FUNCTION__, "unimplemented type protect"); + result = sys_mtypeprotect( + thread, _entry.start, _entry.length, + static_cast(_entry.type), + rx::EnumBitSet::fromUnderlying(_entry.protection)); break; default: @@ -1546,10 +1549,10 @@ orbis::SysResult orbis::sys_mmap_dmem(Thread *thread, uintptr_t addr, auto name = callerAddress ? rx::format("anon:{:012x}", callerAddress) : ""; - auto [range, errc] = - vmem::mapDirect(thread->tproc, addr, - rx::AddressRange::fromBeginSize(directMemoryStart, len), - prot, allocFlags, name, alignment, callerAddress, memoryType); + auto [range, errc] = vmem::mapDirect( + thread->tproc, addr, + rx::AddressRange::fromBeginSize(directMemoryStart, len), prot, allocFlags, + name, alignment, callerAddress, memoryType); if (errc != ErrorCode{}) { return errc;