From a8e86841ce45ee3d5df285f52171ebcfde6750d5 Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Fri, 14 Jun 2019 16:40:25 +0300 Subject: [PATCH] VM: Support non-freeable, non-eternal PhysicalPages. --- Kernel/VM/PhysicalPage.cpp | 4 ++-- Kernel/VM/PhysicalPage.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Kernel/VM/PhysicalPage.cpp b/Kernel/VM/PhysicalPage.cpp index 2ddb1d02a5..952d95942c 100644 --- a/Kernel/VM/PhysicalPage.cpp +++ b/Kernel/VM/PhysicalPage.cpp @@ -9,10 +9,10 @@ Retained PhysicalPage::create_eternal(PhysicalAddress paddr, bool return adopt(*(PhysicalPage*)slot); } -Retained PhysicalPage::create(PhysicalAddress paddr, bool supervisor) +Retained PhysicalPage::create(PhysicalAddress paddr, bool supervisor, bool may_return_to_freelist) { void* slot = kmalloc(sizeof(PhysicalPage)); - new (slot) PhysicalPage(paddr, supervisor); + new (slot) PhysicalPage(paddr, supervisor, may_return_to_freelist); return adopt(*(PhysicalPage*)slot); } diff --git a/Kernel/VM/PhysicalPage.h b/Kernel/VM/PhysicalPage.h index 422cdbe03f..b3b975ca69 100644 --- a/Kernel/VM/PhysicalPage.h +++ b/Kernel/VM/PhysicalPage.h @@ -29,7 +29,7 @@ public: } static Retained create_eternal(PhysicalAddress, bool supervisor); - static Retained create(PhysicalAddress, bool supervisor); + static Retained create(PhysicalAddress, bool supervisor, bool may_return_to_freelist = true); word retain_count() const { return m_retain_count; }