On Fri, 12 Apr 2019 16:37:48 +0300 Tzvetomir Stoyanov <tstoyanov@xxxxxxxxxx> wrote: > Create man pages for libtraceevent APIs: > tep_is_bigendian(), > tep_is_local_bigendian(), > tep_set_local_bigendian() > > Signed-off-by: Tzvetomir Stoyanov <tstoyanov@xxxxxxxxxx> > --- > .../libtraceevent-host_endian.txt | 106 ++++++++++++++++++ > 1 file changed, 106 insertions(+) > create mode 100644 tools/lib/traceevent/Documentation/libtraceevent-host_endian.txt > > diff --git a/tools/lib/traceevent/Documentation/libtraceevent-host_endian.txt b/tools/lib/traceevent/Documentation/libtraceevent-host_endian.txt > new file mode 100644 > index 000000000000..f313d64c4e7e > --- /dev/null > +++ b/tools/lib/traceevent/Documentation/libtraceevent-host_endian.txt > @@ -0,0 +1,106 @@ > +libtraceevent(3) > +================ > + > +NAME > +---- > +tep_is_bigendian, tep_is_local_bigendian, tep_set_local_bigendian - Get / set > +the endianness of the local machine. > + > +SYNOPSIS > +-------- > +[verse] > +-- > +*#include <event-parse.h>* > + > +enum *tep_endian* { > + TEP_LITTLE_ENDIAN = 0, > + TEP_BIG_ENDIAN > +}; > + > +int *tep_is_bigendian*(void); > +bool *tep_is_local_bigendian*(struct tep_handle pass:[*]_tep_); > +void *tep_set_local_bigendian*(struct tep_handle pass:[*]_tep_, enum tep_endian _endian_); > +-- > + > +DESCRIPTION > +----------- > + > +The _tep_is_bigendian()_ gets the endianness of the machine, executing > +the function. > + > +The _tep_is_local_bigendian()_ function gets the endianness of the local > +machine, saved in the _tep_ handler. The _tep_ argument is the trace event > +parser context. We probably should reference somewhere that using tep_is_local_bigendian() is a bit faster than calling tep_is_bigendian() even though they should return the same result. This allows the calculation of determining if the running machine is big endian or not to be cached in the tep handler. > + > +The _tep_set_local_bigendian()_ function sets the endianness of the local > +machine in the _tep_ handler. The _tep_ argument is trace event parser context. > +The _endian_ argument is the endianness: > +[verse] > +-- > + _TEP_LITTLE_ENDIAN_ - the machine is little endian, > + _TEP_BIG_ENDIAN_ - the machine is big endian. > +-- > + > +RETURN VALUE > +------------ > +The _tep_is_bigendian()_ function returns non zero if the endianness of the > +machine, executing the code, is big endian and zero otherwise. > + > +The _tep_is_local_bigendian()_ function returns true, if the endianness of the > +local machine, saved in the _tep_ handler, is big endian, or false otherwise. > + > +EXAMPLE > +------- > +[source,c] > +-- > +#include <event-parse.h> > +... > +struct tep_handle *tep = tep_alloc(); > +... > + tep_set_host_bigendian(tep, TEP_LITTLE_ENDIAN); Looks like we slipped in a host. Anyway, it would be more logical to do this the way it would be used instead of just showing calls to these functions. struct tep_handle *tep = tep_alloc(); if (tep_is_bigendian()) tep_set_local_bigendian(tep, TEP_BIG_ENDIAN); else tep_set_local_bigendian(tep, TEP_LITTLE_ENDIAN); if (tep_is_local_bigendian(tep)) printf("This machine you are running on is bigendian\n"); -- Steve > +... > + if (tep_is_local_bigendian(tep)) { > + /* The stored local host endian is big */ > + } else { > + /* The stored local host endian is little */ > + } > +... > + if (tep_is_bigendian()) { > + /* The local host endian is big */ > + } else { > + /* The local host endian is little */ > + } > +-- > + > +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@xxxxxxxxxxx>, author of *libtraceevent*. > +*Tzvetomir Stoyanov* <tz.stoyanov@xxxxxxxxx>, author of this man > page. +-- > +REPORTING BUGS > +-------------- > +Report bugs to <linux-trace-devel@xxxxxxxxxxxxxxx> > + > +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