wasmer_wasix/syscalls/wasix/
sock_get_opt_flag.rs1use super::*;
2use crate::syscalls::*;
3
4#[instrument(level = "trace", skip_all, fields(%sock, %opt), ret)]
13pub fn sock_get_opt_flag<M: MemorySize>(
14 mut ctx: FunctionEnvMut<'_, WasiEnv>,
15 sock: WasiFd,
16 opt: Sockoption,
17 ret_flag: WasmPtr<Bool, M>,
18) -> Errno {
19 let option: crate::net::socket::WasiSocketOption = opt.into();
20 let flag = wasi_try!(__sock_actor(
21 &mut ctx,
22 sock,
23 Rights::empty(),
24 |socket, _| socket.get_opt_flag(option)
25 ));
26
27 let env = ctx.data();
28 let memory = unsafe { env.memory_view(&ctx) };
29 let flag = match flag {
30 false => Bool::False,
31 true => Bool::True,
32 };
33
34 wasi_try_mem!(ret_flag.write(&memory, flag));
35
36 Errno::Success
37}