wasmer_wasix/syscalls/wasix/
proc_signals_sizes_get.rs1use super::*;
2use crate::syscalls::*;
3
4#[instrument(level = "trace", skip_all, fields(signal_count = field::Empty), ret)]
11pub fn proc_signals_sizes_get<M: MemorySize>(
12 mut ctx: FunctionEnvMut<'_, WasiEnv>,
13 signal_count: WasmPtr<M::Offset, M>,
14) -> Result<Errno, WasiError> {
15 let env = ctx.data();
16 let (memory, mut state) = unsafe { env.get_memory_and_wasi_state(&ctx, 0) };
17
18 let signal_count = signal_count.deref(&memory);
19
20 let count_val: M::Offset = wasi_try_ok!(
21 state
22 .signals
23 .lock()
24 .unwrap()
25 .len()
26 .try_into()
27 .map_err(|_| Errno::Overflow)
28 );
29 wasi_try_mem_ok!(signal_count.write(count_val));
30
31 Span::current().record("signal_count", u64::try_from(count_val).unwrap());
32
33 Ok(Errno::Success)
34}