mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 08:24:32 -08:00
Move block list dump to separate method in page manager
This commit is contained in:
@@ -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");
|
||||
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user