aboutsummaryrefslogtreecommitdiffstats
path: root/src/filesystem.h
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-06-02 17:26:08 +0200
committerBad Diode <bd@badd10de.dev>2021-06-02 17:26:08 +0200
commitf6686f1e86927f038086023362251ebe78ce5ad6 (patch)
treed196fc1c32c55442a2ac75d4ce046b1c0e0d6d48 /src/filesystem.h
downloadstepper-f6686f1e86927f038086023362251ebe78ce5ad6.tar.gz
stepper-f6686f1e86927f038086023362251ebe78ce5ad6.zip
Init repo with basic BG framebuffer renderer
Diffstat (limited to 'src/filesystem.h')
-rw-r--r--src/filesystem.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/filesystem.h b/src/filesystem.h
new file mode 100644
index 0000000..d50e5e7
--- /dev/null
+++ b/src/filesystem.h
@@ -0,0 +1,36 @@
1#ifndef FILESYSTEM_H
2#define FILESYSTEM_H
3
4#include "common.h"
5
6typedef enum {
7 FS_OPEN_READ = (1 << 0),
8 FS_OPEN_WRITE = (1 << 1),
9 FS_OPEN_APPEND = (1 << 2),
10} OpenMode;
11
12typedef struct File {
13 // File index offset.
14 u8 index;
15 // The offset within the file. Must always be valid, and so the File struct
16 // shouldn't be manaully modified unless we are sure we know what we are
17 // doing.
18 u16 offset;
19 // The mode of this file (read/write/append).
20 OpenMode mode;
21} File;
22
23typedef enum {
24 FS_SEEK_SET,
25 FS_SEEK_CUR,
26 FS_SEEK_END,
27} SeekMode;
28
29void fs_init(void);
30File fs_open_file(char *name, OpenMode mode);
31u16 fs_file_size(File *file);
32int fs_seek(File *file, int offset, SeekMode mode);
33u16 fs_write(u8 *src, u16 n_bytes, File *file);
34u16 fs_read(u8 *dst, u16 n_bytes, File *file);
35
36#endif // FILESYSTEM_H