Merge branch 'perf/urgent' into perf/core
[linux-2.6-block.git] / include / linux / perf_event.h
index c8e375440403de53f6deb7be5e5ad3d0b0bb84e6..6e96cc8225d467c1cae2fabd49f1e4ea925c37d6 100644 (file)
@@ -203,8 +203,9 @@ struct perf_event_attr {
                                enable_on_exec :  1, /* next exec enables     */
                                task           :  1, /* trace fork/exit       */
                                watermark      :  1, /* wakeup_watermark      */
+                               precise        :  1, /* OoO invariant counter */
 
-                               __reserved_1   : 49;
+                               __reserved_1   : 48;
 
        union {
                __u32           wakeup_events;    /* wakeup every n events */
@@ -293,6 +294,12 @@ struct perf_event_mmap_page {
 #define PERF_RECORD_MISC_USER                  (2 << 0)
 #define PERF_RECORD_MISC_HYPERVISOR            (3 << 0)
 
+#define PERF_RECORD_MISC_EXACT                 (1 << 14)
+/*
+ * Reserve the last bit to indicate some extended misc field
+ */
+#define PERF_RECORD_MISC_EXT_RESERVED          (1 << 15)
+
 struct perf_event_header {
        __u32   type;
        __u16   misc;
@@ -468,6 +475,17 @@ struct perf_raw_record {
        void                            *data;
 };
 
+struct perf_branch_entry {
+       __u64                           from;
+       __u64                           to;
+       __u64                           flags;
+};
+
+struct perf_branch_stack {
+       __u64                           nr;
+       struct perf_branch_entry        entries[0];
+};
+
 struct task_struct;
 
 /**