# 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>` 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.