diff options
author | Benji Dial <Benji3.141@gmail.com> | 2019-12-27 17:19:51 -0500 |
---|---|---|
committer | Benji Dial <Benji3.141@gmail.com> | 2019-12-27 17:19:51 -0500 |
commit | 58b5c8ba417fe99c01d9a48731b887ce434e797e (patch) | |
tree | a09f7d0a6543328d70f8c02be8a37c320be5ef71 /src/kernel/files.h | |
parent | 3f3f9a806dc63ad827fe28724dabe694f6e67f1e (diff) | |
download | portland-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.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 |