void * initializeKernelBinary() { void * moduleAddresses[] = { sampleCodeModuleAddress, sampleDataModuleAddress }; loadModules(&endOfKernelBinary, moduleAddresses); clearBSS(&bss, &endOfKernel - &bss); clearFullScreen(); klog("Modules loaded.\n"); return getStackBase(); }
void * initializeKernelBinary() { char buffer[10]; ncPrint("[x64BareBones]"); ncNewline(); ncPrint("CPU Vendor:"); ncPrint(cpuVendor(buffer)); ncNewline(); ncPrint("[Loading modules]"); ncNewline(); void * moduleAddresses[] = { sampleCodeModuleAddress, sampleDataModuleAddress }; loadModules(&endOfKernelBinary, moduleAddresses); ncPrint("[Done]"); ncNewline(); ncNewline(); ncPrint("[Initializing kernel's binary]"); ncNewline(); clearBSS(&bss, &endOfKernel - &bss); ncPrint(" text: 0x"); ncPrintHex((uint64_t)&text); ncNewline(); ncPrint(" rodata: 0x"); ncPrintHex((uint64_t)&rodata); ncNewline(); ncPrint(" data: 0x"); ncPrintHex((uint64_t)&data); ncNewline(); ncPrint(" bss: 0x"); ncPrintHex((uint64_t)&bss); ncNewline(); ncPrint("[Done]"); ncNewline(); ncNewline(); return getStackBase(); }
void * initializeKernelBinary() { void * moduleAddresses[] = { consoleAddress, dataAddress }; clear_screen(); print_msg("KERNEL\n\n", GREEN, BLUE); print_msg("Loading modules... \n", GREEN, BLUE); loadModules(&endOfKernelBinary, moduleAddresses); print_msg("Done\n", GREEN, BLUE); print_msg("Clearing Kernel's bss... ", GREEN, BLUE); clearBSS(&bss, &endOfKernel - &bss); print_msg("Done loading modules\n", GREEN, BLUE); print_msg("Setting up stack...\n", GREEN, BLUE); return getStackBase(); }
void * initializeKernelBinary() { load_kernel_modules(); clearBSS(&bss, &endOfKernel - &bss); video_initialize(); video_clear_screen(); video_write_line("[x64BareBones]"); video_write_string(" text: 0x"); video_write_hex((uint64_t)&text); video_write_nl(); video_write_string(" rodata: 0x"); video_write_hex((uint64_t)&rodata); video_write_nl(); video_write_string(" data: 0x"); video_write_hex((uint64_t)&data); video_write_nl(); video_write_string(" bss: 0x"); video_write_hex((uint64_t)&bss); video_write_nl(); video_write_line("[Done]"); screensaver_reset_timer(); video_write_line("Kernel cargado."); return getStackBase(); }