diff options
| -rw-r--r-- | driver/keyboard.c | 4 | ||||
| -rw-r--r-- | driver/mouse.c | 2 | ||||
| -rw-r--r-- | driver/pci.h | 1 | ||||
| -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.h | 1 | ||||
| -rw-r--r-- | kernel/interrupts.c | 4 | ||||
| -rw-r--r-- | kernel/interrupts.h | 5 | ||||
| -rw-r--r-- | kernel/kernel.c | 25 | ||||
| -rw-r--r-- | kernel/scheduler.c (renamed from kernel/task.c) | 3 | ||||
| -rw-r--r-- | kernel/scheduler.h | 1 | ||||
| -rw-r--r-- | kernel/task.h | 1 | ||||
| -rw-r--r-- | kernel/vmem.h | 1 | ||||
| -rw-r--r-- | lib/logger/log.c | 1 |
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" |
