unplugged-system/external/rust/crates/aarch64-paging/CHANGELOG.md

56 lines
1.7 KiB
Markdown
Raw Normal View History

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