__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 (https://www.gnu.org/licenses/gpl-3.0.html) 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 (debian-l10n-german@lists.debian.org).