aarch64-paging
Крейт aarch64-paging
дозволяє створювати таблиці сторінок відповідно до архітектури системи віртуальної пам’яті AArch64.
use aarch64_paging::{ idmap::IdMap, paging::{Attributes, MemoryRegion}, }; const ASID: usize = 1; const ROOT_LEVEL: usize = 1; // Створити нову таблицю сторінок з відображенням ідентичності. let mut idmap = IdMap::new(ASID, ROOT_LEVEL); // Відобразити область пам'яті розміром 2 MiB як доступну тільки для читання. idmap.map_range( &MemoryRegion::new(0x80200000, 0x80400000), Attributes::NORMAL | Attributes::NON_GLOBAL | Attributes::READ_ONLY, ).unwrap(); // Встановити `TTBR0_EL1` для активації таблиці сторінок. idmap.activate();
- Наразі він підтримує лише EL1, але підтримка інших рівнів винятків має бути легко додана.
- Це використовується в Android для прошивки захищеної віртуальної машини.
- Немає простого способу запустити цей приклад, оскільки він повинен працювати на реальному обладнанні або під керуванням QEMU.