summaryrefslogtreecommitdiff
path: root/src/kernel/files.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/files.h')
-rw-r--r--src/kernel/files.h24
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