blob: 7761bb451887bda5456c19e9f9485cbec31bd4f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <stdint.h>
#include <stdbool.h>
#include "ringbuffer.h"
// http://hosted.cjmovie.net/TutMultitask.htm
volatile uint32_t scheduler_run(uint32_t oldesp,uint32_t preference);
volatile uint32_t scheduler_wake_worker(uint32_t oldesp);
void scheduler_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);
void task_set_name(uint32_t pid, char *name);
volatile int task_add_win(uint32_t pid,ringbuffer *);
int task_set_esp(uint32_t pid, uint32_t esp);
uint32_t scheduler_get_vmem(uint32_t pid);
|