Skip to content

patina-v1.0.1

Choose a tag to compare

@github-actions github-actions released this 29 May 02:21
· 944 commits to refs/heads/main since this release
3d57b24

What's Changed

  • Ingest patina\_paging version 7 @cfernald (#471)
    Change Details
      ## Description

    Ingests the patina_paging and adjusts for braking changes that come with it. Primarily the removal of the borrow_allocator and ALLOCATOR definitions in the PageTable trait.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    • Unit Tests
    • Q35 Boot
    • SBSA Boot

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • RFC: Standardize crate layout for component crates @Javagedes (#434)
    Change Details
      An RFC for defining a standardize crate layout for any crate who produces a component

    Current RFC State: FCP




  • .github: Re-enable cargo release dry-run @vineelko (#463)
    Change Details
      ## Description

    .github: Re-enable cargo release dry-run which were disabled during the crate rename PR(#425).

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    NA

    Integration Instructions

    NA




  • [REBASE\&FF] Set minimum rust version to 1.85.0 @Javagedes (#464)
    Change Details
      ## Description

    Updates the minimum supported rust version to 1.85.0 as we are also updating goblin to 0.10, which requires 1.85

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    N/A

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • chore: Release v1.0.0 @vineelko (#465)
    Change Details
      ## Description

    This pull request updates the Cargo.toml file to release version 1.0.0 of the patina package after the patina sdk crate refactoring.

    patina-v1.0.0

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    NA

    Integration Instructions

    NA

      </blockquote>
      <hr>
    </details>
    

🐛 Bug Fixes

  • Update core\_disconnect\_controller to not disconnect drivers that are already disconnected and preserve ordering. @joschock (#470)
    Change Details
      ## Description

    core_disconnect_controller identifies all drivers that have any protocol on the given controller handle open by driver and attempts to stop them all. In some cases, however, stopping a driver earlier in the list may have the side effect of stopping a driver not yet processed. Prior to this change, a driver that had already been stopped was unconditionally processed again when it was reached in the list, resulting in a second call to it driver_binding->stop(). This is unexpected behavior not aligned with the EDK2 C core reference or the spec.

    This change ensures that a driver that has already been stopped is skipped when it is later processed. In addition, it updates the driver and child handle processing to maintain stable ordering (i.e. driver and child handles are processed in the order they were added to the handle).

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    Functionally tested using USB hot add/hot remove flows to stimulate relatively complicated connect/disconnect flows. Observed no more double stops() with this change.

    Integration Instructions

    N/A




  • Fix issues with Uninstall and Close protocol caused by remove\_protocol\_usage behavior. @joschock (#462)
    Change Details
      ## Description

    Prior to this change, remove_protocol_usage was using retain, which removed all matching usages. This had the effect of prematurely removing some usages which changed the ordering/execution expectations of some calling code, causing certain flows involving DisconnectController to fail.

    remove_protocol_usage now only removes a single instance, and instances are removed in last-in-first-out order. This matches EDK2 reference behavior for usage management and is also symmetric with add_protocol_usage.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    Functional testing involving USB mass storage hot add/remove. Prior to this change, removing USB storage could cause ASSERTs in FAT and Partition drivers due to behavior described above violating assumptions in those drivers. After this change, USB mass storage hot add/remove now works as expected.

    Integration Instructions

    N/A




📖 Documentation Updates

  • patina\_sdk:memory: Implement mock MemoryManager @Javagedes (#448)
    Change Details
      ## Description

    Implements a working MemoryManager implementation for the MemoryManager trait by using the global allocator. This should be used when a mock is needed for testing purposes, that can allocate and deallocate memory as expected.

    This commit also adds mockall's automock to the MemoryManager trait, to simplify mocking MemoryManager interface method failures in tests.

    Overall this provides two mocks for MemoryManager automock's MockMemoryManager and a custom working MemoryManager, StdMemoryManager.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    Compiles

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

Full Changelog: patina-v1.0.0...v1.0.1