libtraceevent(3) ================ NAME ---- tep_data_type, tep_data_pid,tep_data_preempt_count, tep_data_flags - Extract common fields from a record. SYNOPSIS -------- [verse] -- *#include * enum *trace_flag_type* { _TRACE_FLAG_IRQS_OFF_, _TRACE_FLAG_IRQS_NOSUPPORT_, _TRACE_FLAG_NEED_RESCHED_, _TRACE_FLAG_HARDIRQ_, _TRACE_FLAG_SOFTIRQ_, }; int *tep_data_type*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_); int *tep_data_pid*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_); int *tep_data_preempt_count*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_); int *tep_data_flags*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_); -- DESCRIPTION ----------- This set of functions can be used to extract common fields from a record. The *tep_data_type()* function gets the event id from the record _rec_. It reads the "common_type" field. The _tep_ argument is the trace event parser context. The *tep_data_pid()* function gets the process id from the record _rec_. It reads the "common_pid" field. The _tep_ argument is the trace event parser context. The *tep_data_preempt_count()* function gets the preemption count from the record _rec_. It reads the "common_preempt_count" field. The _tep_ argument is the trace event parser context. The *tep_data_flags()* function gets the latency flags from the record _rec_. It reads the "common_flags" field. The _tep_ argument is the trace event parser context. Supported latency flags are: [verse] -- _TRACE_FLAG_IRQS_OFF_, Interrupts are disabled. _TRACE_FLAG_IRQS_NOSUPPORT_, Reading IRQ flag is not supported by the architecture. _TRACE_FLAG_NEED_RESCHED_, Task needs rescheduling. _TRACE_FLAG_HARDIRQ_, Hard IRQ is running. _TRACE_FLAG_SOFTIRQ_, Soft IRQ is running. -- RETURN VALUE ------------ The *tep_data_type()* function returns an integer, representing the event id. The *tep_data_pid()* function returns an integer, representing the process id The *tep_data_preempt_count()* function returns an integer, representing the preemption count. The *tep_data_flags()* function returns an integer, representing the latency flags. Look at the _trace_flag_type_ enum for supported flags. All these functions in case of an error return a negative integer. EXAMPLE ------- [source,c] -- #include ... struct tep_handle *tep = tep_alloc(); ... void process_record(struct tep_record *record) { int data; data = tep_data_type(tep, record); if (data >= 0) { /* Got the ID of the event */ } data = tep_data_pid(tep, record); if (data >= 0) { /* Got the process ID */ } data = tep_data_preempt_count(tep, record); if (data >= 0) { /* Got the preemption count */ } data = tep_data_flags(tep, record); if (data >= 0) { /* Got the latency flags */ } } ... -- FILES ----- [verse] -- *event-parse.h* Header file to include in order to have access to the library APIs. *-ltraceevent* Linker switch to add when building a program that uses the library. -- SEE ALSO -------- *libtraceevent*(3), *trace-cmd*(1) AUTHOR ------ [verse] -- *Steven Rostedt* , author of *libtraceevent*. *Tzvetomir Stoyanov* , author of this man page. -- REPORTING BUGS -------------- Report bugs to LICENSE ------- libtraceevent is Free Software licensed under the GNU LGPL 2.1 RESOURCES --------- https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/