vmbase: Use logger in example kernel
Use info! instead of println! in example code.
Test: atest vmbase_example.integration_test
Change-Id: I215836f892b88ba79900ae8f779d9682ca6430a6
diff --git a/vmbase/example/Android.bp b/vmbase/example/Android.bp
index c75820c..e9391b9 100644
--- a/vmbase/example/Android.bp
+++ b/vmbase/example/Android.bp
@@ -15,6 +15,7 @@
rustlibs: [
"libaarch64_paging",
"libbuddy_system_allocator",
+ "liblog_rust_nostd",
"libvmbase",
],
enabled: false,
diff --git a/vmbase/example/src/main.rs b/vmbase/example/src/main.rs
index 6b110cf..3c91f97 100644
--- a/vmbase/example/src/main.rs
+++ b/vmbase/example/src/main.rs
@@ -29,7 +29,8 @@
use aarch64_paging::{idmap::IdMap, paging::Attributes};
use alloc::{vec, vec::Vec};
use buddy_system_allocator::LockedHeap;
-use vmbase::{main, println};
+use log::{info, LevelFilter};
+use vmbase::{logger, main, println};
static INITIALISED_DATA: [u32; 4] = [1, 2, 3, 4];
static mut ZEROED_DATA: [u32; 10] = [0; 10];
@@ -47,8 +48,10 @@
/// Entry point for VM bootloader.
pub fn main(arg0: u64, arg1: u64, arg2: u64, arg3: u64) {
+ logger::init(LevelFilter::Debug).unwrap();
+
println!("Hello world");
- println!("x0={:#018x}, x1={:#018x}, x2={:#018x}, x3={:#018x}", arg0, arg1, arg2, arg3);
+ info!("x0={:#018x}, x1={:#018x}, x2={:#018x}, x3={:#018x}", arg0, arg1, arg2, arg3);
print_addresses();
assert_eq!(arg0, dtb_range().start.0 as u64);
check_data();
@@ -83,20 +86,20 @@
)
.unwrap();
- println!("Activating IdMap...");
- println!("{:?}", idmap);
+ info!("Activating IdMap...");
+ info!("{:?}", idmap);
idmap.activate();
- println!("Activated.");
+ info!("Activated.");
check_data();
}
fn check_data() {
- println!("INITIALISED_DATA: {:#010x}", &INITIALISED_DATA as *const u32 as usize);
+ info!("INITIALISED_DATA: {:#010x}", &INITIALISED_DATA as *const u32 as usize);
unsafe {
- println!("ZEROED_DATA: {:#010x}", &ZEROED_DATA as *const u32 as usize);
- println!("MUTABLE_DATA: {:#010x}", &MUTABLE_DATA as *const u32 as usize);
- println!("HEAP: {:#010x}", &HEAP as *const u8 as usize);
+ info!("ZEROED_DATA: {:#010x}", &ZEROED_DATA as *const u32 as usize);
+ info!("MUTABLE_DATA: {:#010x}", &MUTABLE_DATA as *const u32 as usize);
+ info!("HEAP: {:#010x}", &HEAP as *const u8 as usize);
}
assert_eq!(INITIALISED_DATA[0], 1);
@@ -122,11 +125,11 @@
MUTABLE_DATA[0] -= 41;
assert_eq!(MUTABLE_DATA[0], 1);
}
- println!("Data looks good");
+ info!("Data looks good");
}
fn check_alloc() {
- println!("Allocating a Vec...");
+ info!("Allocating a Vec...");
let mut vector: Vec<u32> = vec![1, 2, 3, 4];
assert_eq!(vector[0], 1);
assert_eq!(vector[1], 2);
@@ -134,5 +137,5 @@
assert_eq!(vector[3], 4);
vector[2] = 42;
assert_eq!(vector[2], 42);
- println!("Vec seems to work.");
+ info!("Vec seems to work.");
}