67 #if defined(__powerpc64__) 68 #define __TIME_BASE(__time_v) \ 71 __asm__ __volatile__ ( \ 76 #elif defined(__powerpc__) 77 #define __TIME_BASE(__time_v) \ 79 unsigned long __tbu, __tbl, __tmp; \ 87 : "=r" (__tbu), "=r" (__tbl), "=r" (__tmp) ); \ 88 __time_v = (( (sphtimer_t) __tbu << 32) | __tbl); \ 90 #elif defined(__x86_64__) && defined(__x86_64_INVARIANT_TSC) 95 #define __TIME_BASE(__time_v) \ 97 unsigned int __t_hi, __t_lo; \ 98 __asm__ __volatile__ ( \ 102 __time_v = ((sphtimer_t) __t_hi << 32) | __t_lo; \ 104 #elif defined(__i386__) && defined(__x86_INVARIANT_TSC) 109 #define __TIME_BASE(__time_v) \ 112 __asm__ __volatile__ ( \ 119 #define __TIME_BASE(__time_v) \ 121 struct timespec __ts; \ 123 clock_gettime (CLOCK_MONOTONIC, &__ts); \ 124 __t = ((sphtimer_t)__ts.tv_sec * 1000000000L) \ 125 + (sphtimer_t)__ts.tv_nsec; \ 176 if (__builtin_expect ((result == 0), 0))
unsigned long long int sphtimer_t
Value from TB/TSC register (64-bits on all platforms).
Definition: sphtimer.h:65
#define __C__
ignore this macro behind the curtain
Definition: sasmsync.h:32
static sphtimer_t sphgettimer(void)
Read and return the Timebase value.
Definition: sphtimer.h:137
sphtimer_t sph_cpu_frequency
Frequency which Timebase is updated by system.
static sphtimer_t sphfastcpufreq(void)
Return the Timebase update frequency (fast version).
Definition: sphtimer.h:172
__C__ sphtimer_t sphgetcpufreq(void)
Return the Timebase update frequency.