From f6686f1e86927f038086023362251ebe78ce5ad6 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Wed, 2 Jun 2021 17:26:08 +0200 Subject: Init repo with basic BG framebuffer renderer --- src/filesystem.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/filesystem.h (limited to 'src/filesystem.h') 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 @@ +#ifndef FILESYSTEM_H +#define FILESYSTEM_H + +#include "common.h" + +typedef enum { + FS_OPEN_READ = (1 << 0), + FS_OPEN_WRITE = (1 << 1), + FS_OPEN_APPEND = (1 << 2), +} OpenMode; + +typedef struct File { + // File index offset. + u8 index; + // The offset within the file. Must always be valid, and so the File struct + // shouldn't be manaully modified unless we are sure we know what we are + // doing. + u16 offset; + // The mode of this file (read/write/append). + OpenMode mode; +} File; + +typedef enum { + FS_SEEK_SET, + FS_SEEK_CUR, + FS_SEEK_END, +} SeekMode; + +void fs_init(void); +File fs_open_file(char *name, OpenMode mode); +u16 fs_file_size(File *file); +int fs_seek(File *file, int offset, SeekMode mode); +u16 fs_write(u8 *src, u16 n_bytes, File *file); +u16 fs_read(u8 *dst, u16 n_bytes, File *file); + +#endif // FILESYSTEM_H -- cgit v1.2.1