Skip to main content

EvalContextExt

Trait EvalContextExt 

Source
pub trait EvalContextExt<'tcx>: MiriInterpCxExt<'tcx> {
Show 34 methods // Provided methods fn open( &mut self, dirfd: Option<&OpTy<'tcx>>, path_raw: &OpTy<'tcx>, flag: &OpTy<'tcx>, varargs: Varargs<'tcx, '_>, ) -> InterpResult<'tcx, Scalar> { ... } fn lseek( &mut self, fd_num: i32, offset: i128, whence: i32, dest: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx> { ... } fn unlink(&mut self, path_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar> { ... } fn symlink( &mut self, target_op: &OpTy<'tcx>, linkpath_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn linkat( &mut self, oldfd_op: &OpTy<'tcx>, oldpath_op: &OpTy<'tcx>, newfd_op: &OpTy<'tcx>, newpath_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn stat( &mut self, path_op: &OpTy<'tcx>, buf_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn lstat( &mut self, path_op: &OpTy<'tcx>, buf_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn fstat( &mut self, fd_op: &OpTy<'tcx>, buf_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn fstatat( &mut self, dirfd_op: &OpTy<'tcx>, path_op: &OpTy<'tcx>, buf_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn linux_statx( &mut self, dirfd_op: &OpTy<'tcx>, pathname_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, mask_op: &OpTy<'tcx>, statxbuf_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn chmod( &mut self, path_op: &OpTy<'tcx>, mode_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn fchmod( &mut self, fd_op: &OpTy<'tcx>, mode_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn rename( &mut self, oldpath_op: &OpTy<'tcx>, newpath_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn mkdir( &mut self, path_op: &OpTy<'tcx>, mode_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn rmdir(&mut self, path_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar> { ... } fn opendir(&mut self, name_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar> { ... } fn readdir( &mut self, dirp_op: &OpTy<'tcx>, dest: &MPlaceTy<'tcx>, buf_type: &'static str, ) -> InterpResult<'tcx> { ... } fn dirfd( &mut self, dirp_op: &OpTy<'tcx>, dest: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx> { ... } fn closedir(&mut self, dirp_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar> { ... } fn ftruncate64( &mut self, fd_num: i32, length: i128, ) -> InterpResult<'tcx, Scalar> { ... } fn posix_fallocate( &mut self, fd_num: i32, offset: i64, len: i64, ) -> InterpResult<'tcx, Scalar> { ... } fn linux_fallocate( &mut self, fd: i32, mode: i32, offset: i64, size: i64, ) -> InterpResult<'tcx, Scalar> { ... } fn fallocate_impl( &self, fd_num: i32, offset: i64, len: i64, ) -> InterpResult<'tcx, Result<(), IoError>> { ... } fn fsync(&mut self, fd_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar> { ... } fn ffullsync_fd(&mut self, fd_num: i32) -> InterpResult<'tcx, Scalar> { ... } fn fdatasync(&mut self, fd_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar> { ... } fn futimens( &mut self, fd_op: &OpTy<'tcx>, times_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn utimensat( &mut self, dirfd_op: &OpTy<'tcx>, path_op: &OpTy<'tcx>, times_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn linux_sync_file_range( &mut self, fd_op: &OpTy<'tcx>, offset_op: &OpTy<'tcx>, nbytes_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn readlink( &mut self, pathname_op: &OpTy<'tcx>, buf_op: &OpTy<'tcx>, bufsize_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, i64> { ... } fn isatty(&mut self, miri_fd: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar> { ... } fn realpath( &mut self, path_op: &OpTy<'tcx>, processed_path_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn mkstemp( &mut self, template_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn linux_copy_file_range( &mut self, fd_in_op: &OpTy<'tcx>, off_in_op: &OpTy<'tcx>, fd_out_op: &OpTy<'tcx>, off_out_op: &OpTy<'tcx>, len_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, dest: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx> { ... }
}

Provided Methods§

Source

fn open( &mut self, dirfd: Option<&OpTy<'tcx>>, path_raw: &OpTy<'tcx>, flag: &OpTy<'tcx>, varargs: Varargs<'tcx, '_>, ) -> InterpResult<'tcx, Scalar>

Source

fn lseek( &mut self, fd_num: i32, offset: i128, whence: i32, dest: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx>

Source

fn linkat( &mut self, oldfd_op: &OpTy<'tcx>, oldpath_op: &OpTy<'tcx>, newfd_op: &OpTy<'tcx>, newpath_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn stat( &mut self, path_op: &OpTy<'tcx>, buf_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn lstat( &mut self, path_op: &OpTy<'tcx>, buf_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn fstat( &mut self, fd_op: &OpTy<'tcx>, buf_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn fstatat( &mut self, dirfd_op: &OpTy<'tcx>, path_op: &OpTy<'tcx>, buf_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn linux_statx( &mut self, dirfd_op: &OpTy<'tcx>, pathname_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, mask_op: &OpTy<'tcx>, statxbuf_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn chmod( &mut self, path_op: &OpTy<'tcx>, mode_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn fchmod( &mut self, fd_op: &OpTy<'tcx>, mode_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn rename( &mut self, oldpath_op: &OpTy<'tcx>, newpath_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn mkdir( &mut self, path_op: &OpTy<'tcx>, mode_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn rmdir(&mut self, path_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar>

Source

fn opendir(&mut self, name_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar>

Source

fn readdir( &mut self, dirp_op: &OpTy<'tcx>, dest: &MPlaceTy<'tcx>, buf_type: &'static str, ) -> InterpResult<'tcx>

Source

fn dirfd( &mut self, dirp_op: &OpTy<'tcx>, dest: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx>

Source

fn closedir(&mut self, dirp_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar>

Source

fn ftruncate64( &mut self, fd_num: i32, length: i128, ) -> InterpResult<'tcx, Scalar>

Source

fn posix_fallocate( &mut self, fd_num: i32, offset: i64, len: i64, ) -> InterpResult<'tcx, Scalar>

NOTE: According to the man page of possix_fallocate, it returns the error code instead of setting errno.

Source

fn linux_fallocate( &mut self, fd: i32, mode: i32, offset: i64, size: i64, ) -> InterpResult<'tcx, Scalar>

Source

fn fallocate_impl( &self, fd_num: i32, offset: i64, len: i64, ) -> InterpResult<'tcx, Result<(), IoError>>

Shared logic between posix_fallocate and linux_fallocate.

Source

fn fsync(&mut self, fd_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar>

Source

fn ffullsync_fd(&mut self, fd_num: i32) -> InterpResult<'tcx, Scalar>

Source

fn fdatasync(&mut self, fd_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar>

Source

fn futimens( &mut self, fd_op: &OpTy<'tcx>, times_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

futimens(fd, times): set fd’s access/modification times. times is [atime, mtime], or NULL to set both to now.

Source

fn utimensat( &mut self, dirfd_op: &OpTy<'tcx>, path_op: &OpTy<'tcx>, times_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

utimensat(dirfd, path, times, flags): like futimens, but for the file at path. With AT_SYMLINK_NOFOLLOW, a symlink at path is updated itself rather than its target.

Source

fn linux_sync_file_range( &mut self, fd_op: &OpTy<'tcx>, offset_op: &OpTy<'tcx>, nbytes_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn isatty(&mut self, miri_fd: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar>

Source

fn realpath( &mut self, path_op: &OpTy<'tcx>, processed_path_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn mkstemp(&mut self, template_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar>

Source

fn linux_copy_file_range( &mut self, fd_in_op: &OpTy<'tcx>, off_in_op: &OpTy<'tcx>, fd_out_op: &OpTy<'tcx>, off_out_op: &OpTy<'tcx>, len_op: &OpTy<'tcx>, flags_op: &OpTy<'tcx>, dest: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx>

Only supports null offset pointers, i.e. copying from and advancing the file positions.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'tcx> EvalContextExt<'tcx> for MiriInterpCx<'tcx>