summaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/kvm/include/kvm_util_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/testing/selftests/kvm/include/kvm_util_base.h')
-rw-r--r--tools/testing/selftests/kvm/include/kvm_util_base.h28
1 files changed, 24 insertions, 4 deletions
diff --git a/tools/testing/selftests/kvm/include/kvm_util_base.h b/tools/testing/selftests/kvm/include/kvm_util_base.h
index c0b2158a53d5..9c29b6797ce8 100644
--- a/tools/testing/selftests/kvm/include/kvm_util_base.h
+++ b/tools/testing/selftests/kvm/include/kvm_util_base.h
@@ -374,16 +374,36 @@ static inline void vcpu_fpu_set(struct kvm_vm *vm, uint32_t vcpuid,
{
vcpu_ioctl(vm, vcpuid, KVM_SET_FPU, fpu);
}
+
+static inline int __vcpu_get_reg(struct kvm_vm *vm, uint32_t vcpuid,
+ uint64_t reg_id, void *addr)
+{
+ struct kvm_one_reg reg = { .id = reg_id, .addr = (uint64_t)addr };
+
+ return __vcpu_ioctl(vm, vcpuid, KVM_GET_ONE_REG, &reg);
+}
+static inline int __vcpu_set_reg(struct kvm_vm *vm, uint32_t vcpuid,
+ uint64_t reg_id, uint64_t val)
+{
+ struct kvm_one_reg reg = { .id = reg_id, .addr = (uint64_t)&val };
+
+ return __vcpu_ioctl(vm, vcpuid, KVM_SET_ONE_REG, &reg);
+}
static inline void vcpu_get_reg(struct kvm_vm *vm, uint32_t vcpuid,
- struct kvm_one_reg *reg)
+ uint64_t reg_id, void *addr)
{
- vcpu_ioctl(vm, vcpuid, KVM_GET_ONE_REG, reg);
+ struct kvm_one_reg reg = { .id = reg_id, .addr = (uint64_t)addr };
+
+ vcpu_ioctl(vm, vcpuid, KVM_GET_ONE_REG, &reg);
}
static inline void vcpu_set_reg(struct kvm_vm *vm, uint32_t vcpuid,
- struct kvm_one_reg *reg)
+ uint64_t reg_id, uint64_t val)
{
- vcpu_ioctl(vm, vcpuid, KVM_SET_ONE_REG, reg);
+ struct kvm_one_reg reg = { .id = reg_id, .addr = (uint64_t)&val };
+
+ vcpu_ioctl(vm, vcpuid, KVM_SET_ONE_REG, &reg);
}
+
#ifdef __KVM_HAVE_VCPU_EVENTS
static inline void vcpu_events_get(struct kvm_vm *vm, uint32_t vcpuid,
struct kvm_vcpu_events *events)