MCPcopy Create free account
hub / github.com/PLSysSec/wave / trace_readv

Function trace_readv

src/os/mod.rs:86–104  ·  view source on GitHub ↗
(
    ctx: &mut VmCtx,
    fd: HostFd,
    iovs: &WasmIoVecs,
    iovcnt: usize,
)

Source from the content-addressed store, hash-verified

84#[ensures(ctx_safe(ctx))]
85#[ensures(trace_safe(trace, ctx))]
86pub fn trace_readv(
87 ctx: &mut VmCtx,
88 fd: HostFd,
89 iovs: &WasmIoVecs,
90 iovcnt: usize,
91) -> RuntimeResult<usize> {
92 //let slice = ctx.slice_mem_mut(ptr, cnt as u32);
93 // let mut native_iovs = ctx.translate_iovs(iovs, iovcnt);
94 // native_iovs
95 // let os_fd: usize = fd.to_raw();
96 // let r = os_readv(os_fd, &mut native_iovs, iovcnt);
97 // RuntimeError::from_syscall_ret(r)
98
99 let mut native_iovs = ctx.translate_iovs(iovs);
100 // native_iovs
101 let os_fd: usize = fd.to_raw();
102 let r = os_readv(os_fd, &mut native_iovs, iovcnt);
103 RuntimeError::from_syscall_ret(r)
104}
105
106#[with_ghost_var(trace: &mut Trace)]
107#[requires(ctx.fits_in_lin_mem(ptr, cnt as u32, trace))]

Callers 1

wasi_fd_readFunction · 0.85

Calls 2

translate_iovsMethod · 0.80
to_rawMethod · 0.80

Tested by

no test coverage detected