diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/syscall.zig | 4 |
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| { |