pub trait EvalContextExt<'mir, 'tcx: 'mir>: MiriInterpCxExt<'mir, 'tcx> {
Show 28 methods // Provided methods fn open( &mut self, args: &[OpTy<'tcx, Provenance>] ) -> InterpResult<'tcx, i32> { ... } fn fcntl( &mut self, args: &[OpTy<'tcx, Provenance>] ) -> InterpResult<'tcx, i32> { ... } fn close( &mut self, fd_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn handle_not_found<T: From<i32>>(&mut self) -> InterpResult<'tcx, T> { ... } fn read( &mut self, fd: i32, buf: Pointer<Option<Provenance>>, count: u64 ) -> InterpResult<'tcx, i64> { ... } fn write( &mut self, fd: i32, buf: Pointer<Option<Provenance>>, count: u64 ) -> InterpResult<'tcx, i64> { ... } fn lseek64( &mut self, fd: i32, offset: i128, whence: i32 ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn unlink( &mut self, path_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, i32> { ... } fn symlink( &mut self, target_op: &OpTy<'tcx, Provenance>, linkpath_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, i32> { ... } fn macos_fbsd_stat( &mut self, path_op: &OpTy<'tcx, Provenance>, buf_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn macos_fbsd_lstat( &mut self, path_op: &OpTy<'tcx, Provenance>, buf_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn macos_fbsd_fstat( &mut self, fd_op: &OpTy<'tcx, Provenance>, buf_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn linux_statx( &mut self, dirfd_op: &OpTy<'tcx, Provenance>, pathname_op: &OpTy<'tcx, Provenance>, flags_op: &OpTy<'tcx, Provenance>, mask_op: &OpTy<'tcx, Provenance>, statxbuf_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, i32> { ... } fn rename( &mut self, oldpath_op: &OpTy<'tcx, Provenance>, newpath_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, i32> { ... } fn mkdir( &mut self, path_op: &OpTy<'tcx, Provenance>, mode_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, i32> { ... } fn rmdir( &mut self, path_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, i32> { ... } fn opendir( &mut self, name_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn linux_readdir64( &mut self, dirp_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn macos_fbsd_readdir_r( &mut self, dirp_op: &OpTy<'tcx, Provenance>, entry_op: &OpTy<'tcx, Provenance>, result_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn closedir( &mut self, dirp_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, i32> { ... } fn ftruncate64( &mut self, fd: i32, length: i128 ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn fsync( &mut self, fd_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, i32> { ... } fn fdatasync( &mut self, fd_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, i32> { ... } fn sync_file_range( &mut self, fd_op: &OpTy<'tcx, Provenance>, offset_op: &OpTy<'tcx, Provenance>, nbytes_op: &OpTy<'tcx, Provenance>, flags_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn readlink( &mut self, pathname_op: &OpTy<'tcx, Provenance>, buf_op: &OpTy<'tcx, Provenance>, bufsize_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, i64> { ... } fn isatty( &mut self, miri_fd: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn realpath( &mut self, path_op: &OpTy<'tcx, Provenance>, processed_path_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, Scalar<Provenance>> { ... } fn mkstemp( &mut self, template_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, i32> { ... }
}

Provided Methods§

source

fn open(&mut self, args: &[OpTy<'tcx, Provenance>]) -> InterpResult<'tcx, i32>

source

fn fcntl(&mut self, args: &[OpTy<'tcx, Provenance>]) -> InterpResult<'tcx, i32>

source

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

source

fn handle_not_found<T: From<i32>>(&mut self) -> InterpResult<'tcx, T>

Function used when a handle is not found inside FileHandler. It returns Ok(-1)and sets the last OS error to libc::EBADF (invalid file descriptor). This function uses T: From<i32> instead of i32 directly because some fs functions return different integer types (like read, that returns an i64).

source

fn read( &mut self, fd: i32, buf: Pointer<Option<Provenance>>, count: u64 ) -> InterpResult<'tcx, i64>

source

fn write( &mut self, fd: i32, buf: Pointer<Option<Provenance>>, count: u64 ) -> InterpResult<'tcx, i64>

source

fn lseek64( &mut self, fd: i32, offset: i128, whence: i32 ) -> InterpResult<'tcx, Scalar<Provenance>>

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

fn macos_fbsd_readdir_r( &mut self, dirp_op: &OpTy<'tcx, Provenance>, entry_op: &OpTy<'tcx, Provenance>, result_op: &OpTy<'tcx, Provenance> ) -> InterpResult<'tcx, Scalar<Provenance>>

source

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

source

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

source

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

source

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

source

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

source

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

source

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

source

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

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'mir, 'tcx: 'mir> EvalContextExt<'mir, 'tcx> for MiriInterpCx<'mir, 'tcx>