(
ctx: &mut VmCtx,
fd: HostFd,
iovs: &WasmIoVecs,
iovcnt: usize,
offset: usize,
)
| 143 | #[ensures(ctx_safe(ctx))] |
| 144 | #[ensures(trace_safe(trace, ctx))] |
| 145 | pub fn trace_preadv( |
| 146 | ctx: &mut VmCtx, |
| 147 | fd: HostFd, |
| 148 | iovs: &WasmIoVecs, |
| 149 | iovcnt: usize, |
| 150 | offset: usize, |
| 151 | ) -> RuntimeResult<usize> { |
| 152 | let native_iovs = ctx.translate_iovs(iovs); |
| 153 | // native_iovs |
| 154 | let os_fd: usize = fd.to_raw(); |
| 155 | let r = os_preadv(os_fd, &native_iovs, iovcnt, offset); |
| 156 | RuntimeError::from_syscall_ret(r) |
| 157 | } |
| 158 | |
| 159 | #[with_ghost_var(trace: &mut Trace)] |
| 160 | #[requires(ctx.fits_in_lin_mem(ptr, cnt as u32, trace))] |
no test coverage detected