1# Changelog 2 3## [v0.12.2] 4 5### Fixed 6- [[#251]](https://github.com/rust-vmm/vm-memory/pull/251): Inserted checks 7 that verify that the value returned by `VolatileMemory::get_slice` is of 8 the correct length. 9 10### Deprecated 11- [[#244]](https://github.com/rust-vmm/vm-memory/pull/241) Deprecate volatile 12 memory's `as_ptr()` interfaces. The new interfaces to be used instead are: 13 `ptr_guard()` and `ptr_guard_mut()`. 14 15## [v0.12.1] 16 17### Fixed 18- [[#241]](https://github.com/rust-vmm/vm-memory/pull/245) mmap_xen: Don't drop 19 the FileOffset while in use #245 20 21## [v0.12.0] 22 23### Added 24- [[#241]](https://github.com/rust-vmm/vm-memory/pull/241) Add Xen memory 25 mapping support: Foreign and Grant. Add new API for accessing pointers to 26 volatile slices, as `as_ptr()` can't be used with Xen's Grant mapping. 27- [[#237]](https://github.com/rust-vmm/vm-memory/pull/237) Implement `ByteValued` for `i/u128`. 28 29## [v0.11.0] 30 31### Added 32- [[#216]](https://github.com/rust-vmm/vm-memory/pull/216) Add `GuestRegionMmap::from_region`. 33 34### Fixed 35- [[#217]](https://github.com/rust-vmm/vm-memory/pull/217) Fix vm-memory internally 36 taking rust-style slices to guest memory in ways that could potentially cause 37 undefined behavior. Removes/deprecates various `as_slice`/`as_slice_mut` methods 38 whose usage violated rust's aliasing rules, as well as an unsound 39 `impl<'a> VolatileMemory for &'a mut [u8]`. 40 41## [v0.10.0] 42 43### Changed 44- [[#208]](https://github.com/rust-vmm/vm-memory/issues/208) Updated 45 vmm-sys-util dependency to v0.11.0 46- [[#203]](https://github.com/rust-vmm/vm-memory/pull/203) Switched to Rust 47 edition 2021. 48 49## [v0.9.0] 50 51### Fixed 52 53- [[#195]](https://github.com/rust-vmm/vm-memory/issues/195): 54 `mmap::check_file_offset` is doing the correct size validation for block and 55 char devices as well. 56 57### Changed 58 59- [[#198]](https://github.com/rust-vmm/vm-memory/pull/198): atomic: enable 64 60 bit atomics on ppc64le and s390x. 61- [[#200]](https://github.com/rust-vmm/vm-memory/pull/200): docs: enable all 62 features in `docs.rs`. 63- [[#199]](https://github.com/rust-vmm/vm-memory/issues/199): Update the way 64 the dependencies are pulled such that we don't end up with incompatible 65 versions. 66 67## [v0.8.0] 68 69### Fixed 70 71- [[#190]](https://github.com/rust-vmm/vm-memory/pull/190): 72 `VolatileSlice::read/write` when input slice is empty. 73 74## [v0.7.0] 75 76### Changed 77 78- [[#176]](https://github.com/rust-vmm/vm-memory/pull/176): Relax the trait 79 bounds of `Bytes` auto impl for `T: GuestMemory` 80- [[#178]](https://github.com/rust-vmm/vm-memory/pull/178): 81 `MmapRegion::build_raw` no longer requires that the length of the region is a 82 multiple of the page size. 83 84## [v0.6.0] 85 86### Added 87 88 - [[#160]](https://github.com/rust-vmm/vm-memory/pull/160): Add `ArcRef` and `AtomicBitmapArc` bitmap 89 backend implementations. 90 - [[#149]](https://github.com/rust-vmm/vm-memory/issues/149): Implement builder for MmapRegion. 91 - [[#140]](https://github.com/rust-vmm/vm-memory/issues/140): Add dirty bitmap tracking abstractions. 92 93### Deprecated 94 95 - [[#133]](https://github.com/rust-vmm/vm-memory/issues/8): Deprecate `GuestMemory::with_regions()`, 96 `GuestMemory::with_regions_mut()`, `GuestMemory::map_and_fold()`. 97 98## [v0.5.0] 99 100### Added 101 102- [[#8]](https://github.com/rust-vmm/vm-memory/issues/8): Add GuestMemory method to return an Iterator 103- [[#120]](https://github.com/rust-vmm/vm-memory/pull/120): Add is_hugetlbfs() to GuestMemoryRegion 104- [[#126]](https://github.com/rust-vmm/vm-memory/pull/126): Add VolatileSlice::split_at() 105- [[#128]](https://github.com/rust-vmm/vm-memory/pull/128): Add VolatileSlice::subslice() 106 107## [v0.4.0] 108 109### Fixed 110 111- [[#100]](https://github.com/rust-vmm/vm-memory/issues/100): Performance 112 degradation after fixing [#95](https://github.com/rust-vmm/vm-memory/pull/95). 113- [[#122]](https://github.com/rust-vmm/vm-memory/pull/122): atomic, 114 Cargo.toml: Update for arc-swap 1.0.0. 115 116## [v0.3.0] 117 118### Added 119 120- [[#109]](https://github.com/rust-vmm/vm-memory/pull/109): Added `build_raw` to 121 `MmapRegion` which can be used to operate on externally created mappings. 122- [[#101]](https://github.com/rust-vmm/vm-memory/pull/101): Added `check_range` for 123 GuestMemory which could be used to validate a range of guest memory. 124- [[#115]](https://github.com/rust-vmm/vm-memory/pull/115): Add methods for atomic 125 access to `Bytes`. 126 127### Fixed 128 129- [[#93]](https://github.com/rust-vmm/vm-memory/issues/93): DoS issue when using 130 virtio with rust-vmm/vm-memory. 131- [[#106]](https://github.com/rust-vmm/vm-memory/issues/106): Asserts trigger 132 on zero-length access. 133 134### Removed 135 136- `integer-atomics` is no longer a distinct feature of the crate. 137 138## [v0.2.0] 139 140### Added 141 142- [[#76]](https://github.com/rust-vmm/vm-memory/issues/76): Added `get_slice` and 143 `as_volatile_slice` to `GuestMemoryRegion`. 144- [[#82]](https://github.com/rust-vmm/vm-memory/issues/82): Added `Clone` bound 145 for `GuestAddressSpace::T`, the return value of `GuestAddressSpace::memory()`. 146- [[#88]](https://github.com/rust-vmm/vm-memory/issues/88): Added `as_bytes` for 147 `ByteValued` which can be used for reading into POD structures from 148 raw bytes. 149 150## [v0.1.0] 151 152### Added 153 154- Added traits for working with VM memory. 155- Added a mmap based implemention for the Guest Memory. 156