Skip to content

0.6.0

Compare
Choose a tag to compare
@qwandor qwandor released this 31 May 14:43
· 25 commits to main since this release

Breaking changes

  • Added support for EL2 and EL3 page tables. This requires a new parameter to IdMap::new,
    LinearMap::new, Mapping::new and RootTable::new.
  • Attributes::EXECUTE_NEVER renamed to Attributes::UXN.
  • Attributes::DEVICE_NGNRE and NORMAL have been removed in favour of ATTRIBUTE_INDEX_*,
    OUTER_SHAREABLE and INNER_SHAREABLE, to avoid making assumptions about how the MAIR registers
    are programmed.

New features

  • Added root_address, mark_active and mark_inactive methods to IdMap, LinearMap and
    Mapping. These may be used to activate and deactivate the page table manually rather than
    calling activate and deactivate.
  • Added NS and PXN bits to Attributes.

Bug fixes

  • When an invalid descriptor is split into a table, the table descriptors aren't set unless to
    non-zero values unless the original descriptor was.

Other changes

  • Attributes::ACCESSED is no longer automatically set on all new mappings. To maintain existing
    behaviour you should explicitly set Attributes::ACCESSED whenever calling map_range for a
    valid mapping.