From f6174ee1f89b9bc9b37f8cf6d111d8aafb910986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kr=C3=B6ning?= Date: Thu, 1 Oct 2026 16:02:52 +0200 Subject: [PATCH] build(deps): Upgrade to acpi x.y.z --- Cargo.lock | 5 +++-- Cargo.toml | 1 + src/acpi/handler.rs | 10 ++++------ src/acpi/mod.rs | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 93b1a23759..e6ebad8fb7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,14 +34,15 @@ dependencies = [ [[package]] name = "acpi" version = "6.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b763acdc1d85c36d61acf97a59938f23202d0e8efe45e8759de10c02db242744" +source = "git+https://github.com/mkroening/acpi.git?branch=unaligned-table-entries#3bcb979e77dca871cd4dea9c3e287fac937855fc" dependencies = [ "bit_field", "bitflags 2.13.1", "byteorder", + "lock_api", "log", "pci_types", + "smallvec", "spinning_top", ] diff --git a/Cargo.toml b/Cargo.toml index 47756e31a6..10da78a3ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -498,6 +498,7 @@ unreadable_literal = "warn" unused_dependencies = "allow" [patch.crates-io] +acpi = { git = "https://github.com/mkroening/acpi.git", branch = "unaligned-table-entries" } safe-mmio = { git = "https://github.com/hermit-os/safe-mmio", branch = "0.3.x" } [profile.dist] diff --git a/src/acpi/handler.rs b/src/acpi/handler.rs index 51105a46b5..d4e4ff1f78 100644 --- a/src/acpi/handler.rs +++ b/src/acpi/handler.rs @@ -4,7 +4,7 @@ use core::hint; use core::ptr::{self, NonNull}; use acpi::aml::AmlError; -use acpi::{Handle, Handler, PciAddress, PhysicalMapping}; +use acpi::{Handle, Handler, PciAddress, RawPhysicalMapping}; use align_address::Align; use hermit_sync::{RawSpinMutex, SpinMutex}; use lock_api::RawMutex; @@ -30,11 +30,10 @@ impl Handler for AcpiHandler { &self, physical_address: usize, size: usize, - ) -> PhysicalMapping { + ) -> RawPhysicalMapping { let physical_start = physical_address.align_down(0x1000); let physical_end = (physical_address + size).align_up(0x1000); let mapped_length = physical_end - physical_start; - let handler = self.clone(); trace!( "Mapping physical region... paddr = {physical_start:#x}, len = {mapped_length:#x}" @@ -48,16 +47,15 @@ impl Handler for AcpiHandler { let virtual_start = NonNull::new(virtual_start).unwrap(); let region_length = size; - PhysicalMapping { + RawPhysicalMapping { physical_start, virtual_start, region_length, mapped_length, - handler, } } - fn unmap_physical_region(region: &PhysicalMapping) { + unsafe fn unmap_physical_region(&self, region: RawPhysicalMapping) { trace!( "Unmapping physical region... paddr = {:#x}, len = {:#x}", region.physical_start, region.mapped_length diff --git a/src/acpi/mod.rs b/src/acpi/mod.rs index 63ce6e7697..0730e82ae2 100644 --- a/src/acpi/mod.rs +++ b/src/acpi/mod.rs @@ -56,7 +56,7 @@ fn rsdp_paddr(handler: &H) -> Option> { #[cfg(target_arch = "x86_64")] if let Ok(rsdp) = unsafe { acpi::rsdp::Rsdp::search_for_on_bios(handler.clone()) } { - let rsdp_paddr = rsdp.virtual_start.addr(); + let rsdp_paddr = rsdp.raw.virtual_start.addr(); info!("Found RSDP paddr by searching on BIOS systems: {rsdp_paddr:#x}"); return Some(rsdp_paddr); }