summaryrefslogtreecommitdiff
path: root/Kernel/VM/RangeAllocator.h
diff options
context:
space:
mode:
Diffstat (limited to 'Kernel/VM/RangeAllocator.h')
-rw-r--r--Kernel/VM/RangeAllocator.h46
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();