#define EV_READ 1
#define EV_WRITE 2
+struct stdiofd {
+ int fd;
+ int sock;
+ int timeout;
+};
+
int block(int fd, int ev, time_t to);
-void ioloop(void);
-FILE *mtstdopen(int fd, int issock, int timeout, char *mode);
+int ioloop(void);
+void exitioloop(int status);
+FILE *mtstdopen(int fd, int issock, int timeout, char *mode, struct stdiofd **infop);
+struct bufio *mtbioopen(int fd, int issock, int timeout, char *mode, struct stdiofd **infop);
+void mtiopipe(FILE **read, FILE **write);
#endif