Eric Biederman | c84c190 | 2004-10-14 20:13:01 +0000 | [diff] [blame^] | 1 | #ifndef CPU_X86_TSC_H |
| 2 | #define CPU_X86_TSC_H |
| 3 | |
| 4 | struct tsc_struct { |
| 5 | unsigned lo; |
| 6 | unsigned hi; |
| 7 | }; |
| 8 | typedef struct tsc_struct tsc_t; |
| 9 | |
| 10 | static tsc_t rdtsc(void) |
| 11 | { |
| 12 | tsc_t res; |
| 13 | __asm__ __volatile__ ( |
| 14 | "rdtsc" |
| 15 | : "=a" (res.lo), "=d"(res.hi) /* outputs */ |
| 16 | ); |
| 17 | return res; |
| 18 | } |
| 19 | |
| 20 | #ifndef ROMCC |
| 21 | static inline unsigned long long rdtscll(void) |
| 22 | { |
| 23 | unsigned long long val; |
| 24 | asm volatile ("rdtsc" : "=A" (val)); |
| 25 | return val; |
| 26 | } |
| 27 | #endif |
| 28 | |
| 29 | |
| 30 | #endif /* CPU_X86_TSC_H */ |