pub trait FileDescription: Debug + Any {
// Required method
fn name(&self) -> &'static str;
// Provided methods
fn read<'tcx>(
&self,
_self_ref: &FileDescriptionRef,
_communicate_allowed: bool,
_ptr: Pointer,
_len: usize,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx> { ... }
fn write<'tcx>(
&self,
_self_ref: &FileDescriptionRef,
_communicate_allowed: bool,
_ptr: Pointer,
_len: usize,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx> { ... }
fn pread<'tcx>(
&self,
_communicate_allowed: bool,
_offset: u64,
_ptr: Pointer,
_len: usize,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx> { ... }
fn pwrite<'tcx>(
&self,
_communicate_allowed: bool,
_ptr: Pointer,
_len: usize,
_offset: u64,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx> { ... }
fn seek<'tcx>(
&self,
_communicate_allowed: bool,
_offset: SeekFrom,
) -> InterpResult<'tcx, Result<u64>> { ... }
fn close<'tcx>(
self: Box<Self>,
_communicate_allowed: bool,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx, Result<()>> { ... }
fn flock<'tcx>(
&self,
_communicate_allowed: bool,
_op: FlockOp,
) -> InterpResult<'tcx, Result<()>> { ... }
fn is_tty(&self, _communicate_allowed: bool) -> bool { ... }
fn get_epoll_ready_events<'tcx>(
&self,
) -> InterpResult<'tcx, EpollReadyEvents> { ... }
}
Expand description
Represents an open file description.
Required Methods§
Provided Methods§
Sourcefn read<'tcx>(
&self,
_self_ref: &FileDescriptionRef,
_communicate_allowed: bool,
_ptr: Pointer,
_len: usize,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx>
fn read<'tcx>( &self, _self_ref: &FileDescriptionRef, _communicate_allowed: bool, _ptr: Pointer, _len: usize, _dest: &MPlaceTy<'tcx>, _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx>
Reads as much as possible into the given buffer ptr
.
len
indicates how many bytes we should try to read.
dest
is where the return value should be stored: number of bytes read, or -1
in case of error.
Sourcefn write<'tcx>(
&self,
_self_ref: &FileDescriptionRef,
_communicate_allowed: bool,
_ptr: Pointer,
_len: usize,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx>
fn write<'tcx>( &self, _self_ref: &FileDescriptionRef, _communicate_allowed: bool, _ptr: Pointer, _len: usize, _dest: &MPlaceTy<'tcx>, _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx>
Writes as much as possible from the given buffer ptr
.
len
indicates how many bytes we should try to write.
dest
is where the return value should be stored: number of bytes written, or -1
in case of error.
Sourcefn pread<'tcx>(
&self,
_communicate_allowed: bool,
_offset: u64,
_ptr: Pointer,
_len: usize,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx>
fn pread<'tcx>( &self, _communicate_allowed: bool, _offset: u64, _ptr: Pointer, _len: usize, _dest: &MPlaceTy<'tcx>, _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx>
Reads as much as possible into the given buffer ptr
from a given offset.
len
indicates how many bytes we should try to read.
dest
is where the return value should be stored: number of bytes read, or -1
in case of error.
Sourcefn pwrite<'tcx>(
&self,
_communicate_allowed: bool,
_ptr: Pointer,
_len: usize,
_offset: u64,
_dest: &MPlaceTy<'tcx>,
_ecx: &mut MiriInterpCx<'tcx>,
) -> InterpResult<'tcx>
fn pwrite<'tcx>( &self, _communicate_allowed: bool, _ptr: Pointer, _len: usize, _offset: u64, _dest: &MPlaceTy<'tcx>, _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx>
Writes as much as possible from the given buffer ptr
starting at a given offset.
ptr
is the pointer to the user supplied read buffer.
len
indicates how many bytes we should try to write.
dest
is where the return value should be stored: number of bytes written, or -1
in case of error.
Sourcefn seek<'tcx>(
&self,
_communicate_allowed: bool,
_offset: SeekFrom,
) -> InterpResult<'tcx, Result<u64>>
fn seek<'tcx>( &self, _communicate_allowed: bool, _offset: SeekFrom, ) -> InterpResult<'tcx, Result<u64>>
Seeks to the given offset (which can be relative to the beginning, end, or current position). Returns the new position from the start of the stream.
fn close<'tcx>( self: Box<Self>, _communicate_allowed: bool, _ecx: &mut MiriInterpCx<'tcx>, ) -> InterpResult<'tcx, Result<()>>
fn flock<'tcx>( &self, _communicate_allowed: bool, _op: FlockOp, ) -> InterpResult<'tcx, Result<()>>
fn is_tty(&self, _communicate_allowed: bool) -> bool
Sourcefn get_epoll_ready_events<'tcx>(&self) -> InterpResult<'tcx, EpollReadyEvents>
fn get_epoll_ready_events<'tcx>(&self) -> InterpResult<'tcx, EpollReadyEvents>
Check the readiness of file description.