Comparer les révisions

...

9 Révisions

Auteur SHA1 Message Date
Belal Ashraf 6d20086742 missed a semicolon 2024-04-09 13:45:26 +02:00
Belal Ashraf 311cfa231b fix formatting (part 2) 2024-04-09 13:45:26 +02:00
Belal Ashraf bd101a52a0 fix formatting (part 1) 2024-04-09 13:45:26 +02:00
Belal Ashraf 6d13a5ea2b update definition and callsites 2024-04-09 13:45:26 +02:00
Belal Ashraf f91107da04 take in page properties by reference instead of by value 2024-04-09 13:45:26 +02:00
Belal Ashraf 3c9732c9d1 fix formatting again again 2024-04-09 13:45:26 +02:00
Belal Ashraf 5f56ba2af6 fix formatting again 2024-04-09 13:45:26 +02:00
Belal Ashraf 96db423b41 fix formatting 2024-04-09 13:45:26 +02:00
Belal Ashraf 5002fde374 Fix bug in ConvertToKMemoryPermission 2024-04-09 13:45:26 +02:00
3 fichiers modifiés avec 8 ajouts et 7 suppressions

Voir le fichier

@ -176,7 +176,8 @@ constexpr KMemoryPermission ConvertToKMemoryPermission(Svc::MemoryPermission per
(static_cast<KMemoryPermission>(perm) & KMemoryPermission::UserMask) |
KMemoryPermission::KernelRead |
((static_cast<KMemoryPermission>(perm) & KMemoryPermission::UserWrite)
<< KMemoryPermission::KernelShift) |
? KMemoryPermission::KernelWrite
: KMemoryPermission::None) |
(perm == Svc::MemoryPermission::None ? KMemoryPermission::NotMapped
: KMemoryPermission::None));
}

Voir le fichier

@ -1594,7 +1594,7 @@ size_t KPageTableBase::GetAliasCodeDataSize() const {
}
Result KPageTableBase::AllocateAndMapPagesImpl(PageLinkedList* page_list, KProcessAddress address,
size_t num_pages, KMemoryPermission perm) {
size_t num_pages, KPageProperties& perm) {
ASSERT(this->IsLockedByCurrentThread());
// Create a page group to hold the pages we allocate.
@ -1615,7 +1615,6 @@ Result KPageTableBase::AllocateAndMapPagesImpl(PageLinkedList* page_list, KProce
}
// Map the pages.
const KPageProperties properties = {perm, false, false, DisableMergeAttribute::None};
R_RETURN(this->Operate(page_list, address, num_pages, pg, properties, OperationType::MapGroup,
false));
}
@ -2749,12 +2748,12 @@ Result KPageTableBase::MapPages(KProcessAddress* out_addr, size_t num_pages, siz
KScopedPageTableUpdater updater(this);
// Perform mapping operation.
KPageProperties properties = {perm, false, false, DisableMergeAttribute::DisableHead};
if (is_pa_valid) {
const KPageProperties properties = {perm, false, false, DisableMergeAttribute::DisableHead};
R_TRY(this->Operate(updater.GetPageList(), addr, num_pages, phys_addr, true, properties,
OperationType::Map, false));
} else {
R_TRY(this->AllocateAndMapPagesImpl(updater.GetPageList(), addr, num_pages, perm));
R_TRY(this->AllocateAndMapPagesImpl(updater.GetPageList(), addr, num_pages, properties));
}
// Update the blocks.
@ -2793,7 +2792,8 @@ Result KPageTableBase::MapPages(KProcessAddress address, size_t num_pages, KMemo
KScopedPageTableUpdater updater(this);
// Map the pages.
R_TRY(this->AllocateAndMapPagesImpl(updater.GetPageList(), address, num_pages, perm));
KPageProperties properties = {perm, false, false, DisableMergeAttribute::DisableHead};
R_TRY(this->AllocateAndMapPagesImpl(updater.GetPageList(), address, num_pages, properties));
// Update the blocks.
m_memory_block_manager.Update(std::addressof(allocator), address, num_pages, state, perm,

Voir le fichier

@ -441,7 +441,7 @@ private:
Svc::MemoryState state) const;
Result AllocateAndMapPagesImpl(PageLinkedList* page_list, KProcessAddress address,
size_t num_pages, KMemoryPermission perm);
size_t num_pages, KPageProperties& perm);
Result MapPageGroupImpl(PageLinkedList* page_list, KProcessAddress address,
const KPageGroup& pg, const KPageProperties properties, bool reuse_ll);