diff options
Diffstat (limited to 'src/kernel/drive.h')
-rw-r--r-- | src/kernel/drive.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/kernel/drive.h b/src/kernel/drive.h index 8eb6955..b02b4ad 100644 --- a/src/kernel/drive.h +++ b/src/kernel/drive.h @@ -4,7 +4,7 @@ #include <stdbool.h> #include <stdint.h> -typedef uint8_t drive_file_id_t; +typedef uint8_t file_id_t; typedef uint8_t fs_id_t; typedef uint8_t drive_id_t; @@ -22,23 +22,26 @@ struct drive { char *drive_type; char *fs_type; - uint8_t (*read_sectors) (const struct drive *d, uint32_t start, uint32_t count, void *buffer); - uint8_t (*write_sectors)(const struct drive *d, uint32_t start, uint32_t count, const void *buffer); + uint32_t (*read_sectors) (const struct drive *d, uint32_t start, uint32_t count, void *buffer); + uint32_t (*write_sectors)(const struct drive *d, uint32_t start, uint32_t count, const void *buffer); + void (*ready) (const struct drive *d); + void (*done) (const struct drive *d); uint32_t n_sectors; drive_id_t drive_id; - drive_file_id_t (*get_file) (const struct drive *d, const char *path); - void (*free_file) (const struct drive *d, drive_file_id_t fid); - void (*load_sector) (const struct drive *d, drive_file_id_t fid, uint32_t sector, void *at); - uint32_t (*get_file_length) (const struct drive *d, drive_file_id_t fid); - uint32_t (*enumerate_dir) (const struct drive *d, const char *path, struct directory_content_info *info, uint32_t max); - uint32_t (*get_free_sectors)(const struct drive *d); + file_id_t (*get_file) (const struct drive *d, const char *path); + void (*free_file) (const struct drive *d, file_id_t fid); + void (*load_sector) (const struct drive *d, file_id_t fid, uint32_t sector, void *at); + uint32_t (*get_file_length) (const struct drive *d, file_id_t fid); + uint32_t (*enumerate_dir) (const struct drive *d, const char *path, struct directory_content_info *info, uint32_t max); + uint32_t (*get_free_sectors)(const struct drive *d); fs_id_t fs_id; }; extern uint8_t n_drives; extern struct drive drives[MAX_DRIVES]; +void init_drives(); void commit_drive(struct drive data); #endif
\ No newline at end of file |