vmbase: Move exceptions to aarch64 directories
This commit move ARM specific exception handling separate directories. Also use statement in Rialto and PVMFW was limited to only used exception errors, to not leak platform specific detail form libvmbase library. This commit is part of bigger refactoring enabling adding new CPU architecture to libvmbase.
Bug: 362733888
Test: m {pvmfw, rialto, vmbase_example_{bios, kernel}_bin}
Test: atest, rialto_test, vmbase_example.integration_test
Change-Id: I17b79d880b9f2fbf9317344dfcb1ce56e935531e
diff --git a/guest/pvmfw/src/exceptions.rs b/guest/pvmfw/src/exceptions.rs
index c16e637..4c867fb 100644
--- a/guest/pvmfw/src/exceptions.rs
+++ b/guest/pvmfw/src/exceptions.rs
@@ -15,10 +15,10 @@
//! Exception handlers.
use vmbase::{
- eprintln,
- exceptions::{handle_permission_fault, handle_translation_fault},
- exceptions::{ArmException, Esr, HandleExceptionError},
- logger,
+ arch::aarch64::exceptions::{
+ handle_permission_fault, handle_translation_fault, ArmException, Esr, HandleExceptionError,
+ },
+ eprintln, logger,
power::reboot,
read_sysreg,
};
diff --git a/guest/rialto/src/exceptions.rs b/guest/rialto/src/exceptions.rs
index 8899796..467a3a6 100644
--- a/guest/rialto/src/exceptions.rs
+++ b/guest/rialto/src/exceptions.rs
@@ -15,10 +15,10 @@
//! Exception handlers.
use vmbase::{
- eprintln,
- exceptions::{handle_permission_fault, handle_translation_fault},
- exceptions::{ArmException, Esr, HandleExceptionError},
- logger,
+ arch::aarch64::exceptions::{
+ handle_permission_fault, handle_translation_fault, ArmException, Esr, HandleExceptionError,
+ },
+ eprintln, logger,
power::reboot,
read_sysreg,
};
diff --git a/libs/libvmbase/src/arch/aarch64.rs b/libs/libvmbase/src/arch/aarch64.rs
index f888ccf..199423b 100644
--- a/libs/libvmbase/src/arch/aarch64.rs
+++ b/libs/libvmbase/src/arch/aarch64.rs
@@ -15,6 +15,7 @@
//! Wrappers of assembly calls.
pub mod dbm;
+pub mod exceptions;
pub mod hvc;
pub mod layout;
pub mod linker;
diff --git a/libs/libvmbase/src/exceptions.rs b/libs/libvmbase/src/arch/aarch64/exceptions.rs
similarity index 97%
rename from libs/libvmbase/src/exceptions.rs
rename to libs/libvmbase/src/arch/aarch64/exceptions.rs
index 5965bda..7618371 100644
--- a/libs/libvmbase/src/exceptions.rs
+++ b/libs/libvmbase/src/arch/aarch64/exceptions.rs
@@ -14,12 +14,8 @@
//! Helper functions and structs for exception handlers.
-use crate::{
- arch::aarch64::layout::UART_PAGE_ADDR,
- eprintln,
- memory::{page_4kb_of, MemoryTrackerError, MEMORY},
- read_sysreg,
-};
+use crate::memory::{MemoryTrackerError, MEMORY};
+use crate::{arch::aarch64::layout::UART_PAGE_ADDR, eprintln, memory::page_4kb_of, read_sysreg};
use aarch64_paging::paging::VirtualAddress;
use core::fmt;
use core::result;
@@ -99,6 +95,7 @@
}
}
}
+
/// A struct representing an Armv8 exception.
pub struct ArmException {
/// The value of the exception syndrome register.
diff --git a/libs/libvmbase/src/lib.rs b/libs/libvmbase/src/lib.rs
index a2032ec..d254038 100644
--- a/libs/libvmbase/src/lib.rs
+++ b/libs/libvmbase/src/lib.rs
@@ -22,7 +22,6 @@
pub mod bionic;
pub mod console;
mod entry;
-pub mod exceptions;
pub mod fdt;
pub mod heap;
pub mod layout;