__ppc_get_timebase(3)

الاسم
__ppc_get_timebase, __ppc_get_timebase_freq - الحصول على القيمة الحالية لسجل قاعدة الوقت في معمارية Power وتردده.

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <sys/platform/ppc.h>

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

الوصف
__ppc_get_timebase() يقرأ القيمة الحالية لسجل قاعدة الوقت ويعيد قيمته، بينما __ppc_get_timebase_freq() يعيد التردد الذي يُحدَّث به سجل قاعدة الوقت.

سجل قاعدة الوقت هو سجل 64 بت تُوفره معالجات معمارية Power. يخزن قيمة متزايدة رتيبًا تُحدَّث بتردد يعتمد على النظام قد يختلف عن تردد المعالج.

قيمة الإرجاع
__ppc_get_timebase() يعيد عددًا صحيحًا غير مُوقَّع 64 بت يُمثل القيمة الحالية لسجل قاعدة الوقت.

__ppc_get_timebase_freq() يعيد عددًا صحيحًا غير مُوقَّع 64 بت يُمثل التردد الذي يُحدَّث به سجل قاعدة الوقت.

المعايير
GNU.

التاريخ

__ppc_get_timebase()
    glibc 2.16.

__ppc_get_timebase_freq()
    glibc 2.17.

أمثلة
البرنامج التالي سيحسب الوقت، بالميكروثانية، المنقضي بين استدعاءين لـ __ppc_get_timebase().

  مصدر البرنامج
    #include <inttypes.h>
    #include <stdint.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/platform/ppc.h>

    /* Maximum value of the Time Base Register: 2^60 - 1.
       Source: POWER ISA.  */
    #define MAX_TB 0xFFFFFFFFFFFFFFF

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

        freq = __ppc_get_timebase_freq();
        printf("Time Base frequency = %w64u Hz\n", freq);

        tb1 = __ppc_get_timebase();

        // Do some stuff...

        tb2 = __ppc_get_timebase();

        if (tb2 > tb1) {
            diff = tb2 - tb1;
        } else {
            /* Treat Time Base Register overflow.  */
            diff = (MAX_TB - tb2) + tb1;
        }

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

        exit(EXIT_SUCCESS);
    }

انظر أيضًا
time(2), usleep(3)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.