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 "info.h"
#include <kernaux/console.h>
#include <kernaux/libc.h> #include <kernaux/libc.h>
static bool cmdline_terminated(const char *s); static bool cmdline_terminated(const char *s);
@ -26,6 +27,28 @@ void kernel_info_initialize(
kinfo->kernel_stack_top = stack_top; 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) bool kernel_info_validate(const struct Kernel_Info *const kinfo)
{ {
if (!kinfo) return false; if (!kinfo) return false;

View File

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

View File

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