Print information about modules

This commit is contained in:
unknown 2015-09-03 11:46:02 -04:00
parent b116eb040a
commit abacfc4914
2 changed files with 13 additions and 6 deletions

View File

@ -2,6 +2,7 @@
#include "../hal/hal.h"
#include "../hal/print.h"
#include "../hal/io.h"
#include "../common/util/util.h"
extern char kernel_start[];
extern char kernel_end[];
@ -9,12 +10,21 @@ void NATIVE64 kmain(multiboot_info_t *multiboot_info)
{
boot_info_t* boot_info = hal_init(multiboot_info);
hal_printf("Kernel Loaded at 0x%X. Size: %uB, %uKB\n\n",kernel_start,(kernel_end-kernel_start),(kernel_end-kernel_start)/1024);
hal_printf("Available Memory: %uKB\n",boot_info->mem_info->mem_available / 1024);
hal_printf("Reserved Memory: %uB\n",boot_info->mem_info->mem_reserved);
hal_printf("Installed Memory: %uKB\n",(boot_info->mem_info->mem_reserved + boot_info->mem_info->mem_available)
/1024);
hal_printf("\nNumber of Modules Loaded: %u", boot_info->module_info->module_count);
for(uint64_t i = 0; i <= boot_info->module_info->module_count; i++)
{
module_descriptor_node_t* module_descriptor = OBTAIN_STRUCT_ADDR(linked_list_get(boot_info->module_info->module_list,(int)i),
list_node,
module_descriptor_node_t);
hal_printf("\nModule Name: %s\n Module Addr: 0x%X\n Module Size: %uB, %uKB\n", module_descriptor->name, module_descriptor->base_addr, module_descriptor->size, module_descriptor->size / 1024);
};
for(uint64_t i = 0; i <= 21; i++)
{

View File

@ -21,15 +21,13 @@ void NATIVE32 kmain(multiboot_info_t *multiboot_info)
text_pos = 0;
//detect architecture
kprintf("*Checking architecture...\n");
if (support_x64() == 1)
{
kprintf("Arch: x86_64.\n\n");
kprintf("Architecture x64.\n\n");
init_x64(multiboot_info);
}
kprintf("Arch: x86.\n\n");
kprintf("Kernel Start: 0x%X. End: 0x%X. Size: 0x%X.\n\n", (uint32_t) kernel_start, (uint32_t) kernel_end, (uint32_t) kernel_end - (uint32_t) kernel_start);
kprintf("*Setting up GDT...");
kprintf("Architecture x86.\n\n");
kprintf("Kernel Loaded at 0x%X. Size: %uB, %uKB\n\n",kernel_start,(kernel_end-kernel_start),(kernel_end-kernel_start)/1024);
//dummy descriptor
write_segment_descriptor((void *) (&g_gdt[0]), 0, 0, 0);
//ring 0 code seg, non-conforming
@ -43,7 +41,6 @@ void NATIVE32 kmain(multiboot_info_t *multiboot_info)
g_gdt_ptr.limit = 8 * 8 - 1;
g_gdt_ptr.base = (uint32_t) g_gdt;
load_gdt(&g_gdt_ptr, SEG_SELECTOR(1, 0), SEG_SELECTOR(3, 0));
kprintf(" - Done.\n\n");
//check memory, definitely < 32 so we assume that
kprintf("*Checking memory information...\n");
if(multiboot_info->flags & (1 << 6))