summaryrefslogtreecommitdiff
path: root/kernel/scheduler.h
blob: f77912d521881ba3c00fe13b74940d9e49a92b2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdint.h>
#include <stdbool.h>
// http://hosted.cjmovie.net/TutMultitask.htm

volatile uint32_t scheduler_run(uint32_t oldesp,uint32_t force_pid);

void task_wake_all();
volatile uint32_t task_get_current_pid();
volatile uint32_t task_get_parent(uint32_t pid);
volatile void task_set_brk(uint32_t pid,uint32_t brk);
void task_syscall_worker();
volatile uint32_t task_get_brk(uint32_t pid);
volatile uint32_t task_fork(uint32_t pid);
volatile uint32_t task_clone(uint32_t pid);
volatile uint32_t task_wait(uint32_t pid);
volatile int task_reset(uint32_t pid, uint32_t entry, uint32_t stack, uint32_t brk);
volatile uint32_t task_syscall(uint32_t eax,uint32_t ebx, uint32_t ecx, uint32_t edx);
uint32_t task_runs(uint32_t pid);
uint32_t task_idx(uint32_t pid);
void task_exit(uint32_t pid);