Trait miri::shims::unix::fd::EvalContextExt

source ·
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§

source

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

source

fn dup2(&mut self, old_fd: i32, new_fd: i32) -> InterpResult<'tcx, Scalar>

source

fn flock(&mut self, fd: i32, op: i32) -> InterpResult<'tcx, Scalar>

source

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

source

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

source

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).

source

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.

source

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

Object Safety§

This trait is not object safe.

Implementors§

source§

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