blob: a428c1a211b2ef34b1970c540928deee359fc722 [file] [log] [blame]
Paolo Bonzinic9eab582014-11-24 15:27:17 +01001#ifndef ARCH_X86_KVM_ASSIGNED_DEV_H
2#define ARCH_X86_KVM_ASSIGNED_DEV_H
3
4#include <linux/kvm_host.h>
5
6#ifdef CONFIG_KVM_DEVICE_ASSIGNMENT
7int kvm_assign_device(struct kvm *kvm, struct pci_dev *pdev);
8int kvm_deassign_device(struct kvm *kvm, struct pci_dev *pdev);
9
10int kvm_iommu_map_guest(struct kvm *kvm);
11int kvm_iommu_unmap_guest(struct kvm *kvm);
12
13long kvm_vm_ioctl_assigned_device(struct kvm *kvm, unsigned ioctl,
14 unsigned long arg);
15
16void kvm_free_all_assigned_devices(struct kvm *kvm);
17#else
18static inline int kvm_iommu_unmap_guest(struct kvm *kvm)
19{
20 return 0;
21}
22
23static inline long kvm_vm_ioctl_assigned_device(struct kvm *kvm, unsigned ioctl,
24 unsigned long arg)
25{
26 return -ENOTTY;
27}
28
29static inline void kvm_free_all_assigned_devices(struct kvm *kvm) {}
30#endif /* CONFIG_KVM_DEVICE_ASSIGNMENT */
31
32#endif /* ARCH_X86_KVM_ASSIGNED_DEV_H */