summaryrefslogtreecommitdiff
path: root/pfinet/glue-include/linux/wait.h
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