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

NAME
----
tep_is_file_bigendian, tep_set_file_bigendian - Get / set the endianness of the
raw data being accessed by the tep handler.

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

enum *tep_endian* {
	TEP_LITTLE_ENDIAN = 0,
	TEP_BIG_ENDIAN
};

bool *tep_is_file_bigendian*(struct tep_handle pass:[*]_tep_);
void *tep_set_file_bigendian*(struct tep_handle pass:[*]_tep_, enum tep_endian _endian_);

--
DESCRIPTION
-----------
The _tep_is_file_bigendian()_ function gets the endianness of the raw data,
being accessed by the tep handler. The _tep_ argument is trace event parser
context.

The _tep_set_file_bigendian()_ function sets the endianness of raw data being
accessed by the tep handler. The _tep_ argument is trace event parser context.
[verse]
--
The _endian_ argument is the endianness:
	_TEP_LITTLE_ENDIAN_ - the raw data is in little endian format,
	_TEP_BIG_ENDIAN_ - the raw data is in big endian format.
--
RETURN VALUE
------------
The _tep_is_file_bigendian()_ function returns true if the data is in bigendian
format, false otherwise.

EXAMPLE
-------
[source,c]
--
#include <event-parse.h>
...
struct tep_handle *tep = tep_alloc();
...
	tep_set_file_bigendian(tep, TEP_LITTLE_ENDIAN);
...
	if (tep_is_file_bigendian(tep)) {
		/* The raw data is in big endian */
	} else {
		/* The raw data is in little endian */
	}
--

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/linux/kernel/git/torvalds/linux.git
