• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Changelog
2
3## 0.2.1
4
5### New features
6
7- Added `get` method to `UniqueMmioPointer<[T; N]>` and `SharedMmioPointer<[T; N]>`.
8
9## 0.2.0
10
11### Breaking changes
12
13- Renamed `OwnedMmioPointer` to `UniqueMmioPointer`.
14
15### New features
16
17- Added `SharedMmioPointer` for an MMIO pointer that is not necessarily unique. Unlike a
18  `UniqueMmioPointer`, a `SharedMmioPointer` can be cloned. `UniqueMmioPointer` derefs to
19  `SharedMmioPointer` and can also be converted to it.
20- Added `get` and `split` methods on `UniqueMmioPointer<[T]>` and `UniqueMmioPointer<[T; _]>`
21  respectively, to go from a pointer to a slice or field to pointers to the individual elements.
22- Added `field!` and `field_shared!` macros to go from a pointer to a struct to a pointer to an
23  individual field.
24- Added `write_unsafe` and `read_unsafe` methods on `UniqueMmioPointer` and `SharedMmioPointer`.
25  These call `write_volatile` and `read_volatile` on most platforms, but on aarch64 are implemented
26  with inline assembly instead to work around
27  [a bug with how volatile writes and reads are implemented](https://github.com/rust-lang/rust/issues/131894).
28- Added wrapper types `ReadOnly`, `ReadPure`, `WriteOnly`, `ReadWrite` and `ReadPureWrite` to
29  indicate whether a field can safely be written or read (with or without side-effects). Added safe
30  `write` and `read` methods on `UniqueMmioPointer` or `SharedMmioPointer` for these.
31
32## 0.1.0
33
34Initial release.
35