diff options
Diffstat (limited to 'include/asm-s390/timex.h')
-rw-r--r-- | include/asm-s390/timex.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/asm-s390/timex.h b/include/asm-s390/timex.h index 5cbd55cb40ce..98229db24314 100644 --- a/include/asm-s390/timex.h +++ b/include/asm-s390/timex.h | |||
@@ -62,6 +62,18 @@ static inline unsigned long long get_clock (void) | |||
62 | return clk; | 62 | return clk; |
63 | } | 63 | } |
64 | 64 | ||
65 | static inline void get_clock_extended(void *dest) | ||
66 | { | ||
67 | typedef struct { unsigned long long clk[2]; } __clock_t; | ||
68 | |||
69 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) | ||
70 | asm volatile("stcke %0" : "=Q" (*((__clock_t *)dest)) : : "cc"); | ||
71 | #else /* __GNUC__ */ | ||
72 | asm volatile("stcke 0(%1)" : "=m" (*((__clock_t *)dest)) | ||
73 | : "a" ((__clock_t *)dest) : "cc"); | ||
74 | #endif /* __GNUC__ */ | ||
75 | } | ||
76 | |||
65 | static inline cycles_t get_cycles(void) | 77 | static inline cycles_t get_cycles(void) |
66 | { | 78 | { |
67 | return (cycles_t) get_clock() >> 2; | 79 | return (cycles_t) get_clock() >> 2; |