summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-09-03 00:07:20 +0200
committerMiguel <m.i@gmx.at>2018-09-03 00:07:20 +0200
commit38b1273c7e3a52ae929f36fe07e29bc68ef95102 (patch)
tree16734c1c190825159f6ca9696d9c5cfb04e89c8f /kernel
parentfd5a9b87e47bc072aa63fcaf5735232a37338303 (diff)
clean filenames etc
Diffstat (limited to 'kernel')
-rw-r--r--kernel/gdt.c2
-rw-r--r--kernel/kernel.c2
-rw-r--r--kernel/mp.c5
-rw-r--r--kernel/scheduler.c33
-rw-r--r--kernel/usermode.c45
-rw-r--r--kernel/usermode.h0
6 files changed, 34 insertions, 53 deletions
diff --git a/kernel/gdt.c b/kernel/gdt.c
index 562fbd5..d1ed382 100644
--- a/kernel/gdt.c
+++ b/kernel/gdt.c
@@ -2,8 +2,6 @@
#include "kernel/kernel.h"
#include "kernel/gdt.h"
-#include "usermode.h"
-
#include <stdint.h>
#define GDT_SIZE 6
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 9381091..7058a8a 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -58,7 +58,7 @@ void kernel_main(uint32_t eax,uint32_t ebx)
// https://wiki.osdev.org/Symmetric_Multiprocessing
klog("Symmetric Multi Processing (SMP) start ... ");
smp_log_procdata(&procdata);
- smp_start_aps(&procdata);
+ //smp_start_aps(&procdata);
klog("Vritual Memory / Paging init ... ");
pdirectory *dir=vmem_init(kernel_blocks,(uint32_t)info->framebuffer_addr);
diff --git a/kernel/mp.c b/kernel/mp.c
index e03f224..5cd58ac 100644
--- a/kernel/mp.c
+++ b/kernel/mp.c
@@ -1,13 +1,10 @@
#include "kernel/kernel.h"
-
#include <stdbool.h>
#include "asm/x86.h"
#include "smp.h"
-
-
typedef struct mp_fps_struct
{
uint32_t sig; //signature "_MP_"
@@ -49,8 +46,6 @@ typedef struct mp_config_struct
}mp_config;
-
-
typedef struct proc_struct
{
uint8_t type; //0=processor
diff --git a/kernel/scheduler.c b/kernel/scheduler.c
index cfd0fcd..5316438 100644
--- a/kernel/scheduler.c
+++ b/kernel/scheduler.c
@@ -292,3 +292,36 @@ volatile void task_set_brk(uint32_t brk)
{
task_list[current_task].brk=brk;
}
+
+void userfunc()
+{
+
+ // we need enable here again (since the pushed eflags have it disabled)!
+ x86_sti();
+
+ // if we are pid 0, replace ourselves with /bin/init and enter usermode
+ if(task_get_current_pid()==0)
+ {
+ uint32_t alloc;
+ uint32_t entry_global=load_elf(BIN_INIT,&alloc);
+ task_set_brk(alloc);
+ asm_usermode(entry_global);
+ }
+
+ // kernel worker thread: SLEEPER
+ if(task_get_current_pid()==1)
+ {
+ while(1)
+ {
+ __asm__("hlt");
+ }
+ }
+
+ // kernel worker thread: SYSCALL CHECKER
+ if(task_get_current_pid()==2)
+ {
+ task_syscall_worker();
+ }
+}
+
+
diff --git a/kernel/usermode.c b/kernel/usermode.c
deleted file mode 100644
index ee8b9db..0000000
--- a/kernel/usermode.c
+++ /dev/null
@@ -1,45 +0,0 @@
-#include "usermode.h"
-
-#include "syscalls.h"
-#include "kmalloc.h"
-
-#include "asm/usermode.h"
-#include "asm/x86.h"
-#include "scheduler.h"
-#include "kernel.h"
-#include "fs/elf.h"
-
-#include <stddef.h>
-
-void userfunc()
-{
-
- // we need enable here again (since the pushed eflags have it disabled)!
- x86_sti();
-
- // if we are pid 0, replace ourselves with /bin/init and enter usermode
- if(task_get_current_pid()==0)
- {
- uint32_t alloc;
- uint32_t entry_global=load_elf(BIN_INIT,&alloc);
- task_set_brk(alloc);
- asm_usermode(entry_global);
- }
-
- // kernel worker thread: SLEEPER
- if(task_get_current_pid()==1)
- {
- while(1)
- {
- __asm__("hlt");
- }
- }
-
- // kernel worker thread: SYSCALL CHECKER
- if(task_get_current_pid()==2)
- {
- task_syscall_worker();
- }
-}
-
-
diff --git a/kernel/usermode.h b/kernel/usermode.h
deleted file mode 100644
index e69de29..0000000
--- a/kernel/usermode.h
+++ /dev/null