|
|
@ -185,6 +185,10 @@ Result KCapabilities::ProcessMapRegionCapability(const u32 cap, F f) { |
|
|
case RegionType::NoMapping: |
|
|
case RegionType::NoMapping: |
|
|
break; |
|
|
break; |
|
|
case RegionType::KernelTraceBuffer: |
|
|
case RegionType::KernelTraceBuffer: |
|
|
|
|
|
if constexpr (!IsKTraceEnabled) { |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
[[fallthrough]]; |
|
|
case RegionType::OnMemoryBootImage: |
|
|
case RegionType::OnMemoryBootImage: |
|
|
case RegionType::DTB: |
|
|
case RegionType::DTB: |
|
|
R_TRY(f(MemoryRegions[static_cast<u32>(type)], perm)); |
|
|
R_TRY(f(MemoryRegions[static_cast<u32>(type)], perm)); |
|
|
@ -330,8 +334,6 @@ Result KCapabilities::SetCapabilities(std::span<const u32> caps, KProcessPageTab |
|
|
|
|
|
|
|
|
// Map the range.
|
|
|
// Map the range.
|
|
|
R_TRY(this->MapRange_(cap, size_cap, page_table)); |
|
|
R_TRY(this->MapRange_(cap, size_cap, page_table)); |
|
|
} else if (GetCapabilityType(cap) == CapabilityType::MapRegion && !IsKTraceEnabled) { |
|
|
|
|
|
continue; |
|
|
|
|
|
} else { |
|
|
} else { |
|
|
R_TRY(this->SetCapability(cap, set_flags, set_svc, page_table)); |
|
|
R_TRY(this->SetCapability(cap, set_flags, set_svc, page_table)); |
|
|
} |
|
|
} |
|
|
|