__ppc_get_timebase(3)

NUME
__ppc_get_timebase, __ppc_get_timebase_freq - obține valoarea curentă a registrului de bază de timp pe arhitectura Power și frecvența acestuia

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <sys/platform/ppc.h>

uint64_t __ppc_get_timebase(void);
uint64_t __ppc_get_timebase_freq(void);

DESCRIERE
__ppc_get_timebase() citește valoarea curentă a registrului de bază de timp și returnează valoarea acestuia, în timp ce __ppc_get_timebase_freq() returnează frecvența la care este actualizat registrul de bază de timp.

Registrul de bază de timp este un registru pe 64 de biți furnizat de procesoarele cu arhitectura Power. Acesta stochează o valoare cu incrementare monotonă care este actualizată la o frecvență dependentă de sistem, care poate fi diferită de frecvența procesorului.

VALOAREA RETURNATĂ
__ppc_get_timebase() returnează un întreg nesemnat pe 64 de biți care reprezintă valoarea curentă a registrului de bază de timp.

__ppc_get_timebase_freq() returnează un întreg fără semn pe 64 de biți care reprezintă frecvența la care este actualizat registrul bazei de timp.

STANDARDE
GNU.

ISTORIC

__ppc_get_timebase()
    glibc 2.16.

__ppc_get_timebase_freq()
    glibc 2.17.

EXEMPLE
Următorul program va calcula timpul, în microsecunde, petrecut între două apeluri la __ppc_get_timebase().

  Sursa programului
    #include <inttypes.h>
    #include <stdint.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/platform/ppc.h>

    /* Valoarea maximă a registrului de bază de timp: 2^60 - 1.
       Sursa: POWER ISA.  */
    #define MAX_TB 0xFFFFFFFFFFFFFFF

    int
    main(void)
    {
        uint64_t tb1, tb2, diff;
        uint64_t freq;

        freq = __ppc_get_timebase_freq();
        printf("Frecvența de bază a timpului = %w64u Hz\n", freq);

        tb1 = __ppc_get_timebase();

        // Face unele lucruri...

        tb2 = __ppc_get_timebase();

        if (tb2 > tb1) {
            diff = tb2 - tb1;
        } else {
            /* Tratează supraîncărcarea registrului de bază de timp.  */
            diff = (MAX_TB - tb2) + tb1;
        }

        printf("Timpul scurs  = %1.2f usecs\n",
               (double) diff * 1000000 / freq);

        exit(EXIT_SUCCESS);
    }

CONSULTAȚI ȘI
time(2), usleep(3)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.