mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 23:37:35 +00:00
Kernel: Move userspace virtual address range base to 0x10000
Now that the shared bottom 2 MiB virtual address mappings are gone userspace can use lower virtual addresses.
This commit is contained in:
parent
fccd0432a1
commit
5f4a67434c
7 changed files with 18 additions and 4 deletions
|
@ -44,7 +44,7 @@ UNMAP_AFTER_INIT NonnullRefPtr<PageDirectory> PageDirectory::must_create_kernel_
|
|||
|
||||
ErrorOr<NonnullRefPtr<PageDirectory>> PageDirectory::try_create_for_userspace(VirtualRangeAllocator const* parent_range_allocator)
|
||||
{
|
||||
constexpr FlatPtr userspace_range_base = 0x00800000;
|
||||
constexpr FlatPtr userspace_range_base = USER_RANGE_BASE;
|
||||
FlatPtr const userspace_range_ceiling = USER_RANGE_CEILING;
|
||||
|
||||
auto directory = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) PageDirectory));
|
||||
|
|
|
@ -179,7 +179,7 @@ bool Region::map_individual_page_impl(size_t page_index)
|
|||
VERIFY(m_page_directory->get_lock().is_locked_by_current_processor());
|
||||
auto page_vaddr = vaddr_from_page_index(page_index);
|
||||
|
||||
bool user_allowed = page_vaddr.get() >= 0x00800000 && is_user_address(page_vaddr);
|
||||
bool user_allowed = page_vaddr.get() >= USER_RANGE_BASE && is_user_address(page_vaddr);
|
||||
if (is_mmap() && !user_allowed) {
|
||||
PANIC("About to map mmap'ed page at a kernel address");
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ public:
|
|||
void set_mmap(bool mmap) { m_mmap = mmap; }
|
||||
|
||||
[[nodiscard]] bool is_user() const { return !is_kernel(); }
|
||||
[[nodiscard]] bool is_kernel() const { return vaddr().get() < 0x00800000 || vaddr().get() >= kernel_mapping_base; }
|
||||
[[nodiscard]] bool is_kernel() const { return vaddr().get() < USER_RANGE_BASE || vaddr().get() >= kernel_mapping_base; }
|
||||
|
||||
PageFaultResponse handle_fault(PageFault const&);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue