wasmer_wasix/syscalls/wasix/
proc_signals_get.rs1use super::*;
2use crate::syscalls::*;
3
4#[instrument(level = "trace", skip_all, ret)]
11pub fn proc_signals_get<M: MemorySize>(
12 mut ctx: FunctionEnvMut<'_, WasiEnv>,
13 buf: WasmPtr<SignalDisposition, 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 signals = state.signals.lock().unwrap();
19
20 let buf = wasi_try_mem_ok!(buf.slice(&memory, wasi_try_ok!(to_offset::<M>(signals.len()))));
21
22 for (idx, (sig, act)) in signals.iter().enumerate() {
23 wasi_try_mem_ok!(buf.index(idx as u64).write(SignalDisposition {
24 sig: *sig,
25 disp: *act
26 }));
27 }
28
29 Ok(Errno::Success)
30}