Lines Matching refs:reg
51 static int get_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) in get_core_reg() argument
59 __u32 __user *uaddr = (__u32 __user *)(unsigned long)reg->addr; in get_core_reg()
65 off = core_reg_offset_from_id(reg->id); in get_core_reg()
67 (off + (KVM_REG_SIZE(reg->id) / sizeof(__u32))) >= nr_regs) in get_core_reg()
70 if (copy_to_user(uaddr, ((u32 *)regs) + off, KVM_REG_SIZE(reg->id))) in get_core_reg()
76 static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) in set_core_reg() argument
78 __u32 __user *uaddr = (__u32 __user *)(unsigned long)reg->addr; in set_core_reg()
87 off = core_reg_offset_from_id(reg->id); in set_core_reg()
89 (off + (KVM_REG_SIZE(reg->id) / sizeof(__u32))) >= nr_regs) in set_core_reg()
92 if (KVM_REG_SIZE(reg->id) > sizeof(tmp)) in set_core_reg()
95 if (copy_from_user(valp, uaddr, KVM_REG_SIZE(reg->id))) { in set_core_reg()
119 memcpy((u32 *)regs + off, valp, KVM_REG_SIZE(reg->id)); in set_core_reg()
170 static int set_timer_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) in set_timer_reg() argument
172 void __user *uaddr = (void __user *)(long)reg->addr; in set_timer_reg()
176 ret = copy_from_user(&val, uaddr, KVM_REG_SIZE(reg->id)); in set_timer_reg()
180 return kvm_arm_timer_set_reg(vcpu, reg->id, val); in set_timer_reg()
183 static int get_timer_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) in get_timer_reg() argument
185 void __user *uaddr = (void __user *)(long)reg->addr; in get_timer_reg()
188 val = kvm_arm_timer_get_reg(vcpu, reg->id); in get_timer_reg()
189 return copy_to_user(uaddr, &val, KVM_REG_SIZE(reg->id)) ? -EFAULT : 0; in get_timer_reg()
228 int kvm_arm_get_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) in kvm_arm_get_reg() argument
231 if ((reg->id & ~KVM_REG_SIZE_MASK) >> 32 != KVM_REG_ARM64 >> 32) in kvm_arm_get_reg()
235 if ((reg->id & KVM_REG_ARM_COPROC_MASK) == KVM_REG_ARM_CORE) in kvm_arm_get_reg()
236 return get_core_reg(vcpu, reg); in kvm_arm_get_reg()
238 if (is_timer_reg(reg->id)) in kvm_arm_get_reg()
239 return get_timer_reg(vcpu, reg); in kvm_arm_get_reg()
241 return kvm_arm_sys_reg_get_reg(vcpu, reg); in kvm_arm_get_reg()
244 int kvm_arm_set_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) in kvm_arm_set_reg() argument
247 if ((reg->id & ~KVM_REG_SIZE_MASK) >> 32 != KVM_REG_ARM64 >> 32) in kvm_arm_set_reg()
251 if ((reg->id & KVM_REG_ARM_COPROC_MASK) == KVM_REG_ARM_CORE) in kvm_arm_set_reg()
252 return set_core_reg(vcpu, reg); in kvm_arm_set_reg()
254 if (is_timer_reg(reg->id)) in kvm_arm_set_reg()
255 return set_timer_reg(vcpu, reg); in kvm_arm_set_reg()
257 return kvm_arm_sys_reg_set_reg(vcpu, reg); in kvm_arm_set_reg()