summaryrefslogtreecommitdiff
path: root/kernel/include
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include')
-rw-r--r--kernel/include/comus/fs.h22
1 files changed, 22 insertions, 0 deletions
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,