linux/arch/x86/kvm/x86.h
<<
>>
Prefs
   1#ifndef ARCH_X86_KVM_X86_H
   2#define ARCH_X86_KVM_X86_H
   3
   4#include <linux/kvm_host.h>
   5
   6static inline void kvm_clear_exception_queue(struct kvm_vcpu *vcpu)
   7{
   8        vcpu->arch.exception.pending = false;
   9}
  10
  11static inline void kvm_queue_interrupt(struct kvm_vcpu *vcpu, u8 vector,
  12        bool soft)
  13{
  14        vcpu->arch.interrupt.pending = true;
  15        vcpu->arch.interrupt.soft = soft;
  16        vcpu->arch.interrupt.nr = vector;
  17}
  18
  19static inline void kvm_clear_interrupt_queue(struct kvm_vcpu *vcpu)
  20{
  21        vcpu->arch.interrupt.pending = false;
  22}
  23
  24static inline bool kvm_event_needs_reinjection(struct kvm_vcpu *vcpu)
  25{
  26        return vcpu->arch.exception.pending || vcpu->arch.interrupt.pending ||
  27                vcpu->arch.nmi_injected;
  28}
  29
  30static inline bool kvm_exception_is_soft(unsigned int nr)
  31{
  32        return (nr == BP_VECTOR) || (nr == OF_VECTOR);
  33}
  34
  35struct kvm_cpuid_entry2 *kvm_find_cpuid_entry(struct kvm_vcpu *vcpu,
  36                                             u32 function, u32 index);
  37
  38#endif
  39