Home | History | Annotate | Download | only in util
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef __PERF_RECORD_H
     20 #define __PERF_RECORD_H
     21 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     22 struct mmap_event {
     23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     24   struct perf_event_header header;
     25   u32 pid, tid;
     26   u64 start;
     27   u64 len;
     28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     29   u64 pgoff;
     30   char filename[PATH_MAX];
     31 };
     32 struct mmap2_event {
     33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     34   struct perf_event_header header;
     35   u32 pid, tid;
     36   u64 start;
     37   u64 len;
     38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     39   u64 pgoff;
     40   u32 maj;
     41   u32 min;
     42   u64 ino;
     43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     44   u64 ino_generation;
     45   char filename[PATH_MAX];
     46 };
     47 struct comm_event {
     48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     49   struct perf_event_header header;
     50   u32 pid, tid;
     51   char comm[16];
     52 };
     53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     54 struct fork_event {
     55   struct perf_event_header header;
     56   u32 pid, ppid;
     57   u32 tid, ptid;
     58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     59   u64 time;
     60 };
     61 struct lost_event {
     62   struct perf_event_header header;
     63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     64   u64 id;
     65   u64 lost;
     66 };
     67 struct read_event {
     68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     69   struct perf_event_header header;
     70   u32 pid, tid;
     71   u64 value;
     72   u64 time_enabled;
     73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     74   u64 time_running;
     75   u64 id;
     76 };
     77 #define PERF_SAMPLE_MASK (PERF_SAMPLE_IP | PERF_SAMPLE_TID | PERF_SAMPLE_TIME | PERF_SAMPLE_ADDR | PERF_SAMPLE_ID | PERF_SAMPLE_STREAM_ID | PERF_SAMPLE_CPU | PERF_SAMPLE_PERIOD | PERF_SAMPLE_IDENTIFIER)
     78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     79 struct sample_event {
     80   struct perf_event_header header;
     81   u64 array[];
     82 };
     83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     84 struct regs_dump {
     85   u64 abi;
     86   u64 * regs;
     87 };
     88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     89 struct stack_dump {
     90   u16 offset;
     91   u64 size;
     92   char * data;
     93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     94 };
     95 struct sample_read_value {
     96   u64 value;
     97   u64 id;
     98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     99 };
    100 struct sample_read {
    101   u64 time_enabled;
    102   u64 time_running;
    103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    104   union {
    105     struct {
    106       u64 nr;
    107       struct sample_read_value * values;
    108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    109     } group;
    110     struct sample_read_value one;
    111   };
    112 };
    113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    114 struct perf_sample {
    115   u64 ip;
    116   u32 pid, tid;
    117   u64 time;
    118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    119   u64 addr;
    120   u64 id;
    121   u64 stream_id;
    122   u64 period;
    123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    124   u64 weight;
    125   u32 cpu;
    126   u32 raw_size;
    127   u64 data_src;
    128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    129   void * raw_data;
    130   struct ip_callchain * callchain;
    131   struct branch_stack * branch_stack;
    132   struct regs_dump user_regs;
    133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    134   struct stack_dump user_stack;
    135   struct sample_read read;
    136 };
    137 #define PERF_MEM_DATA_SRC_NONE (PERF_MEM_S(OP, NA) | PERF_MEM_S(LVL, NA) | PERF_MEM_S(SNOOP, NA) | PERF_MEM_S(LOCK, NA) | PERF_MEM_S(TLB, NA))
    138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    139 struct build_id_event {
    140   struct perf_event_header header;
    141   pid_t pid;
    142   u8 build_id[PERF_ALIGN(BUILD_ID_SIZE, sizeof(u64))];
    143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    144   char filename[];
    145 };
    146 enum perf_user_event_type {
    147   PERF_RECORD_USER_TYPE_START = 64,
    148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    149   PERF_RECORD_HEADER_ATTR = 64,
    150   PERF_RECORD_HEADER_EVENT_TYPE = 65,
    151   PERF_RECORD_HEADER_TRACING_DATA = 66,
    152   PERF_RECORD_HEADER_BUILD_ID = 67,
    153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    154   PERF_RECORD_FINISHED_ROUND = 68,
    155   PERF_RECORD_HEADER_MAX
    156 };
    157 struct attr_event {
    158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    159   struct perf_event_header header;
    160   struct perf_event_attr attr;
    161   u64 id[];
    162 };
    163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    164 #define MAX_EVENT_NAME 64
    165 struct perf_trace_event_type {
    166   u64 event_id;
    167   char name[MAX_EVENT_NAME];
    168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    169 };
    170 struct event_type_event {
    171   struct perf_event_header header;
    172   struct perf_trace_event_type event_type;
    173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    174 };
    175 struct tracing_data_event {
    176   struct perf_event_header header;
    177   u32 size;
    178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    179 };
    180 union perf_event {
    181   struct perf_event_header header;
    182   struct mmap_event mmap;
    183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    184   struct mmap2_event mmap2;
    185   struct comm_event comm;
    186   struct fork_event fork;
    187   struct lost_event lost;
    188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    189   struct read_event read;
    190   struct sample_event sample;
    191   struct attr_event attr;
    192   struct event_type_event event_type;
    193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    194   struct tracing_data_event tracing_data;
    195   struct build_id_event build_id;
    196 };
    197 struct perf_tool;
    198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    199 struct thread_map;
    200 typedef int(* perf_event__handler_t) (struct perf_tool * tool, union perf_event * event, struct perf_sample * sample, struct machine * machine);
    201 struct addr_location;
    202 #endif
    203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    204 
    205