-int select_fd PARAMS ((int, double, int));
-int test_socket_open PARAMS ((int));
-
-typedef int (*xreader_t) PARAMS ((int, char *, int, void *));
-typedef int (*xwriter_t) PARAMS ((int, char *, int, void *));
-typedef int (*xpoller_t) PARAMS ((int, double, int, void *));
-typedef void (*xcloser_t) PARAMS ((int, void *));
-void register_extended PARAMS ((int,
- xreader_t, xwriter_t, xpoller_t, xcloser_t,
- void *));
-
-int xread PARAMS ((int, char *, int, double));
-int xwrite PARAMS ((int, char *, int, double));
-void xclose PARAMS ((int));
+int select_fd (int, double, int);
+bool test_socket_open (int);
+
+struct transport_implementation {
+ int (*reader) (int, char *, int, void *);
+ int (*writer) (int, char *, int, void *);
+ int (*poller) (int, double, int, void *);
+ int (*peeker) (int, char *, int, void *);
+ const char *(*errstr) (int, void *);
+ void (*closer) (int, void *);
+};
+
+void fd_register_transport (int, struct transport_implementation *, void *);
+void *fd_transport_context (int);
+int fd_read (int, char *, int, double);
+int fd_write (int, char *, int, double);
+int fd_peek (int, char *, int, double);
+const char *fd_errstr (int);
+void fd_close (int);
+