Skip to content
This repository has been archived by the owner on Apr 28, 2021. It is now read-only.

Latest commit

 

History

History
126 lines (95 loc) · 3.9 KB

CHANGELOG.md

File metadata and controls

126 lines (95 loc) · 3.9 KB

[0.6.0-3]

Changed

  • Upgrade to kvm-bindings v0.3.0-3.

[0.6.0-2]

Changed

  • Upgrade to kvm-bindings v0.3.0-2 which enables versionize on arm.

[0.6.0-1]

Added

  • [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.

[0.5.0-2]

Changed

  • Upgrade to kvm-bindings v0.2.0-2 which uses versionize v0.1.1.

[0.5.0-1]

Built on top of upstream rust-vmm/kvm-ioctls v0.5.0.

Changed

  • Consume 'kvm-bindings' dependency from 'github.com/firecracker-microvm' which provides versioned bindings for x86_64 state structs.

v0.5.0

Added

  • Support for the vcpu ioctls KVM_GET/SET_VCPU_EVENTS and KVM_GET_DIRTY_LOG on aarch64.
  • Support for the vcpu ioctl KVM_IRQ_LINE.

v0.4.0

Added

  • Support for unregistering ioeventfds through KVM_IOEVENTFD.

Changed

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

Removed

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

v0.3.0

Added

  • 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

Changed

  • Function offering support for KVM_SET_MSRS also returns the number of MSR entries successfully written.

v0.2.0

Added

  • Add support for KVM_ENABLE_CAP.
  • Add support for KVM_SIGNAL_MSI.

Fixed

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

v0.1.0

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.