On 12/11/19 4:46 PM, Pierre Morel wrote: > To serve multiple times, the function get_clock_ms() is moved > from intercept.c test to the new file asm/time.h. Let's move get_clock_ms() to lib/s390/asm/time.h, so it can be used in multiple places. > > Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx> > Reviewed-by: David Hildenbrand <david@xxxxxxxxxx> > Reviewed-by: Thomas Huth <thuth@xxxxxxxxxx> Reviewed-by: Janosch Frank <frankja@xxxxxxxxxxxxx> > --- > lib/s390x/asm/time.h | 26 ++++++++++++++++++++++++++ > s390x/intercept.c | 11 +---------- > 2 files changed, 27 insertions(+), 10 deletions(-) > create mode 100644 lib/s390x/asm/time.h > > diff --git a/lib/s390x/asm/time.h b/lib/s390x/asm/time.h > new file mode 100644 > index 0000000..25c7a3c > --- /dev/null > +++ b/lib/s390x/asm/time.h > @@ -0,0 +1,26 @@ > +/* > + * Clock utilities for s390 > + * > + * Authors: > + * Thomas Huth <thuth@xxxxxxxxxx> > + * > + * Copied from the s390/intercept test by: > + * Pierre Morel <pmorel@xxxxxxxxxxxxx> > + * > + * This code is free software; you can redistribute it and/or modify it > + * under the terms of the GNU General Public License version 2. > + */ > +#ifndef _ASM_S390X_TIME_H_ > +#define _ASM_S390X_TIME_H_ > + > +static inline uint64_t get_clock_ms(void) > +{ > + uint64_t clk; > + > + asm volatile(" stck %0 " : : "Q"(clk) : "memory"); > + > + /* Bit 51 is incrememented each microsecond */ > + return (clk >> (63 - 51)) / 1000; > +} > + > +#endif > diff --git a/s390x/intercept.c b/s390x/intercept.c > index 3696e33..80e9606 100644 > --- a/s390x/intercept.c > +++ b/s390x/intercept.c > @@ -13,6 +13,7 @@ > #include <asm/asm-offsets.h> > #include <asm/interrupt.h> > #include <asm/page.h> > +#include <asm/time.h> > > static uint8_t pagebuf[PAGE_SIZE * 2] __attribute__((aligned(PAGE_SIZE * 2))); > > @@ -159,16 +160,6 @@ static void test_testblock(void) > check_pgm_int_code(PGM_INT_CODE_ADDRESSING); > } > > -static uint64_t get_clock_ms(void) > -{ > - uint64_t clk; > - > - asm volatile(" stck %0 " : : "Q"(clk) : "memory"); > - > - /* Bit 51 is incrememented each microsecond */ > - return (clk >> (63 - 51)) / 1000; > -} > - > struct { > const char *name; > void (*func)(void); >
Attachment:
signature.asc
Description: OpenPGP digital signature