Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
7cb937c
patina_internal_cpu: Allow refining impl trait in Mtrr mock (#1400)
makubacki Mar 13, 2026
4666aeb
patina_dxe_core: Add missing safety comments and enable clippy lint (…
makubacki Mar 16, 2026
dabe562
sdk: Make BinaryGuid::from_bytes() const
makubacki Mar 12, 2026
804ee5c
BinaryGuid: Derive Ord and PartialOrd
makubacki Mar 12, 2026
e8656a9
sdk: Add a few standard GUID definitions
kuqin12 Mar 11, 2026
064db2f
guid: Convert GUID types to BinaryGuid
makubacki Mar 12, 2026
1575dc1
Ingest patina-paging 11.0.2 and use new open_active interface
cfernald Mar 16, 2026
562f6c5
patina_adv_logger: gate writer tests on the "reader" feature
makubacki Mar 13, 2026
2746cb3
Makefile.toml: Check and test without default features
makubacki Mar 13, 2026
70316a8
[painta_stacktrace] remove alloc usage (#1411)
kuqin12 Mar 17, 2026
6e7fc4d
README.md: Update code readiness status
makubacki Mar 16, 2026
52a22f5
CONTRIBUTING.md: Add Patina AI Policy
makubacki Mar 16, 2026
1488bf0
README.md: Elaborate on key points in the Background section
makubacki Mar 17, 2026
d806715
[patina/sdk] clean up the usage of allocator (#1401)
kuqin12 Mar 18, 2026
4e014bd
Chore: Update crate versions to 20.1.2 (#1416)
patina-automation[bot] Mar 18, 2026
904c49e
[patina_dxe_core] Add info to assert on fragmented free memory in spi…
thomashinds Mar 19, 2026
89a6af4
.github: Add integration changes for PR validation status check (#1424)
makubacki Mar 20, 2026
fa9f9ed
.github: Pass head-sha to QEMU validation workflows (#1425)
makubacki Mar 23, 2026
b45ef14
perf: Simplify generic type parameters in performance entry points (#…
makubacki Mar 24, 2026
872c4e0
patina_mm: Drop communicator pointer
makubacki Mar 24, 2026
8461311
patina_mm: Make MmCommunicator::mm_executor non-dyn
makubacki Mar 24, 2026
1ed7a98
patina_dxe_core: Add DxeDispatch service for driver dispatch (#1421)
kat-perez Mar 24, 2026
139ff1c
[patina_internal_cpu] remove alloc usage (#1423)
kuqin12 Mar 26, 2026
f381bda
[patina_internal_cpu] fixing test instability (#1438)
kuqin12 Mar 26, 2026
61e248b
pecoff: Fix resource string offset and UTF-16LE comparison
makubacki Mar 25, 2026
40db069
pecoff: Advance iteration in resource directory parsing
makubacki Mar 25, 2026
a772b3c
pecoff: Prevent potential overflow in load_resource_section
makubacki Mar 25, 2026
d962da4
Chore: Update crate versions to 20.1.3
patina-fw Mar 27, 2026
c323153
Add config.toml Enforcement (#1324)
os-d Feb 24, 2026
5876905
Add exclude filter support to TestRunner (#1377)
Javagedes Mar 5, 2026
16fd292
move patina_test framework to patina_test crate (#1377)
Javagedes Mar 6, 2026
eacdc70
patina_test: log results as json (#1382)
Javagedes Mar 10, 2026
acb5c1b
Repo File Sync: synced file(s) with OpenDevicePartnership/patina-devops
patina-automation[bot] Mar 30, 2026
f3d8dbb
Update synchronization documentation. (#1439)
joschock Mar 30, 2026
1e63dfb
Repo File Sync: Update `patina-test` makefile command (#1444)
patina-automation[bot] Mar 31, 2026
73a127f
Add option to override hw_print_level for specific log targets (#1430)
thomashinds Mar 30, 2026
4183755
Chore: Update crate versions to 21.0.0
patina-fw Mar 31, 2026
83a8d8b
[patina_mm] refactor current folder structure to allow external consu…
kuqin12 Apr 1, 2026
7b4dc8d
Perf timer based changes
kuqin12 Apr 1, 2026
00f8413
Add the mm_services
kuqin12 Mar 23, 2026
47e03ba
[supv] save state support for supv
kuqin12 Mar 13, 2026
18cd77a
[supv] policy support
kuqin12 Mar 11, 2026
3510ece
[supv] supv syscall index definitions
kuqin12 Apr 1, 2026
ef5ea9c
[supv] supervisor core changes
kuqin12 Mar 11, 2026
6c528c8
[user] user module changes
kuqin12 Mar 11, 2026
f5ff7f5
[supv] cargo changes
kuqin12 Apr 1, 2026
2932ba2
default sdk/patina/Cargo.toml
kuqin12 Apr 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,9 @@ body:
description: |
examples:
- **OS**: Ubuntu 20.04 or Windows 11...
- **Tool Chain**: GCC5 or VS2022 or CLANGPDB...
- **Targets Impacted**: RELEASE, DEBUG, NO-TARGET, NOOPT...
value: |
- OS(s):
- Tool Chain(s):
- Targets Impacted:
render: markdown
validations:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/patina-qemu-pr-validation-pending.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,6 @@ jobs:
name: Run
uses: OpenDevicePartnership/patina-devops/.github/workflows/PatinaQemuPrValidationPending.yml@patina_e2e_plat_validation
with:
head-sha: ${{ github.event.pull_request.head.sha }}
pr-number: ${{ github.event.pull_request.number }}
secrets: inherit
3 changes: 2 additions & 1 deletion .github/workflows/patina-qemu-pr-validation-post.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@ permissions:

jobs:
post-process:
if: github.event.workflow_run.conclusion != 'cancelled'
uses: OpenDevicePartnership/patina-devops/.github/workflows/PatinaQemuPrValidationPost.yml@patina_e2e_plat_validation
with:
conclusion: ${{ github.event.workflow_run.conclusion }}
head-sha: ${{ github.event.workflow_run.head_sha }}
triggering-run-id: ${{ fromJSON(github.event.workflow_run.id) }}
secrets: inherit
3 changes: 2 additions & 1 deletion .github/workflows/patina-qemu-pr-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ jobs:
if: needs.prepare.result == 'success' && needs.prepare.outputs.skip != 'true'
uses: OpenDevicePartnership/patina-devops/.github/workflows/PatinaQemuPrValidation.yml@patina_e2e_plat_validation
with:
pr-number: ${{ fromJSON(needs.prepare.outputs.pr_number) }}
head-sha: ${{ github.event.workflow_run.head_sha }}
patina-ref: ${{ github.event.workflow_run.head_sha }}
pr-number: ${{ fromJSON(needs.prepare.outputs.pr_number) }}
secrets: inherit
24 changes: 24 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,30 @@ indicate that clearly in your pull request so that the project team can discuss
* Format the code with `cargo make all`.
* Use meaningful commit messages. See [this blogpost](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)

## AI Policy

Patina does not accept contributions directly from AI tools (e.g. GitHub Copilot). If you use an AI tool to assist in
the development of a Patina contribution, ensure that:

1. You have the legal right to submit the code generated by an AI tool under Patina's contribution and licensing
guidelines.
2. You fully understand the changes being made to the codebase and can explain the changes to other contributors.
3. You have thoroughly reviewed the code to ensure it meets Patina contribution guidelines.
4. You have thoroughly tested the code. Firmware changes must be tested on QEMU and a physical platform.

If you do not fully understand the changes being made to the codebase, please ask for help from the Patina
community before submitting a pull request. You can start a GitHub discussion to get more background on a topic or
submit a GitHub issue to report a bug or request.

At a minimum, contributors submitting firmware changes should have a working understanding of the Rust programming
language and UEFI firmware development. If you are new to either topic, the Patina community is happy to help you
and there are many existing resources available for both subjects on the Internet.

Patina maintainers reserve the right to reject or close a pull request at any time if it is determined to violate this
policy, including cases where AI‑assisted contributions lack sufficient human understanding, review, testing, or legal
clarity. If a user repeatedly violates this policy, they may be temporarily or permanently banned from contributing to
the Patina project.

## PR Etiquette

* Make sure that GitHub status checks ("PR gates") pass in your PR.
Expand Down
38 changes: 23 additions & 15 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[workspace]
resolver = "3"
members = ["components/*", "core/*", "sdk/*", "patina_dxe_core"]
members = ["components/*", "core/*", "sdk/*", "patina_dxe_core", "patina_mm_supervisor_core", "patina_mm_user_core"]

[workspace.package]
version = "20.1.1"
version = "21.0.0"
license = "Apache-2.0"
edition = "2024"
rust-version = "1.89"
Expand Down Expand Up @@ -31,21 +31,26 @@ log = { version = "0.4", default-features = false }
memoffset = {version = "0.9.1" }
mu_rust_helpers = { version = "3.0.2" }
num-traits = { version = "0.2", default-features = false }
patina = { version = "20.1.1", path = "sdk/patina" }
patina_debugger = { version = "20.1.1", path = "core/patina_debugger" }
patina_ffs = { version = "20.1.1", path = "sdk/patina_ffs" }
patina_ffs_extractors = { version = "20.1.1", path = "sdk/patina_ffs_extractors" }
patina_internal_collections = { version = "20.1.1", path = "core/patina_internal_collections", default-features = false }
patina_internal_cpu = { version = "20.1.1", path = "core/patina_internal_cpu" }
patina_internal_depex = { version = "20.1.1", path = "core/patina_internal_depex" }
patina = { version = "21.0.0", path = "sdk/patina" }
patina_debugger = { version = "21.0.0", path = "core/patina_debugger" }
patina_ffs = { version = "21.0.0", path = "sdk/patina_ffs" }
patina_ffs_extractors = { version = "21.0.0", path = "sdk/patina_ffs_extractors" }
patina_internal_collections = { version = "21.0.0", path = "core/patina_internal_collections", default-features = false }
patina_internal_cpu = { version = "21.0.0", path = "core/patina_internal_cpu" }
patina_internal_depex = { version = "21.0.0", path = "core/patina_internal_depex" }
patina_internal_mm_common = { version = "21.0.0", path = "core/patina_internal_mm_common" }
patina_lzma_rs = { version = "0.3.1", default-features = false }
patina_macro = { version = "20.1.1", path = "sdk/patina_macro" }
patina_mm = { version = "20.1.1", path = "components/patina_mm" }
patina_macro = { version = "21.0.0", path = "sdk/patina_macro" }
patina_mm = { version = "21.0.0", path = "components/patina_mm" }
patina_mm_policy = { version = "21.0.0", path = "components/patina_mm_policy" }
patina_mm_supervisor_core = { version = "21.0.0", path = "patina_mm_supervisor_core" }
patina_mtrr = { version = "^1.1.4" }
patina_paging = { version = "11" }
patina_performance = { version = "20.1.1", path = "components/patina_performance" }
patina_smbios = { version = "20.1.1", path = "components/patina_smbios" }
patina_stacktrace = { version = "20.1.1", path = "core/patina_stacktrace" }
patina_paging = { version = "11.0.2" }
patina_performance = { version = "21.0.0", path = "components/patina_performance" }
patina_smbios = { version = "21.0.0", path = "components/patina_smbios" }
patina_stacktrace = { version = "21.0.0", path = "core/patina_stacktrace" }
patina_test = { version = "21.0.0", path = "components/patina_test" }
patina_adv_logger = { version = "21.0.0", path = "components/patina_adv_logger" }
proc-macro2 = { version = "1" }
quote = { version = "1" }
r-efi = { version = "5.0.0", default-features = false }
Expand Down Expand Up @@ -75,3 +80,6 @@ lzma-rs = { version = "0.3" }

[workspace.lints.clippy]
undocumented_unsafe_blocks = "warn"

[patch.crates-io]
patina_paging = { path = 'D:\Repos\patina-paging' }
28 changes: 26 additions & 2 deletions Makefile.toml
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,23 @@ private = true
command = "cargo"
args = ["test", "--no-run", "--all-targets", "--all-features", "@@split(CARGO_MAKE_TASK_ARGS, )"]

[tasks.check-no-default-features-code]
description = "Checks rust code compiles without default features."
private = true
command = "cargo"
args = ["check", "--no-default-features", "@@split(CARGO_MAKE_TASK_ARGS, )"]

[tasks.check-no-default-features-tests]
description = "Checks rust test code compiles without default features."
private = true
command = "cargo"
args = ["test", "--no-run", "--no-default-features", "@@split(CARGO_MAKE_TASK_ARGS, )"]

[tasks.check-no-default-features]
description = "Checks rust code and tests compile without default features to catch feature-gate regressions."
clear = true
run_task = [{ name = ["check-no-default-features-code", "check-no-default-features-tests"], parallel = true }]

[tasks.check]
description = "Checks rust code for errors. Example `cargo make check`"
clear = true
Expand All @@ -134,7 +151,7 @@ run_task = [{ name = ["check_code", "check_tests"], parallel = true }]
description = "Builds crates with Patina tests enabled. Example `cargo make patina-test`"
clear = true
command = "cargo"
args = ["build", "@@split(INDIVIDUAL_PACKAGE_TARGETS, )", "@@split(STD_FLAGS, )", "--features", "enable_patina_tests"]
args = ["build", "@@split(INDIVIDUAL_PACKAGE_TARGETS, )", "@@split(STD_FLAGS, )", "--features", "test-runner"]
dependencies = ["individual-package-targets"]

[tasks.generate-lockfile]
Expand All @@ -151,6 +168,12 @@ command = "cargo"
args = ["llvm-cov", "clean", "--workspace"]

[tasks.test]
description = "Runs tests with native cargo test behavior. Example `cargo make test` or `cargo make test -p package_name -- --nocapture`"
clear = true
command = "cargo"
args = ["test", "@@split(CARGO_MAKE_TASK_ARGS,;)"]

[tasks.test-cov]
description = "Run tests and collect coverage data without generating reports."
install_crate = false
clear = true
Expand Down Expand Up @@ -226,7 +249,7 @@ args = ["llvm-cov", "report", "--html", "--output-dir", "${CARGO_MAKE_WORKSPACE_

[tasks.coverage]
description = "Build and run all tests and calculate coverage (runs test once and generates LCOV and HTML reports)."
dependencies = ["test", "coverage-lcov", "coverage-html"]
dependencies = ["test-cov", "coverage-lcov", "coverage-html"]
clear = true

[tasks.build-aarch64]
Expand Down Expand Up @@ -311,6 +334,7 @@ dependencies = [
"deny",
"cspell",
"clippy",
"check-no-default-features",
"build",
"build-x64",
"build-aarch64",
Expand Down
36 changes: 30 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,21 @@ incremental migration of today's firmware components largely written in C to Rus
objective for this effort is to improve the security and stability of system firmware by leveraging the memory safety
offered by Rust while retaining similar boot performance.

**Patina is not a simple port of C UEFI code to Rust**.

Patina is a pure‑Rust UEFI firmware implementation that removes legacy complexity and introduces a modern architecture,
while preserving compatibility with current PI Specifications and enabling a clear path toward writing more firmware
components in pure Rust over time.

**Simply writing individual C UEFI drivers in Rust is not equivalent to Patina**.

To better understand the types of memory safety problems that
Patina helps mitigate, see [Memory Safety Strategy](https://opendevicepartnership.github.io/patina/background/memory_safety_strategy.html).

Otherwise, read the docs to learn about concepts like [Patina DXE Core Requirements](https://opendevicepartnership.github.io/patina/integrate/patina_dxe_core_requirements.html)
and the [Patina Component Model](https://opendevicepartnership.github.io/patina/component/getting_started.html) to
better understand how Patina is structured and how to integrate it into a platform.

## Docs

* **[Getting Started](https://opendevicepartnership.github.io/patina/):** Patina's official getting started guide,
Expand All @@ -52,14 +67,23 @@ write a Patina component.

## Important Notes

This repository is still considered to be in a "beta" stage at this time. Platform testing and integration feedback
is very welcome.
Content in the main branch of the patina repository is expected to be functionally stable with the following exception:

Before making pull requests at a minimum, run:
* Patina has optional pieces of functionality called "Patina components". While components are expected to adhere to
the same standards of readiness as the rest of the repository, when evaluating a new component, consumers should
verify that the component does not have special disclaimers or limitations noted in its documentation.

```shell
cargo make all
```
Also, be aware that Patina has other branches that may host work that is not yet ready for the main branch. To learn
more about these branches and the overall Patina release process, read the
[Patina Release Process](https://github.com/OpenDevicePartnership/patina/blob/main/docs/src/rfc/text/0015-patina-release-process.md)
RFC.

Platform testing and integration feedback is very welcome.

### AI Policy

Patina does not accept contributions directly from AI tools (e.g. GitHub Copilot) and has an AI Policy defined in
[CONTRIBUTING.md](CONTRIBUTING.md#ai-policy) that must be followed for any contributions that are AI-assisted.

## Performing a Release

Expand Down
1 change: 1 addition & 0 deletions components/patina_acpi/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ zerocopy = { workspace = true }
zerocopy-derive = { workspace = true }

patina = { workspace = true, features = ["alloc"] }
patina_test = { workspace = true }

[dev-dependencies]
mockall = { workspace = true }
Expand Down
6 changes: 2 additions & 4 deletions components/patina_acpi/src/acpi_protocol.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ pub struct AcpiTableProtocol {

// SAFETY: `AcpiTableProtocol` matches the C layout and behavior of the EFI_ACPI_TABLE_PROTOCOL.
unsafe impl ProtocolInterface for AcpiTableProtocol {
const PROTOCOL_GUID: efi::Guid =
efi::Guid::from_fields(0xffe06bdd, 0x6107, 0x46a6, 0x7b, 0xb2, &[0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c]);
const PROTOCOL_GUID: patina::BinaryGuid = patina::BinaryGuid::from_string("FFE06BDD-6107-46A6-7BB2-5A9C7EC5275C");
}

// C function interfaces for ACPI Table Protocol and ACPI Get Protocol.
Expand Down Expand Up @@ -166,8 +165,7 @@ pub struct AcpiGetProtocol {

// SAFETY: `AcpiGetProtocol` matches the C layout and behavior of the custom-defined EFI_ACPI_GET_PROTOCOL. (Not a UEFI spec protocol.)
unsafe impl ProtocolInterface for AcpiGetProtocol {
const PROTOCOL_GUID: efi::Guid =
efi::Guid::from_fields(0x7f3c1a92, 0x8b4e, 0x4d2f, 0xa6, 0xc9, &[0x3e, 0x12, 0xf4, 0xb8, 0xd7, 0xc1]);
const PROTOCOL_GUID: patina::BinaryGuid = patina::BinaryGuid::from_string("7F3C1A92-8B4E-4D2F-A6C9-3E12F4B8D7C1");
}

impl AcpiGetProtocol {
Expand Down
7 changes: 3 additions & 4 deletions components/patina_acpi/src/integration_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,8 @@ use core::{ffi::c_void, mem};
use patina::{
boot_services::{BootServices, StandardBootServices},
component::service::Service,
test::patina_test,
u_assert, u_assert_eq,
};
use patina_test::{patina_test, u_assert, u_assert_eq};
use r_efi::efi;

use crate::{
Expand All @@ -40,7 +39,7 @@ struct MockLargeTable {

#[coverage(off)]
#[patina_test]
fn acpi_test(table_manager: Service<AcpiTableManager>) -> patina::test::Result {
fn acpi_test(table_manager: Service<AcpiTableManager>) -> patina_test::error::Result {
let original_length = table_manager.iter_tables().len();

// Install a dummy ACPI table.
Expand Down Expand Up @@ -98,7 +97,7 @@ fn acpi_test(table_manager: Service<AcpiTableManager>) -> patina::test::Result {

#[coverage(off)]
#[patina_test]
fn acpi_protocol_test(bs: StandardBootServices) -> patina::test::Result {
fn acpi_protocol_test(bs: StandardBootServices) -> patina_test::error::Result {
// SAFETY: there is only one reference to the `AcpiTableProtocol` during this test.
let table_protocol =
unsafe { bs.locate_protocol::<AcpiTableProtocol>(None) }.expect("Locate protocol should succeed.");
Expand Down
4 changes: 1 addition & 3 deletions components/patina_acpi/src/signature.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
use core::mem;

use patina::signature;
use r_efi::efi;

use crate::acpi_table::{AcpiDsdt, AcpiFacs, AcpiFadt, AcpiTableHeader};

Expand Down Expand Up @@ -48,8 +47,7 @@ pub const CCEL: u32 = signature!('C', 'C', 'E', 'L');
pub const SKVL: u32 = signature!('S', 'K', 'V', 'L');
pub const RHCT: u32 = signature!('R', 'H', 'C', 'T');

pub const ACPI_TABLE_GUID: efi::Guid =
efi::Guid::from_fields(0x8868E871, 0xE4F1, 0x11D3, 0xBC, 0x22, &[0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81]);
pub const ACPI_TABLE_GUID: patina::BinaryGuid = patina::BinaryGuid::from_string("8868E871-E4F1-11D3-BC22-0080C73C8881");

pub(crate) const ACPI_HEADER_LEN: usize = mem::size_of::<AcpiTableHeader>();
pub(crate) const MAX_INITIAL_ENTRIES: usize = 32;
Expand Down
3 changes: 2 additions & 1 deletion components/patina_adv_logger/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ required-features = ['std']

[dependencies]
log = { workspace = true }
patina = { workspace = true}
patina = { workspace = true }
patina_test = { workspace = true }
r-efi = { workspace = true }
spin = { workspace = true }
mu_rust_helpers = { workspace = true }
Expand Down
4 changes: 2 additions & 2 deletions components/patina_adv_logger/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,14 @@ below.
```rust
use patina_dxe_core::*;
use patina::{log::Format, serial::uart::UartNull};
use patina_adv_logger::{component::AdvancedLoggerComponent, logger::AdvancedLogger};
use patina_adv_logger::{component::AdvancedLoggerComponent, logger::{AdvancedLogger, TargetFilter}};

use log::LevelFilter;
use core::ffi::c_void;

static LOGGER: AdvancedLogger<UartNull> = AdvancedLogger::new(
Format::Standard, // How logs are formatted
&[("allocations", LevelFilter::Off)], // set custom log levels per module
&[TargetFilter { target: "allocations", log_level: LevelFilter::Off, hw_filter_override: None }], // set custom log levels per module
log::LevelFilter::Info, // Default log level
UartNull { }, // Serial writer instance
);
Expand Down
5 changes: 3 additions & 2 deletions components/patina_adv_logger/src/component.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@ use patina::{
boot_services::{BootServices, StandardBootServices},
component::{
component,
service::{Service, perf_timer::ArchTimerFunctionality},
service::Service,
},
error::{EfiError, Result},
serial::SerialIO,
timer::ArchTimerFunctionality,
};
use r_efi::efi;

Expand Down Expand Up @@ -69,7 +70,7 @@ where
// SAFETY: We must trust the C code was a responsible steward of this buffer.
let internal = unsafe { &*(this as *const AdvancedLoggerProtocolInternal<S>) };

internal.adv_logger.log_write(error_level, data);
internal.adv_logger.log_write(error_level, None, data);
efi::Status::SUCCESS
}

Expand Down
10 changes: 4 additions & 6 deletions components/patina_adv_logger/src/integration_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,16 @@
//!
//! SPDX-License-Identifier: Apache-2.0
//!
use patina::{
boot_services::{BootServices, StandardBootServices},
test::patina_test,
u_assert, u_assert_eq,
};
use patina::boot_services::{BootServices, StandardBootServices};
use patina_test::{patina_test, u_assert, u_assert_eq};

use r_efi::efi;

use crate::{memory_log, protocol::AdvancedLoggerProtocol, reader::AdvancedLogReader};

#[coverage(off)]
#[patina_test]
fn adv_logger_test(bs: StandardBootServices) -> patina::test::Result {
fn adv_logger_test(bs: StandardBootServices) -> patina_test::error::Result {
const DIRECT_STR: &str = "adv_logger_test: Direct log message!!!";
const PROTOCOL_STR: &str = "adv_logger_test: Logged through the protocol!!!\n";

Expand Down
Loading
Loading