mirror of https://github.com/mkerrisk/man-pages
__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:
parent
1290b94b1c
commit
1e6e376298
|
@ -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)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
.so man3/__ppc_get_timebase.3
|
Loading…
Reference in New Issue