aboutsummaryrefslogtreecommitdiff
path: root/kernel/sched/include/sched/sched.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched/include/sched/sched.h')
-rw-r--r--kernel/sched/include/sched/sched.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/kernel/sched/include/sched/sched.h b/kernel/sched/include/sched/sched.h
index 5e45328..8838f09 100644
--- a/kernel/sched/include/sched/sched.h
+++ b/kernel/sched/include/sched/sched.h
@@ -29,6 +29,9 @@ struct tcb_t {
/** Current wait queue that this task is in. */
struct list_head q;
+
+ long sleep_left;
+
};
/**
@@ -42,7 +45,8 @@ struct tcb_t {
.mem_low = declared_stack_##name, \
.mem_high = declared_stack_##name + stack_size - 1, \
.entry = entry_function, \
- .q = {} \
+ .q = {}, \
+ .sleep_left = 0 \
};
/**
@@ -92,9 +96,7 @@ void schedule();
/**
* Ticks the scheduler.
*/
-inline void sched_tick() {
- schedule(); //in a round-robin scheduler, scheduling is called after every tick
-}
+void sched_tick();
/**
* Initializes a given task and adds it to the ready queue.
@@ -106,6 +108,8 @@ void spawn(struct tcb_t* const tcb, char args);
*/
void yield() __attribute__ ( ( naked ) );
+void sleep(long ms) __attribute__ ( ( naked) );
+
#define ENTER_CRITICAL() cli()
#define EXIT_CRITICAL() sei()