#include <l4/sys/syscalls.h>
#include <l4/thread/thread.h>
#include <l4/semaphore/semaphore.h>
#include <l4/dde_linux/dde.h>
#include <linux/sched.h>
#include "internal.h"
#include "__config.h"
#include "fastcall.h"
Go to the source code of this file.
Scheduling Primitives | |
| To circumvent real user-level threads and scheduling we support only sane user context states generated by bug-free drivers. The task structure has a new member - dde_sem binary semaphore - and each process could sleep on this until awakened by any event.
This is from kernel/%sched.c | |
| #define | SLEEP_ON_VAR |
| #define | SLEEP_ON_HEAD |
| #define | SLEEP_ON_TAIL |
| int | try_to_wake_up (struct task_struct *p, int synchronous) |
| Generic wake up for user contexts. | |
| int | FASTCALL (wake_up_process(struct task_struct *p)) |
| Wake up dedicated user context. | |
| void | process_timeout (unsigned long __data) |
| Handle Timeout for schedule_timeout(). | |
| signed long | FASTCALL (schedule_timeout(signed long timeout)) |
| Schedule process but wake me at least after timeout. | |
| void | schedule (void) |
| Schedule process. | |
| void | __wake_up_common (wait_queue_head_t *q, unsigned int mode, int nr_exclusive, const int sync) |
| Generic wake up for user contexts in wait queues. | |
| void | FASTCALL (__wake_up(wait_queue_head_t *q, unsigned int mode, int nr)) |
| Wake up wait queue entries. | |
| void | FASTCALL (__wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr)) |
| Wake up wait queue entries (sync). | |
| void | FASTCALL (interruptible_sleep_on(wait_queue_head_t *q)) |
| Sleep on wait queue (interruptible by signals). | |
| long | FASTCALL (interruptible_sleep_on_timeout(wait_queue_head_t *q, long timeout)) |
| Sleep on wait queue (interruptible by signals and timeout). | |
| void | FASTCALL (sleep_on(wait_queue_head_t *q)) |
| Sleep on wait queue. | |
| long | FASTCALL (sleep_on_timeout(wait_queue_head_t *q, long timeout)) |
| Sleep on wait queue (interruptible by timeout). | |
| void | daemonize (void) |
| Put all the gunge required to become a kernel thread without attached user resources in one place where it belongs. | |
Definition in file sched.c.
|
|
Value: wq_write_lock_irqsave(&q->lock,flags); \
__add_wait_queue(q, &wait); \
wq_write_unlock(&q->lock);
|
|
|
Value: wq_write_lock_irq(&q->lock); \
__remove_wait_queue(q, &wait); \
wq_write_unlock_irqrestore(&q->lock,flags);
|
|
|
Value: unsigned long flags; \ wait_queue_t wait; \ init_waitqueue_entry(&wait, current); |