v2.0.0
What's Changed
-
Update crate version to v2.0.0 @makubacki (#156)
Change Details
## Description
See the release notes for detailed changes:
https://github.com/pop-project/uefi-dxe-core/releases/tag/v2.0.0- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- No functional change
Integration Instructions
See the release notes for detailed changes and integration
instructions:
https://github.com/pop-project/uefi-dxe-core/releases/tag/v2.0.0
-
Reuse `guid_fmt` @berlin-with0ut-return (#154)
Change Details
## Description Use `guid_fmt!` macro from mu_rust_helpers to reduce code duplication.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
No functional changes.
Integration Instructions
No functional changes.
-
image loader: Fix Freeing Stack @os-d (#151)
Change Details
## Description
Currently image stacks can't be freed because the memory code cannot apply attributes across blocks, so core_free_pages returns not found. There are multiple blocks because of the stack guard having a different attribute (RP) than the rest of the stack (XP). This is fixed by removing the RP attribute and setting XP before freeing the stack, so that the blocks are coalesced and core_free_pages can free the single block.
There is a larger discussion on attribute handling in the memory subsystem that will be revisted later.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Tested on platforms that were seeing stacks failing to be freed.
Integration Instructions
N/A.
⚠️ Breaking Changes
-
[REBASE\&FF] Update CI workflows @Javagedes (#138)
Change Details
This pull request makes three changes to the CI workflow: (1) Adds documentation tests, (2) Builds the mdbook if it exists, (3) Runs cargo clippy
Add Documentation tests
By default,
cargo test(cargo make test) runs all tests, including doc tests. We usecargo tarpaulin(cargo make coverage) in our CI system so that we don't compile and run all tests twice; howevercargo tarpaulindoes not run doc tests by default:--all-targets Test all targets (excluding doctests) --lib Test only this package's library unit testsOne solution is to pass
--all-targets --doctocargo tarpaulin, but when a doc test fails, it provides no valuable error message to the user. Due to this, the decision was to runcargo test --docin the CI workflow as it does show a proper, valuable, error message.Build the mdbook
Adds a mdbook build step to build the mdbook if it exists. Previously, we only attempted to build the mdbook post-merge if the
mdbook-pathis set.Add cargo clippy tests
Cargo clippy was purposefully not added to the CI workflow as it is opinionated and following its suggestions can result in unintended changes to the code. However our documentation states that the developer should run cargo clippy and evaluate its suggestions, applying them or adding skip attributes to the code. Due to this, adding the clippy check to the CI workflow makes sense.
Description
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
CI passes and Q35 continues to boot to UEFI Shell.
Integration Instructions
Platforms reusing this workflow must now ensure all doc tests and clippy checks are passing in their repository.
🚀 Features & ✨ Enhancements
-
uefi\_test: cleanup macro usage @Javagedes (#144)
Change Details
## Description
in the uefi_test macro, we originally manually expanded the code generated by the
distributed_slicemacro from linkme, as we were under the impression that the path to the linkme crate was hardcoded as::linkme. After additional review of the linkme code (because it was not mentioned in the linkme documentation), it was discovered that an attribute macro is available to override the path to the linkme crate (#[linkme(crate = "path::to::linkme")]).This commit removes the manual expansion of the macro and replaces it with the macro itself, using the path override attribute to specify the path to the linkme crate. An additional benefit is that the tests can now focus only on the static test case our macro is generating.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Verified that the code continues to compile and the tests continue to be located.
Integration Instructions
N/A
📖 Documentation Updates
-
Document error handling best practices @berlin-with0ut-return (#153)
Change Details
## Description
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A. Documentation only.
Integration Instructions
N/A. Documentation only.
Full Changelog: v1.0.1...v2.0.0