(
ctx: &mut VmCtx,
fd: HostFd,
iovs: &WasmIoVecs,
iovcnt: usize,
offset: usize,
)
| 220 | #[ensures(ctx_safe(ctx))] |
| 221 | #[ensures(trace_safe(trace, ctx))] |
| 222 | pub fn trace_pwritev( |
| 223 | ctx: &mut VmCtx, |
| 224 | fd: HostFd, |
| 225 | iovs: &WasmIoVecs, |
| 226 | iovcnt: usize, |
| 227 | offset: usize, |
| 228 | ) -> RuntimeResult<usize> { |
| 229 | let native_iovs = ctx.translate_iovs(iovs); |
| 230 | // native_iovs |
| 231 | let os_fd: usize = fd.to_raw(); |
| 232 | let r = os_pwritev(os_fd, &native_iovs, iovcnt, offset); |
| 233 | RuntimeError::from_syscall_ret(r) |
| 234 | } |
| 235 | |
| 236 | #[with_ghost_var(trace: &mut Trace)] |
| 237 | #[requires(ctx.fits_in_lin_mem(ptr, cnt as u32, trace))] |
no test coverage detected