From 58b5c8ba417fe99c01d9a48731b887ce434e797e Mon Sep 17 00:00:00 2001 From: Benji Dial Date: Fri, 27 Dec 2019 17:19:51 -0500 Subject: lots of new stuff. new memory manager, some stuff on file plumbing --- src/kernel/files.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/kernel/files.h') diff --git a/src/kernel/files.h b/src/kernel/files.h index d9102ab..f199306 100644 --- a/src/kernel/files.h +++ b/src/kernel/files.h @@ -29,7 +29,30 @@ struct file_info { uint32_t position; }; +enum fs_format { + ISO9660 +}; + +enum pt_format { + NOT_PRESENT = 0, + UNKNOWN = 1, + DIRECT = 2, + MBR = 3, + GPT = 4 +}; + +struct drive_parts { + uint8_t format; + uint8_t n_partitions; + uint8_t partition_types[10]; + uint32_t partition_offsets[10]; + uint32_t partition_sizes[10]; + void *partition_cache[10]; +}; + +struct drive_parts part_info[26]; struct file_info file_table[65536]; +void set_working_drive(uint8_t drive, uint8_t part); uint16_t open_file(uint8_t *name); void close_file(uint16_t handle); uint32_t read_file(uint16_t handle, uint32_t length, void *buffer); @@ -37,5 +60,6 @@ void write_file(uint16_t handle, uint32_t length, void *buffer); void seek_file(uint16_t handle, int32_t by); uint32_t get_size(uint16_t handle); uint32_t read_line_file(uint16_t handle, uint32_t max, void *buffer); +void detect_disk_parts(uint8_t drive); #endif \ No newline at end of file -- cgit v1.2.3