---
name: "tep_data_type"
section: "3"
platform: "linux"
package: "libtraceevent"
version: "1:1.9.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/tep_data_type"
---

# tep\_data\_type(3)

Extract common fields from a record.

## NAME

tep\_data\_type, tep\_data\_pid, tep\_data\_preempt\_count, tep\_data\_flags - Extract common fields from a record.

## SYNOPSIS

```
#include <event-parse.h>
enum trace_flag_type {
        TRACE_FLAG_IRQS_OFF,
        TRACE_FLAG_IRQS_NOSUPPORT,
        TRACE_FLAG_NEED_RESCHED,
        TRACE_FLAG_HARDIRQ,
        TRACE_FLAG_SOFTIRQ,
};
int tep_data_type(struct tep_handle *tep, struct tep_record *rec);
int tep_data_pid(struct tep_handle *tep, struct tep_record *rec);
int tep_data_preempt_count(struct tep_handle *tep, struct tep_record *rec);
int tep_data_flags(struct tep_handle *tep, struct tep_record *rec);
```

## DESCRIPTION

This set of functions can be used to extract common fields from a record.

The **tep\_data\_type()** function gets the event id from the record *rec*. It reads the "common\_type" field. The *tep* argument is the trace event parser context.

The **tep\_data\_pid()** function gets the process id from the record *rec*. It reads the "common\_pid" field. The *tep* argument is the trace event parser context.

The **tep\_data\_preempt\_count()** function gets the preemption count from the record *rec*. It reads the "common\_preempt\_count" field. The *tep* argument is the trace event parser context.

The **tep\_data\_flags()** function gets the latency flags from the record *rec*. It reads the "common\_flags" field. The *tep* argument is the trace event parser context. Supported latency flags are:

```
        TRACE_FLAG_IRQS_OFF,          Interrupts are disabled.
        TRACE_FLAG_IRQS_NOSUPPORT,    Reading IRQ flag is not supported by the architecture.
        TRACE_FLAG_NEED_RESCHED,      Task needs rescheduling.
        TRACE_FLAG_HARDIRQ,           Hard IRQ is running.
        TRACE_FLAG_SOFTIRQ,           Soft IRQ is running.
```

## RETURN VALUE

The **tep\_data\_type()** function returns an integer, representing the event id.

The **tep\_data\_pid()** function returns an integer, representing the process id

The **tep\_data\_preempt\_count()** function returns an integer, representing the preemption count.

The **tep\_data\_flags()** function returns an integer, representing the latency flags. Look at the *trace\_flag\_type* enum for supported flags.

All these functions in case of an error return a negative integer.

## EXAMPLE

```
#include <event-parse.h>
...
struct tep_handle *tep = tep_alloc();
...
void process_record(struct tep_record *record)
{
        int data;
        data = tep_data_type(tep, record);
        if (data >= 0) {
                /* Got the ID of the event */
        }
        data = tep_data_pid(tep, record);
        if (data >= 0) {
                /* Got the process ID */
        }
        data = tep_data_preempt_count(tep, record);
        if (data >= 0) {
                /* Got the preemption count */
        }
        data = tep_data_flags(tep, record);
        if (data >= 0) {
                /* Got the latency flags */
        }
}
...
```

## FILES

```
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)](/libtraceevent/3.md), [**trace-cmd**(1)](/trace-cmd/1.md)

## AUTHOR

```
Steven Rostedt <rostedt@goodmis.org[1]>, author of libtraceevent.
Tzvetomir Stoyanov <tz.stoyanov@gmail.com[2]>, author of this man page.
```

## REPORTING BUGS

Report bugs to \<**linux-trace-devel@vger.kernel.org**\[3\]\>

## LICENSE

libtraceevent is Free Software licensed under the GNU LGPL 2.1

## RESOURCES

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

## NOTES

- 1\.

  rostedt@goodmis.org

  mailto:rostedt@goodmis.org

- 2\.

  tz.stoyanov@gmail.com

  mailto:tz.stoyanov@gmail.com

- 3\.

  linux-trace-devel@vger.kernel.org

  mailto:linux-trace-devel@vger.kernel.org
