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