diff --git a/kvm_sys/bindgen.sh b/kvm_sys/bindgen.sh index 82af23b90b..0b417715ed 100755 --- a/kvm_sys/bindgen.sh +++ b/kvm_sys/bindgen.sh @@ -39,8 +39,7 @@ pub struct kvm_vfio_iommu_config { pub device_fd: i32, pub sid_idx: u32, pub vsid: u32, -} -pub const KVM_PVIOMMU_SET_CONFIG: i32 = 0xc00cae01u32 as i32;" +}" X86_64_EXTRAS=" // This is how zerocopy's author deal with bindings for __BindgenBitfieldUnit, see: diff --git a/kvm_sys/src/aarch64/bindings.rs b/kvm_sys/src/aarch64/bindings.rs index fec4105834..4790df5499 100644 --- a/kvm_sys/src/aarch64/bindings.rs +++ b/kvm_sys/src/aarch64/bindings.rs @@ -38,7 +38,6 @@ pub struct kvm_vfio_iommu_config { pub sid_idx: u32, pub vsid: u32, } -pub const KVM_PVIOMMU_SET_CONFIG: i32 = 0xc00cae01u32 as i32; #[repr(C)] #[derive(Default)] diff --git a/kvm_sys/src/lib.rs b/kvm_sys/src/lib.rs index 93e08b31dc..5962d42b91 100644 --- a/kvm_sys/src/lib.rs +++ b/kvm_sys/src/lib.rs @@ -69,6 +69,8 @@ pub mod aarch64 { pub mod bindings; use base::ioctl_ior_nr; use base::ioctl_iow_nr; + #[cfg(target_os = "android")] + use base::ioctl_iowr_nr; pub use bindings::*; ioctl_iow_nr!(KVM_ARM_SET_DEVICE_ADDR, KVMIO, 0xab, kvm_arm_device_addr); @@ -80,6 +82,9 @@ pub mod aarch64 { 0xb5, kvm_arm_counter_offset ); + + #[cfg(target_os = "android")] + ioctl_iowr_nr!(KVM_PVIOMMU_SET_CONFIG, KVMIO, 0x1, kvm_vfio_iommu_config); } #[cfg(any(target_arch = "arm", target_arch = "aarch64"))] pub use crate::aarch64::*;