cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

libtraceevent-field_get_val.txt (4057B)


      1libtraceevent(3)
      2================
      3
      4NAME
      5----
      6tep_get_any_field_val, tep_get_common_field_val, tep_get_field_val,
      7tep_get_field_raw - Get value of a field.
      8
      9SYNOPSIS
     10--------
     11[verse]
     12--
     13*#include <event-parse.h>*
     14*#include <trace-seq.h>*
     15
     16int *tep_get_any_field_val*(struct trace_seq pass:[*]_s_, struct tep_event pass:[*]_event_, const char pass:[*]_name_, struct tep_record pass:[*]_record_, unsigned long long pass:[*]_val_, int _err_);
     17int *tep_get_common_field_val*(struct trace_seq pass:[*]_s_, struct tep_event pass:[*]_event_, const char pass:[*]_name_, struct tep_record pass:[*]_record_, unsigned long long pass:[*]_val_, int _err_);
     18int *tep_get_field_val*(struct trace_seq pass:[*]_s_, struct tep_event pass:[*]_event_, const char pass:[*]_name_, struct tep_record pass:[*]_record_, unsigned long long pass:[*]_val_, int _err_);
     19void pass:[*]*tep_get_field_raw*(struct trace_seq pass:[*]_s_, struct tep_event pass:[*]_event_, const char pass:[*]_name_, struct tep_record pass:[*]_record_, int pass:[*]_len_, int _err_);
     20--
     21
     22DESCRIPTION
     23-----------
     24These functions can be used to find a field and retrieve its value.
     25
     26The _tep_get_any_field_val()_ function searches in the _record_ for a field
     27with _name_, part of the _event_. If the field is found, its value is stored in
     28_val_. If there is an error and _err_ is not zero, then an error string is
     29written into _s_.
     30
     31The _tep_get_common_field_val()_ function does the same as
     32_tep_get_any_field_val()_, but searches only in the common fields. This works
     33for any event as all events include the common fields.
     34
     35The _tep_get_field_val()_ function does the same as _tep_get_any_field_val()_,
     36but searches only in the event specific fields.
     37
     38The _tep_get_field_raw()_ function searches in the _record_ for a field with
     39_name_, part of the _event_. If the field is found, a pointer to where the field
     40exists in the record's raw data is returned. The size of the data is stored in
     41_len_. If there is an error and _err_ is not zero, then an error string is
     42written into _s_.
     43
     44RETURN VALUE
     45------------
     46The _tep_get_any_field_val()_, _tep_get_common_field_val()_ and
     47_tep_get_field_val()_ functions return 0 on success, or -1 in case of an error.
     48
     49The _tep_get_field_raw()_ function returns a pointer to field's raw data, and
     50places the length of this data in _len_. In case of an error NULL is returned.
     51
     52EXAMPLE
     53-------
     54[source,c]
     55--
     56#include <event-parse.h>
     57#include <trace-seq.h>
     58...
     59struct tep_handle *tep = tep_alloc();
     60...
     61struct tep_event *event = tep_find_event_by_name(tep, "kvm", "kvm_exit");
     62...
     63void process_record(struct tep_record *record)
     64{
     65	int len;
     66	char *comm;
     67	struct tep_event_format *event;
     68	unsigned long long val;
     69
     70	event = tep_find_event_by_record(pevent, record);
     71	if (event != NULL) {
     72		if (tep_get_common_field_val(NULL, event, "common_type",
     73					     record, &val, 0) == 0) {
     74			/* Got the value of common type field */
     75		}
     76		if (tep_get_field_val(NULL, event, "pid", record, &val, 0) == 0) {
     77			/* Got the value of pid specific field */
     78		}
     79		comm = tep_get_field_raw(NULL, event, "comm", record, &len, 0);
     80		if (comm != NULL) {
     81			/* Got a pointer to the comm event specific field */
     82		}
     83	}
     84}
     85--
     86
     87FILES
     88-----
     89[verse]
     90--
     91*event-parse.h*
     92	Header file to include in order to have access to the library APIs.
     93*trace-seq.h*
     94	Header file to include in order to have access to trace sequences
     95	related APIs. Trace sequences are used to allow a function to call
     96	several other functions to create a string of data to use.
     97*-ltraceevent*
     98	Linker switch to add when building a program that uses the library.
     99--
    100
    101SEE ALSO
    102--------
    103_libtraceevent(3)_, _trace-cmd(1)_
    104
    105AUTHOR
    106------
    107[verse]
    108--
    109*Steven Rostedt* <rostedt@goodmis.org>, author of *libtraceevent*.
    110*Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>, author of this man page.
    111--
    112REPORTING BUGS
    113--------------
    114Report bugs to  <linux-trace-devel@vger.kernel.org>
    115
    116LICENSE
    117-------
    118libtraceevent is Free Software licensed under the GNU LGPL 2.1
    119
    120RESOURCES
    121---------
    122https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git