# tep_get_any_field_val

## NAME



           tep_get_any_field_val, tep_get_common_field_val,
           tep_get_field_val, tep_get_field_raw - Get value of a field.
    


## SYNOPSIS



           **#include <event-parse.h>**
           **#include <trace-seq.h>**
    
           int **tep_get_any_field_val**(struct trace_seq *_s_ , struct tep_event *_event_ , const char *_name_ , struct tep_record *_record_ , unsigned long long *_val_ , int _err_);
           int **tep_get_common_field_val**(struct trace_seq *_s_ , struct tep_event *_event_ , const char *_name_ , struct tep_record *_record_ , unsigned long long *_val_ , int _err_);
           int **tep_get_field_val**(struct trace_seq *_s_ , struct tep_event *_event_ , const char *_name_ , struct tep_record *_record_ , unsigned long long *_val_ , int _err_);
           void * **tep_get_field_raw**(struct trace_seq *_s_ , struct tep_event *_event_ , const char *_name_ , struct tep_record *_record_ , int *_len_ , int _err_);
    


## DESCRIPTION



           These functions can be used to find a field and retrieve its
           value.
    
           The **tep_get_any_field_val()** function searches in the _record_ for a
           field with _name_ , part of the _event_. If the field is found, its
           value is stored in _val_. If there is an error and _err_ is not zero,
           then an error string is written into _s_.
    
           The **tep_get_common_field_val()** function does the same as
           **tep_get_any_field_val()** , but searches only in the common fields.
           This works for any event as all events include the common fields.
    
           The **tep_get_field_val()** function does the same as
           **tep_get_any_field_val()** , but searches only in the event specific
           fields.
    
           The **tep_get_field_raw()** function searches in the _record_ for a
           field with _name_ , part of the _event_. If the field is found, a
           pointer to where the field exists in the record’s raw data is
           returned. The size of the data is stored in _len_. If there is an
           error and _err_ is not zero, then an error string is written into _s_.
    


## RETURN VALUE



           The **tep_get_any_field_val()** , **tep_get_common_field_val()** and
           **tep_get_field_val()** functions return 0 on success, or -1 in case
           of an error.
    
           The **tep_get_field_raw()** function returns a pointer to field’s raw
           data, and places the length of this data in _len_. In case of an
           error NULL is returned.
    


## EXAMPLE



               #include <event-parse.h>
               #include <trace-seq.h>
               ...
               struct tep_handle *tep = tep_alloc();
               ...
               struct tep_event *event = tep_find_event_by_name(tep, "kvm", "kvm_exit");
               ...
               void process_record(struct tep_record *record)
               {
                       int len;
                       char *comm;
                       struct tep_event *event;
                       unsigned long long val;
    
                       event = tep_find_event_by_record(tep, record);
                       if (event != NULL) {
                               if (tep_get_common_field_val(NULL, event, "common_type",
                                                            record, &val, 0) == 0) {
                                       /* Got the value of common type field */
                               }
                               if (tep_get_field_val(NULL, event, "pid", record, &val, 0) == 0) {
                                       /* Got the value of pid specific field */
                               }
                               comm = tep_get_field_raw(NULL, event, "comm", record, &len, 0);
                               if (comm != NULL) {
                                       /* Got a pointer to the comm event specific field */
                               }
                       }
               }
    


## FILES



               **event-parse.h**
                       Header file to include in order to have access to the library APIs.
               **trace-seq.h**
                       Header file to include in order to have access to trace sequences
                       related APIs. Trace sequences are used to allow a function to call
                       several other functions to create a string of data to use.
               **-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
    


* * *