kernel/vm: Consolidate implementations of VMTranslationMap::UnmapArea.

This adds some new parameters to UnmapPage and UnmapPages. The important
one is a "_flags" pointer to UnmapPage, which if specified will be
filled with the page flags instead of PageUnmapped() being called
(and Flush() won't be invoked, either.)

This removes the remaining PAGE_STATE_* changes from VM architecture code.

Change-Id: Iacbc424dd8a75a79986edcd7f04d15a10f773c87
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8728
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
Augustin Cavalier
2024-12-30 18:50:10 +00:00
committed by waddlesplash
parent 783347df2b
commit 7651b97c0a
20 changed files with 321 additions and 1127 deletions
+5 -2
View File
@@ -44,9 +44,12 @@ public:
// map not locked
virtual status_t UnmapPage(VMArea* area, addr_t address,
bool updatePageQueue) = 0;
bool updatePageQueue,
bool deletingAddressSpace = false,
uint32* _flags = NULL) = 0;
virtual void UnmapPages(VMArea* area, addr_t base,
size_t size, bool updatePageQueue);
size_t size, bool updatePageQueue,
bool deletingAddressSpace = false);
virtual void UnmapArea(VMArea* area,
bool deletingAddressSpace,
bool ignoreTopCachePageFlags);