Skip to main content

EvalContextExt

Trait EvalContextExt 

Source
pub trait EvalContextExt<'tcx>: MiriInterpCxExt<'tcx> {
    // Provided methods
    fn getaddrinfo(
        &mut self,
        node: &OpTy<'tcx>,
        service: &OpTy<'tcx>,
        hints: &OpTy<'tcx>,
        res: &OpTy<'tcx>,
    ) -> InterpResult<'tcx, Scalar> { ... }
    fn freeaddrinfo(&mut self, res: &OpTy<'tcx>) -> InterpResult<'tcx> { ... }
    fn read_socket_address(
        &self,
        address: &OpTy<'tcx>,
        address_len: &OpTy<'tcx>,
        foreign_name: &'static str,
    ) -> InterpResult<'tcx, Result<SocketAddr, IoError>> { ... }
    fn write_socket_address(
        &mut self,
        address: &SocketAddr,
        address_ptr: Pointer,
        address_len_ptr: Pointer,
        foreign_name: &'static str,
    ) -> InterpResult<'tcx> { ... }
}

Provided Methods§

Source

fn getaddrinfo( &mut self, node: &OpTy<'tcx>, service: &OpTy<'tcx>, hints: &OpTy<'tcx>, res: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>

Source

fn freeaddrinfo(&mut self, res: &OpTy<'tcx>) -> InterpResult<'tcx>

Source

fn read_socket_address( &self, address: &OpTy<'tcx>, address_len: &OpTy<'tcx>, foreign_name: &'static str, ) -> InterpResult<'tcx, Result<SocketAddr, IoError>>

Attempt to turn an address and length operand into a standard library socket address.

Returns an IO error should the address length not match the address family length.

Source

fn write_socket_address( &mut self, address: &SocketAddr, address_ptr: Pointer, address_len_ptr: Pointer, foreign_name: &'static str, ) -> InterpResult<'tcx>

Attempt to write a standard library socket address into a pointer.

The address_len_ptr parameter serves both as input and output parameter. On input, it points to the size of the buffer address_ptr points to, and on output it points to the non-truncated size of the written address in the buffer pointed to by address_ptr.

If the address buffer doesn’t fit the whole address, the address is truncated to not overflow the buffer.

Implementors§

Source§

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