From 29478baf24532391cd94bd08d94cf867dee976e6 Mon Sep 17 00:00:00 2001 From: James Barnett Date: Sun, 6 Oct 2019 18:39:36 +0100 Subject: Start on ram backed filesystem --- os/filesystem/ramfs.c | 27 +++++++++++++++++++++++++++ os/filesystem/ramfs.h | 10 ++++++++++ 2 files changed, 37 insertions(+) create mode 100644 os/filesystem/ramfs.c create mode 100644 os/filesystem/ramfs.h (limited to 'os/filesystem') diff --git a/os/filesystem/ramfs.c b/os/filesystem/ramfs.c new file mode 100644 index 0000000..0c0fdff --- /dev/null +++ b/os/filesystem/ramfs.c @@ -0,0 +1,27 @@ +#include "ramfs.h" +#include "../../kernel/gpu/text_mode/display.h" + +#include "../stdlib/sdtlib.h" + +#define RAMDISK_SIZE 102400 // 100 blocks +#define BLOCK_SIZE 1024 +#define MAX_FILES 128 // fixed size until mem management done + +unsigned char ramdisk[RAMDISK_SIZE]; + +File_t files[MAX_FILES]; +int tip_file_idx = -1; + +File_t* ramfs_list_files() { + return files; +} + +int ramfs_get_tip_file_idx() { + return tip_file_idx; +} + +File_t ramfs_create_file(unsigned char *filename) { + int i = ++tip_file_idx; + strcpy(filename, files[i].name); + return files[i]; +} diff --git a/os/filesystem/ramfs.h b/os/filesystem/ramfs.h new file mode 100644 index 0000000..c0dd147 --- /dev/null +++ b/os/filesystem/ramfs.h @@ -0,0 +1,10 @@ +typedef struct +{ + char name[128]; // 128 max filename lentgh + int start_addr; + int end_addr; +} File_t; + +File_t ramfs_create_file(unsigned char * filename); +File_t* ramfs_list_files(); +int ramfs_get_tip_file_idx(); \ No newline at end of file -- cgit v1.2.3