compiled newlib, need to hook up the system calls
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
#include "multiboot.h"
|
||||
#include "interrupts.h"
|
||||
#include "elf.h"
|
||||
#include "gdt.h"
|
||||
#include "scheduler.h"
|
||||
#include "common.h"
|
||||
|
||||
#include <lib/print.h>
|
||||
#include <lib/stream.h>
|
||||
@@ -20,21 +20,22 @@
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
extern void enable_interrupts();
|
||||
extern void disable_interrupts();
|
||||
extern uint32_t fetch_cr3();
|
||||
|
||||
extern char __kernel_start;
|
||||
extern char __kernel_end;
|
||||
|
||||
void kernel_test_task() {
|
||||
while (1) {
|
||||
kprintf("task sleeping...\n");
|
||||
sleep(10000000);
|
||||
void first_task() {
|
||||
kprintf("task started\n");
|
||||
int i = 5;
|
||||
while (i--) {
|
||||
sleep(1000);
|
||||
kprintf("task awake [%d]\n", i);
|
||||
}
|
||||
kprintf("exiting\n");
|
||||
exit();
|
||||
}
|
||||
|
||||
void kmain(uint32_t magic, multiboot_info* mbi) {
|
||||
disable_interrupts();
|
||||
if (!(mbi->flags & (1 << 6))) {
|
||||
return;
|
||||
}
|
||||
@@ -54,9 +55,14 @@ void kmain(uint32_t magic, multiboot_info* mbi) {
|
||||
|
||||
kprintf("basic initializations complete\n");
|
||||
|
||||
disable_interrupts();
|
||||
disable_interrupts(); // just paranoid... do it again
|
||||
init_scheduler();
|
||||
enable_interrupts();
|
||||
|
||||
while(1) yield();
|
||||
create_task((uint32_t)first_task, fetch_cr3());
|
||||
|
||||
while(1) {
|
||||
sleep(5000);
|
||||
kprintf("kernel awake\n");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user