aarch64-paging
El crate aarch64-paging
permite crear tablas de páginas de acuerdo con la arquitectura del sistema de memoria virtual AArch64.
use aarch64_paging::{ idmap::IdMap, paging::{Attributes, MemoryRegion}, }; const ASID: usize = 1; const ROOT_LEVEL: usize = 1; // Crea una tabla de páginas con mapeado de identidades. let mut idmap = IdMap::new(ASID, ROOT_LEVEL); // Asigna una región de 2 MiB de memoria como de solo lectura. idmap.map_range( &MemoryRegion::new(0x80200000, 0x80400000), Attributes::NORMAL | Attributes::NON_GLOBAL | Attributes::READ_ONLY, ).unwrap(); // Configura `TTBR0_EL1` para activar la tabla de páginas. idmap.activate();
- Por ahora, solo es compatible con EL1, pero debería ser sencillo añadir compatibilidad con otros niveles de excepción.
- Se utiliza en Android para el Firmware de Máquina Virtual Protegida.
- No hay una forma sencilla de ejecutar este ejemplo, ya que debe hacerse en hardware real o en QEMU.