Skip to main content

EvalContextExt

Trait EvalContextExt 

Source
pub trait EvalContextExt<'tcx>: MiriInterpCxExt<'tcx> {
Show 17 methods // Provided methods fn parse_clockid(&self, clk_id: Scalar) -> Option<TimeoutClock> { ... } fn clock_gettime( &mut self, clk_id_op: &OpTy<'tcx>, tp_op: &OpTy<'tcx>, dest: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx> { ... } fn gettimeofday( &mut self, tv_op: &OpTy<'tcx>, tz_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn localtime_r( &mut self, timep: &OpTy<'tcx>, result_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Pointer> { ... } fn GetSystemTimeAsFileTime( &mut self, shim_name: &str, LPFILETIME_op: &OpTy<'tcx>, ) -> InterpResult<'tcx> { ... } fn QueryPerformanceCounter( &mut self, lpPerformanceCount_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn QueryPerformanceFrequency( &mut self, lpFrequency_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn system_time_since_windows_epoch( &self, time: &SystemTime, ) -> InterpResult<'tcx, Duration> { ... } fn windows_ticks_for(&self, duration: Duration) -> InterpResult<'tcx, u64> { ... } fn mach_absolute_time(&self) -> InterpResult<'tcx, Scalar> { ... } fn mach_timebase_info( &mut self, info_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn mach_wait_until( &mut self, deadline_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn nanosleep( &mut self, duration: &OpTy<'tcx>, rem: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn clock_nanosleep( &mut self, clock_id: &OpTy<'tcx>, flags: &OpTy<'tcx>, timespec: &OpTy<'tcx>, rem: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar> { ... } fn Sleep(&mut self, timeout: &OpTy<'tcx>) -> InterpResult<'tcx> { ... } fn read_timespec( &mut self, tp: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx, Option<Duration>> { ... } fn read_timeval( &mut self, tp: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx, Option<Duration>> { ... }
}

Provided Methods§

Source

fn parse_clockid(&self, clk_id: Scalar) -> Option<TimeoutClock>

Source

fn clock_gettime( &mut self, clk_id_op: &OpTy<'tcx>, tp_op: &OpTy<'tcx>, dest: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx>

Source

fn gettimeofday( &mut self, tv_op: &OpTy<'tcx>, tz_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn localtime_r( &mut self, timep: &OpTy<'tcx>, result_op: &OpTy<'tcx>, ) -> InterpResult<'tcx, Pointer>

Source

fn GetSystemTimeAsFileTime( &mut self, shim_name: &str, LPFILETIME_op: &OpTy<'tcx>, ) -> InterpResult<'tcx>

Source

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

Source

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

Source

fn system_time_since_windows_epoch( &self, time: &SystemTime, ) -> InterpResult<'tcx, Duration>

Source

fn windows_ticks_for(&self, duration: Duration) -> InterpResult<'tcx, u64>

Source

fn mach_absolute_time(&self) -> InterpResult<'tcx, Scalar>

Source

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

Source

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

Source

fn nanosleep( &mut self, duration: &OpTy<'tcx>, rem: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn clock_nanosleep( &mut self, clock_id: &OpTy<'tcx>, flags: &OpTy<'tcx>, timespec: &OpTy<'tcx>, rem: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn Sleep(&mut self, timeout: &OpTy<'tcx>) -> InterpResult<'tcx>

Source

fn read_timespec( &mut self, tp: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx, Option<Duration>>

Parse a timespec struct and return it as a Duration. It returns None if the value in the timespec struct is invalid. Some libc functions will return EINVAL in this case.

Source

fn read_timeval( &mut self, tp: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx, Option<Duration>>

Parse a timeval struct and return it as a Duration. It returns None if the value in the timeval struct is invalid. Some libc functions will return EINVAL in this case.

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>