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

Kernel: Share the "return to ring 0/3 from signal" trampolines globally.

Generate a special page containing the "return from signal" trampoline code
on startup and then route signalled threads to it. This avoids a page
allocation in every process that ever receives a signal.
This commit is contained in:
Andreas Kling 2019-07-19 17:01:16 +02:00
parent fdf931cfce
commit f8beb0f665
5 changed files with 36 additions and 21 deletions

View file

@ -70,7 +70,8 @@ public:
void map_for_kernel(VirtualAddress, PhysicalAddress);
RefPtr<Region> allocate_kernel_region(size_t, String&& name);
RefPtr<Region> allocate_kernel_region(size_t, const StringView& name, bool user_accessible = false);
RefPtr<Region> allocate_user_accessible_kernel_region(size_t, const StringView& name);
void map_region_at_address(PageDirectory&, Region&, VirtualAddress);
unsigned user_physical_pages() const { return m_user_physical_pages; }