/*! \file * \brief Startup of the first core, also known as bootstrap processor (BSP) * \defgroup Startup "Bootloader and system startup" * */ #pragma once #include "../types.h" /*! \brief Entry point of your kernel * * \ingroup Startup * * Executed by boot loader. * Stores Pointer to \ref Multiboot information structure, * initializes stack pointer, * switches to long mode * and finally calls the C++ \ref kernel_init function */ extern "C" void startup_bsp(); /*! \brief Initializes the C++ environment and detects system components * * \ingroup Startup * * The startup code TEMPLATE(m){(both for \ref startup_bsp "bootstrap" and \ref * startup_ap "application processor")} jumps to this high level function. After * initialization it will call \ref main() */ extern "C" [[noreturn]] void kernel_init(); /*! \brief Kernels main function * * Called after initialization of the system by \ref kernel_init() */ extern "C" int main();