diff options
Diffstat (limited to 'include/base')
-rw-r--r-- | include/base/io.h | 37 | ||||
-rw-r--r-- | include/base/mem.h | 8 | ||||
-rw-r--r-- | include/base/utf.h | 2 |
3 files changed, 35 insertions, 12 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 */ diff --git a/include/base/mem.h b/include/base/mem.h index 3f1b6e1..6f14c8e 100644 --- a/include/base/mem.h +++ b/include/base/mem.h @@ -57,7 +57,9 @@ void mem·freearena(mem·Arena *A); extern mem·Allocator mem·ArenaAllocator; -/* generalized memxxx functions */ -void memset64(void *dst, uint64 val, uintptr size); - +/* mem functions */ +int mem·move(void *dst, void *src, uintptr size); +void *mem·findc(void *dst, uintptr len, int c); +int mem·set(void *dst, int val, uintptr size); +int mem·set64(void *dst, uint64 val, uintptr size); diff --git a/include/base/utf.h b/include/base/utf.h index 846296c..0419d1a 100644 --- a/include/base/utf.h +++ b/include/base/utf.h @@ -23,7 +23,7 @@ int utf8·decodeprev(char *s, rune *r); // decode 1 rune from char stream, r char *utf8·find(char *s, rune); // find rune in char stream char *utf8·findlast(char* s, rune); // find last rune in char stream -int utf8·canfit(char *, int); // XXX: odd function... +int utf8·fullrune(char *, int); // XXX: odd function... int utf8·isalpha(rune r); int utf8·isdigit(rune r); |