Kernel: Change PageTable API

Getting free pages not reserves them, so you don't have to hold
the page table lock :)
This commit is contained in:
Bananymous
2023-08-02 22:09:14 +03:00
parent 64ad752e73
commit 3139391e06
12 changed files with 208 additions and 109 deletions

View File

@@ -14,7 +14,11 @@ namespace Kernel
BAN_NON_MOVABLE(VirtualRange);
public:
static BAN::ErrorOr<BAN::UniqPtr<VirtualRange>> create(PageTable&, vaddr_t, size_t, uint8_t flags);
// Create virtual range to fixed virtual address
static BAN::ErrorOr<BAN::UniqPtr<VirtualRange>> create_to_vaddr(PageTable&, vaddr_t, size_t, uint8_t flags);
// Create virtual range to virtual address range
static BAN::ErrorOr<BAN::UniqPtr<VirtualRange>> create_to_vaddr_range(PageTable&, vaddr_t vaddr_start, vaddr_t vaddr_end, size_t, uint8_t flags);
// Create virtual range in kernel memory with kmalloc
static BAN::ErrorOr<BAN::UniqPtr<VirtualRange>> create_kmalloc(size_t);
~VirtualRange();