1use crate::{arch::Trapframe, early_initcall, register_abi, syscall::syscall_handler};
9
10use super::AbiModule;
11
12#[derive(Default, Copy, Clone)]
13pub struct ScarletAbi;
14
15impl AbiModule for ScarletAbi {
16 fn name() -> &'static str {
17 "scarlet"
18 }
19
20 fn handle_syscall(&self, trapframe: &mut Trapframe) -> Result<usize, &'static str> {
21 syscall_handler(trapframe)
22 }
23}
24
25fn register_scarlet_abi() {
26 register_abi!(ScarletAbi);
27}
28
29early_initcall!(register_scarlet_abi);