vmbase: Add CPU-specific submodules to crate::arch

Add a crate that will be used to provide CPU architecture-agnostic
functionality to which we will eventually move all the AArch64-specific
code currently present in vmbase, pvmfw, and Rialto. Submodule names
follow the rustc target_arch config.

Test: m pvmfw_bin
Bug: 377276983
Change-Id: I48eae23b6dfd5a42e4b523d34d498687df0dbb9e
diff --git a/libs/libvmbase/src/arch.rs b/libs/libvmbase/src/arch.rs
new file mode 100644
index 0000000..a79ecf1
--- /dev/null
+++ b/libs/libvmbase/src/arch.rs
@@ -0,0 +1,19 @@
+// Copyright 2024, The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Low-level CPU-specific operations.
+
+pub mod aarch64;
+
+pub use aarch64::write_volatile_u8;
diff --git a/libs/libvmbase/src/aarch64.rs b/libs/libvmbase/src/arch/aarch64.rs
similarity index 100%
rename from libs/libvmbase/src/aarch64.rs
rename to libs/libvmbase/src/arch/aarch64.rs
diff --git a/libs/libvmbase/src/lib.rs b/libs/libvmbase/src/lib.rs
index c805cec..630834b 100644
--- a/libs/libvmbase/src/lib.rs
+++ b/libs/libvmbase/src/lib.rs
@@ -18,7 +18,7 @@
 
 extern crate alloc;
 
-pub mod aarch64;
+pub mod arch;
 pub mod bionic;
 pub mod console;
 mod entry;
@@ -45,8 +45,3 @@
     eprintln!("{}", info);
     reboot()
 }
-
-// TODO(ptosi): Move crate::aarch64 to crate::arch::aarch64 and remove this.
-pub(crate) mod arch {
-    pub use crate::aarch64::write_volatile_u8;
-}