Преглед на файлове

Copy out of extended FADT fields to avoid unaligned access

Isaac Woods преди 3 години
родител
ревизия
ab499cffb9
променени са 2 файла, в които са добавени 3 реда и са изтрити 3 реда
  1. 2 3
      acpi/src/fadt.rs
  2. 1 0
      acpi/src/sdt.rs

+ 2 - 3
acpi/src/fadt.rs

@@ -127,7 +127,7 @@ impl Fadt {
 
     pub fn facs_address(&self) -> Result<usize, AcpiError> {
         unsafe {
-            self.x_firmware_ctrl
+            { self.x_firmware_ctrl }
                 .access(self.header.revision)
                 .filter(|&p| p != 0)
                 .or(Some(self.firmware_ctrl as u64))
@@ -139,7 +139,7 @@ impl Fadt {
 
     pub fn dsdt_address(&self) -> Result<usize, AcpiError> {
         unsafe {
-            self.x_dsdt_address
+            { self.x_dsdt_address }
                 .access(self.header.revision)
                 .filter(|&p| p != 0)
                 .or(Some(self.dsdt_address as u64))
@@ -508,4 +508,3 @@ impl ArmBootArchFlags {
         self.0.get_bit(1)
     }
 }
-

+ 1 - 0
acpi/src/sdt.rs

@@ -3,6 +3,7 @@ use core::{fmt, mem, mem::MaybeUninit, str};
 
 /// Represents a field which may or may not be present within an ACPI structure, depending on the version of ACPI
 /// that a system supports. If the field is not present, it is not safe to treat the data as initialised.
+#[derive(Clone, Copy)]
 #[repr(transparent)]
 pub struct ExtendedField<T: Copy, const MIN_REVISION: u8>(MaybeUninit<T>);