summaryrefslogtreecommitdiff
path: root/src/kernel/files.h
diff options
context:
space:
mode:
authorBenji Dial <Benji3.141@gmail.com>2019-12-27 17:19:51 -0500
committerBenji Dial <Benji3.141@gmail.com>2019-12-27 17:19:51 -0500
commit58b5c8ba417fe99c01d9a48731b887ce434e797e (patch)
treea09f7d0a6543328d70f8c02be8a37c320be5ef71 /src/kernel/files.h
parent3f3f9a806dc63ad827fe28724dabe694f6e67f1e (diff)
downloadportland-os-58b5c8ba417fe99c01d9a48731b887ce434e797e.tar.gz
lots of new stuff. new memory manager, some stuff on file plumbing
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