patina-v7.0.0
What's Changed
-
patina\_internal\_collections: Remove static mut usage @Javagedes (#712)
Change Details
## Description
Removes static mut usage during benchmarks by leaking the memory as needed
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
benchmarks continue to run
Integration Instructions
N/A
</blockquote> <hr> </details>
-
[REBASE\&FF] Update to rust version 1.89 @Javagedes (#705)
Change Details
## Description
Upgrades from 1.85 to 1.89 in a commit chain, applying necessary lint fixes before for each version before upgrading the version.
This theoretically has no impactful / breaking changes, but there were many areas of the code base where nested if statements were flattened.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
CI and boot QemuQ35.
Integration Instructions
N/A
</blockquote> <hr> </details>
-
chore: Release v6.2.1 @os-d (#698)
Change Details
## Description
Release.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A.
Integration Instructions
See release notes.
</blockquote> <hr> </details>
⚠️ Breaking Changes
-
Refactor FFS support per RFC 14 @joschock (#706)
Change Details
## Description
Initial draft PR for FFS refactor based on RFC 14
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Passes all unit tests, tested boot on hardware platform.
Integration Instructions
To follow: main change is instantiation of section extractor.
(skip cargo release dry run)
🚀 Features & ✨ Enhancements
-
allocator: Remove static memory type info table @Javagedes (#653)
Change Details
## Description
This commit removes the static memory type info table. Due to the need
to keep all memory type information in a single table (as it is
published as a system table), this commit opts to give ownership of
the entire table to the GCD. When the GCD creates a new allocator, it
passes a pointer to the memory type info for that allocator, to the
allocator. This allows the allocator to self update it's memory type
information as needed, while still keeping the entire table together.For dynamically generated allocators (e.g. the allocators not a part
of the 17 tracked memory types), a new MemoryTypeInfo is created and
leaked, for them to use.Additionally, this removes the page_change_callback in favor of a
function that does the same.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- CI Passes
- Verified boot to UEFI Shell
Integration Instructions
N/A
</blockquote> <hr> </details>
🐛 Bug Fixes
-
patina\_internal\_collections: Update function signature @Javagedes (#711)
Change Details
## Description
Updates the function signature of
get_mutin bothbst.rsandrbt.rsto take a mutable reference to self. This change aligns with Rust's safety principles, ensuring that mutable access to the data structure is properly managed.This should be considered a bug fix, as the previous signature was invalid and could cause UB. No internal usage of
get_mutbeing called with an immutable reference was found, however.closes #704
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
CI passes. Platform compiles. While this was a bug that clippy caught, but it was not being actively misused.
Integration Instructions
N/A
</blockquote> <hr> </details>
-
Fix end of BootServices not reported. @magravel (#684)
Change Details
## Description
Before the end of exit boot services was not reported. This was caused by some status code not executed. After some investigation, I found that the status code listed was unregister in an event run at the end of boot services. This causes status code to set the end of exit boot services to not be called.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
A perf record was generated.
Integration Instructions
N/A
</blockquote> <hr> </details>
📖 Documentation Updates
-
RFC: Patina release process [FCP] @makubacki (#628)
Change Details
## Description
Closes #594
An RFC to define the Patina release process.
Status: Final
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
-
RFC: Firmware File System support crate in Patina. @joschock (#522)
Change Details
## Description
RFC for moving FFS support from
mu_rust_piinto Patina and adding modification/generation support for FFS.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
-
Docs: Document Stack Trace Flags Needed @os-d (#709)
Change Details
## Description
This ensures consistent documentation between stacktrace and the debugger.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A.
Integration Instructions
N/A.
</blockquote> <hr> </details>
-
Add Start Image ConnectController() Requirement @makubacki (#701)
Change Details
## Description
Explain a difference in behavior for connecting handles created or modified during image start between Patina and EDK II.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
cargo make all
Integration Instructions
N/A
Full Changelog: patina-v6.2.1...v7.0.0