wasmer_wasix/syscalls/wasix/
port_mac.rs1use super::*;
2use crate::syscalls::*;
3
4#[instrument(level = "trace", skip_all, fields(max = field::Empty), ret)]
7pub fn port_mac<M: MemorySize>(
8 mut ctx: FunctionEnvMut<'_, WasiEnv>,
9 ret_mac: WasmPtr<__wasi_hardwareaddress_t, M>,
10) -> Result<Errno, WasiError> {
11 WasiEnv::do_pending_operations(&mut ctx)?;
12
13 let mut env = ctx.data();
14 let mut memory = unsafe { env.memory_view(&ctx) };
15
16 let net = env.net().clone();
17 let mac = wasi_try_ok!(__asyncify(&mut ctx, None, async {
18 net.mac().await.map_err(net_error_into_wasi_err)
19 })?);
20 let env = ctx.data();
21 let memory = unsafe { env.memory_view(&ctx) };
22
23 Span::current().record("mac", hex::encode(mac.as_ref()).as_str());
24
25 let mac = __wasi_hardwareaddress_t { octs: mac };
26 wasi_try_mem_ok!(ret_mac.write(&memory, mac));
27 Ok(Errno::Success)
28}