/* SPDX-License-Identifier: GPL-2.0-only *//* * timer test specific header * * Copyright (C) 2018, Google LLC */ #ifndef SELFTEST_KVM_TIMER_TEST_H#define SELFTEST_KVM_TIMER_TEST_H #include "kvm_util.h" #define NR_VCPUS_DEF 4#define NR_TEST_ITERS_DEF 5#define TIMER_TEST_PERIOD_MS_DEF 10#define TIMER_TEST_ERR_MARGIN_US 100#define TIMER_TEST_MIGRATION_FREQ_MS 2 /* Timer test cmdline parameters */struct test_args { uint32_t nr_vcpus; uint32_t nr_iter; uint32_t timer_period_ms; uint32_t migration_freq_ms; uint32_t timer_err_margin_us; /* Members of struct kvm_arm_counter_offset */ uint64_t counter_offset; uint64_t reserved;}; /* Shared variables between host and guest */struct test_vcpu_shared_data { uint32_t nr_iter; int guest_stage; uint64_t xcnt;}; extern struct test_args test_args;extern struct kvm_vcpu *vcpus[];extern struct test_vcpu_shared_data vcpu_shared_data[]; struct kvm_vm *test_vm_create(void);void test_vm_cleanup(struct kvm_vm *vm); #endif /* SELFTEST_KVM_TIMER_TEST_H */
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* timer test specific header
*
* Copyright (C) 2018, Google LLC
*/
#ifndef SELFTEST_KVM_TIMER_TEST_H
#define SELFTEST_KVM_TIMER_TEST_H
#include "kvm_util.h"
#define NR_VCPUS_DEF 4
#define NR_TEST_ITERS_DEF 5
#define TIMER_TEST_PERIOD_MS_DEF 10
#define TIMER_TEST_ERR_MARGIN_US 100
#define TIMER_TEST_MIGRATION_FREQ_MS 2
/* Timer test cmdline parameters */
struct test_args {
uint32_t nr_vcpus;
uint32_t nr_iter;
uint32_t timer_period_ms;
uint32_t migration_freq_ms;
uint32_t timer_err_margin_us;
/* Members of struct kvm_arm_counter_offset */
uint64_t counter_offset;
uint64_t reserved;
};
/* Shared variables between host and guest */
struct test_vcpu_shared_data {
uint32_t nr_iter;
int guest_stage;
uint64_t xcnt;
};
extern struct test_args test_args;
extern struct kvm_vcpu *vcpus[];
extern struct test_vcpu_shared_data vcpu_shared_data[];
struct kvm_vm *test_vm_create(void);
void test_vm_cleanup(struct kvm_vm *vm);
#endif /* SELFTEST_KVM_TIMER_TEST_H */