X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Ffastbuf.h;h=b5aa567ebb72dc0213c5fb67f3b041c2fa2dc12f;hb=e34560a76a7af3fb428604e4da3cd14cfd1bf454;hp=922798ff183515a3d102191c6e614569373088e1;hpb=3a4df62d817e0e6c854f44dfb5b78ef3eac953b9;p=libucw.git diff --git a/lib/fastbuf.h b/lib/fastbuf.h index 922798ff..b5aa567e 100644 --- a/lib/fastbuf.h +++ b/lib/fastbuf.h @@ -88,6 +88,9 @@ struct fastbuf *bfdopen(int fd, uns buflen); struct fastbuf *bfdopen_shared(int fd, uns buflen); void bfilesync(struct fastbuf *b); +#define TEMP_FILE_NAME_LEN 256 +void temp_file_name(byte *name); + /* FastIO on in-memory streams */ struct fastbuf *fbmem_create(unsigned blocksize); /* Create stream and return its writing fastbuf */ @@ -97,6 +100,14 @@ struct fastbuf *fbmem_clone_read(struct fastbuf *); /* Create reading fastbuf */ struct fastbuf *bopen_mm(byte *name, uns mode); +/* FastIO on files opened with O_DIRECT (see fb-direct.c for description) */ + +struct asio_queue; +struct fastbuf *fbdir_open(byte *name, uns mode, struct asio_queue *io_queue); +struct fastbuf *fbdir_open_try(byte *name, uns mode, struct asio_queue *io_queue); +struct fastbuf *fbdir_open_fd(int fd, struct asio_queue *io_queue); +struct fastbuf *fbdir_open_tmp(struct asio_queue *io_queue); + /* FastI on file descriptors with limit */ struct fastbuf *bopen_limited_fd(int fd, uns bufsize, uns limit); @@ -399,7 +410,7 @@ static inline int bskip(struct fastbuf *f, uns len) return bskip_slow(f, len); } -/* I/O on addr_int_t */ +/* I/O on uintptr_t */ #ifdef CPU_64BIT_POINTERS #define bputa(x,p) bputq(x,p)