]> git.tuebingen.mpg.de Git - paraslash.git/blob - sched.h
more audiod fixes
[paraslash.git] / sched.h
1 struct sched {
2         struct timeval now, timeout;
3         int max_fileno;
4         fd_set rfds, wfds;
5         int select_ret;
6         struct timeval default_timeout;
7 };
8
9 struct task {
10         void *private_data;
11         unsigned flags;
12         int ret;
13         void (*pre_select)(struct sched *s, struct task *t);
14         void (*post_select)(struct sched *s, struct task *t);
15         void (*event_handler)(struct task *t);
16         struct list_head pre_select_node;
17         struct list_head post_select_node;
18         char status[MAXLINE];
19 };
20
21 enum task_flags {
22         PRE_ADD_TAIL = 1,
23         POST_ADD_TAIL = 2,
24 };
25
26 void *register_task(struct task *t);
27 void unregister_task(struct task *t);
28 int sched(struct sched *s);
29 void init_sched(void);