diff --git a/Kernel/Memory/MemoryManager.h b/Kernel/Memory/MemoryManager.h index ab7907867c..04812fb93b 100644 --- a/Kernel/Memory/MemoryManager.h +++ b/Kernel/Memory/MemoryManager.h @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -299,27 +300,6 @@ private: SpinlockProtected m_global_data; }; -inline bool is_user_address(VirtualAddress vaddr) -{ - return vaddr.get() < USER_RANGE_CEILING; -} - -inline bool is_user_range(VirtualAddress vaddr, size_t size) -{ - if (vaddr.offset(size) < vaddr) - return false; - if (!is_user_address(vaddr)) - return false; - if (size <= 1) - return true; - return is_user_address(vaddr.offset(size - 1)); -} - -inline bool is_user_range(VirtualRange const& range) -{ - return is_user_range(range.base(), range.size()); -} - inline bool PhysicalPage::is_shared_zero_page() const { return this == &MM.shared_zero_page(); diff --git a/Kernel/Memory/MemorySections.h b/Kernel/Memory/MemorySections.h new file mode 100644 index 0000000000..bc9bada940 --- /dev/null +++ b/Kernel/Memory/MemorySections.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2023, Liav A. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include +#include +#include + +namespace Kernel::Memory { + +inline bool is_user_address(VirtualAddress vaddr) +{ + return vaddr.get() < USER_RANGE_CEILING; +} + +inline bool is_user_range(VirtualAddress vaddr, size_t size) +{ + if (vaddr.offset(size) < vaddr) + return false; + if (!is_user_address(vaddr)) + return false; + if (size <= 1) + return true; + return is_user_address(vaddr.offset(size - 1)); +} + +inline bool is_user_range(VirtualRange const& range) +{ + return is_user_range(range.base(), range.size()); +} + +}