__ppc_get_timebase_freq.3: Document the Power-specific __ppc_get_timebase_freq(3)

Glibc 2.17 adds a function to read the frequency at which the Time
Base Register of Power processors is updated.

Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Tulio Magno Quites Machado Filho 2015-05-25 16:02:12 -03:00 committed by Michael Kerrisk
parent 1290b94b1c
commit 1e6e376298
2 changed files with 61 additions and 6 deletions

View File

@ -25,30 +25,84 @@
.TH __PPC_GET_TIMEBASE 3 2012-08-13 "GNU C Library" "Linux Programmer's\
Manual"
.SH NAME
__ppc_get_timebase \- get the current value of the Time Base Register on
Power architecture
__ppc_get_timebase, __ppc_get_timebase_freq \- get the current value
of the Time Base Register on Power architecture and its frequency.
.SH SYNOPSIS
.B #include <sys/platform/ppc.h>
.sp
.BI "uint64_t __ppc_get_timebase(void)"
.BI "uint64_t __ppc_get_timebase_freq(void);"
.SH DESCRIPTION
.BR __ppc_get_timebase ()
reads the current value of the Time Base Register and returns its value.
reads the current value of the Time Base Register and returns its
value, while
.BR __ppc_get_timebase_freq ()
returns the frequency in which the Time Base Register is updated.
The Time Base Register is a 64-bit register provided by Power Architecture
processors.
It stores a monotonically incremented value that is updated at a
system-dependent frequency that may be different from the processor
frequency.
.SH RETURN VALUE
Returns a 64-bit unsigned integer that represents the current value of the
.BR __ppc_get_timebase ()
returns a 64-bit unsigned integer that represents the current value of the
Time Base Register.
.BR __ppc_get_timebase_freq ()
returns a 64-bit unsigned integer that represents the frequency at
which the Time Base Register is updated.
.SH VERSIONS
GNU C Library support for
.\" commit d9dc34cd569bcfe714fe8c708e58c028106e8b2e
.BR __ppc_get_timebase ()
has been provided since version 2.16.
has been provided since version 2.16 and
.\" commit 8ad11b9a9cf1de82bd7771306b42070b91417c11
.BR __ppc_get_timebase_freq ()
has been available since version 2.17.
.SH CONFORMING TO
This function is a nonstandard GNU extension.
Both functions are nonstandard GNU extensions.
.SH EXAMPLE
The following program will calculate the time, in microseconds, spent
between two calls to __ppc_get_timebase ().
.SS Program source
\&
.nf
#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
#include <sys/platform/ppc.h>
/* Maximum value of the Time Base Register: 2^60 - 1. Source: POWER ISA. */
#define MAX_TB 0xFFFFFFFFFFFFFFF
int
main ()
{
uint64_t tb1, tb2, diff;
uint64_t freq = __ppc_get_timebase_freq ();
printf ("Time Base frequency = %"PRIu64" Hz\\n", freq);
tb1 = __ppc_get_timebase ();
// Do some stuff...
tb2 = __ppc_get_timebase ();
if (tb2 > tb1) {
diff = tb2 - tb1;
} else {
/* Treat Time Base Register overflow. */
diff = (MAX_TB - tb2) + tb1;
}
printf ("Elapsed time = %1.2f usecs\\n", (double) diff * 1000000 / freq );
return 0;
}
.fi
.SH SEE ALSO
.BR time (2),
.BR usleep (3)

View File

@ -0,0 +1 @@
.so man3/__ppc_get_timebase.3