summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/fs/fs.c20
-rw-r--r--kernel/include/comus/fs.h22
2 files changed, 42 insertions, 0 deletions
diff --git a/kernel/fs/fs.c b/kernel/fs/fs.c
index 763907f..7a8c93e 100644
--- a/kernel/fs/fs.c
+++ b/kernel/fs/fs.c
@@ -57,3 +57,23 @@ struct file *fs_find_file_rel(struct file *rel, char *rel_path)
panic("fs_find_file_rel NOT YET IMPLEMENTED");
}
+
+int disk_read(struct disk *disk, size_t offset, size_t len, uint8_t *buffer)
+{
+ (void) disk;
+ (void) offset;
+ (void) len;
+ (void) buffer;
+
+ panic("disk_read NOT YET IMPLEMENTED");
+}
+
+int disk_write(struct disk *disk, size_t offset, size_t len, uint8_t *buffer)
+{
+ (void) disk;
+ (void) offset;
+ (void) len;
+ (void) buffer;
+
+ panic("disk_write NOT YET IMPLEMENTED");
+}
diff --git a/kernel/include/comus/fs.h b/kernel/include/comus/fs.h
index 51550be..5a3ffd1 100644
--- a/kernel/include/comus/fs.h
+++ b/kernel/include/comus/fs.h
@@ -28,6 +28,28 @@ struct disk {
/// we then need drivers for ide and/or sata, ide is easier
};
+/**
+ * read data from a disk into a buffer
+ *
+ * @param disk - the disk to read from
+ * @param offset - the offset into the disk to read
+ * @param len - the length of the data to read into `buffer`
+ * @param buffer - the buffer to save data into
+ * @returns bytes read on success, negative fs error code in failure
+ */
+int disk_read(struct disk *disk, size_t offset, size_t len, uint8_t *buffer);
+
+/**
+ * write data from a disk into a buffer
+ *
+ * @param disk - the disk to write from
+ * @param offset - the offset into the disk to write
+ * @param len - the length of the data to write into `buffer`
+ * @param buffer - the buffer to read from
+ * @returns bytes written on success, negative fs error code in failure
+ */
+int disk_write(struct disk *disk, size_t offset, size_t len, uint8_t *buffer);
+
enum file_type {
// regular file
F_REG = 0,