SYSPAGE_ENTRY()

Вернуть запись из системной страницы

Прототип:

#include <sys/syspage.h>
#define SYSPAGE_ENTRY( entry ) ...

Аргументы:

entry
Запрашивающий элемент системной страницы.

Библиотека:

libc

Описание:

Макрос SYSPAGE_ENTRY() возвращает указатель на указанную в entry запись из системной страницы.

Лучший способ сослаться на системную страницу – использование системных вызово и POSIX-функций. Если для доступа к определенным разделам системной страницы отсутствует соответствующая функция, то лучшим вариантом остается макрос SYSPAGE_ENTRY().


Caution: Обращаться напрямую к переменной _syspage_ptr не рекомендуется.

Для получения информации о CPU-специфичной части структуры syspage_entry см. SYSPAGE_CPU_ENTRY().

Сейчас доступны следующие поля системной страницы, определяемые аргументом entry:

qtime
Специфичная для ЗОСРВ «Нейтрино» информация о времени. См. описание структуры struct qtime_entry.

Возвращаемое значение:

Указатель на структуру, характеризующую соответствующее значение entry.

Примеры:

#include <sys/neutrino.h>
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/syspage.h>
int main( void )
{
uint64_t cps, cycle1, cycle2, ncycles;
double sec;
/* snap the time */
cycle1 = ClockCycles();
/* do something */
printf( "Hello!\n" );
/* snap the time again */
cycle2 = ClockCycles();
ncycles = cycle2 - cycle1;
printf( "%lld cycles elapsed.\n", ncycles );
/* find out how many cycles per second */
cps = SYSPAGE_ENTRY( qtime )->cycles_per_sec;
printf( "This system has %lld cycles/sec.\n", cps );
sec = (double)ncycles / cps;
printf( "The cycles in seconds is %f.\n", sec );
return (EXIT_SUCCESS);
}

Классификация:

ЗОСРВ «Нейтрино»

Точка остановки потока
Нет
Обработчик прерываний
Да
Обработчик сигналов
Да
В потоке
Да

Предостережения:

SYSPAGE_ENTRY() является макросом.

Тематические ссылки:

struct qtime_entry, ClockCycles(), SYSPAGE_CPU_ENTRY(), _syspage_ptr




Предыдущий раздел: Описание API системной библиотеки