perf_counter: Rename 'event' to event_id/hw_event
[linux-2.6-block.git] / tools / perf / util / event.h
CommitLineData
66e274f3
FW
1#ifndef __PERF_EVENT_H
2#define __PERF_EVENT_H
1fe2c106 3#include "../perf.h"
66e274f3
FW
4#include "util.h"
5#include <linux/list.h>
1fe2c106 6
0f25bfc8
FW
7enum {
8 SHOW_KERNEL = 1,
9 SHOW_USER = 2,
10 SHOW_HV = 4,
11};
12
18408ddc
PZ
13/*
14 * PERF_SAMPLE_IP | PERF_SAMPLE_TID | *
15 */
1fe2c106
FW
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;
393b2ad8 42 u64 time;
1fe2c106
FW
43};
44
45struct lost_event {
46 struct perf_event_header header;
47 u64 id;
48 u64 lost;
49};
50
18408ddc
PZ
51/*
52 * PERF_FORMAT_ENABLED | PERF_FORMAT_RUNNING | PERF_FORMAT_ID
53 */
1fe2c106
FW
54struct read_event {
55 struct perf_event_header header;
dc02bf71 56 u32 pid, tid;
1fe2c106
FW
57 u64 value;
58 u64 time_enabled;
59 u64 time_running;
60 u64 id;
61};
62
fd39e055
AV
63struct sample_event{
64 struct perf_event_header header;
65 u64 array[];
66};
67
68
1fe2c106
FW
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;
fd39e055 77 struct sample_event sample;
1fe2c106 78} event_t;
66e274f3
FW
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