aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/memory/multiboot
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/src/memory/multiboot')
-rw-r--r--arch/x86_64/src/memory/multiboot/memory_map.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/x86_64/src/memory/multiboot/memory_map.cpp b/arch/x86_64/src/memory/multiboot/memory_map.cpp
index 6b1d1d4..da7f05d 100644
--- a/arch/x86_64/src/memory/multiboot/memory_map.cpp
+++ b/arch/x86_64/src/memory/multiboot/memory_map.cpp
@@ -1,11 +1,13 @@
#include "arch/memory/multiboot/memory_map.hpp"
+#include "arch/exception_handling/assert.hpp"
+
namespace teachos::arch::memory::multiboot
{
memory_area_iterator::memory_area_iterator(multiboot::memory_area * p)
: ptr(p)
{
- // Nothing to do
+ exception_handling::assert(ptr, "[Memory Area] Attempted to pass nullptr as iterator");
}
multiboot::memory_area & memory_area_iterator::operator*() const { return *ptr; }
@@ -21,4 +23,15 @@ namespace teachos::arch::memory::multiboot
++ptr;
return *this;
}
+
+ memory_area_container::memory_area_container(memory_area * begin, std::size_t size)
+ : area_begin(begin)
+ , area_end(begin + size)
+ {
+ // Nothing to do
+ }
+
+ auto memory_area_container::begin() const -> multiboot::memory_area_iterator { return area_begin; }
+
+ auto memory_area_container::end() const -> multiboot::memory_area_iterator { return area_end; }
} // namespace teachos::arch::memory::multiboot