bdirect_write already works). This allows partial processing of
read data.
}
int
-bdirect_read(struct fastbuf *f, byte **buf)
+bdirect_read_prepare(struct fastbuf *f, byte **buf)
{
int len;
return EOF;
*buf = f->bptr;
len = f->bstop - f->bptr;
- f->bptr += len;
return len;
}
+void
+bdirect_read_commit(struct fastbuf *f, byte *pos)
+{
+ f->bptr = pos;
+}
+
int
bdirect_write_prepare(struct fastbuf *f, byte **buf)
{
/* Direct I/O on buffers */
-int bdirect_read(struct fastbuf *f, byte **buf);
+int bdirect_read_prepare(struct fastbuf *f, byte **buf);
+void bdirect_read_commit(struct fastbuf *f, byte *pos);
int bdirect_write_prepare(struct fastbuf *f, byte **buf);
void bdirect_write_commit(struct fastbuf *f, byte *pos);