summaryrefslogtreecommitdiff
path: root/src/io/read_file.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/io/read_file.h')
-rw-r--r--src/io/read_file.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/io/read_file.h b/src/io/read_file.h
new file mode 100644
index 0000000..201ae5b
--- /dev/null
+++ b/src/io/read_file.h
@@ -0,0 +1,19 @@
+#pragma once
+
+#include <stddef.h>
+#include <stdio.h>
+
+enum mapping_type {
+ MT_MMAP,
+ MT_OWNED,
+};
+
+struct filebuf {
+ char *buf;
+ size_t sz;
+ enum mapping_type mapping_type;
+};
+
+struct filebuf *stream_to_filebuf(FILE *restrict stream);
+struct filebuf *file_to_filebuf(char *fname);
+void free_filebuf(struct filebuf *filebuf);