Documentation

Miri.Interpreter.TcpSocket

Pinned unix/tcp_socket.rs. Raw/socket2, mio listener and stream ownership remain separate typed host resources. All portable state/readiness policy is here.

inductive Miri.Interpreter.TcpSocket.SocketState (Raw Listener Stream : Type) :
  • initial {Raw Listener Stream : Type} (raw : Raw) : SocketState Raw Listener Stream
  • listening {Raw Listener Stream : Type} (listener : Listener) : SocketState Raw Listener Stream
  • connecting {Raw Listener Stream : Type} (stream : Stream) : SocketState Raw Listener Stream
  • connected {Raw Listener Stream : Type} (stream : Stream) : SocketState Raw Listener Stream
  • failed {Raw Listener Stream : Type} (stream : Stream) : SocketState Raw Listener Stream
  • transition {Raw Listener Stream : Type} : SocketState Raw Listener Stream
Instances For
    Instances For
      structure Miri.Interpreter.TcpSocket.Hooks (S F R L T E Poll Host : Type) :
      Instances For
        def Miri.Interpreter.TcpSocket.newSocket {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (family : Socket.Family) (nonblock : Bool) :
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def Miri.Interpreter.TcpSocket.ensureNotFailed {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (name : String) :
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def Miri.Interpreter.TcpSocket.updateLastError {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) :
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Miri.Interpreter.TcpSocket.actionDeadline {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (nonblock : Bool) (timeout : Option Clock.Duration) :
              Equations
              Instances For
                def Miri.Interpreter.TcpSocket.bind {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (communicate : Bool) (address : SocketAddress.Address) :
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Miri.Interpreter.TcpSocket.listen {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (communicate : Bool) (backlog : Int32) :
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    def Miri.Interpreter.TcpSocket.ensureConnected {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (deadline : Option Concurrency.ThreadDeadline) (name : String) (action : Bool → M S Unit) :

                    Consumes one owner, preserving source's single readiness-based connection probe (no invented peer_addr probe and no spurious-wakeup retry).

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Miri.Interpreter.TcpSocket.accept {S F R L T E P H : Type} (budget : Nat) (h : Hooks S F R L T E P H) (fd : F) (communicate nonblock : Bool) (finish : Socket.Finish S E (Int32 × SocketAddress.Address)) :
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def Miri.Interpreter.TcpSocket.connect {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (communicate : Bool) (address : SocketAddress.Address) (finish : Socket.Finish S E Unit) :
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          def Miri.Interpreter.TcpSocket.sendRecv {S F R L T E P H : Type} (budget : Nat) (h : Hooks S F R L T E P H) (fd : F) (communicate send : Bool) (pointer : Memory.Pointer (Option Memory.Provenance)) (length : Nat) (peek 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.TcpSocket.localName {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (communicate : Bool) :
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def Miri.Interpreter.TcpSocket.peerName {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (communicate : Bool) (finish : Socket.Finish S E SocketAddress.Address) :
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                def Miri.Interpreter.TcpSocket.shutdown {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (communicate : Bool) (how : Socket.Shutdown) :
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  def Miri.Interpreter.TcpSocket.setTimeout {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (write : Bool) (timeout : Option Clock.Duration) :
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    def Miri.Interpreter.TcpSocket.getTimeout {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (write : Bool) :
                                    Equations
                                    Instances For
                                      def Miri.Interpreter.TcpSocket.takeError {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) :
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        def Miri.Interpreter.TcpSocket.sourceState {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) :
                                        M S (SocketState R L T)

                                        SourceFileDescription accepts only registered mio-backed socket states.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          def Miri.Interpreter.TcpSocket.getFlags {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (libcI32 : String → M S Int32) :
                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            def Miri.Interpreter.TcpSocket.setFlags {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (libcI32 : String → M S Int32) (flags : Int32) :
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              def Miri.Interpreter.TcpSocket.ioctl {S F R L T E P H : Type} (h : Hooks S F R L T E P H) (fd : F) (communicate : Bool) (operation : Memory.Scalar Memory.Provenance) (libc : String → M S (Memory.Scalar Memory.Provenance)) (readArgument : M S Int32) :
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For