aarch64-paging
O crate aarch64-paging
permite criar tabelas de pĂĄginas de acordo com a Arquitetura do Sistema de MemĂłria Virtual AArch64.
use aarch64_paging::{ idmap::IdMap, paging::{Attributes, MemoryRegion}, }; const ASID: usize = 1; const ROOT_LEVEL: usize = 1; // Cria uma nova tabela de pĂĄginas com mapeamento de identidade. let mut idmap = IdMap::new(ASID, ROOT_LEVEL); // Mapeia uma regiĂŁo de memĂłria de 2 MiB como somente leitura. idmap.map_range( &MemoryRegion::new(0x80200000, 0x80400000), Attributes::NORMAL | Attributes::NON_GLOBAL | Attributes::READ_ONLY, ).unwrap(); // Seta `TTBR0_EL1` para ativar a tabela de pĂĄginas. idmap.activate();
- Por enquanto, ele suporta apenas EL1, mas o suporte para outros nĂveis de exceção deve ser fĂĄcil de adicionar.
- Isso Ă© usado no Android para o Firmware VM Protegido.
- NĂŁo hĂĄ uma maneira fĂĄcil de executar este exemplo, pois ele precisa ser executado em hardware real ou no QEMU.