InterruptHookTrace()

Присоединить псевдо-обработчик прерываний, который может принимать трассировочные события от диагностической версии ядра

Прототип:

#include <sys/neutrino.h>
int InterruptHookTrace( const struct sigevent * (*handler)( int ),
unsigned flags );

Аргументы:

handler
A pointer to the handler function.
flags
Flags that specify how you want to attach the interrupt handler; 0, or the following bit: _NTO_INTR_FLAGS_END.

Библиотека:

libc

Описание:

The InterruptHookTrace() kernel call attaches the pseudo interrupt handler handle that the instrumented module uses.


Note: This function requires the instrumented kernel.

Before calling this function, the thread must request I/O privileges by calling:

ThreadCtl( _NTO_TCTL_IO, 0 );

The handler argument specifies the pseudo interrupt handler that receives trace events from the kernel. The integer that's passed to the handler is a combination of the buffer index and the sequence number; to extract each part, pass the integer to the _TRACE_GET_BUFFNUM() and _TRACE_GET_BUFFSEQ() macros defined in <sys/trace.h>.

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

This call doesn't block.

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

An interrupt function ID.

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

Коды ошибок:

EAGAIN
All kernel interrupt entries are in use.
EFAULT
A fault occurred when the kernel tried to access the buffers provided.
EPERM
The process doesn't have superuser capabilities.
ENOTSUP
The kernel isn't instrumented.

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

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

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

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

InterruptAttach(), TraceEvent()




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