pub trait EvalContextExt<'tcx>: MiriInterpCxExt<'tcx> {
// Provided methods
fn dup(&mut self, old_fd: i32) -> InterpResult<'tcx, Scalar> { ... }
fn dup2(&mut self, old_fd: i32, new_fd: i32) -> InterpResult<'tcx, Scalar> { ... }
fn flock(&mut self, fd: i32, op: i32) -> InterpResult<'tcx, Scalar> { ... }
fn fcntl(&mut self, args: &[OpTy<'tcx>]) -> InterpResult<'tcx, Scalar> { ... }
fn close(&mut self, fd_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar> { ... }
fn fd_not_found<T: From<i32>>(&mut self) -> InterpResult<'tcx, T> { ... }
fn read(
&mut self,
fd: i32,
buf: Pointer,
count: u64,
offset: Option<i128>,
) -> InterpResult<'tcx, Scalar> { ... }
fn write(
&mut self,
fd: i32,
buf: Pointer,
count: u64,
offset: Option<i128>,
) -> InterpResult<'tcx, Scalar> { ... }
}
Provided Methods§
fn dup(&mut self, old_fd: i32) -> InterpResult<'tcx, Scalar>
fn dup2(&mut self, old_fd: i32, new_fd: i32) -> InterpResult<'tcx, Scalar>
fn flock(&mut self, fd: i32, op: i32) -> InterpResult<'tcx, Scalar>
fn fcntl(&mut self, args: &[OpTy<'tcx>]) -> InterpResult<'tcx, Scalar>
fn close(&mut self, fd_op: &OpTy<'tcx>) -> InterpResult<'tcx, Scalar>
sourcefn fd_not_found<T: From<i32>>(&mut self) -> InterpResult<'tcx, T>
fn fd_not_found<T: From<i32>>(&mut self) -> InterpResult<'tcx, T>
Function used when a file descriptor does not exist. 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
).
sourcefn read(
&mut self,
fd: i32,
buf: Pointer,
count: u64,
offset: Option<i128>,
) -> InterpResult<'tcx, Scalar>
fn read( &mut self, fd: i32, buf: Pointer, count: u64, offset: Option<i128>, ) -> InterpResult<'tcx, Scalar>
Read data from fd
into buffer specified by buf
and count
.
If offset
is None
, reads data from current cursor position associated with fd
and updates cursor position on completion. Otherwise, reads from the specified offset
and keeps the cursor unchanged.
fn write( &mut self, fd: i32, buf: Pointer, count: u64, offset: Option<i128>, ) -> InterpResult<'tcx, Scalar>
Object Safety§
This trait is not object safe.