diff options
Diffstat (limited to 'Kernel/VM/RangeAllocator.h')
-rw-r--r-- | Kernel/VM/RangeAllocator.h | 46 |
1 files changed, 1 insertions, 45 deletions
diff --git a/Kernel/VM/RangeAllocator.h b/Kernel/VM/RangeAllocator.h index 0ea8206577..0ecfca7a43 100644 --- a/Kernel/VM/RangeAllocator.h +++ b/Kernel/VM/RangeAllocator.h @@ -26,57 +26,13 @@ #pragma once -#include <AK/String.h> #include <AK/Traits.h> #include <AK/Vector.h> #include <Kernel/SpinLock.h> -#include <Kernel/VirtualAddress.h> +#include <Kernel/VM/Range.h> namespace Kernel { -class Range { - friend class RangeAllocator; - -public: - Range() = delete; - Range(VirtualAddress base, size_t size) - : m_base(base) - , m_size(size) - { - } - - VirtualAddress base() const { return m_base; } - size_t size() const { return m_size; } - bool is_valid() const { return !m_base.is_null(); } - - bool contains(VirtualAddress vaddr) const { return vaddr >= base() && vaddr < end(); } - - VirtualAddress end() const { return m_base.offset(m_size); } - - bool operator==(const Range& other) const - { - return m_base == other.m_base && m_size == other.m_size; - } - - bool contains(VirtualAddress base, size_t size) const - { - if (base.offset(size) < base) - return false; - return base >= m_base && base.offset(size) <= end(); - } - - bool contains(const Range& other) const - { - return contains(other.base(), other.size()); - } - - Vector<Range, 2> carve(const Range&); - -private: - VirtualAddress m_base; - size_t m_size { 0 }; -}; - class RangeAllocator { public: RangeAllocator(); |