table of contents
| __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¶
Ü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) |