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