aboutsummaryrefslogtreecommitdiff
path: root/system/libraries/os/cpu.zig
diff options
context:
space:
mode:
Diffstat (limited to 'system/libraries/os/cpu.zig')
-rw-r--r--system/libraries/os/cpu.zig19
1 files changed, 19 insertions, 0 deletions
diff --git a/system/libraries/os/cpu.zig b/system/libraries/os/cpu.zig
new file mode 100644
index 0000000..1f3ea53
--- /dev/null
+++ b/system/libraries/os/cpu.zig
@@ -0,0 +1,19 @@
+//! CPU information
+
+const sys = @import("sys");
+const types = @import("types.zig");
+
+const ERROR_RESULT: u64 = @bitCast(@as(i64, -1));
+
+pub fn info(buffer: []u8) ?[]const u8 {
+ const result = sys.syscall(.cpuinfo, .{
+ @intFromPtr(buffer.ptr),
+ buffer.len,
+ });
+
+ if (result == ERROR_RESULT or result == 0) {
+ return null;
+ }
+
+ return buffer[0..@intCast(result)];
+}