Print kernel info

This commit is contained in:
Alex Kotov 2021-12-18 04:05:01 +05:00
parent 06935b2e53
commit 48814535b2
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
3 changed files with 26 additions and 0 deletions

View File

@ -1,5 +1,6 @@
#include "info.h"
#include <kernaux/console.h>
#include <kernaux/libc.h>
static bool cmdline_terminated(const char *s);
@ -26,6 +27,28 @@ void kernel_info_initialize(
kinfo->kernel_stack_top = stack_top;
}
void kernel_info_print(const struct Kernel_Info *const kinfo)
{
kernaux_console_printf("Kernel info\n");
kernaux_console_printf(" cmdline: %s\n", kinfo->cmdline);
kernaux_console_printf(" modules: %lu\n", kinfo->modules_count);
kernaux_console_printf(" areas: %lu\n", kinfo->areas_count);
kernaux_console_printf("\n");
kernaux_console_printf(" offset: %lu\n", kinfo->kernel_offset);
kernaux_console_printf(" size: %lu\n", kinfo->kernel_size);
kernaux_console_printf("\n");
kernaux_console_printf(" phys base: %lu\n", kinfo->kernel_phys_base);
kernaux_console_printf(" phys limit: %lu\n", kinfo->kernel_phys_limit);
kernaux_console_printf("\n");
kernaux_console_printf(" virt base: %lu\n", kinfo->kernel_virt_base);
kernaux_console_printf(" virt limit: %lu\n", kinfo->kernel_virt_limit);
kernaux_console_printf("\n");
kernaux_console_printf(" modules size: %lu\n", kinfo->modules_total_size);
kernaux_console_printf(" kernel & modules sizet: %lu\n", kinfo->kernel_and_modules_total_size);
kernaux_console_printf("\n");
kernaux_console_printf(" stack top: %lu\n", kinfo->kernel_stack_top);
}
bool kernel_info_validate(const struct Kernel_Info *const kinfo)
{
if (!kinfo) return false;

View File

@ -67,6 +67,7 @@ void kernel_info_initialize(
);
bool kernel_info_validate(const struct Kernel_Info *kinfo);
void kernel_info_print(const struct Kernel_Info *kinfo);
#ifdef __cplusplus
}

View File

@ -153,6 +153,8 @@ void main(
kinfo.kernel_and_modules_total_size = kinfo.kernel_size + kinfo.modules_total_size;
kernel_info_print(&kinfo);
paging_clear();
paging_identity();
/* kinfo.freepde_start = */ paging_mapkernel(&kinfo);