- Upgrade to kvm-bindings v0.3.0-3.
- Upgrade to kvm-bindings v0.3.0-2 which enables versionize on arm.
- [upstream] Support for retrieving Host_IPA_Limit for aarch64.
- [upstream] Support for parametrizable
datamatch
field when unregistering IO event through KVM_IOEVENTFD. - [upstream] Support for flexible configuration of aarch64 guest IPA size.
- [upstream] Support for
KVM_GET_DEVICE_ATTR
ioctl. - [upstream] Support for
KVM_CAP_MSI_DEVID
ioctl. - [upstream] Support for
KVM_CHECK_EXTENSION
ioctl. - [upstream] Support for
KVM_GET_REG_LIST
ioctl.
- Upgrade to kvm-bindings v0.2.0-2 which uses versionize v0.1.1.
Built on top of upstream rust-vmm/kvm-ioctls v0.5.0.
- Consume 'kvm-bindings' dependency from 'github.com/firecracker-microvm' which provides versioned bindings for x86_64 state structs.
- Support for the vcpu ioctls
KVM_GET/SET_VCPU_EVENTS
andKVM_GET_DIRTY_LOG
onaarch64
. - Support for the vcpu ioctl
KVM_IRQ_LINE
.
- Support for unregistering ioeventfds through
KVM_IOEVENTFD
.
- Functions working with event FDs now require vmm_sys_util::eventfd::EventFd in their interface instead of RawFd.
- Functions working with FAM structs kvm_msr_list and kvm_msrs, were changed to work with their respective safe counterparts MsrList and respectively Msrs.
- Now exporting kvm_ioctls::Error type definition so that users of this crate can create their own wrapping errors without having to know the Error type used internally by this crate.
- No longer exporting kvm_ioctls::Result. Users of this crate should not have to use kvm_ioctls::Result outside the crate.
- kvm_ioctls::Error now works with errno::Error instead of io::Error.
- CpuId safe wrapper over FAM struct kvm_cpuid2. The safe wrapper is now provided by the kvm_bindings crate starting with v0.2.0.
- KVM_MAX_MSR_ENTRIES and MAX_KVM_CPUID_ENTRIES. Equivalent constants are provided by the kvm_bindings crate starting with v0.2.0.
- Support for setting vcpu
kvm_immediate_exit
flag - Support for the vcpu ioctl
KVM_GET_CPUID2
- Support for the vcpu ioctl
KVM_GET_MP_STATE
- Support for the vcpu ioctl
KVM_SET_MP_STATE
- Support for the vcpu ioctl
KVM_GET_VCPU_EVENTS
- Support for the vcpu ioctl
KVM_SET_VCPU_EVENTS
- Support for the vcpu ioctl
KVM_GET_DEBUGREGS
- Support for the vcpu ioctl
KVM_SET_DEBUGREGS
- Support for the vcpu ioctl
KVM_GET_XSAVE
- Support for the vcpu ioctl
KVM_SET_XSAVE
- Support for the vcpu ioctl
KVM_GET_XCRS
- Support for the vcpu ioctl
KVM_SET_XCRS
- Support for the vm ioctl
KVM_GET_IRQCHIP
- Support for the vm ioctl
KVM_SET_IRQCHIP
- Support for the vm ioctl
KVM_GET_CLOCK
- Support for the vm ioctl
KVM_SET_CLOCK
- Support for the vm ioctl
KVM_GET_PIT2
- Support for the vm ioctl
KVM_SET_PIT2
- Support for the vcpu ioctl
KVM_GET_ONE_REG
- Function offering support for
KVM_SET_MSRS
also returns the number of MSR entries successfully written.
- Add support for
KVM_ENABLE_CAP
. - Add support for
KVM_SIGNAL_MSI
.
- Fix bug in KvmRunWrapper. The memory for kvm_run struct was not unmapped after the KvmRunWrapper object got out of scope.
- Return proper value when receiving the EOI KVM exit.
- Mark set_user_memory_region as unsafe.
First release of the kvm-ioctls crate.
The kvm-ioctls crate provides safe wrappers over the KVM API, a set of ioctls used for creating and configuring Virtual Machines (VMs) on Linux. The ioctls are accessible through four structures:
- Kvm - wrappers over system ioctls
- VmFd - wrappers over VM ioctls
- VcpuFd - wrappers over vCPU ioctls
- DeviceFd - wrappers over device ioctls
The kvm-ioctls can be used on x86_64 and aarch64. Right now the aarch64 support is considered experimental.