kernel/vm: Make use of VMTranslationMap::PageUnmapped in UnmapPages.

An extra argument is added to allow the VMAreaMappings objects to
be added to a queue instead of freed directly (and the lock unlocked,
and so on.)

All architectures adjusted.

This means there is now only one place in each TranslationMap that
the page state and other data is directly adjusted (in UnmapArea).

Change-Id: I3ed2d6d969d1b1e235144a1035c90c750779af27
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8716
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: X512 X512 <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
Augustin Cavalier
2024-12-27 22:07:34 +00:00
committed by waddlesplash
parent 6f786da5f7
commit c5874ee428
11 changed files with 70 additions and 416 deletions
+2 -1
View File
@@ -84,7 +84,8 @@ public:
protected:
void PageUnmapped(VMArea* area,
page_num_t pageNumber, bool accessed,
bool modified, bool updatePageQueue);
bool modified, bool updatePageQueue,
VMAreaMappings* mappingsQueue = NULL);
void UnaccessedPageUnmapped(VMArea* area,
page_num_t pageNumber);