Documentation

Miri.Interpreter.UnixMemoryMachine

Concrete unix/mem.rs allocation/access bindings. Global addresses, allocation extras, provenance and errno use canonical machine state. Exact libc ABI/constants, imported type layouts, host errors and page configuration remain required facts, never host-platform guesses.

structure Miri.Interpreter.UnixMemoryMachine.Hooks (U C Host Payload : Type) :
Instances For
    def Miri.Interpreter.UnixMemoryMachine.driver {U C Host Payload : Type} (h : Hooks U C Host Payload) :

    Reuse-pool source distinguishes Stack from every other MemoryKind.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Miri.Interpreter.UnixMemoryMachine.allocationForKind {U C Host Payload : Type} (h : Hooks U C Host Payload) (allocationKind : Memory.MiriMemoryKind) :

      Source init_allocation records spans after tree/race/weak initialization only for kinds which request them. The original stack remains valid throughout these machine-only initialization hooks; post-hook machine state is preserved.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def Miri.Interpreter.UnixMemoryMachine.writeScalar {U C Host Payload : Type} (h : Hooks U C Host Payload) (choice : C) (value : Memory.Scalar Memory.Provenance) (dest : MPlaceTy Memory.Provenance) :
        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
            def Miri.Interpreter.UnixMemoryMachine.misalignment {U C Host Payload : Type} (h : Hooks U C Host Payload) (pointer : Memory.Pointer (Option Memory.Provenance)) (required : ABI.Align) :

            Canonical shared symbolic-alignment promises, with a cached error instead of immediate UB, exactly as ptr_to_mplace. No output memory is read here.

            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
                def Miri.Interpreter.UnixMemoryMachine.checkAccess {U C Host Payload : Type} (h : Hooks U C Host Payload) (pointer : Memory.Pointer (Option Memory.Provenance)) (length : UInt64) :

                mprotect/madvise only check bounds, not memory-read/TB/race access. Real access failures are returned for source remapping; unavailable metadata throws.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Miri.Interpreter.UnixMemoryMachine.errnoRootPlaces {U C Host Payload : Type} (h : Hooks U C Host Payload) (state : State U) :

                  Source Thread::visit_provenance visits last_error, including retained terminated threads. Only actual thread tokens are roots; stale table entries are not promoted to roots. The caller can feed these places to its GC visitor.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    def Miri.Interpreter.UnixMemoryMachine.errorHooks {U C Host Payload : Type} (h : Hooks U C Host Payload) (choice : C) (choices : Choices) :

                    Actual per-thread errno storage, allocated lazily with Machine ownership. The side table retains the original full u32 layout and pointer provenance.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

                      Concrete foreign allocation operations, preserving the source memory kind and actual align/old-layout values. All random choices remain explicit inputs.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def Miri.Interpreter.UnixMemoryMachine.bind {U C Host Payload D B I : Type} (h : Hooks U C Host Payload) (choice : C) (choices : Choices) (base : UnixMemory.Hooks Memory.Provenance (State U) D (MPlaceTy Memory.Provenance) B I) :

                        Exact ABI/off_t and libc constants stay compiler queries. Pointer-output places and offset values are obtained from actual operand reads.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For