-extern size_t dsi_stream_write __P((DSI *, void *, const size_t));
-extern size_t dsi_stream_read __P((DSI *, void *, const size_t));
-extern int dsi_stream_send __P((DSI *, void *, size_t));
-extern int dsi_stream_receive __P((DSI *, void *, const size_t, size_t *));
+extern ssize_t dsi_stream_write (DSI *, void *, const size_t, const int mode);
+extern size_t dsi_stream_read (DSI *, void *, const size_t);
+extern int dsi_stream_send (DSI *, void *, size_t);
+extern int dsi_stream_receive (DSI *, void *, const size_t, size_t *);
+
+#ifdef WITH_SENDFILE
+extern ssize_t dsi_stream_read_file(DSI *, int, off_t off, const size_t len);
+#endif