diff options
Diffstat (limited to 'sys/libn/mmap.c')
-rw-r--r-- | sys/libn/mmap.c | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/sys/libn/mmap.c b/sys/libn/mmap.c deleted file mode 100644 index b2c436c..0000000 --- a/sys/libn/mmap.c +++ /dev/null @@ -1,43 +0,0 @@ -#include <u.h> -#include <libn.h> - -#include <sys/mman.h> - -mmap·Reader -mmap·open(byte *filename) -{ - int fd; - int err; - void *buf; - io·Stream *s; - io·Stat st; - - s = io·open(filename, "r"); - fd = io·fd(s); - err = io·stat(s, &st); - if (err) { - errorf("file stat: error code %d", err); - goto ERROR; - } - - buf = mmap(nil, st.st_size, PROT_READ, MAP_SHARED, fd, 0); - if (!buf) { - errorf("mmap: failed"); - goto ERROR; - } - // NOTE: posix systems require that reference kept to mmap file after fd is closed - io·close(s); - return (mmap·Reader){.len=st.st_size, .buf=buf}; - -ERROR: - io·close(s); - return (mmap·Reader){ 0 }; -} - -error -mmap·close(mmap·Reader rdr) -{ - munmap(rdr.buf, rdr.len); - - return 0; -} |