summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-08-18 03:08:04 +0000
committerIan Moffett <ian@osmora.org>2025-08-18 03:08:40 +0000
commita834a3a7774a9db53664e64422f82f2de50c8712 (patch)
tree30a1d33ef9d67bdb7f8837b0df744b5d20bf375f
parent8a64c7d6a3ff2cc0cf87ba47cbbe1c4fe3aa170e (diff)
libc: disk: Implement disk_query() interface
Introduce a libc disk_query() to invoke the query operation of specific disks via __disk_io() Signed-off-by: Ian Moffett <ian@osmora.org>
-rw-r--r--lib/libc/src/hyra/disk.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/libc/src/hyra/disk.c b/lib/libc/src/hyra/disk.c
index c3bf2ef..c7c7930 100644
--- a/lib/libc/src/hyra/disk.c
+++ b/lib/libc/src/hyra/disk.c
@@ -104,3 +104,22 @@ disk_read(diskid_t id, blkoff_t blk, void *buf, size_t len)
disk_param_init(buf, blk, len, &param);
return __disk_io(id, DISK_IO_READ, &param);
}
+
+/*
+ * Query information from a specific disk
+ *
+ * @id: ID of disk to query from
+ * @res: Resulting information goes here
+ */
+int
+disk_query(diskid_t id, struct disk_info *res)
+{
+ struct disk_param param;
+
+ if (res == NULL) {
+ return -EINVAL;
+ }
+
+ disk_param_init(res, 0, sizeof(*res), &param);
+ return __disk_io(id, DISK_IO_QUERY, &param);
+}