summaryrefslogtreecommitdiff
path: root/src/kernel/diskio.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/diskio.h')
-rw-r--r--src/kernel/diskio.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/kernel/diskio.h b/src/kernel/diskio.h
index 2f83864..0e16423 100644
--- a/src/kernel/diskio.h
+++ b/src/kernel/diskio.h
@@ -29,6 +29,11 @@ enum interface {
ATA
};
+#define N_INTERFACES 3
+
+typedef uint32_t (*const read_sectors_t)(uint8_t, uint32_t, uint32_t, void *);
+typedef uint32_t (*const write_sectors_t)(uint8_t, uint32_t, uint32_t, void *);
+
enum drive_flags {
SPUN = 0x01,
DISK_IN = 0x02,
@@ -45,8 +50,8 @@ struct drive_info {
struct drive_info drives[26];
-uint32_t read_sectors(uint8_t drive, uint32_t start, uint32_t count, void *buffer);
-uint32_t write_sectors(uint8_t drive, uint32_t start, uint32_t count, void *buffer);
+read_sectors_t get_read_sectors_function(uint8_t drive);
+write_sectors_t get_write_sectors_function(uint8_t drive);
void update_status(uint8_t drive);
#endif \ No newline at end of file