aboutsummaryrefslogtreecommitdiff
path: root/system/libraries/os/disk.zig
diff options
context:
space:
mode:
Diffstat (limited to 'system/libraries/os/disk.zig')
-rw-r--r--system/libraries/os/disk.zig25
1 files changed, 25 insertions, 0 deletions
diff --git a/system/libraries/os/disk.zig b/system/libraries/os/disk.zig
new file mode 100644
index 0000000..9a43c26
--- /dev/null
+++ b/system/libraries/os/disk.zig
@@ -0,0 +1,25 @@
+//! Disk information
+
+const sys = @import("sys");
+const types = @import("types.zig");
+
+const ERROR_RESULT: u64 = @bitCast(@as(i64, -1));
+
+pub fn info() ?types.DiskInfo {
+ var total: u64 = 0;
+ var used: u64 = 0;
+
+ const result = sys.syscall(.diskinfo, .{
+ @intFromPtr(&total),
+ @intFromPtr(&used),
+ });
+
+ if (result == ERROR_RESULT) {
+ return null;
+ }
+
+ return types.DiskInfo{
+ .total = total,
+ .used = used,
+ };
+}