__ppc_get_timebase() reads the current value of the Time Base Register
and returns its value, while __ppc_get_timebase_freq() returns the fre-
quency in which the Time Base Register is updated.
The Time Base Register is a 64-bit register provided by Power Architec-
ture processors. It stores a monotonically incremented value that is
updated at a system-dependent frequency that may be different from the
__ppc_get_timebase() returns a 64-bit unsigned integer that represents
the current value of the Time Base Register.
__ppc_get_timebase_freq() returns a 64-bit unsigned integer that repre-
sents the frequency at which the Time Base Register is updated.
GNU C Library support for __ppc_get_timebase() has been provided since
version 2.16 and __ppc_get_timebase_freq() has been available since
Both functions are nonstandard GNU extensions.
The following program will calculate the time, in microseconds, spent
between two calls to __ppc_get_timebase().
/* Maximum value of the Time Base Register: 2^60 - 1.
Source: POWER ISA. */
#define MAX_TB 0xFFFFFFFFFFFFFFF
uint64_t tb1, tb2, diff;
uint64_t freq = __ppc_get_timebase_freq();
diff = (MAX_TB - tb2) + tb1;
printf("Elapsed time = %1.2f usecs\n",
(double) diff * 1000000 / freq );
This page is part of release 4.04 of the Linux man-pages project. A
description of the project, information about reporting bugs, and the
latest version of this page, can be found at
GNU C Library 2015-07-23 __PPC_GET_TIMEBASE(3)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2019
All Rights Reserved.