Changelog

0.3.0

Breaking changes

  • Made Translation trait responsible for allocating page tables. This should help make it possible to use more complex mapping schemes, and to construct page tables in a different context to where they are used.
  • Renamed AddressRangeError to MapError, which is now an enum with three variants and implements Display.
  • From<*const T> and From<*mut T> are no longer implemented for VirtualAddress.
  • Added support for using TTBR1 as well as TTBR0; this changes various constructors to take an extra parameter.

New features

  • Made alloc dependency optional via a feature flag.
  • Added support for linear mappings with new LinearMap.
  • Implemented subtraction of usize from address types.

Bugfixes

  • Fixed memory leak introduced in 0.2.0: dropping a page table will now actually free its memory.

0.2.1

New features

  • Implemented Debug and Display for MemoryRegion.
  • Implemented From<Range<VirtualAddress>> for MemoryRegion.
  • Implemented arithmetic operations for PhysicalAddress and VirtualAddress.

0.2.0

Breaking changes

  • Added bounds check to IdMap::map_range; it will now return an error if you attempt to map a virtual address outside the range of the page table given its configured root level.

New features

  • Implemented Debug for PhysicalAddress and VirtualAddress.
  • Validate that chosen root level is supported.

Bugfixes

  • Fixed bug in Display and Drop implementation for RootTable that would result in a crash for any pagetable with non-zero mappings.
  • Fixed Display implementation for PhysicalAddress and VirtualAddress to use correct number of digits.

0.1.0

Initial release.