]> mj.ucw.cz Git - libucw.git/blob - lib/fb-buffer.c
Added bit_array_assign(), replaced BIT_ARRAY_ALLOC by functions.
[libucw.git] / lib / fb-buffer.c
1 /*
2  *      UCW Library -- Fast Buffered I/O on Static Buffers
3  *
4  *      (c) 2003--2004 Martin Mares <mj@ucw.cz>
5  *
6  *      This software may be freely distributed and used according to the terms
7  *      of the GNU Lesser General Public License.
8  */
9
10 #include "lib/lib.h"
11 #include "lib/fastbuf.h"
12
13 static int
14 fbbuf_refill(struct fastbuf *f UNUSED)
15 {
16   return 0;
17 }
18
19 void
20 fbbuf_init_read(struct fastbuf *f, byte *buf, uns size, uns can_overwrite)
21 {
22   f->buffer = f->bptr = buf;
23   f->bstop = f->bufend = buf + size;
24   f->name = "fbbuf-read";
25   f->pos = size;
26   f->refill = fbbuf_refill;
27   f->spout = NULL;
28   f->seek = NULL;
29   f->close = NULL;
30   f->config = NULL;
31   f->can_overwrite_buffer = can_overwrite;
32 }
33
34 static void
35 fbbuf_spout(struct fastbuf *f UNUSED)
36 {
37   die("fbbuf: buffer overflow on write");
38 }
39
40 void
41 fbbuf_init_write(struct fastbuf *f, byte *buf, uns size)
42 {
43   f->buffer = f->bstop = f->bptr = buf;
44   f->bufend = buf + size;
45   f->name = "fbbuf-write";
46   f->pos = size;
47   f->refill = NULL;
48   f->spout = fbbuf_spout;
49   f->seek = NULL;
50   f->close = NULL;
51   f->config = NULL;
52   f->can_overwrite_buffer = 0;
53 }