summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-08-30 19:20:30 +0200
committerMichal Idziorek <m.i@gmx.at>2014-08-30 19:20:30 +0200
commit558bf072fff36ae9f09e332cf8aa536db8ef17c0 (patch)
tree3c8760ea14c9f4db65a407999050617ed2ae27b4
parent48e95ac6a3afc0ff279380d94e7764ff83c761c0 (diff)
minor fixes
-rw-r--r--README.md3
-rw-r--r--bochsrc20
-rw-r--r--kernel/kernel.c6
-rw-r--r--kernel/task.c5
4 files changed, 19 insertions, 15 deletions
diff --git a/README.md b/README.md
index a804af2..13cfb16 100644
--- a/README.md
+++ b/README.md
@@ -51,11 +51,10 @@ Some things I would like to add someday:
* Filesystem (probably FAT)
* e1000 driver
* networking stack / webserver
-* virtual memory managment / paging
* user space / ELF binaries support
-* multitasking
* mouse
* simple window manager
+* support multiple processors!
Issues
------
diff --git a/bochsrc b/bochsrc
index 94f0f4a..ceb79ee 100644
--- a/bochsrc
+++ b/bochsrc
@@ -54,7 +54,7 @@
#display_library: wx
#display_library: x, options="hideIPS" # disable IPS output in status bar
#display_library: x, options="gui_debug" # use GTK debugger gui
-#display_library: x
+display_library: x
#=======================================================================
@@ -128,7 +128,7 @@ romimage: file=/home/miguel/opt/bochs-2.6.6/bios/BIOS-bochs-latest
# 2.2.6 2.1Ghz Athlon XP with Linux 2.6/g++ 3.4 12 to 15 Mips
# 2.0.1 1.6Ghz Intel P4 with Win2000/g++ 3.3 5 to 7 Mips
#=======================================================================
-#cpu: count=1, ips=5000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
+cpu: count=1, ips=1000000 #, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
#=======================================================================
# CPUID:
@@ -220,7 +220,7 @@ romimage: file=/home/miguel/opt/bochs-2.6.6/bios/BIOS-bochs-latest
# used all allocated host memory and wants more.
#
#=======================================================================
-memory: guest=16, host=1024
+#memory: guest=16, host=1024
#=======================================================================
# OPTROMIMAGE[1-4]:
@@ -327,10 +327,10 @@ floppya: 1_44=./FoolOS.img, status=inserted
# ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
# ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
#=======================================================================
-ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
+#ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
+#ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
+#ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
+#ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
#=======================================================================
# ATA[0-3]-MASTER, ATA[0-3]-SLAVE
@@ -438,7 +438,7 @@ boot: floppy
#
# Default value are sync=none, time0=local
#=======================================================================
-#clock: sync=none, time0=local
+clock: sync=realtime, time0=local
#=======================================================================
@@ -449,7 +449,7 @@ boot: floppy
# floppy_bootsig_check: disabled=0
# floppy_bootsig_check: disabled=1
#=======================================================================
-floppy_bootsig_check: disabled=0
+#floppy_bootsig_check: disabled=0
#=======================================================================
# LOG:
@@ -463,7 +463,7 @@ floppy_bootsig_check: disabled=0
# log: /dev/tty
#=======================================================================
#log: /dev/stdout
-log: ./bochs.log
+#log: ./bochs.log
#=======================================================================
# LOGPREFIX:
diff --git a/kernel/kernel.c b/kernel/kernel.c
index eee66d7..9e8108f 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -158,9 +158,6 @@ void kernel_main(uint32_t initial_stack)
int_install_ir(17, 0b10001110, 0x08,&int_irq17);
int_install_ir(18, 0b10001110, 0x08,&int_irq18);
- // multitasking
- task_init();
-
// now we can enable interrupts back again
int_enable();
@@ -175,6 +172,9 @@ void kernel_main(uint32_t initial_stack)
//init shell
shell_init();
+
+ // multitasking
+ task_init();
/*
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"test mem");
diff --git a/kernel/task.c b/kernel/task.c
index fb71640..8884079 100644
--- a/kernel/task.c
+++ b/kernel/task.c
@@ -5,6 +5,8 @@
#include "../lib/logger/log.h" // logger facilities
#define FOOLOS_MODULE_NAME "task"
+int started;
+
void task_test1()
{
uint8_t c1;
@@ -88,6 +90,8 @@ void task_create(int pid,void(*thread)())
uint32_t task_switch_next(uint32_t oldesp)
{
+
+ if(started!=0xabcde) return oldesp;
if(CurrentTask != -1){ //Were we even running a task?
@@ -119,6 +123,7 @@ void stack_trace(uint32_t *stack,int size)
void task_init()
{
+ started=0xabcde;
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"init multitasking.");
task_create(0,task_test1);
task_create(1,task_test2);