InterruptHookIdle()

Присоединить обработчик прерываний idle

Прототип:

#include <sys/neutrino.h>
int InterruptHookIdle( void (*handler)( uint64_t *, struct qtime_entry * ),
unsigned flags );

Аргументы:

handler
A pointer to the handler function.
flags
Flags that specify how you want to attach the interrupt handler. The flags argument is 0 or a bitwise OR of the following values: _NTO_INTR_FLAGS_END, _NTO_INTR_FLAGS_PROCESS, _NTO_INTR_FLAGS_TRK_MSK

Библиотека:

libc

Описание:

The InterruptHookIdle() kernel call attaches the specified interrupt handler to the “idle” interrupt, which is called when the system is idle. This is typically used to implement power management features.

The arguments to the handler functions are:

uint64_t *
A pointer to the time, in nanoseconds, when the next timer will expire.
struct qtime_entry *
A pointer to the section of the system page with the time information, including the current time of day.

The simplest idle handler consists of a halt instruction.

Состояния блокировки:

This call doesn't block.

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

An interrupt function ID.

Если возникла ошибка функция возвращает -1, код ошибки записывается в errno.

Use the returned value with the InterruptDetach() function to detach this interrupt handler.

Коды ошибок:

EAGAIN
All kernel interrupt entries are in use.
EPERM
The process doesn't have superuser capabilities.

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

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

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

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

struct qtime_entry, InterruptAttach(), InterruptAttachEvent(), InterruptDetach(), InterruptHookTrace()




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