x86.h 639 B

123456789101112131415161718192021222324252627
  1. #ifndef ARCH_X86_KVM_X86_H
  2. #define ARCH_X86_KVM_X86_H
  3. #include <linux/kvm_host.h>
  4. static inline void kvm_clear_exception_queue(struct kvm_vcpu *vcpu)
  5. {
  6. vcpu->arch.exception.pending = false;
  7. }
  8. static inline void kvm_queue_interrupt(struct kvm_vcpu *vcpu, u8 vector)
  9. {
  10. vcpu->arch.interrupt.pending = true;
  11. vcpu->arch.interrupt.nr = vector;
  12. }
  13. static inline void kvm_clear_interrupt_queue(struct kvm_vcpu *vcpu)
  14. {
  15. vcpu->arch.interrupt.pending = false;
  16. }
  17. static inline bool kvm_event_needs_reinjection(struct kvm_vcpu *vcpu)
  18. {
  19. return vcpu->arch.exception.pending || vcpu->arch.interrupt.pending ||
  20. vcpu->arch.nmi_injected;
  21. }
  22. #endif