Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-param-fixes
[safe/jmp/linux-2.6] / tools / perf / util / event.h
index 91e2fe5..2c9c26d 100644 (file)
@@ -1,5 +1,18 @@
+#ifndef __PERF_RECORD_H
+#define __PERF_RECORD_H
 #include "../perf.h"
+#include "util.h"
+#include <linux/list.h>
 
+enum {
+       SHOW_KERNEL     = 1,
+       SHOW_USER       = 2,
+       SHOW_HV         = 4,
+};
+
+/*
+ * PERF_SAMPLE_IP | PERF_SAMPLE_TID | *
+ */
 struct ip_event {
        struct perf_event_header header;
        u64 ip;
@@ -26,6 +39,7 @@ struct fork_event {
        struct perf_event_header header;
        u32 pid, ppid;
        u32 tid, ptid;
+       u64 time;
 };
 
 struct lost_event {
@@ -34,15 +48,24 @@ struct lost_event {
        u64 lost;
 };
 
+/*
+ * PERF_FORMAT_ENABLED | PERF_FORMAT_RUNNING | PERF_FORMAT_ID
+ */
 struct read_event {
        struct perf_event_header header;
-       u32 pid,tid;
+       u32 pid, tid;
        u64 value;
        u64 time_enabled;
        u64 time_running;
        u64 id;
 };
 
+struct sample_event{
+       struct perf_event_header        header;
+       u64 array[];
+};
+
+
 typedef union event_union {
        struct perf_event_header        header;
        struct ip_event                 ip;
@@ -51,4 +74,31 @@ typedef union event_union {
        struct fork_event               fork;
        struct lost_event               lost;
        struct read_event               read;
+       struct sample_event             sample;
 } event_t;
+
+struct map {
+       struct list_head        node;
+       u64                     start;
+       u64                     end;
+       u64                     pgoff;
+       u64                     (*map_ip)(struct map *, u64);
+       struct dso              *dso;
+};
+
+static inline u64 map__map_ip(struct map *map, u64 ip)
+{
+       return ip - map->start + map->pgoff;
+}
+
+static inline u64 vdso__map_ip(struct map *map __used, u64 ip)
+{
+       return ip;
+}
+
+struct map *map__new(struct mmap_event *event, char *cwd, int cwdlen);
+struct map *map__clone(struct map *self);
+int map__overlap(struct map *l, struct map *r);
+size_t map__fprintf(struct map *self, FILE *fp);
+
+#endif