linux man page for __ppc_get_timebase

Query: __ppc_get_timebase

OS: linux

Section: 3

Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar

__PPC_GET_TIMEBASE(3)					     Linux Programmer'sManual					     __PPC_GET_TIMEBASE(3)

NAME
__ppc_get_timebase, __ppc_get_timebase_freq - get the current value of the Time Base Register on Power architecture and its frequency.
SYNOPSIS
#include <sys/platform/ppc.h> uint64_t __ppc_get_timebase(void) uint64_t __ppc_get_timebase_freq(void);
DESCRIPTION
__ppc_get_timebase() reads the current value of the Time Base Register and returns its value, while __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.
RETURN VALUE
__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 represents the frequency at which the Time Base Register is updated.
VERSIONS
GNU C Library support for __ppc_get_timebase() has been provided since version 2.16 and __ppc_get_timebase_freq() has been available since version 2.17.
CONFORMING TO
Both functions are nonstandard GNU extensions.
EXAMPLE
The following program will calculate the time, in microseconds, spent between two calls to __ppc_get_timebase(). Program source #include <inttypes.h> #include <stdint.h> #include <stdio.h> #include <stdlib.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(void) { uint64_t tb1, tb2, diff; uint64_t freq = __ppc_get_timebase_freq(); printf("Time Base frequency = %"PRIu64" Hz ", 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 ", (double) diff * 1000000 / freq ); exit(EXIT_SUCCESS); }
SEE ALSO
time(2), usleep(3) GNU C Library 2019-03-06 __PPC_GET_TIMEBASE(3)
Related Man Pages
ggcurtime(3) - debian
ost_time(3) - debian
sort::key::register(3pm) - debian
__ppc_set_ppr_low(3) - linux
__ppc_set_ppr_med_high(3) - linux
Similar Topics in the Unix Linux Community
SED: How to delete from expression to end of line
Linux Going Big Time and Prime Time Against Windows, UNIX (WSJ) (Addict 3D)
Gentoo on ppc with GXT6500P Gfx?
Cash Register Change Program
How to calculate time duration in Linux?