#include "mm.h" #include "boot/k_early_panic.h" #define MM_MAX_MMAP_ENTRIES 64 pagedirectory_t page_directory __attribute__ ((aligned (4096))); static mm_mem_range_t mm_mmap_entries[MM_MAX_MMAP_ENTRIES]; static int mm_mmap_num_entries = 0; /************************************************************************** * This function is run in segmented memory before paging is in effect. * *************************************************************************/ void mm_record_mmap_entry(mb_mmap_t * mmap) { if (mm_mmap_num_entries < MM_MAX_MMAP_ENTRIES) { if (mmap->type == MB_MMAP_TYPE_RAM) { mm_mmap_entries[mm_mmap_num_entries].base = mmap->base; mm_mmap_entries[mm_mmap_num_entries].length = mmap->length; mm_mmap_num_entries++; } } else { k_early_panic("Too many mmap_entries!"); } }