| # Changelog |
| ## v0.11.1 |
| |
| ### Changed |
| - [[#178](https://github.com/rust-vmm/vmm-sys-util/issues/178)]: Fixed a bug in |
| `rand_bytes` that was triggering a panic when the number of bytes was not a |
| multiple of 4. |
| - [[#181](https://github.com/rust-vmm/vmm-sys-util/pull/181)]: Changed |
| `TempFile::new_with_prefix()` on linux to use `mkstemp` to prevent name |
| collisions. |
| |
| ## v0.11.0 |
| |
| ### Added |
| - Added `rand_bytes` function that generates a pseudo random vector of |
| `len` bytes. |
| - Added implementation of `std::error::Error` for `fam::Error`. |
| - Added derive `Eq` and `PartialEq` for error types. |
| |
| ### Changed |
| - [[#161](https://github.com/rust-vmm/vmm-sys-util/issues/161)]: Updated the |
| license to BSD-3-Clause. |
| - Use edition 2021. |
| - [[vm-memory#199](https://github.com/rust-vmm/vm-memory/issues/199)]: Use caret |
| dependencies. This is the idiomatic way of specifying dependencies. |
| With this we reduce the risk of breaking customer code when new releases of |
| the dependencies are published. |
| - Renamed `xor_psuedo_rng_u32` to `xor_pseudo_rng_u32` to fix a typo. |
| - Renamed `xor_psuedo_rng_u8_alphanumerics` to `xor_pseudo_rng_u8_alphanumerics` |
| to fix a typo. |
| |
| ## v0.10.0 |
| |
| ### Added |
| - Added Android support by using the appropriate macro configuration when |
| exporting functionality. |
| - Derive `Debug` for `FamStructWrapper` & `EventFd`. |
| |
| ### Changed |
| - The `ioctl_expr` is now a const function instead of a macro. |
| |
| ## v0.9.0 |
| |
| ### Changed |
| * Fixed safety for sock_ctrl_msg::raw_recvmsg() and enhanced documentation |
| * Fixed sock_cmsg: ensured copy_nonoverlapping safety |
| * [[#135](https://github.com/rust-vmm/vmm-sys-util/pull/135)]: sock_ctrl_msg: |
| mark recv_with_fds as unsafe |
| |
| |
| ## v0.8.0 |
| |
| * Added set_check_for_hangup() to PollContext. |
| * Added writable()/has_error()/raw_events() to PollEvent. |
| * Derived Copy/Clone for PollWatchingEvents. |
| * Fixed the implementation of `write_zeroes` to use `FALLOC_FL_ZERO_RANGE` |
| instead of `FALLOC_FL_PUNCH_HOLE`. |
| * Added `write_all_zeroes` to `WriteZeroes`, which calls `write_zeroes` in a |
| loop until the requested length is met. |
| * Added a new trait, `WriteZeroesAt`, which allows giving the offset in file |
| instead of using the current cursor. |
| * Removed `max_events` from `Epoll::wait` which removes possible undefined |
| behavior. |
| * [[#104](https://github.com/rust-vmm/vmm-sys-util/issues/104)]: Fixed FAM |
| struct `PartialEq` implementation. |
| * [[#85](https://github.com/rust-vmm/vmm-sys-util/issues/85)]: Fixed FAM struct |
| `Clone` implementation. |
| * [[#99](https://github.com/rust-vmm/vmm-sys-util/issues/99)]: Validate the |
| maximum capacity when initializing FAM Struct. |
| |
| # v0.7.0 |
| |
| * Switched to Rust edition 2018. |
| * Added the `metric` module that provides a `Metric` interface as well as a |
| default implementation for `AtomicU64`. |
| |
| # v0.6.1 |
| |
| * Implemented `From<io::Error>` for `errno::Error`. |
| |
| # v0.6.0 |
| |
| * Derived Copy for EpollEvent. |
| * Implemented Debug for EpollEvent. |
| * Changed `Epoll::ctl` signature such that `EpollEvent` is passed by |
| value and not by reference. |
| * Enabled this crate to be used on other Unixes (besides Linux) by using |
| target_os = linux where appropriate. |
| |
| # v0.5.0 |
| |
| * Added conditionally compiled `serde` compatibility to `FamStructWrapper`, |
| gated by the `with-serde` feature. |
| * Implemented `Into<std::io::Error` for `errno::Error`. |
| * Added a wrapper over `libc::epoll` used for basic epoll operations. |
| |
| # v0.4.0 |
| |
| * Added Windows support for TempFile and errno::Error. |
| * Added `into_file` for TempFile which enables the TempFile to be used as a |
| regular file. |
| * Implemented std::error::Error for errno::Error. |
| * Fixed the implementation of `register_signal_handler` by allowing only |
| valid signal numbers. |
| |
| # v0.3.1 |
| |
| * Advertise functionality for obtaining POSIX real time signal base which is |
| needed to provide absolute signals in the API changed in v0.3.0. |
| |
| # v0.3.0 |
| |
| * Removed `for_vcpu` argument from `signal::register_signal_handler` and |
| `signal::validate_signal_num`. Users can now pass absolute values for all |
| valid signal numbers. |
| * Removed `flag` argument of `signal::register_signal_handler` public methods, |
| which now defaults to `libc::SA_SIGINFO`. |
| * Changed `TempFile::new` and `TempDir::new` to create new temporary files/ |
| directories inside `$TMPDIR` if set, otherwise inside `/tmp`. |
| * Added methods which create temporary files/directories with prefix. |
| |
| # v0.2.1 |
| |
| * Fixed the FamStructWrapper Clone implementation to avoid UB. |
| |
| # v0.2.0 |
| |
| * fam: updated the macro that generates implementions of FamStruct to |
| also take a parameter that specifies the name of the flexible array |
| member. |
| |
| # v0.1.1 |
| |
| * Fixed the Cargo.toml license. |
| * Fixed some clippy warnings. |
| |
| # v0.1.0 |
| |
| This is the first vmm-sys-util crate release. |
| |
| It is a collection of modules implementing helpers and utilities used by |
| multiple rust-vmm components and rust-vmm based VMMs. |
| Most of the code in this first release is based on either the crosvm or the |
| Firecracker projects, or both. |
| |
| The first release comes with the following Rust modules: |
| |
| * aio: Safe wrapper over |
| [`Linux AIO`](http://man7.org/linux/man-pages/man7/aio.7.html). |
| |
| * errno: Structures, helpers, and type definitions for working with |
| [`errno`](http://man7.org/linux/man-pages/man3/errno.3.html). |
| |
| * eventfd: Structure and wrapper functions for working with |
| [`eventfd`](http://man7.org/linux/man-pages/man2/eventfd.2.html). |
| |
| * fallocate: Enum and function for dealing with an allocated disk space |
| by [`fallocate`](http://man7.org/linux/man-pages/man2/fallocate.2.html). |
| |
| * fam: Trait and wrapper for working with C defined FAM structures. |
| |
| * file_traits: Traits for handling file synchronization and length. |
| |
| * ioctls: Macros and functions for working with |
| [`ioctl`](http://man7.org/linux/man-pages/man2/ioctl.2.html). |
| |
| * poll: Traits and structures for working with |
| [`epoll`](http://man7.org/linux/man-pages/man7/epoll.7.html) |
| |
| * rand: Miscellaneous functions related to getting (pseudo) random |
| numbers and strings. |
| |
| * seek_hole: Traits and implementations over |
| [`lseek64`](https://linux.die.net/man/3/lseek64). |
| |
| * signal: Enums, traits and functions for working with |
| [`signal`](http://man7.org/linux/man-pages/man7/signal.7.html). |
| |
| * sockctrl_msg: Wrapper for sending and receiving messages with file |
| descriptors on sockets that accept control messages (e.g. Unix domain |
| sockets). |
| |
| * tempdir: Structure for handling temporary directories. |
| |
| * tempfile: Struct for handling temporary files as well as any cleanup |
| required. |
| |
| * terminal: Trait for working with |
| [`termios`](http://man7.org/linux/man-pages/man3/termios.3.html). |
| |
| * timerfd: Structure and functions for working with |
| [`timerfd`](http://man7.org/linux/man-pages/man2/timerfd_create.2.html). |
| |
| * write_zeroes: Traits for replacing a range with a hole and writing |
| zeroes in a file. |