#pragma once #include "boot/bootboot.h" #include #include struct MemoryMapEntry { u64 ptr; u64 size; bool free; }; class MemoryMapIterator { public: MemoryMapIterator(); void rewind(); Result next(); MemoryMapEntry largest_free(); MemoryMapEntry highest(); Result at(usize index) const; usize entries() const { return m_mmap_entries; } private: usize m_mmap_entries; const MMapEnt* m_base_ent; usize m_cur_ent; };