vmbase: Move CMOs under crate::arch
No functional change intended.
Test: m pvmfw_bin
Bug: 377276983
Change-Id: I203bd4ea358d845e0d7ffedc89117c5d021baf18
diff --git a/libs/libvmbase/src/arch.rs b/libs/libvmbase/src/arch.rs
index ded66f2..0348800 100644
--- a/libs/libvmbase/src/arch.rs
+++ b/libs/libvmbase/src/arch.rs
@@ -35,3 +35,21 @@
}
}
}
+
+/// Flush `size` bytes of data cache by virtual address.
+#[inline]
+pub(crate) fn flush_region(start: usize, size: usize) {
+ cfg_if::cfg_if! {
+ if #[cfg(target_arch = "aarch64")] {
+ let line_size = aarch64::min_dcache_line_size();
+ let end = start + size;
+ let start = crate::util::unchecked_align_down(start, line_size);
+
+ for line in (start..end).step_by(line_size) {
+ crate::dc!("cvau", line);
+ }
+ } else {
+ compile_error!("Unsupported target_arch")
+ }
+ }
+}