libtraceevent-record_parse.txt (3513B)
1libtraceevent(3) 2================ 3 4NAME 5---- 6tep_data_type, tep_data_pid,tep_data_preempt_count, tep_data_flags - 7Extract common fields from a record. 8 9SYNOPSIS 10-------- 11[verse] 12-- 13*#include <event-parse.h>* 14 15enum *trace_flag_type* { 16 _TRACE_FLAG_IRQS_OFF_, 17 _TRACE_FLAG_IRQS_NOSUPPORT_, 18 _TRACE_FLAG_NEED_RESCHED_, 19 _TRACE_FLAG_HARDIRQ_, 20 _TRACE_FLAG_SOFTIRQ_, 21}; 22 23int *tep_data_type*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_); 24int *tep_data_pid*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_); 25int *tep_data_preempt_count*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_); 26int *tep_data_flags*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_); 27-- 28 29DESCRIPTION 30----------- 31This set of functions can be used to extract common fields from a record. 32 33The _tep_data_type()_ function gets the event id from the record _rec_. 34It reads the "common_type" field. The _tep_ argument is the trace event parser 35context. 36 37The _tep_data_pid()_ function gets the process id from the record _rec_. 38It reads the "common_pid" field. The _tep_ argument is the trace event parser 39context. 40 41The _tep_data_preempt_count()_ function gets the preemption count from the 42record _rec_. It reads the "common_preempt_count" field. The _tep_ argument is 43the trace event parser context. 44 45The _tep_data_flags()_ function gets the latency flags from the record _rec_. 46It reads the "common_flags" field. The _tep_ argument is the trace event parser 47context. Supported latency flags are: 48[verse] 49-- 50 _TRACE_FLAG_IRQS_OFF_, Interrupts are disabled. 51 _TRACE_FLAG_IRQS_NOSUPPORT_, Reading IRQ flag is not supported by the architecture. 52 _TRACE_FLAG_NEED_RESCHED_, Task needs rescheduling. 53 _TRACE_FLAG_HARDIRQ_, Hard IRQ is running. 54 _TRACE_FLAG_SOFTIRQ_, Soft IRQ is running. 55-- 56 57RETURN VALUE 58------------ 59The _tep_data_type()_ function returns an integer, representing the event id. 60 61The _tep_data_pid()_ function returns an integer, representing the process id 62 63The _tep_data_preempt_count()_ function returns an integer, representing the 64preemption count. 65 66The _tep_data_flags()_ function returns an integer, representing the latency 67flags. Look at the _trace_flag_type_ enum for supported flags. 68 69All these functions in case of an error return a negative integer. 70 71EXAMPLE 72------- 73[source,c] 74-- 75#include <event-parse.h> 76... 77struct tep_handle *tep = tep_alloc(); 78... 79void process_record(struct tep_record *record) 80{ 81 int data; 82 83 data = tep_data_type(tep, record); 84 if (data >= 0) { 85 /* Got the ID of the event */ 86 } 87 88 data = tep_data_pid(tep, record); 89 if (data >= 0) { 90 /* Got the process ID */ 91 } 92 93 data = tep_data_preempt_count(tep, record); 94 if (data >= 0) { 95 /* Got the preemption count */ 96 } 97 98 data = tep_data_flags(tep, record); 99 if (data >= 0) { 100 /* Got the latency flags */ 101 } 102} 103... 104-- 105 106FILES 107----- 108[verse] 109-- 110*event-parse.h* 111 Header file to include in order to have access to the library APIs. 112*-ltraceevent* 113 Linker switch to add when building a program that uses the library. 114-- 115 116SEE ALSO 117-------- 118_libtraceevent(3)_, _trace-cmd(1)_ 119 120AUTHOR 121------ 122[verse] 123-- 124*Steven Rostedt* <rostedt@goodmis.org>, author of *libtraceevent*. 125*Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>, author of this man page. 126-- 127REPORTING BUGS 128-------------- 129Report bugs to <linux-trace-devel@vger.kernel.org> 130 131LICENSE 132------- 133libtraceevent is Free Software licensed under the GNU LGPL 2.1 134 135RESOURCES 136--------- 137https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git