Move block list dump to separate method in page manager

This commit is contained in:
Justin C. Miller
2018-05-06 01:37:39 -07:00
parent 34156c55ae
commit 20edb87505
3 changed files with 24 additions and 8 deletions

View File

@@ -46,8 +46,9 @@ init_console(const popcorn_data *header)
cons->puts(GIT_VERSION " booting...\n");
log::init(cons);
log::enable(logs::apic, log::level::debug);
log::enable(logs::apic, log::level::info);
log::enable(logs::devices, log::level::debug);
log::enable(logs::memory, log::level::info);
}
void do_error_3() { int x = 1 / 0; }
@@ -74,6 +75,7 @@ kernel_main(popcorn_data *header)
header->frame_buffer_length);
init_console(header);
// pager->dump_blocks();
interrupts_init();
device_manager devices(header->acpi_table);
@@ -84,6 +86,7 @@ kernel_main(popcorn_data *header)
log::info(logs::boot, "CPU Family %x Model %x Stepping %x",
cpu.family(), cpu.model(), cpu.stepping());
// do_error_1();
// __asm__ __volatile__("int $15");

View File

@@ -119,7 +119,7 @@ page_block::consolidate(page_block *list)
void
page_block::dump(page_block *list, const char *name, bool show_unmapped)
{
log::debug(logs::memory, "Block list %s:", name);
log::info(logs::memory, "Block list %s:", name);
int count = 0;
for (page_block *cur = list; cur; cur = cur->next) {
@@ -129,7 +129,7 @@ page_block::dump(page_block *list, const char *name, bool show_unmapped)
if (cur->virtual_address) {
page_table_indices start{cur->virtual_address};
log::debug(logs::memory, " %lx %x [%6d] %lx (%d,%d,%d,%d)",
log::info(logs::memory, " %lx %x [%6d] %lx (%d,%d,%d,%d)",
cur->physical_address,
cur->flags,
cur->count,
@@ -137,14 +137,14 @@ page_block::dump(page_block *list, const char *name, bool show_unmapped)
start[0], start[1], start[2], start[3]);
} else {
page_table_indices start{cur->virtual_address};
log::debug(logs::memory, " %lx %x [%6d]",
log::info(logs::memory, " %lx %x [%6d]",
cur->physical_address,
cur->flags,
cur->count);
}
}
log::debug(logs::memory, " Total: %d", count);
log::info(logs::memory, " Total: %d", count);
}
void
@@ -193,9 +193,6 @@ page_manager::init(
consolidate_blocks();
page_block::dump(m_used, "used", true);
page_block::dump(m_free, "free", true);
// Initialize the kernel memory manager
addr_t end = 0;
for (page_block *b = m_used; b; b = b->next) {
@@ -235,6 +232,13 @@ page_manager::map_offset_pointer(void **pointer, size_t length)
*p = v;
}
void
page_manager::dump_blocks()
{
page_block::dump(m_used, "used", true);
page_block::dump(m_free, "free", true);
}
page_block *
page_manager::get_block()
{

View File

@@ -45,6 +45,13 @@ public:
/// \arg length Length of the memory area to be mapped
void map_offset_pointer(void **pointer, size_t length);
/// Log the current free/used block lists.
void dump_blocks();
/// Get the system page manager.
/// \returns A pointer to the system page manager
static page_manager * get();
private:
friend void memory_initialize_managers(const void *, size_t, size_t);
@@ -142,6 +149,8 @@ private:
/// Global page manager.
extern page_manager g_page_manager;
inline page_manager * page_manager::get() { return &g_page_manager; }
/// Flags used by `page_block`.
enum class page_block_flags : uint32_t
{