// Copyright (c) 2025 shibedrill // SPDX-License-Identifier: GPL-3.0-or-later #![allow(dead_code)] // TODO: Implement a nice API for system calls. // I don't want to have to define the argument/return value registers twice // per architecture. How do I make this work? pub enum SyscallArgs { Args0(), Args1(usize), Args2(usize, usize), Args3(usize, usize, usize), Args4(usize, usize, usize, usize), Args5(usize, usize, usize, usize, usize), Args6(usize, usize, usize, usize, usize, usize), } #[repr(usize)] pub enum SyscallError { Ok, // No error. Unspecified, // Unspecified error occurred. SyscallNotExist, // System call does not exist. ProcessNotExist, // The process mentioned does not exist. PermissionDenied, // The process lacks capabilities. Aborted, // The kernel gave up on a blocking request. }