# tep_data_type

## NAME



           tep_data_type, tep_data_pid, tep_data_preempt_count,
           tep_data_flags - Extract common fields from a record.
    


## SYNOPSIS



           **#include <event-parse.h>**
    
           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 *_tep_ , struct tep_record *_rec_);
           int **tep_data_pid**(struct tep_handle *_tep_ , struct tep_record *_rec_);
           int **tep_data_preempt_count**(struct tep_handle *_tep_ , struct tep_record *_rec_);
           int **tep_data_flags**(struct tep_handle *_tep_ , struct tep_record *_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:
    
                       _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



               #include <event-parse.h>
               ...
               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



               **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.
    


## LICENSE



           libtraceevent is Free Software licensed under the GNU LGPL 2.1
    


## RESOURCES



           **https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/ **
    


## NOTES



            1. rostedt@goodmis.org
               mailto:rostedt@goodmis.org
    
            2. tz.stoyanov@gmail.com
               mailto:tz.stoyanov@gmail.com
    
            3. linux-trace-devel@vger.kernel.org
               mailto:linux-trace-devel@vger.kernel.org
    


* * *