refactor(mmu): replace bool-heavy map_range with Mapping struct and MapFlags builders
This commit is contained in:
@@ -45,9 +45,12 @@ impl Platform for RiscVPlatform {
|
||||
fn configure_protection(&mut self, process: ProcessId, regions: &[MemoryRegion]) {
|
||||
let pt = self.ensure_page_table(process);
|
||||
for region in regions {
|
||||
let base_pa = region.base().raw();
|
||||
let pages = region.size().value() as usize;
|
||||
mmu::map_range(pt, base_pa, base_pa, pages, true, true, true, true, false);
|
||||
mmu::map(pt, mmu::Mapping {
|
||||
va: region.base().raw(),
|
||||
pa: region.base().raw(),
|
||||
pages: region.size().value() as usize,
|
||||
flags: mmu::MapFlags::user(true, true, true),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,11 +110,15 @@ impl Platform for RiscVPlatform {
|
||||
permissions: PermissionSet,
|
||||
) {
|
||||
let pt = self.ensure_page_table(process);
|
||||
let pa = base.raw();
|
||||
let pages = size.value() as usize;
|
||||
let read = permissions.allows(Permission::Read);
|
||||
let write = permissions.allows(Permission::Write);
|
||||
let exec = permissions.allows(Permission::Execute);
|
||||
mmu::map_range(pt, pa, pa, pages, read, write, exec, true, false);
|
||||
mmu::map(pt, mmu::Mapping {
|
||||
va: base.raw(),
|
||||
pa: base.raw(),
|
||||
pages: size.value() as usize,
|
||||
flags: mmu::MapFlags::user(
|
||||
permissions.allows(Permission::Read),
|
||||
permissions.allows(Permission::Write),
|
||||
permissions.allows(Permission::Execute),
|
||||
),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user