Added the `ratequeue' program.
[ashd.git] / lib / mtio.h
1 #ifndef _LIB_MTIO_H
2 #define _LIB_MTIO_H
3
4 #include <stdio.h>
5
6 #define EV_READ 1
7 #define EV_WRITE 2
8
9 struct stdiofd {
10     int fd;
11     int sock;
12     int timeout;
13     int rights, sendrights;
14 };
15
16 struct selected {
17     int fd, ev;
18 };
19
20 struct selected mblock(time_t to, int n, struct selected *spec);
21 int block(int fd, int ev, time_t to);
22 int ioloop(void);
23 void exitioloop(int status);
24 FILE *mtstdopen(int fd, int issock, int timeout, char *mode, struct stdiofd **infop);
25 struct bufio *mtbioopen(int fd, int issock, int timeout, char *mode, struct stdiofd **infop);
26 void mtiopipe(FILE **read, FILE **write);
27
28 #endif