#include <config.h>
+struct task;
+
+typedef enum {
+ SCHED_TASK_READY,
+ SCHED_TASK_RUNNING,
+ SCHED_TASK_SLEEPING
+} sched_task_state_t;
+
+struct sched {
+ int (*tick)(struct sched*);
+
+ int (*sleep)(struct sched*, struct task*);
+ int (*wakeup)(struct sched*, struct task*, int);
+
+ int (*schedule)(struct sched*, struct task*);
+ int (*drop)(struct sched*, struct task*);
+ int (*nice)(struct sched*, struct task*, int);
+};
+
void sched_tick(void);
void sched_wait(pid_t);
int sched_raise(pid_t);