fluentbase_runtime/syscall_handler/host/
exit.rs1use crate::RuntimeContext;
2use fluentbase_types::ExitCode;
3use rwasm::{StoreTr, TrapCode, Value};
4
5pub fn syscall_exit_handler(
6 caller: &mut impl StoreTr<RuntimeContext>,
7 params: &[Value],
8 _result: &mut [Value],
9) -> Result<(), TrapCode> {
10 let exit_code = params[0].i32().unwrap();
11 syscall_exit_impl(caller.data_mut(), ExitCode::from(exit_code)).unwrap_err();
12 Err(TrapCode::ExecutionHalted)
13}
14
15pub fn syscall_exit_impl(ctx: &mut RuntimeContext, exit_code: ExitCode) -> Result<(), ExitCode> {
16 ctx.execution_result.exit_code = exit_code.into_i32();
17 Err(ExitCode::Ok)
18}