aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/syscall.zig4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/syscall.zig b/src/syscall.zig
index 32e8748..e3b54c9 100644
--- a/src/syscall.zig
+++ b/src/syscall.zig
@@ -135,12 +135,16 @@ fn threadId(proc: *const process.Info) usize {
return proc.thread_id;
}
+pub const DeviceError = error{KindNotUserManagable};
+
// devicesByKind(kind: hwinfo.DevKind, devices: [*]hwinfo.Dev, len: usize) !usize
fn devicesByKind(trap_frame: *const TrapFrame) !usize {
const kind: hwinfo.DevKind = @enumFromInt(trap_frame.general_purpose_registers[10]);
const devices: [*]hwinfo.Dev = @ptrFromInt(trap_frame.general_purpose_registers[11]);
const len = trap_frame.general_purpose_registers[12];
+ if (!kind.isUserManagable()) return DeviceError.KindNotUserManagable;
+
var i: usize = 0;
var devs = try hwinfo.byKind(kind);
while (try devs.next()) |dev| {