1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:37:35 +00:00

Kernel: Add for_each_vmobject_of_type<T>

This makes iterating over a specific type of VMObjects a bit nicer.
This commit is contained in:
Andreas Kling 2020-05-08 22:10:47 +02:00
parent 239fd33405
commit 55f61c0004
8 changed files with 57 additions and 16 deletions

View file

@ -125,6 +125,17 @@ public:
}
}
template<typename T, typename Callback>
static void for_each_vmobject_of_type(Callback callback)
{
for (auto& vmobject : MM.m_vmobjects) {
if (!is<T>(vmobject))
continue;
if (callback(static_cast<T&>(vmobject)) == IterationDecision::Break)
break;
}
}
static Region* region_from_vaddr(Process&, VirtualAddress);
static const Region* region_from_vaddr(const Process&, VirtualAddress);