kvm_cache_regs.h 811 B

1234567891011121314151617181920212223242526272829303132
  1. #ifndef ASM_KVM_CACHE_REGS_H
  2. #define ASM_KVM_CACHE_REGS_H
  3. static inline unsigned long kvm_register_read(struct kvm_vcpu *vcpu,
  4. enum kvm_reg reg)
  5. {
  6. if (!test_bit(reg, (unsigned long *)&vcpu->arch.regs_avail))
  7. kvm_x86_ops->cache_reg(vcpu, reg);
  8. return vcpu->arch.regs[reg];
  9. }
  10. static inline void kvm_register_write(struct kvm_vcpu *vcpu,
  11. enum kvm_reg reg,
  12. unsigned long val)
  13. {
  14. vcpu->arch.regs[reg] = val;
  15. __set_bit(reg, (unsigned long *)&vcpu->arch.regs_dirty);
  16. __set_bit(reg, (unsigned long *)&vcpu->arch.regs_avail);
  17. }
  18. static inline unsigned long kvm_rip_read(struct kvm_vcpu *vcpu)
  19. {
  20. return kvm_register_read(vcpu, VCPU_REGS_RIP);
  21. }
  22. static inline void kvm_rip_write(struct kvm_vcpu *vcpu, unsigned long val)
  23. {
  24. kvm_register_write(vcpu, VCPU_REGS_RIP, val);
  25. }
  26. #endif