diff options
Diffstat (limited to 'src/kernel/files.h')
-rw-r--r-- | src/kernel/files.h | 24 |
1 files changed, 24 insertions, 0 deletions
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 |