(ctx: &mut VmCtx, v_fd: u32, iovs: u32, iovcnt: u32)
| 116 | #[ensures(ctx_safe(ctx))] |
| 117 | #[ensures(trace_safe(trace, ctx))] |
| 118 | pub fn wasi_fd_read(ctx: &mut VmCtx, v_fd: u32, iovs: u32, iovcnt: u32) -> RuntimeResult<u32> { |
| 119 | let fd = ctx.fdmap.fd_to_native(v_fd)?; |
| 120 | let wasm_iovs = parse_iovs(ctx, iovs, iovcnt); |
| 121 | unwrap_result!(wasm_iovs); |
| 122 | |
| 123 | let result = trace_readv(ctx, fd, &wasm_iovs, iovcnt as usize)?; |
| 124 | Ok(result as u32) |
| 125 | } |
| 126 | |
| 127 | #[with_ghost_var(trace: &mut Trace)] |
| 128 | #[external_methods(push)] |
no test coverage detected