#[ensures(two_effects!(old(trace), trace, effect!(FdAccess), effect!(PathAccessAt, os_fd)))]
(
ctx: &VmCtx,
dir_fd: HostFd,
path: HostPath,
mode: libc::mode_t,
)
| 394 | #[ensures(trace_safe(trace, ctx))] |
| 395 | // #[ensures(two_effects!(old(trace), trace, effect!(FdAccess), effect!(PathAccessAt, os_fd)))] |
| 396 | pub fn trace_mkdirat( |
| 397 | ctx: &VmCtx, |
| 398 | dir_fd: HostFd, |
| 399 | path: HostPath, |
| 400 | mode: libc::mode_t, |
| 401 | ) -> RuntimeResult<usize> { |
| 402 | let os_fd: usize = dir_fd.to_raw(); |
| 403 | // let os_path: Vec<u8> = pathname.into(); |
| 404 | let r = os_mkdirat(os_fd, path, mode); |
| 405 | RuntimeError::from_syscall_ret(r) |
| 406 | } |
| 407 | |
| 408 | #[with_ghost_var(trace: &mut Trace)] |
| 409 | #[requires(path_safe(&pathname, false))] |
no test coverage detected