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-record_parse.txt (3513B)


      1libtraceevent(3)
      2================
      3
      4NAME
      5----
      6tep_data_type, tep_data_pid,tep_data_preempt_count, tep_data_flags -
      7Extract common fields from a record.
      8
      9SYNOPSIS
     10--------
     11[verse]
     12--
     13*#include <event-parse.h>*
     14
     15enum *trace_flag_type* {
     16	_TRACE_FLAG_IRQS_OFF_,
     17	_TRACE_FLAG_IRQS_NOSUPPORT_,
     18	_TRACE_FLAG_NEED_RESCHED_,
     19	_TRACE_FLAG_HARDIRQ_,
     20	_TRACE_FLAG_SOFTIRQ_,
     21};
     22
     23int *tep_data_type*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_);
     24int *tep_data_pid*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_);
     25int *tep_data_preempt_count*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_);
     26int *tep_data_flags*(struct tep_handle pass:[*]_tep_, struct tep_record pass:[*]_rec_);
     27--
     28
     29DESCRIPTION
     30-----------
     31This set of functions can be used to extract common fields from a record.
     32
     33The _tep_data_type()_ function gets the event id from the record _rec_.
     34It reads the "common_type" field. The _tep_ argument is the trace event parser
     35context.
     36
     37The _tep_data_pid()_ function gets the process id from the record _rec_.
     38It reads the "common_pid" field. The _tep_ argument is the trace event parser
     39context.
     40
     41The _tep_data_preempt_count()_ function gets the preemption count from the
     42record _rec_. It reads the "common_preempt_count" field. The _tep_ argument is
     43the trace event parser context.
     44
     45The _tep_data_flags()_ function gets the latency flags from the record _rec_.
     46It reads the "common_flags" field. The _tep_ argument is the trace event parser
     47context. Supported latency flags are:
     48[verse]
     49--
     50	_TRACE_FLAG_IRQS_OFF_,		Interrupts are disabled.
     51	_TRACE_FLAG_IRQS_NOSUPPORT_,	Reading IRQ flag is not supported by the architecture.
     52	_TRACE_FLAG_NEED_RESCHED_,	Task needs rescheduling.
     53	_TRACE_FLAG_HARDIRQ_,		Hard IRQ is running.
     54	_TRACE_FLAG_SOFTIRQ_,		Soft IRQ is running.
     55--
     56
     57RETURN VALUE
     58------------
     59The _tep_data_type()_ function returns an integer, representing the event id.
     60
     61The _tep_data_pid()_ function returns an integer, representing the process id
     62
     63The _tep_data_preempt_count()_ function returns an integer, representing the
     64preemption count.
     65
     66The _tep_data_flags()_ function returns an integer, representing the latency
     67flags. Look at the _trace_flag_type_ enum for supported flags.
     68
     69All these functions in case of an error return a negative integer.
     70
     71EXAMPLE
     72-------
     73[source,c]
     74--
     75#include <event-parse.h>
     76...
     77struct tep_handle *tep = tep_alloc();
     78...
     79void process_record(struct tep_record *record)
     80{
     81	int data;
     82
     83	data = tep_data_type(tep, record);
     84	if (data >= 0) {
     85		/* Got the ID of the event */
     86	}
     87
     88	data = tep_data_pid(tep, record);
     89	if (data >= 0) {
     90		/* Got the process ID */
     91	}
     92
     93	data = tep_data_preempt_count(tep, record);
     94	if (data >= 0) {
     95		/* Got the preemption count */
     96	}
     97
     98	data = tep_data_flags(tep, record);
     99	if (data >= 0) {
    100		/* Got the latency flags */
    101	}
    102}
    103...
    104--
    105
    106FILES
    107-----
    108[verse]
    109--
    110*event-parse.h*
    111	Header file to include in order to have access to the library APIs.
    112*-ltraceevent*
    113	Linker switch to add when building a program that uses the library.
    114--
    115
    116SEE ALSO
    117--------
    118_libtraceevent(3)_, _trace-cmd(1)_
    119
    120AUTHOR
    121------
    122[verse]
    123--
    124*Steven Rostedt* <rostedt@goodmis.org>, author of *libtraceevent*.
    125*Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>, author of this man page.
    126--
    127REPORTING BUGS
    128--------------
    129Report bugs to  <linux-trace-devel@vger.kernel.org>
    130
    131LICENSE
    132-------
    133libtraceevent is Free Software licensed under the GNU LGPL 2.1
    134
    135RESOURCES
    136---------
    137https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git