diff options
Diffstat (limited to 'kernel/entry.cxx')
-rw-r--r-- | kernel/entry.cxx | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/kernel/entry.cxx b/kernel/entry.cxx index b5bc210..643fbc0 100644 --- a/kernel/entry.cxx +++ b/kernel/entry.cxx @@ -1,6 +1,15 @@ #include "../vendor/limine/limine.h" +#include "../version.h" + +#include <io/logger/base.h> #include <cstdint> +#if defined (__x86_64__) +#include <amd64/io/com1.h> +#endif + +using namespace hos::io; + __attribute__ ((used, section(".requests"))) static volatile LIMINE_BASE_REVISION(3); @@ -30,20 +39,26 @@ void init (void); extern "C" void _launch (void); void _launch (void) { + // Global C++ Constructors + init(); + + logger<com_logger> logger(log_level::DEBUG); + logger.write(log_level::INFO, "Welcome to HinterOS %s!", HOS_CORE_VERSION); + if (LIMINE_BASE_REVISION_SUPPORTED == false) { + logger.write(log_level::FATAL, "Limine revision mismatch."); hcf(); } + logger.write(log_level::DEBUG, "Limine... ok"); + struct limine_framebuffer *fb = framebuffer_request.response->framebuffers[0]; for (std::size_t i = 0; i < (fb->width - 1) * (fb->height - 1); i += 2) { volatile std::uint32_t *fbptr = static_cast<std::uint32_t *>(fb->address); - fbptr[i] = 0xffffff; + fbptr[i] = 0xffffff00; } - // Global C++ constructors - init(); - hcf(); } |