aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/base/io.h37
-rw-r--r--include/base/mem.h8
-rw-r--r--include/base/utf.h2
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);