summaryrefslogtreecommitdiff
path: root/kernel/include/comus/fs.h
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-04-04 12:12:22 -0400
committerFreya Murphy <freya@freyacat.org>2025-04-04 12:12:22 -0400
commitdfc326fa4856b6dfecbb719ab711dc08bcd1a66a (patch)
tree65467baeb1ff4764c805d187938ef737f68ed64b /kernel/include/comus/fs.h
parentgeneric file system structures (diff)
downloadcomus-dfc326fa4856b6dfecbb719ab711dc08bcd1a66a.tar.gz
comus-dfc326fa4856b6dfecbb719ab711dc08bcd1a66a.tar.bz2
comus-dfc326fa4856b6dfecbb719ab711dc08bcd1a66a.zip
adde disk read/write functions
Diffstat (limited to '')
-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,