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