]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * include/asm-s390/timex.h | |
3 | * | |
4 | * S390 version | |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | |
6 | * | |
7 | * Derived from "include/asm-i386/timex.h" | |
8 | * Copyright (C) 1992, Linus Torvalds | |
9 | */ | |
10 | ||
11 | #ifndef _ASM_S390_TIMEX_H | |
12 | #define _ASM_S390_TIMEX_H | |
13 | ||
14 | #define CLOCK_TICK_RATE 1193180 /* Underlying HZ */ | |
15 | ||
16 | typedef unsigned long long cycles_t; | |
17 | ||
1da177e4 LT |
18 | static inline unsigned long long get_clock (void) |
19 | { | |
20 | unsigned long long clk; | |
21 | ||
94c12cc7 MS |
22 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) |
23 | asm volatile("stck %0" : "=Q" (clk) : : "cc"); | |
24 | #else /* __GNUC__ */ | |
25 | asm volatile("stck 0(%1)" : "=m" (clk) : "a" (&clk) : "cc"); | |
26 | #endif /* __GNUC__ */ | |
1da177e4 LT |
27 | return clk; |
28 | } | |
29 | ||
94c12cc7 MS |
30 | static inline cycles_t get_cycles(void) |
31 | { | |
32 | return (cycles_t) get_clock() >> 2; | |
33 | } | |
34 | ||
2b67fc46 HC |
35 | void init_cpu_timer(void); |
36 | ||
1da177e4 | 37 | #endif |