1pub trait ToSyscallU64 {
8 fn as_syscall_u64(&self) -> u64;
10}
11
12impl ToSyscallU64 for () {
13 fn as_syscall_u64(&self) -> u64 {
15 0u64
16 }
17}
18
19
20pub type SyscallResult<T> = Result<T, SyscallError>;
22
23pub trait SyscallResultTrait {
25 fn as_u32(&self) -> u32;
27}
28impl<T> SyscallResultTrait for SyscallResult<T> {
29 fn as_u32(&self) -> u32 {
30 match self {
31 Ok(_) => 0,
32 Err(e) => *e as u32
33 }
34 }
35}
36
37#[derive(Copy, Clone)]
38#[repr(u32)]
39pub enum SyscallError {
40 InvalidSyscall = 1,
41 InvalidArgument = 2,
42 InternalError = 3,
43 BadAddress = 4
44}