vmbase: Abstract CPU arch in write_volatile_u8()

Move write_volatile_u8() to the arch-agnostic import vmbase::arch, using
cfg_if to conditionally select the body of the function. Future
functions moved to this submodule will follow the same pattern, allowing
client code (including the rest of this crate) to become arch agnostic.

Test: m pvmfw_bin
Bug: 377276983
Change-Id: I52afb6642e494d6f0d1bf54a5b9712c460ca30d0
diff --git a/libs/libvmbase/src/arch/aarch64.rs b/libs/libvmbase/src/arch/aarch64.rs
index 992ab27..d8bb2f5 100644
--- a/libs/libvmbase/src/arch/aarch64.rs
+++ b/libs/libvmbase/src/arch/aarch64.rs
@@ -92,14 +92,15 @@
     }};
 }
 
-/// Write with well-defined compiled behavior.
+/// STRB intrinsics.
 ///
 /// See https://github.com/rust-lang/rust/issues/131894
 ///
 /// # Safety
 ///
 /// `dst` must be valid for writes.
-pub unsafe fn write_volatile_u8(dst: *mut u8, src: u8) {
+#[inline]
+pub unsafe fn strb(dst: *mut u8, src: u8) {
     // SAFETY: strb only modifies *dst, which must be valid for writes.
     unsafe {
         core::arch::asm!(