On Wed, Mar 02, 2022 at 09:21:42AM -0800, Ricardo Koller wrote: > Add timer_get_tval() into the arch timer library functions in > selftests/kvm. Bonus: change the set_tval function to get an int32_t > (tval is signed). > > Reviewed-by: Reiji Watanabe <reijiw@xxxxxxxxxx> > Signed-off-by: Ricardo Koller <ricarkol@xxxxxxxxxx> Reviewed-by: Oliver Upton <oupton@xxxxxxxxxx> > --- > .../selftests/kvm/include/aarch64/arch_timer.h | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/kvm/include/aarch64/arch_timer.h b/tools/testing/selftests/kvm/include/aarch64/arch_timer.h > index cb7c03de3a21..93f35a4fc1aa 100644 > --- a/tools/testing/selftests/kvm/include/aarch64/arch_timer.h > +++ b/tools/testing/selftests/kvm/include/aarch64/arch_timer.h > @@ -79,7 +79,7 @@ static inline uint64_t timer_get_cval(enum arch_timer timer) > return 0; > } > > -static inline void timer_set_tval(enum arch_timer timer, uint32_t tval) > +static inline void timer_set_tval(enum arch_timer timer, int32_t tval) > { > switch (timer) { > case VIRTUAL: > @@ -95,6 +95,22 @@ static inline void timer_set_tval(enum arch_timer timer, uint32_t tval) > isb(); > } > > +static inline int32_t timer_get_tval(enum arch_timer timer) > +{ > + isb(); > + switch (timer) { > + case VIRTUAL: > + return (int32_t)read_sysreg(cntv_tval_el0); > + case PHYSICAL: > + return (int32_t)read_sysreg(cntp_tval_el0); > + default: > + GUEST_ASSERT_1(0, timer); > + } > + > + /* We should not reach here */ > + return 0; > +} > + > static inline void timer_set_ctl(enum arch_timer timer, uint32_t ctl) > { > switch (timer) { > -- > 2.35.1.574.g5d30c73bfb-goog >