traceparser_cs()

Связать callback функцию с событием

Прототип:

#include <sys/traceparser.h>
int traceparser_cs( struct traceparser_state *stateptr,
void *userdata,
tracep_callb_func_t funcptr,
unsigned class,
unsigned event );

Аргументы:

stateptr
Указатель на информацию о состоянии анализатора, полученную при вызове traceparser_init().
userdata
Указатель на произвольные пользовательские данные, которые требуется передать callback функции.
funcptr
Указатель на callback функцию, которую требуется зарегистрировать.
class
Класс событий трассировки, для которого требуется вызвать callback функцию.
event
Конкретное событие трассировки, для которого требуется вызвать callback функцию. Это событие должно быть членом заданного класса.

Библиотека:

libtraceparser

Описание:

Функция traceparser_cs() присоединяет callback функцию, указанную в funcptr, к одному заданному событию, из одного заданного class. Эта функция используется при создании своей собственной утилиты для анализа данных трассировки (в качестве альтернативы traceprinter).

Пользовательские данные (userdata) передаются callback функции при выполнении. stateptr - это непрозрачная структура, полученная из traceparser_init().

Функция обратного вызова

Краткое описание callback функции определяется типом данных tracep_callb_func_t:

int my_callback( struct traceparser_state *statepointer,
void *userdata,
unsigned header,
unsigned timestamp,
unsigned *buffer,
unsigned buffer_len );

Аргументы:

stateptr
Указатель на информацию о состоянии анализатора, полученную при вызове traceparser_init().
userdata
Указатель на произвольные пользовательские данные, которые требуется передать callback функции.
header
Заголовок события. Для получения информации о некоторых макросах для извлечения информации из этого поля см. Макросы для использования с заголовком события в записи TraceEvent().
timestamp
Время события.
buffer
Указатель на буфер для использования callback функцией.
buffer_len
Длина буфера в байтах.

Callback функция должна вернуть 0 в случае успешного завершения, и -1 в случае возникновения ошибки.

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

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno. Подробности указаны на странице traceparser_get_info().

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

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

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

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

TraceEvent(), traceparser(), traceparser_cs_range(), traceparser_debug(), traceparser_destroy(), traceparser_get_info(), traceparser_init()

tracelogger, traceprinter в Справочнике по Утилитам




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