diff options
Diffstat (limited to 'tools/testing/selftests/kvm/lib/kvm_util.c')
| -rw-r--r-- | tools/testing/selftests/kvm/lib/kvm_util.c | 46 | 
1 files changed, 42 insertions, 4 deletions
| diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c index 10a8ed691c66..041004c0fda7 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -1792,7 +1792,7 @@ void vcpu_sregs_get(struct kvm_vm *vm, uint32_t vcpuid, struct kvm_sregs *sregs)  void vcpu_sregs_set(struct kvm_vm *vm, uint32_t vcpuid, struct kvm_sregs *sregs)  {  	int ret = _vcpu_sregs_set(vm, vcpuid, sregs); -	TEST_ASSERT(ret == 0, "KVM_RUN IOCTL failed, " +	TEST_ASSERT(ret == 0, "KVM_SET_SREGS IOCTL failed, "  		"rc: %i errno: %i", ret, errno);  } @@ -1984,7 +1984,7 @@ int kvm_device_check_attr(int dev_fd, uint32_t group, uint64_t attr)  {  	int ret = _kvm_device_check_attr(dev_fd, group, attr); -	TEST_ASSERT(ret >= 0, "KVM_HAS_DEVICE_ATTR failed, rc: %i errno: %i", ret, errno); +	TEST_ASSERT(!ret, "KVM_HAS_DEVICE_ATTR failed, rc: %i errno: %i", ret, errno);  	return ret;  } @@ -2008,7 +2008,7 @@ int kvm_create_device(struct kvm_vm *vm, uint64_t type, bool test)  	ret = _kvm_create_device(vm, type, test, &fd);  	if (!test) { -		TEST_ASSERT(ret >= 0, +		TEST_ASSERT(!ret,  			    "KVM_CREATE_DEVICE IOCTL failed, rc: %i errno: %i", ret, errno);  		return fd;  	} @@ -2036,7 +2036,45 @@ int kvm_device_access(int dev_fd, uint32_t group, uint64_t attr,  {  	int ret = _kvm_device_access(dev_fd, group, attr, val, write); -	TEST_ASSERT(ret >= 0, "KVM_SET|GET_DEVICE_ATTR IOCTL failed, rc: %i errno: %i", ret, errno); +	TEST_ASSERT(!ret, "KVM_SET|GET_DEVICE_ATTR IOCTL failed, rc: %i errno: %i", ret, errno); +	return ret; +} + +int _vcpu_has_device_attr(struct kvm_vm *vm, uint32_t vcpuid, uint32_t group, +			  uint64_t attr) +{ +	struct vcpu *vcpu = vcpu_find(vm, vcpuid); + +	TEST_ASSERT(vcpu, "nonexistent vcpu id: %d", vcpuid); + +	return _kvm_device_check_attr(vcpu->fd, group, attr); +} + +int vcpu_has_device_attr(struct kvm_vm *vm, uint32_t vcpuid, uint32_t group, +				 uint64_t attr) +{ +	int ret = _vcpu_has_device_attr(vm, vcpuid, group, attr); + +	TEST_ASSERT(!ret, "KVM_HAS_DEVICE_ATTR IOCTL failed, rc: %i errno: %i", ret, errno); +	return ret; +} + +int _vcpu_access_device_attr(struct kvm_vm *vm, uint32_t vcpuid, uint32_t group, +			     uint64_t attr, void *val, bool write) +{ +	struct vcpu *vcpu = vcpu_find(vm, vcpuid); + +	TEST_ASSERT(vcpu, "nonexistent vcpu id: %d", vcpuid); + +	return _kvm_device_access(vcpu->fd, group, attr, val, write); +} + +int vcpu_access_device_attr(struct kvm_vm *vm, uint32_t vcpuid, uint32_t group, +			    uint64_t attr, void *val, bool write) +{ +	int ret = _vcpu_access_device_attr(vm, vcpuid, group, attr, val, write); + +	TEST_ASSERT(!ret, "KVM_SET|GET_DEVICE_ATTR IOCTL failed, rc: %i errno: %i", ret, errno);  	return ret;  } |