linux/tools/perf/util/event.h
<<
>>
Prefs
   1#ifndef __PERF_RECORD_H
   2#define __PERF_RECORD_H
   3#include "../perf.h"
   4#include "util.h"
   5#include <linux/list.h>
   6
   7enum {
   8        SHOW_KERNEL     = 1,
   9        SHOW_USER       = 2,
  10        SHOW_HV         = 4,
  11};
  12
  13/*
  14 * PERF_SAMPLE_IP | PERF_SAMPLE_TID | *
  15 */
  16struct ip_event {
  17        struct perf_event_header header;
  18        u64 ip;
  19        u32 pid, tid;
  20        unsigned char __more_data[];
  21};
  22
  23struct mmap_event {
  24        struct perf_event_header header;
  25        u32 pid, tid;
  26        u64 start;
  27        u64 len;
  28        u64 pgoff;
  29        char filename[PATH_MAX];
  30};
  31
  32struct comm_event {
  33        struct perf_event_header header;
  34        u32 pid, tid;
  35        char comm[16];
  36};
  37
  38struct fork_event {
  39        struct perf_event_header header;
  40        u32 pid, ppid;
  41        u32 tid, ptid;
  42        u64 time;
  43};
  44
  45struct lost_event {
  46        struct perf_event_header header;
  47        u64 id;
  48        u64 lost;
  49};
  50
  51/*
  52 * PERF_FORMAT_ENABLED | PERF_FORMAT_RUNNING | PERF_FORMAT_ID
  53 */
  54struct read_event {
  55        struct perf_event_header header;
  56        u32 pid, tid;
  57        u64 value;
  58        u64 time_enabled;
  59        u64 time_running;
  60        u64 id;
  61};
  62
  63struct sample_event{
  64        struct perf_event_header        header;
  65        u64 array[];
  66};
  67
  68
  69typedef union event_union {
  70        struct perf_event_header        header;
  71        struct ip_event                 ip;
  72        struct mmap_event               mmap;
  73        struct comm_event               comm;
  74        struct fork_event               fork;
  75        struct lost_event               lost;
  76        struct read_event               read;
  77        struct sample_event             sample;
  78} event_t;
  79
  80struct map {
  81        struct list_head        node;
  82        u64                     start;
  83        u64                     end;
  84        u64                     pgoff;
  85        u64                     (*map_ip)(struct map *, u64);
  86        struct dso              *dso;
  87};
  88
  89static inline u64 map__map_ip(struct map *map, u64 ip)
  90{
  91        return ip - map->start + map->pgoff;
  92}
  93
  94static inline u64 vdso__map_ip(struct map *map __used, u64 ip)
  95{
  96        return ip;
  97}
  98
  99struct map *map__new(struct mmap_event *event, char *cwd, int cwdlen);
 100struct map *map__clone(struct map *self);
 101int map__overlap(struct map *l, struct map *r);
 102size_t map__fprintf(struct map *self, FILE *fp);
 103
 104#endif
 105