Scroll to navigation

__ppc_get_timebase(3) Library Functions Manual __ppc_get_timebase(3)

BEZEICHNUNG

__ppc_get_timebase, __ppc_get_timebase_freq - Ermittelt den aktuellen Wert und die Frequenz des Zeitbasisregisters auf der Power-Architektur

BIBLIOTHEK

Standard-C-Bibliothek (libc-lc)

ÜBERSICHT

#include <sys/platform/ppc.h>
uint64_t __ppc_get_timebase(void);
uint64_t __ppc_get_timebase_freq(void);

BESCHREIBUNG

__ppc_get_timebase() liest den aktuellen Wert des Zeitbasisregisters und liefert seinen Wert, während __ppc_get_timebase_freq() die Frequenz zurückliefert, in der das Zeitbasisregister aktualisiert wird.

Das Zeitbasisregister ist ein von der Power-Architektur bereitgestelltes 64-bit-Register. Es speichert einen monoton erhöhten Wert, der in einer systemabhängigen Frequenz aktualisiert wird, die sich von der Prozessorfrequenz unterscheiden kann.

RÜCKGABEWERT

__ppc_get_timebase() liefert eine vorzeichenfreie 64-bit-Ganzzahl zurück, die den aktuellen Wert des Zeitbasisregisters wiedergibt.

__ppc_get_timebase_freq() liefert eine vorzeichenfreie 64-bit-Ganzzahl zurück, die die Frequenz wiedergibt, mit der das Zeitbasisregister aktualisiert wird.

STANDARDS

GNU.

GESCHICHTE

__ppc_get_timebase()
Glibc 2.16.
__ppc_get_timebase_freq()
Glibc 2.17.

BEISPIELE

Das folgende Programm wird die Zeit in Mikrosekunden berechnen, die zwischen zwei Aufrufen von __ppc_get_timebase() verbraucht wird.

Programmquelltext

#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/platform/ppc.h>
/* Maximaler Wert des Zeitbasisregister: 2^60 - 1.

Quelle: POWER ISA. */ #define MAX_TB 0xFFFFFFFFFFFFFFF int main(void) {
uint64_t tb1, tb2, diff;
uint64_t freq;
freq = __ppc_get_timebase_freq();
printf("Zeitbasisregisterfrequenz = %w64u Hz\n", freq);
tb1 = __ppc_get_timebase();
// Etwas erledigen …
tb2 = __ppc_get_timebase();
if (tb2 > tb1) {
diff = tb2 - tb1;
} else {
/* Zeitbasisregister-Überlauf behandeln. */
diff = (MAX_TB - tb2) + tb1;
}
printf("Abgelaufene Zeit = %1.2f usecs\n",
(double) diff * 1000000 / freq);
exit(EXIT_SUCCESS); }

SIEHE AUCH

time(2), usleep(3)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

16. Februar 2026 Linux man-pages (unveröffentlicht)