Documentation

Miri.Interpreter.Files

Descriptor identities/table and portable FileDescription behavior from pinned shims/files.rs. Host handles remain real external resources; no virtual filesystem or readiness-success environment is manufactured.

@[reducible, inline]
Equations
Instances For
    def Miri.Interpreter.Files.withDrop {S A : Type} (action : M S A) (cleanup : M S Unit) :
    M S A

    Rust scope drop, including errors. A failing required destructor remains explicit and keeps its effects; it cannot be silently discarded.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Instances For
        Equations
        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            inductive Miri.Interpreter.Files.Description (Handle Directory Other : Type) :
            • stdin {Handle Directory Other : Type} : Description Handle Directory Other
            • stdout {Handle Directory Other : Type} : Description Handle Directory Other
            • stderr {Handle Directory Other : Type} : Description Handle Directory Other
            • nullOutput {Handle Directory Other : Type} : Description Handle Directory Other
            • file {Handle Directory Other : Type} (handle : Handle) (readable writable : Bool) : Description Handle Directory Other
            • directory {Handle Directory Other : Type} (handle : Directory) : Description Handle Directory Other
            • other {Handle Directory Other : Type} (payload : Other) : Description Handle Directory Other
            Instances For
              structure Miri.Interpreter.Files.Ref (Description : Type) :
              • id : FdId
              • value : Description
              Instances For
                @[instance_reducible]
                Equations
                Instances For
                  structure Miri.Interpreter.Files.Table (Description : Type) :
                  Instances For
                    def Miri.Interpreter.Files.Table.newRef {D : Type} (table : Table D) (description : D) (hostUsizeBits : Nat) :
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Miri.Interpreter.Files.Table.insertWithMin {D : Type} (table : Table D) (ref : Ref D) (minimum : Int32) :
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        Equations
                        Instances For
                          def Miri.Interpreter.Files.Table.insertNew {D : Type} (table : Table D) (value : D) (hostUsizeBits : Nat) :
                          Equations
                          • table.insertNew value hostUsizeBits = do let __x ← table.newRef value hostUsizeBits match __x with | (table, ref) => table.insert ref
                          Instances For
                            def Miri.Interpreter.Files.Table.get {D : Type} (table : Table D) (fd : Int32) :

                            The runtime must retain the returned strong reference (including in pending callbacks). Table.remove transfers its strong reference rather than duplicating.

                            Equations
                            Instances For
                              Equations
                              Instances For
                                Equations
                                Instances For
                                  def Miri.Interpreter.Files.Table.init {H D O : Type} (mute : Bool) (hostUsizeBits : Nat) :
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    Instances For
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          Instances For
                                            @[reducible, inline]
                                            Equations
                                            Instances For
                                              structure Miri.Interpreter.Files.Hooks (S Handle Directory Other Host Metadata : Type) :
                                              Instances For
                                                def Miri.Interpreter.Files.readFromHost {S H D O E Meta : Type} (h : Hooks S H D O E Meta) (description : Description H D O) (len : Nat) (pointer : Memory.Pointer (Option Memory.Provenance)) :
                                                M S (Result E Nat)
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  def Miri.Interpreter.Files.writeToHost {S H D O E Meta : Type} (h : Hooks S H D O E Meta) (description : Description H D O) (len : Nat) (pointer : Memory.Pointer (Option Memory.Provenance)) :
                                                  M S (Result E Nat)
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    def Miri.Interpreter.Files.read {S H D O E Meta : Type} (h : Hooks S H D O E Meta) (ref : Ref (Description H D O)) (communicate : Bool) (pointer : Memory.Pointer (Option Memory.Provenance)) (len : Nat) (finish : Finish S E) :
                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For
                                                      def Miri.Interpreter.Files.write {S H D O E Meta : Type} (h : Hooks S H D O E Meta) (ref : Ref (Description H D O)) (communicate : Bool) (pointer : Memory.Pointer (Option Memory.Provenance)) (len : Nat) (finish : Finish S E) :
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        def Miri.Interpreter.Files.seek {S H D O E Meta : Type} (h : Hooks S H D O E Meta) (communicate : Bool) (description : Description H D O) (offset : SeekFrom) :
                                                        Equations
                                                        Instances For