#include <agnix/agnix.h>#include <agnix/list.h>#include <agnix/tasks.h>#include <agnix/sched.h>#include <agnix/spinlock.h>#include <agnix/wait.h>Include dependency graph for wait.c:

Go to the source code of this file.
Functions | |
| void | wait_list_add (struct task_s *task, struct wait_list_s *waitlist) |
| void | wait_list_del (struct task_s *task, struct wait_list_s *waitlist) |
| void | wait_list_sleep_on (struct task_s *task, struct wait_list_s *waitlist) |
| void | wait_list_remove (struct task_s *task, struct wait_list_s *waitlist) |
| void | wait_list_wake_up (struct wait_list_s *waitlist) |
| void | wait_list_init (struct wait_list_s *waitlist) |
|
||||||||||||
|
Definition at line 21 of file wait.c. References flags. Referenced by wait_list_sleep_on(). 00022 {
00023 u32 flags;
00024
00025 spin_lock_irqsave(&(waitlist->lock), flags);
00026 list_add(&(task->wait_list), &(waitlist->list));
00027 spin_unlock_irqrestore(&(waitlist->lock), flags);
00028 }
|
|
||||||||||||
|
Definition at line 30 of file wait.c. References flags. Referenced by wait_list_remove(). 00031 {
00032 u32 flags;
00033
00034 spin_lock_irqsave(&(waitlist->lock), flags);
00035 list_del(&(task->wait_list));
00036 spin_unlock_irqrestore(&(waitlist->lock), flags);
00037 }
|
|
|
Definition at line 74 of file wait.c. Referenced by adi_sysconsole_init(). 00075 {
00076 INIT_LIST_HEAD(&waitlist->list);
00077 spin_lock_init(&waitlist->lock);
00078 }
|
|
||||||||||||
|
Definition at line 46 of file wait.c. References wait_list_del(). Referenced by syscons_read(). 00047 {
00048 wait_list_del(task, waitlist);
00049 }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 39 of file wait.c. References sched_deactivate_task(), schedule_task(), and wait_list_add(). Referenced by syscons_read(). 00040 {
00041 wait_list_add(task, waitlist);
00042 sched_deactivate_task(task);
00043 schedule_task();
00044 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 51 of file wait.c. References flags, and sched_activate_task(). Referenced by syscons_write_char(). 00052 {
00053 struct list_head *tmp;
00054 struct task_s *task;
00055 u32 flags;
00056
00057 spin_lock_irqsave(&waitlist->lock, flags);
00058
00059 if (list_empty(&waitlist->list)) {
00060 spin_unlock_irqrestore(&waitlist->lock, flags);
00061 return;
00062 }
00063
00064 list_for_each(tmp, &waitlist->list) {
00065 task = list_entry(tmp, struct task_s, wait_list);
00066 sched_activate_task(task);
00067 }
00068
00069 INIT_LIST_HEAD(&waitlist->list);
00070
00071 spin_unlock_irqrestore(&waitlist->lock, flags);
00072 }
Here is the call graph for this function: ![]() |