blob: 7ee962dce97b1a52f7aab1e24a3f9021528bc7a4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#ifndef _HACK_WAIT_H_
#define _HACK_WAIT_H_
#include <cthreads.h>
/* This data structure actually represents one waiter on a wait queue,
and waiters always expect to initialize it with { current, NULL }.
The actual wait queue is a `struct wait_queue *' stored somewhere.
We ignore these structures provided by the waiters entirely.
In the `struct wait_queue *' that is the "head of the wait queue" slot,
we actually store a `struct condition *' pointing to malloc'd storage. */
struct wait_queue
{
struct task_struct *task; /* current */
struct wait_queue *next; /* NULL */
};
struct select_table_elt
{
struct condition *dependent_condition;
struct select_table_elt *next;
};
typedef struct select_table_struct
{
struct condition master_condition;
struct select_table_elt *head;
} select_table;
#endif
|