aboutsummaryrefslogtreecommitdiff
path: root/src/boucane.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/boucane.cc')
-rw-r--r--src/boucane.cc31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/boucane.cc b/src/boucane.cc
index 78884ac..ee7691d 100644
--- a/src/boucane.cc
+++ b/src/boucane.cc
@@ -12,6 +12,9 @@
#include "drivers/bmp.hpp"
#include "core/scheduler.hpp"
+/// @brief Temporary
+#define TASK_DELAY 10000000
+
u64 kvar_kernel_vma;
u64 kvar_stack_pma;
u64 kvar_userspace_pma;
@@ -58,18 +61,25 @@ void configure_tss(){
void task1(){
while(1){
- asm("mov $0xABC, %rax");
asm("mov $1, %rdi;int $0x30");
+ for(u32 delay=0;delay<=TASK_DELAY;delay++){}
}
}
-
void task2(){
while(1){
- asm("mov $0xAEBC, %rax");
asm("mov $2, %rdi;int $0x30");
+ for(u32 delay=0;delay<=TASK_DELAY;delay++){}
+ }
+}
+
+void task3(){
+ while(1){
+ asm("mov $3, %rdi;int $0x30");
+ for(u32 delay=0;delay<=TASK_DELAY;delay++){}
}
}
+
extern "C" void boucane(u64 mb_info){
// Init linker variables
asm volatile ("movq $__kernel_vma, %0":"=m"(kvar_kernel_vma));
@@ -89,7 +99,7 @@ extern "C" void boucane(u64 mb_info){
memtext_init();
idt_enable_interrupt();
apic_enable();
-
+
// Looking for framebuffer
FRAMEBUFFER fb_info;
if(mb2_find_framebuffer((u32*)mb_info, &fb_info)){
@@ -109,25 +119,26 @@ extern "C" void boucane(u64 mb_info){
__putchar=vgatext_putchar;
}
}
-
+
// Booting!
printk("Booting Boucane v%d.%d.%d\n",VERSION_MAJOR,VERSION_MINOR, VERSION_PATH);
printk("System informations -- ");
char bootloader[20];
if(mb2_find_bootloader_name((u32*)mb_info,bootloader)){
-
printk("BOOT:%s ", bootloader);
}
-
MEM_INFO mem_infos;
if(mb2_find_mem((u32*)mb_info,&mem_infos)){
u64 mem=mem_infos.mem_upper-mem_infos.mem_lower;
mem/=1024;
printk("RAM:%dMB\n", mem);
}
- //show_ticks=1;
- create_task((void*)task1, 50);
- create_task((void*)task2, 50);
+
+
+ printk("Launching processes... ");
+ create_task((void*)task1, 100);
+ create_task((void*)task2, 100);
+ create_task((void*)task3, 100);
scheduler_start();
while(1);
} \ No newline at end of file