summaryrefslogtreecommitdiff
path: root/kernel/main.c
diff options
context:
space:
mode:
authorVegard Storheil Eriksen <zyp@jvnv.net>2009-12-23 22:26:43 +0100
committerVegard Storheil Eriksen <zyp@jvnv.net>2009-12-23 22:31:02 +0100
commit864fb03a3305b65fedbe434ebb87510ac13fe865 (patch)
tree6b0b2b0dccf6fd1835a4e86ba808fbad2cba89cb /kernel/main.c
Initial commit.
Diffstat (limited to 'kernel/main.c')
-rw-r--r--kernel/main.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/kernel/main.c b/kernel/main.c
new file mode 100644
index 0000000..513894b
--- /dev/null
+++ b/kernel/main.c
@@ -0,0 +1,26 @@
+
+void kernel_serial_out(char* str);
+
+void main() {
+
+ kernel_serial_out("main()\n");
+
+ // TODO: GDT.
+
+ asm volatile(
+ "cli\n"
+ "hlt\n"
+ );
+ while(1);
+}
+
+#define outb(port, value) asm volatile("out %b0,%w1" : : "a" (value), "d" (port));
+
+void kernel_serial_out(char* str) {
+ while(*str) {
+ if(*str == '\n') {
+ outb(0x3f8, '\r');
+ }
+ outb(0x3f8, *str++);
+ }
+}