diff options
Diffstat (limited to 'sys/libn/bufio.c')
-rw-r--r-- | sys/libn/bufio.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/sys/libn/bufio.c b/sys/libn/bufio.c new file mode 100644 index 0000000..6b15760 --- /dev/null +++ b/sys/libn/bufio.c @@ -0,0 +1,33 @@ +#include <u.h> +#include <libn.h> + +enum +{ + BUF·size = 8 * 2048, + BUF·ungets = 8, + + BUF·bad = -2, + BUF·eof = -1, + + BUF·inactive = 0, + BUF·rdractive, + BUF·wtractive, + + BUF·END, +} bmode; + +typedef struct Buffer +{ + uint8 state; + vlong off; + vlong size; + + byte *bbuf, *ebuf; + byte b[BUF·size + BUF·ungets]; +} Buffer; + +struct bufio·Stream +{ + Stream *s; + Buffer buf; +}; |