Pinned unix/virtual_socket.rs owned virtual socketpair/pipe protocol. No host network substitutes these source-local buffers.
@[reducible, inline]
Instances For
Equations
Instances For
- socketpair : SocketType
- pipeRead : SocketType
- pipeWrite : SocketType
Instances For
@[instance_reducible]
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
- bytes : ByteArray
- clock : Concurrency.VClock
Instances For
- peer : Option Files.WeakRef
- peerLostData : Bool
- blockedRead : Array Concurrency.ThreadId
- blockedWrite : Array Concurrency.ThreadId
- nonblock : Bool
- kind : SocketType
Instances For
- readiness : Readiness.Hooks S F
- readBytes : Memory.Pointer (Option Memory.Provenance) → Nat → M S ByteArray
- writeBytes : Memory.Pointer (Option Memory.Provenance) → ByteArray → M S Unit
- libc : String → M S (Memory.Scalar Memory.Provenance)
- errors : IoError.Hooks S E
- os : String
- readI32 : OpTy Memory.Provenance → M S Int32
- derefI32 : OpTy Memory.Provenance → M S (MPlaceTy Memory.Provenance)
- nextI32 : MPlaceTy Memory.Provenance → M S (MPlaceTy Memory.Provenance)
- readFieldI32 : MPlaceTy Memory.Provenance → M S Int32
- writeInt : Int → MPlaceTy Memory.Provenance → M S Unit
- readIoctlArgument : M S (OpTy Memory.Provenance)
- wakeBudget : Nat
Instances For
Equations
- Miri.Interpreter.VirtualSocket.name value = if (value.kind == Miri.Interpreter.VirtualSocket.SocketType.socketpair) = true then "socketpair" else "pipe"
Instances For
Equations
- Miri.Interpreter.VirtualSocket.metadata value = if (value.kind == Miri.Interpreter.VirtualSocket.SocketType.socketpair) = true then "S_IFSOCK" else "S_IFIFO"
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.VirtualSocket.ioctl
{S F E : Type}
(h : Hooks S F E)
(socket : F)
(operation : Memory.Scalar Memory.Provenance)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.VirtualSocket.write
{S F E : Type}
(budget : Nat)
(h : Hooks S F E)
(socket : F)
(pointer : Memory.Pointer (Option Memory.Provenance))
(length : Nat)
(nonblock : Bool)
(finish : Files.Finish S E)
:
Consumes the actual owned socket ref. Blocking transfers it into the closure; success transfers both descriptions to readiness in source order.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.VirtualSocket.read
{S F E : Type}
(budget : Nat)
(h : Hooks S F E)
(socket : F)
(pointer : Memory.Pointer (Option Memory.Provenance))
(length : Nat)
(nonblock : Bool)
(finish : Files.Finish S E)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.VirtualSocket.recv
{S F E : Type}
(budget : Nat)
(h : Hooks S F E)
(socket : F)
(pointer : Memory.Pointer (Option Memory.Provenance))
(length : Nat)
(peek nonblock : Bool)
(finish : Files.Finish S E)
:
recv rejects PEEK before delegating, unlike actual TCP sockets.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.VirtualSocket.socketpair
{S F E : Type}
(h : Hooks S F E)
(domain kind protocol output : OpTy Memory.Provenance)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.VirtualSocket.pipe2
{S F E : Type}
(h : Hooks S F E)
(output : OpTy Memory.Provenance)
(flags : Option (OpTy Memory.Provenance))
:
Equations
- One or more equations did not get rendered due to their size.