Lines Matching refs:reg

49 static int get_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)  in get_core_reg()  argument
57 __u32 __user *uaddr = (__u32 __user *)(unsigned long)reg->addr; in get_core_reg()
63 off = core_reg_offset_from_id(reg->id); in get_core_reg()
65 (off + (KVM_REG_SIZE(reg->id) / sizeof(__u32))) >= nr_regs) in get_core_reg()
68 if (copy_to_user(uaddr, ((u32 *)regs) + off, KVM_REG_SIZE(reg->id))) in get_core_reg()
74 static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) in set_core_reg() argument
76 __u32 __user *uaddr = (__u32 __user *)(unsigned long)reg->addr; in set_core_reg()
85 off = core_reg_offset_from_id(reg->id); in set_core_reg()
87 (off + (KVM_REG_SIZE(reg->id) / sizeof(__u32))) >= nr_regs) in set_core_reg()
90 if (KVM_REG_SIZE(reg->id) > sizeof(tmp)) in set_core_reg()
93 if (copy_from_user(valp, uaddr, KVM_REG_SIZE(reg->id))) { in set_core_reg()
117 memcpy((u32 *)regs + off, valp, KVM_REG_SIZE(reg->id)); in set_core_reg()
168 static int set_timer_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) in set_timer_reg() argument
170 void __user *uaddr = (void __user *)(long)reg->addr; in set_timer_reg()
174 ret = copy_from_user(&val, uaddr, KVM_REG_SIZE(reg->id)); in set_timer_reg()
178 return kvm_arm_timer_set_reg(vcpu, reg->id, val); in set_timer_reg()
181 static int get_timer_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) in get_timer_reg() argument
183 void __user *uaddr = (void __user *)(long)reg->addr; in get_timer_reg()
186 val = kvm_arm_timer_get_reg(vcpu, reg->id); in get_timer_reg()
187 return copy_to_user(uaddr, &val, KVM_REG_SIZE(reg->id)) ? -EFAULT : 0; in get_timer_reg()
226 int kvm_arm_get_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) in kvm_arm_get_reg() argument
229 if ((reg->id & ~KVM_REG_SIZE_MASK) >> 32 != KVM_REG_ARM64 >> 32) in kvm_arm_get_reg()
233 if ((reg->id & KVM_REG_ARM_COPROC_MASK) == KVM_REG_ARM_CORE) in kvm_arm_get_reg()
234 return get_core_reg(vcpu, reg); in kvm_arm_get_reg()
236 if (is_timer_reg(reg->id)) in kvm_arm_get_reg()
237 return get_timer_reg(vcpu, reg); in kvm_arm_get_reg()
239 return kvm_arm_sys_reg_get_reg(vcpu, reg); in kvm_arm_get_reg()
242 int kvm_arm_set_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) in kvm_arm_set_reg() argument
245 if ((reg->id & ~KVM_REG_SIZE_MASK) >> 32 != KVM_REG_ARM64 >> 32) in kvm_arm_set_reg()
249 if ((reg->id & KVM_REG_ARM_COPROC_MASK) == KVM_REG_ARM_CORE) in kvm_arm_set_reg()
250 return set_core_reg(vcpu, reg); in kvm_arm_set_reg()
252 if (is_timer_reg(reg->id)) in kvm_arm_set_reg()
253 return set_timer_reg(vcpu, reg); in kvm_arm_set_reg()
255 return kvm_arm_sys_reg_set_reg(vcpu, reg); in kvm_arm_set_reg()