Scroll to navigation

__ppc_get_timebase(3) Library Functions Manual __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 = %"PRIu64" 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 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.

2 mai 2024 Pagini de manual Linux (nepublicate)