Add {Map,Unmap}Physical memory debug logs

This commit is contained in:
Billy Laws 2022-06-02 18:10:10 +01:00
parent 2712b3276b
commit 389ab0fb50

View File

@ -1017,22 +1017,27 @@ namespace skyline::kernel::svc {
size_t size{state.ctx->gpr.x1}; size_t size{state.ctx->gpr.x1};
if (!util::IsPageAligned(pointer)) { if (!util::IsPageAligned(pointer)) {
Logger::Warn("Pointer 0x{:X} is not page aligned", pointer);
state.ctx->gpr.w0 = result::InvalidAddress; state.ctx->gpr.w0 = result::InvalidAddress;
return; return;
} }
if (!size || !util::IsPageAligned(size)) { if (!size || !util::IsPageAligned(size)) {
Logger::Warn("Size 0x{:X} is not page aligned", size);
state.ctx->gpr.w0 = result::InvalidSize; state.ctx->gpr.w0 = result::InvalidSize;
return; return;
} }
if (!state.process->memory.alias.IsInside(pointer) || !state.process->memory.alias.IsInside(pointer + size)) { if (!state.process->memory.alias.IsInside(pointer) || !state.process->memory.alias.IsInside(pointer + size)) {
Logger::Warn("Memory region 0x{:X} - 0x{:X} (0x{:X}) is invalid", pointer, pointer + size, size);
state.ctx->gpr.w0 = result::InvalidMemoryRegion; state.ctx->gpr.w0 = result::InvalidMemoryRegion;
return; return;
} }
state.process->NewHandle<type::KPrivateMemory>(pointer, size, memory::Permission{true, true, false}, memory::states::Heap); state.process->NewHandle<type::KPrivateMemory>(pointer, size, memory::Permission{true, true, false}, memory::states::Heap);
Logger::Debug("Mapped physical memory at 0x{:X} - 0x{:X} (0x{:X})", pointer, pointer + size, size);
state.ctx->gpr.w0 = Result{}; state.ctx->gpr.w0 = Result{};
} }
@ -1041,20 +1046,25 @@ namespace skyline::kernel::svc {
size_t size{state.ctx->gpr.x1}; size_t size{state.ctx->gpr.x1};
if (!util::IsPageAligned(pointer)) { if (!util::IsPageAligned(pointer)) {
Logger::Warn("Pointer 0x{:X} is not page aligned", pointer);
state.ctx->gpr.w0 = result::InvalidAddress; state.ctx->gpr.w0 = result::InvalidAddress;
return; return;
} }
if (!size || !util::IsPageAligned(size)) { if (!size || !util::IsPageAligned(size)) {
Logger::Warn("Size 0x{:X} is not page aligned", size);
state.ctx->gpr.w0 = result::InvalidSize; state.ctx->gpr.w0 = result::InvalidSize;
return; return;
} }
if (!state.process->memory.alias.IsInside(pointer) || !state.process->memory.alias.IsInside(pointer + size)) { if (!state.process->memory.alias.IsInside(pointer) || !state.process->memory.alias.IsInside(pointer + size)) {
Logger::Warn("Memory region 0x{:X} - 0x{:X} (0x{:X}) is invalid", pointer, pointer + size, size);
state.ctx->gpr.w0 = result::InvalidMemoryRegion; state.ctx->gpr.w0 = result::InvalidMemoryRegion;
return; return;
} }
Logger::Debug("Unmapped physical memory at 0x{:X} - 0x{:X} (0x{:X})", pointer, pointer + size, size);
auto end{pointer + size}; auto end{pointer + size};
while (pointer < end) { while (pointer < end) {
auto memory{state.process->GetMemoryObject(pointer)}; auto memory{state.process->GetMemoryObject(pointer)};