gila/src/lib/syscall.rs
2025-03-29 00:44:54 -04:00

29 lines
893 B
Rust

// 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.
}