vmbase: Map .bss, .data, & stack separately
Map the "scratch" (.data & .bss) and stack regions separately to allow
them to be placed in non-contiguous regions.
Note: No functional change intended.
Test: atest vmbase_example.integration_test
Test: atest rialto_test
Test: atest MicrodroidTests
Change-Id: I6c3f8e4957e39e1c966a219149b253360782ba8e
diff --git a/vmbase/example/src/main.rs b/vmbase/example/src/main.rs
index ed0275b..3bf850c 100644
--- a/vmbase/example/src/main.rs
+++ b/vmbase/example/src/main.rs
@@ -24,8 +24,8 @@
extern crate alloc;
use crate::layout::{
- bionic_tls, dtb_range, print_addresses, rodata_range, stack_chk_guard, text_range,
- writable_region, DEVICE_REGION,
+ bionic_tls, boot_stack_range, dtb_range, print_addresses, rodata_range, scratch_range,
+ stack_chk_guard, text_range, DEVICE_REGION,
};
use crate::pci::{check_pci, get_bar_region};
use aarch64_paging::{idmap::IdMap, paging::Attributes};
@@ -100,7 +100,13 @@
.unwrap();
idmap
.map_range(
- &writable_region(),
+ &scratch_range().into(),
+ Attributes::NORMAL | Attributes::NON_GLOBAL | Attributes::EXECUTE_NEVER,
+ )
+ .unwrap();
+ idmap
+ .map_range(
+ &boot_stack_range().into(),
Attributes::NORMAL | Attributes::NON_GLOBAL | Attributes::EXECUTE_NEVER,
)
.unwrap();