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_PERF_H
20#define _PERF_PERF_H
21#ifdef __i386__
22/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
23#define rmb() asm volatile("lock; addl $0,0(%%esp)" : : : "memory")
24#define cpu_relax() asm volatile("rep; nop" : : : "memory");
25#define CPUINFO_PROC "model name"
26#ifndef __NR_perf_event_open
27/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
28#define __NR_perf_event_open 336
29#endif
30#endif
31#ifdef __x86_64__
32/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
33#define rmb() asm volatile("lfence" : : : "memory")
34#define cpu_relax() asm volatile("rep; nop" : : : "memory");
35#define CPUINFO_PROC "model name"
36#ifndef __NR_perf_event_open
37/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
38#define __NR_perf_event_open 298
39#endif
40#endif
41#ifdef __powerpc__
42/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
43#define rmb() asm volatile("sync" : : : "memory")
44#define cpu_relax() asm volatile("" : : : "memory");
45#define CPUINFO_PROC "cpu"
46/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
47#endif
48#ifdef __s390__
49#define rmb() asm volatile("bcr 15,0" : : : "memory")
50#define cpu_relax() asm volatile("" : : : "memory");
51/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
52#endif
53#ifdef __sh__
54#if defined(__SH4A__) || defined(__SH5__)
55#define rmb() asm volatile("synco" : : : "memory")
56/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
57#else
58#define rmb() asm volatile("" : : : "memory")
59#endif
60#define cpu_relax() asm volatile("" : : : "memory")
61/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
62#define CPUINFO_PROC "cpu type"
63#endif
64#ifdef __hppa__
65#define rmb() asm volatile("" : : : "memory")
66/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
67#define cpu_relax() asm volatile("" : : : "memory");
68#define CPUINFO_PROC "cpu"
69#endif
70#ifdef __sparc__
71/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
72#define rmb() asm volatile("" : : : "memory")
73#define cpu_relax() asm volatile("" : : : "memory")
74#define CPUINFO_PROC "cpu"
75#endif
76/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
77#ifdef __alpha__
78#define rmb() asm volatile("mb" : : : "memory")
79#define cpu_relax() asm volatile("" : : : "memory")
80#define CPUINFO_PROC "cpu model"
81/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
82#endif
83#ifdef __ia64__
84#define rmb() asm volatile("mf" : : : "memory")
85#define cpu_relax() asm volatile("hint @pause" : : : "memory")
86/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
87#define CPUINFO_PROC "model name"
88#endif
89#ifdef __arm__
90#define rmb() ((void(*) (void)) 0xffff0fa0) ()
91/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
92#define cpu_relax() asm volatile("" : : : "memory")
93#define CPUINFO_PROC "Processor"
94#endif
95#ifdef __aarch64__
96/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
97#define rmb() asm volatile("dmb ld" : : : "memory")
98#define cpu_relax() asm volatile("yield" : : : "memory")
99#endif
100#ifdef __mips__
101/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
102#define rmb() asm volatile(".set	mips2\n\t" "sync\n\t" ".set	mips0" : : : "memory")
103#define cpu_relax() asm volatile("" : : : "memory")
104#define CPUINFO_PROC "cpu model"
105#endif
106/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
107#ifdef __arc__
108#define rmb() asm volatile("" : : : "memory")
109#define cpu_relax() rmb()
110#define CPUINFO_PROC "Processor"
111/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
112#endif
113#ifdef __metag__
114#define rmb() asm volatile("" : : : "memory")
115#define cpu_relax() asm volatile("" : : : "memory")
116/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
117#define CPUINFO_PROC "CPU"
118#endif
119/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
120/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
121#define PR_TASK_PERF_EVENTS_DISABLE 31
122#define PR_TASK_PERF_EVENTS_ENABLE 32
123#ifndef NSEC_PER_SEC
124/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
125#define NSEC_PER_SEC 1000000000ULL
126#endif
127#ifndef NSEC_PER_USEC
128#define NSEC_PER_USEC 1000ULL
129/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
130#endif
131#define __user
132#define asmlinkage
133#define unlikely(x) __builtin_expect(! ! (x), 0)
134/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
135#define min(x,y) ({ typeof(x) _min1 = (x); typeof(y) _min2 = (y); (void) (& _min1 == & _min2); _min1 < _min2 ? _min1 : _min2; })
136#define MAX_COUNTERS 256
137#define MAX_NR_CPUS 256
138struct ip_callchain {
139/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
140  u64 nr;
141  u64 ips[0];
142};
143struct branch_flags {
144/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
145  u64 mispred : 1;
146  u64 predicted : 1;
147  u64 reserved : 62;
148};
149/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
150struct branch_entry {
151  u64 from;
152  u64 to;
153  struct branch_flags flags;
154/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
155};
156struct branch_stack {
157  u64 nr;
158  struct branch_entry entries[0];
159/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
160};
161enum perf_call_graph_mode {
162  CALLCHAIN_NONE,
163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164  CALLCHAIN_FP,
165  CALLCHAIN_DWARF
166};
167struct perf_record_opts {
168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169  struct perf_target target;
170  int call_graph;
171  bool group;
172  bool inherit_stat;
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174  bool no_delay;
175  bool no_inherit;
176  bool no_samples;
177  bool pipe_output;
178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179  bool raw_samples;
180  bool sample_address;
181  bool sample_weight;
182  bool sample_time;
183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184  bool period;
185  unsigned int freq;
186  unsigned int mmap_pages;
187  unsigned int user_freq;
188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189  u64 branch_stack;
190  u64 default_interval;
191  u64 user_interval;
192  u16 stack_dump_size;
193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194};
195#endif
196
197