Main Page | Directories | File List | Globals

sleep.c

Go to the documentation of this file.
00001 /*
00002  * kernel_super/sched/sleep.c
00003  *
00004  * Copyright (c) 2003-2005 Lukasz Dembinski <dembol@nasa.com.pl>
00005  * All Rights Reserved
00006  * 
00007  * Date:        2005/05
00008  * Author:      Lukasz Dembinski
00009  * Info:        sleep.c core file
00010  * Contact:     mailto: <dembol@nasa.com.pl>
00011  *
00012  */
00013 
00014 #include <agnix/agnix.h>
00015 #include <agnix/timers.h>
00016 #include <agnix/tasks.h>
00017 #include <agnix/sched.h>
00018 
00019 void sleep_timer_expire(void *data)
00020 {
00021     sched_activate_task((struct task_s *)data);
00022 }
00023 
00024 void sleep_timeout(u32 timeout_jiffies)
00025 {
00026     struct timer_s sleep_timer;
00027 
00028     sleep_timer.timer_function = sleep_timer_expire;
00029     sleep_timer.timer_data     = (void *)current_task;
00030     sleep_timer.timer_expire   = timeout_jiffies;
00031     sleep_timer.timer_flags    = TIMER_FLAG_ONESHOT;
00032        
00033     sched_deactivate_task(current_task);
00034     register_timer(&sleep_timer);
00035     
00036     schedule_task();
00037 }
00038 
Dokumentacje wygenerowano programem Doxygen 1.4.2 dla projektu Agnix