From d1ece2c811a689a2671bcd54fb3c30a506822152 Mon Sep 17 00:00:00 2001
From: 4lDO2 <4lDO2@protonmail.com>
Date: Sun, 12 Apr 2020 00:50:47 +0200
Subject: [PATCH] Add a basic acpi: scheme, currently only for MCFG.
---
src/acpi/mod.rs | 6 +-
src/scheme/acpi.rs | 362 +++++++++++++++++++++++++++++++++++++++++++++
src/scheme/mod.rs | 10 ++
3 files changed, 375 insertions(+), 3 deletions(-)
create mode 100644 src/scheme/acpi.rs
diff --git a/src/acpi/mod.rs b/src/acpi/mod.rs
index 96f50a1..5f507b2 100644
--- a/src/acpi/mod.rs
+++ b/src/acpi/mod.rs
@@ -33,7 +33,7 @@ mod dmar;
mod fadt;
pub mod madt;
mod rsdt;
-mod sdt;
+pub mod sdt;
mod xsdt;
pub mod aml;
mod rxsdt;
@@ -42,7 +42,7 @@ mod rsdp;
const TRAMPOLINE: usize = 0x7E00;
const AP_STARTUP: usize = TRAMPOLINE + 512;
-fn get_sdt(sdt_address: usize, active_table: &mut ActivePageTable) -> &'static Sdt {
+pub fn get_sdt(sdt_address: usize, active_table: &mut ActivePageTable) -> &'static Sdt {
{
let page = Page::containing_address(VirtualAddress::new(sdt_address));
if active_table.translate_page(page).is_none() {
@@ -193,7 +193,7 @@ pub fn set_global_s_state(state: u8) {
}
}
-type SdtSignature = (String, [u8; 6], [u8; 8]);
+pub type SdtSignature = (String, [u8; 6], [u8; 8]);
pub static SDT_POINTERS: RwLock