(
ctx: &mut VmCtx,
fd: HostFd,
iovs: &WasmIoVecs,
iovcnt: usize,
)
| 84 | #[ensures(ctx_safe(ctx))] |
| 85 | #[ensures(trace_safe(trace, ctx))] |
| 86 | pub 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))] |
no test coverage detected