aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoraqua <aqua@iserlohn-fortress.net>2022-12-10 20:56:57 +0200
committeraqua <aqua@iserlohn-fortress.net>2022-12-11 11:32:51 +0200
commit9b2a78fa52249ab481493550490aa5f37872dcf6 (patch)
tree127031268b9b42b0fbdae3d87684d9c045983677 /src
parentRename CCFLAGS to CFLAGS (diff)
downloadkernel-9b2a78fa52249ab481493550490aa5f37872dcf6.tar.xz
Rewrite drivers/uart and drivers/vga in cpp
Diffstat (limited to 'src')
-rw-r--r--src/Makefile2
-rw-r--r--src/kernel.cpp (renamed from src/kernel.c)25
2 files changed, 16 insertions, 11 deletions
diff --git a/src/Makefile b/src/Makefile
index de59cfb..637f9a1 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,6 +1,6 @@
include ../Makefile.config
-kernel.SRCS := multiboot2.c mmap.c kernel.c mem/vmm.c
+kernel.SRCS := multiboot2.c mmap.c kernel.cpp mem/vmm.c
kernel.OBJS := conf.h
include ../rules.mk
diff --git a/src/kernel.c b/src/kernel.cpp
index b8432a8..751bcb0 100644
--- a/src/kernel.c
+++ b/src/kernel.cpp
@@ -4,24 +4,29 @@
// description: kernel entry point
//=====================================================================
+extern "C" {
#include "conf.h"
-#include "devices/keyboard.h"
-#include "devices/mouse.h"
-#include "devices/pic.h"
-#include "devices/ps2_controller.h"
-#include "devices/uart.h"
-#include "devices/vga.h"
#include "mem.h"
+#include <devices/keyboard.h>
+#include <devices/mouse.h>
+#include <devices/pic.h>
+#include <devices/ps2_controller.h>
#include <stdio.h>
#include <sys/cpuid.h>
+}
+#include <devices/uart.hpp>
+#include <devices/vga.hpp>
FILE *stdin;
FILE *stdout;
FILE *stderr;
-void kmain() {
- stderr = uart_init(COM1);
- stdout = vga_init(vmm_map(0xb8000, 0xc03ff000));
+extern "C" void
+kmain()
+{
+ stderr = uart_init<COM1>();
+ vmm_map(0xb8000, 0xc03ff000);
+ stdout = vga_init((void *)0xc03ff000);
printf("glitch [version " VERSION "] [" CC "]\n");
fprintf(stderr, "glitch [version " VERSION "] [" CC "]\n");
@@ -42,7 +47,7 @@ void kmain() {
mouse_init();
pic_enable();
- printf("interrupts enabled\n");
+ fprintf(stderr, "interrupts enabled\n");
/*
alloc4M();