aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatteo Gmür <matteo.gmuer1@ost.ch>2024-09-29 07:02:25 +0000
committerMatteo Gmür <matteo.gmuer1@ost.ch>2024-09-29 07:02:25 +0000
commit6288868ebd728720236d6a857df2658bff2d6547 (patch)
tree2568ea1271ff5e0c7ef0c1d2f5a7ab8ce1992d6b
parent47879f42d70755fcf5473ffb82798b515cb2e21b (diff)
downloadteachos-6288868ebd728720236d6a857df2658bff2d6547.tar.xz
teachos-6288868ebd728720236d6a857df2658bff2d6547.zip
Pass multiboot info to main function
-rw-r--r--arch/x86_64/include/arch/kernel/main.hpp2
-rw-r--r--arch/x86_64/src/kernel/main.cpp7
-rw-r--r--src/kernel/main.cpp5
3 files changed, 11 insertions, 3 deletions
diff --git a/arch/x86_64/include/arch/kernel/main.hpp b/arch/x86_64/include/arch/kernel/main.hpp
index 6961594..57b9b58 100644
--- a/arch/x86_64/include/arch/kernel/main.hpp
+++ b/arch/x86_64/include/arch/kernel/main.hpp
@@ -5,7 +5,7 @@
namespace teachos::arch::kernel
{
- auto main() -> void;
+ auto main(size_t multiboot_information_address) -> void;
}
#endif \ No newline at end of file
diff --git a/arch/x86_64/src/kernel/main.cpp b/arch/x86_64/src/kernel/main.cpp
index 0e90264..01c14a5 100644
--- a/arch/x86_64/src/kernel/main.cpp
+++ b/arch/x86_64/src/kernel/main.cpp
@@ -2,14 +2,19 @@
#include "arch/video/vga/text.hpp"
+#include "stdio.h"
+
namespace teachos::arch::kernel
{
- auto main() -> void
+ auto main(size_t multiboot_information_address) -> void
{
using namespace video::vga;
text::clear();
text::cursor(false);
text::write("TeachOS is starting up...", text::common_attributes::green_on_black);
+ char address[32U] = {};
+ snprintf(address, sizeof(address), "Multiboot address: (%lu)", multiboot_information_address);
+ text::write(address, text::common_attributes::green_on_black);
}
} // namespace teachos::arch::kernel
diff --git a/src/kernel/main.cpp b/src/kernel/main.cpp
index 07a9955..a1ef159 100644
--- a/src/kernel/main.cpp
+++ b/src/kernel/main.cpp
@@ -1,3 +1,6 @@
#include "arch/kernel/main.hpp"
-extern "C" auto kernel_main() -> void { teachos::arch::kernel::main(); } \ No newline at end of file
+extern "C" auto kernel_main(size_t multiboot_information_address) -> void
+{
+ teachos::arch::kernel::main(multiboot_information_address);
+}