summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver/keyboard.c4
-rw-r--r--driver/mouse.c2
-rw-r--r--driver/pci.h1
-rw-r--r--driver/timer.c (renamed from kernel/timer.c)0
-rw-r--r--driver/timer.h (renamed from kernel/timer.h)0
-rw-r--r--kernel/gdt.c (renamed from kernel/GDT.c)2
-rw-r--r--kernel/gdt.h1
-rw-r--r--kernel/interrupts.c4
-rw-r--r--kernel/interrupts.h5
-rw-r--r--kernel/kernel.c25
-rw-r--r--kernel/scheduler.c (renamed from kernel/task.c)3
-rw-r--r--kernel/scheduler.h1
-rw-r--r--kernel/task.h1
-rw-r--r--kernel/vmem.h1
-rw-r--r--lib/logger/log.c1
15 files changed, 25 insertions, 26 deletions
diff --git a/driver/keyboard.c b/driver/keyboard.c
index 52e6454..9377515 100644
--- a/driver/keyboard.c
+++ b/driver/keyboard.c
@@ -2,9 +2,9 @@
// http://www.computer-engineering.org/ps2keyboard/scancodes1.html
#define FOOLOS_MODULE_NAME "keyboard"
-#include <stdbool.h>
#include "asm/x86.h"
-#include "lib/logger/log.h"
+
+#include <stdbool.h>
static bool ctrl_l=false;
static bool shift_l=false;
diff --git a/driver/mouse.c b/driver/mouse.c
index f585b99..28acf53 100644
--- a/driver/mouse.c
+++ b/driver/mouse.c
@@ -4,7 +4,6 @@
//based on Mouse.inc by SANiK
//License: Use as you wish, except to cause damage
-#include "lib/logger/log.h"
#include <stdint.h>
#include "asm/x86.h"
@@ -94,7 +93,6 @@ void mouse_init()
mouse_write(0xF4);
mouse_read(); //Acknowledge
- log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Mouse Initialized");
}
void mouse_log()
diff --git a/driver/pci.h b/driver/pci.h
new file mode 100644
index 0000000..f02c5c7
--- /dev/null
+++ b/driver/pci.h
@@ -0,0 +1 @@
+//stub
diff --git a/kernel/timer.c b/driver/timer.c
index 2d4c7ff..2d4c7ff 100644
--- a/kernel/timer.c
+++ b/driver/timer.c
diff --git a/kernel/timer.h b/driver/timer.h
index 1e3d066..1e3d066 100644
--- a/kernel/timer.h
+++ b/driver/timer.h
diff --git a/kernel/GDT.c b/kernel/gdt.c
index 4bc7ca2..06a0949 100644
--- a/kernel/GDT.c
+++ b/kernel/gdt.c
@@ -89,7 +89,7 @@ void encodeGdtEntry(uint8_t *target, GDT source)
}
-void gdt_setup()
+void gdt_init()
{
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"setting up Global Descriptor Table");
//selector 0x0
diff --git a/kernel/gdt.h b/kernel/gdt.h
new file mode 100644
index 0000000..4081a75
--- /dev/null
+++ b/kernel/gdt.h
@@ -0,0 +1 @@
+void gdt_init();
diff --git a/kernel/interrupts.c b/kernel/interrupts.c
index 9b08475..0dccba4 100644
--- a/kernel/interrupts.c
+++ b/kernel/interrupts.c
@@ -8,6 +8,8 @@
#include "interrupts.h"
#include "asm/x86.h"
+#define INT_MAX 255 // size of our interrupts table
+
void errlog(uint32_t error_code)
{
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"error_code: 0x%08X",error_code);
@@ -116,7 +118,7 @@ void int_install_ir(int irq, uint16_t flags, uint16_t sel, void *addr)
}
// set default handler for all interrupts for a start
-void int_init(uint16_t sel)
+void interrupts_init(uint16_t sel)
{
// Setup PIC
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"setting up PIC",&idt,&idtd);
diff --git a/kernel/interrupts.h b/kernel/interrupts.h
index bd110d4..637fcfd 100644
--- a/kernel/interrupts.h
+++ b/kernel/interrupts.h
@@ -3,8 +3,5 @@
#include <stdint.h>
-#define INT_MAX 255 // size of our interrupts table
-
-void int_install();
-void int_init(uint16_t sel);
+void interrupts_init(uint16_t sel);
#endif
diff --git a/kernel/kernel.c b/kernel/kernel.c
index e1076a9..67f1355 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -2,20 +2,25 @@
#include "kernel.h"
#include <stdint.h>
-#include <stddef.h>
+
+#include "driver/serial.h"
+#include "driver/timer.h"
+#include "driver/keyboard.h"
+#include "driver/mouse.h"
+
+#include "kernel/gdt.h"
+#include "kernel/scheduler.h"
#include "syscalls.h"
#include "types.h"
#include "lib/logger/log.h"
#include "fifo.h"
-#include "timer.h"
#include "mem.h"
#include "vmem.h"
#include "mp.h"
#include "interrupts.h"
#include "multiboot.h"
#include "ringbuffer.h"
-#include "task.h"
#include "multiboot.h"
#include "terminal/terminal.h"
#include "driver/screen.h"
@@ -33,15 +38,14 @@ void kernel_main(uint32_t eax,uint32_t ebx)
uint64_t epoch_time=timer_init();
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"PIT - initialized. %u seconds passed since 1970.",epoch_time);
- // KEYBOARD DRIVER
keyboard_init(0); //sstdin
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Keyboard Initialized");
- // MOUSE DRIVER
mouse_init();
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Mouse Initialized");
- // GDT
- gdt_setup();
+ gdt_init();
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"GDT Initialized");
// MULTIBOOT HEADER
multiboot_information *info=get_multiboot(eax, ebx);
@@ -74,6 +78,7 @@ void kernel_main(uint32_t eax,uint32_t ebx)
// INIT VESA: TODO: stop and say if not 32bit colormode!
uint32_t addr=kballoc(1);
fs_content("/binfont.bin",addr,0x100); // copy 0x100 bytes to 0x7000
+
vesa_init(info->vbe_control_info,info->vbe_mode_info,addr);
// STREAMS
@@ -81,10 +86,8 @@ void kernel_main(uint32_t eax,uint32_t ebx)
uint32_t sstdout = syscall_open("term",0,0); // stdout 1
uint32_t sstderr = syscall_open("stderr",0,0); // stderr 2
- // INSTALL INTERRUPTS (code segment: 0x08)
- int_init(0x08);
+ interrupts_init(0x08);
- // INIT MULTITASKING (and start scheduler)
- task_init(dir);
+ scheduler_init(dir);
}
diff --git a/kernel/task.c b/kernel/scheduler.c
index 395c196..4823276 100644
--- a/kernel/task.c
+++ b/kernel/scheduler.c
@@ -6,7 +6,6 @@
#include "kernel.h"
#include "lib/logger/log.h" // logger facilities
#include "mem.h"
-#include "timer.h"
#include "asm/x86.h"
#include "vmem.h"
@@ -158,7 +157,7 @@ volatile uint32_t task_fork(uint32_t oldesp)
}
// init task (root of all other tasks / processes) //
-volatile void task_init(pdirectory *dir)
+volatile void scheduler_init(pdirectory *dir)
{
current_task=0;
diff --git a/kernel/scheduler.h b/kernel/scheduler.h
new file mode 100644
index 0000000..db0e3ae
--- /dev/null
+++ b/kernel/scheduler.h
@@ -0,0 +1 @@
+void scheduler_init(void *pdirectory_dir);
diff --git a/kernel/task.h b/kernel/task.h
deleted file mode 100644
index c934d6d..0000000
--- a/kernel/task.h
+++ /dev/null
@@ -1 +0,0 @@
-void task_init(pdirectory *dir);
diff --git a/kernel/vmem.h b/kernel/vmem.h
index 104e5ab..ae1e134 100644
--- a/kernel/vmem.h
+++ b/kernel/vmem.h
@@ -30,7 +30,6 @@ typedef struct ptable_struct {
//! page directory
typedef struct pdirectory_struct {
-
pd_entry m_entries[PAGES_PER_DIR];
}pdirectory;
diff --git a/lib/logger/log.c b/lib/logger/log.c
index 968d978..ff1b8bf 100644
--- a/lib/logger/log.c
+++ b/lib/logger/log.c
@@ -5,7 +5,6 @@
#include <stdbool.h>
#include "kernel/kernel.h"
-#include "kernel/timer.h"
#include "kernel/fifo.h"
#include "lib/string/string.h"