Print addresses.
Bug: 223166344
Test: Ran unprotected VM under crosvm.
Change-Id: I6b91d837f3b9d58a2c122ce466cd5abe11b3090c
diff --git a/vmbase/example/src/main.rs b/vmbase/example/src/main.rs
index bbb64d9..7903e94 100644
--- a/vmbase/example/src/main.rs
+++ b/vmbase/example/src/main.rs
@@ -26,4 +26,63 @@
/// Entry point for VM bootloader.
pub fn main() {
println!("Hello world");
+ print_addresses();
+}
+
+fn print_addresses() {
+ unsafe {
+ println!(
+ "dtb: {:#010x}-{:#010x} ({} bytes)",
+ &dtb_begin as *const u8 as usize,
+ &dtb_end as *const u8 as usize,
+ &dtb_end as *const u8 as usize - &dtb_begin as *const u8 as usize,
+ );
+ println!(
+ "text: {:#010x}-{:#010x} ({} bytes)",
+ &text_begin as *const u8 as usize,
+ &text_end as *const u8 as usize,
+ &text_end as *const u8 as usize - &text_begin as *const u8 as usize,
+ );
+ println!(
+ "rodata: {:#010x}-{:#010x} ({} bytes)",
+ &rodata_begin as *const u8 as usize,
+ &rodata_end as *const u8 as usize,
+ &rodata_end as *const u8 as usize - &rodata_begin as *const u8 as usize,
+ );
+ println!(
+ "data: {:#010x}-{:#010x} ({} bytes, loaded at {:#010x})",
+ &data_begin as *const u8 as usize,
+ &data_end as *const u8 as usize,
+ &data_end as *const u8 as usize - &data_begin as *const u8 as usize,
+ &data_lma as *const u8 as usize,
+ );
+ println!(
+ "bss: {:#010x}-{:#010x} ({} bytes)",
+ &bss_begin as *const u8 as usize,
+ &bss_end as *const u8 as usize,
+ &bss_end as *const u8 as usize - &bss_begin as *const u8 as usize,
+ );
+ println!(
+ "boot_stack: {:#010x}-{:#010x} ({} bytes)",
+ &boot_stack_begin as *const u8 as usize,
+ &boot_stack_end as *const u8 as usize,
+ &boot_stack_end as *const u8 as usize - &boot_stack_begin as *const u8 as usize,
+ );
+ }
+}
+
+extern "C" {
+ static dtb_begin: u8;
+ static dtb_end: u8;
+ static text_begin: u8;
+ static text_end: u8;
+ static rodata_begin: u8;
+ static rodata_end: u8;
+ static data_begin: u8;
+ static data_end: u8;
+ static data_lma: u8;
+ static bss_begin: u8;
+ static bss_end: u8;
+ static boot_stack_begin: u8;
+ static boot_stack_end: u8;
}