22 lines
329 B
C
22 lines
329 B
C
|
|
#ifndef _SCHEDULER_H
|
||
|
|
#define _SCHEDULER_H
|
||
|
|
|
||
|
|
|
||
|
|
#include <drivers/irq.h>
|
||
|
|
|
||
|
|
#include <types.h>
|
||
|
|
|
||
|
|
typedef struct task {
|
||
|
|
registers_t* regs; /* saved interrupt frame */
|
||
|
|
uint32_t id;
|
||
|
|
struct task* next;
|
||
|
|
} task_t;
|
||
|
|
|
||
|
|
void init_scheduler(void);
|
||
|
|
|
||
|
|
registers_t* schedule(registers_t* regs);
|
||
|
|
|
||
|
|
task_t* create_task(void (*entry)());
|
||
|
|
|
||
|
|
#endif
|