diff options
Diffstat (limited to 'include/base/io.h')
-rw-r--r-- | include/base/io.h | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/include/base/io.h b/include/base/io.h index 5d31282..22606ad 100644 --- a/include/base/io.h +++ b/include/base/io.h @@ -113,12 +113,12 @@ enum struct io·Header { int state, fd, flag; - struct{ - int in; /* negative number of bytes at end */ - int out; /* number of bytes at start */ - int ln; /* number of bytes after last readline */ - } off; - intptr pos, cap; /* position in file, capacity of buffer */ + int ilen; /* negative number of bytes at end of buffer */ + int olen; /* number of bytes at start of buffer */ + int line; /* number of bytes after last readline */ + int runesz; /* number of bytes of last getrune */ + int cap; /* size of buffer */ + intptr pos; /* position in file */ uchar *b,*g,*e; /* start, good bytes, end of byte pointers */ }; @@ -128,8 +128,29 @@ struct io·Buffer uchar bytes[io·BufLen+io·BufUngets]; }; -int bio·init(io·Buffer *io, int fd, int mode); -int bio·initcap(io·Header *io, int fd, int mode, int cap, uchar *buf); +int bio·open(char *path, int flag, io·Buffer *io); +int bio·openfd(int fd, int flag, io·Buffer *io); +int bio·close(io·Header *io); + +int bio·init(io·Buffer *io, int fd, int mode); +int bio·initcap(io·Header *io, int fd, int mode, int cap, uchar *buf); + +int bio·flush(io·Header *io); +intptr bio·read(io·Header *io, intptr len, void *buf); +void *bio·readuntil(io·Header *io, int delim); +intptr bio·write(io·Header *io, intptr len, void *buf); + +int bio·getc(io·Header *io); +rune bio·getr(io·Header *io); + +int bio·ungetc(io·Header *io); +rune bio·ungetr(io·Header *io); + +int bio·seek(io·Header *io, intptr offset, int whence, intptr *pos); +intptr bio·offset(io·Header *io); + +int bio·print(io·Header *io, char *fmt, ...); +int bio·vprint(io·Header *io, char *fmt, va_list args); /* basic os helpers */ /* XXX: find a better location for this */ |