# tep_list_events

## NAME



           tep_list_events, tep_list_events_copy - Get list of events, sorted
           by given criteria.
    


## SYNOPSIS



           **#include <event-parse.h>**
    
           enum **tep_event_sort_type**{
                   _TEP_EVENT_SORT_ID_ ,
                   _TEP_EVENT_SORT_NAME_ ,
                   _TEP_EVENT_SORT_SYSTEM_ ,
           };
    
           struct tep_event ** **tep_list_events**(struct tep_handle *_tep_ , enum tep_event_sort_type _sort_type_);
           struct tep_event ** **tep_list_events_copy**(struct tep_handle *_tep_ , enum tep_event_sort_type _sort_type_);
    


## DESCRIPTION



           The **tep_list_events()** function returns an array of pointers to the
           events, sorted by the _sort_type_ criteria. The last element of the
           array is NULL. The returned memory must not be freed, it is
           managed by the library. The function is not thread safe. The _tep_
           argument is trace event parser context. The _sort_type_ argument is
           the required sort criteria:
    
                       _TEP_EVENT_SORT_ID_     - sort by the event ID.
                       _TEP_EVENT_SORT_NAME_   - sort by the event (name, system, id) triplet.
                       _TEP_EVENT_SORT_SYSTEM_ - sort by the event (system, name, id) triplet.
    
           The **tep_list_events_copy()** is a thread safe version of
           _tep_list_events()_. It has the same behavior, but the returned
           array is allocated internally and must be freed by the caller.
           Note that the content of the array must not be freed (see the
           EXAMPLE below).
    


## RETURN VALUE



           The **tep_list_events()** function returns an array of pointers to
           events. In case of an error, NULL is returned. The returned array
           must not be freed, it is managed by the library.
    
           The **tep_list_events_copy()** function returns an array of pointers
           to events. In case of an error, NULL is returned. The returned
           array must be freed by the caller.
    


## EXAMPLE



               #include <event-parse.h>
               ...
               struct tep_handle *tep = tep_alloc();
               ...
               int i;
               struct tep_event_format **events;
    
               i=0;
               events = tep_list_events(tep, TEP_EVENT_SORT_ID);
               if (events == NULL) {
                       /* Failed to get the events, sorted by ID */
               } else {
                       while(events[i]) {
                               /* walk through the list of the events, sorted by ID */
                               i++;
                       }
               }
    
               i=0;
               events = tep_list_events_copy(tep, TEP_EVENT_SORT_NAME);
               if (events == NULL) {
                       /* Failed to get the events, sorted by name */
               } else {
                       while(events[i]) {
                               /* walk through the list of the events, sorted by name */
                               i++;
                       }
                       free(events);
               }
    
               ...
    


## 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
    


* * *