libtraceevent(3)
================

NAME
----
tep_parse_event, tep_parse_format - Parse the event format information

SYNOPSIS
--------
[verse]
--
*#include <event-parse.h>*

enum tep_errno *tep_parse_event*(struct tep_handle pass:[*]_tep_, const char pass:[*]_buf_, unsigned long _size_, const char pass:[*]_sys_);
enum tep_errno *tep_parse_format*(struct tep_handle pass:[*]_tep_, struct tep_event pass:[*]pass:[*]_eventp_, const char pass:[*]_buf_, unsigned long _size_, const char pass:[*]_sys_);
--

DESCRIPTION
-----------
The *tep_parse_event()* function parses the event format and creates an event
structure to quickly parse raw data for a given event. The _tep_ argument is
the trace event parser context. The created event structure is stored in the
_tep_ context. The _buf_ argument is a buffer with _size_, where the event
format data is. The event format data can be taken from
tracefs/events/.../.../format files. The _sys_ argument is the system of
the event.

The *tep_parse_format()* function does the same as *tep_parse_event()*. The only
difference is in the extra _eventp_ argument, where the newly created event
structure is returned.

RETURN VALUE
------------
Both *tep_parse_event()* and *tep_parse_format()* functions return 0 on success,
or TEP_ERRNO__... in case of an error.

EXAMPLE
-------
[source,c]
--
#include <event-parse.h>
...
struct tep_handle *tep = tep_alloc();
...
char *buf;
int size;
struct tep_event *event = NULL;
buf = read_file("/sys/kernel/tracing/events/ftrace/print/format", &size);
if (tep_parse_event(tep, buf, size, "ftrace") != 0) {
	/* Failed to parse the ftrace print format */
}

if (tep_parse_format(tep, &event, buf, size, "ftrace") != 0) {
	/* Failed to parse the ftrace print format */
}
...
--

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* <rostedt@goodmis.org>, author of *libtraceevent*.
*Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>, author of this man page.
--
REPORTING BUGS
--------------
Report bugs to  <linux-trace-devel@vger.kernel.org>

LICENSE
-------
libtraceevent is Free Software licensed under the GNU LGPL 2.1

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