diff options
author | Matthew Veety <mveety@mveety.com> | 2016-02-09 16:24:41 -0500 |
---|---|---|
committer | Matthew Veety <mveety@mveety.com> | 2016-02-09 16:24:41 -0500 |
commit | a54782d69b31f3eaeb77a8087016065790c200bb (patch) | |
tree | 5f2b06b172f5b58e39321e5d762a162a205cd178 /sys/include | |
parent | 9c3de0c87a00e09e8a51d7f6de461a0221c6409b (diff) |
Imported ngfs libgio. This is a library to create virtual file descriptors, similar to common lisp grey-streams or golang's io.Reader/io.Writer. Now 95% bug-free.
Diffstat (limited to 'sys/include')
-rw-r--r-- | sys/include/gio.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/sys/include/gio.h b/sys/include/gio.h new file mode 100644 index 000000000..825b57d80 --- /dev/null +++ b/sys/include/gio.h @@ -0,0 +1,24 @@ +#pragma lib "libgio.a" +#pragma src "/sys/src/libgio" + +typedef struct ReadWriter ReadWriter; + +struct ReadWriter { + RWLock; + int (*open)(ReadWriter*); + int (*close)(ReadWriter*); + long (*pread)(ReadWriter*, void*, long, vlong); + long (*pwrite)(ReadWriter*, void*, long, vlong); + void *aux; + u64int offset; + u64int length; +}; + +ReadWriter* getrdstruct(int); +int gopen(ReadWriter*, void*); +int gclose(int); +long gread(int, void*, long, vlong); +long gwrite(int, void*, long, vlong); +vlong gseek(int, vlong, int); +int fd2gio(int); + |