/**************************************************************************** **************************************************************************** *** *** This header was automatically generated from a Linux kernel header *** of the same name, to make information necessary for userspace to *** call into the kernel available to libc. It contains only constants, *** structures, and macros generated from the original header, and thus, *** contains no copyrightable information. *** *** To edit the content of this header, modify the corresponding *** source file (e.g. under external/kernel-headers/original/) then *** run bionic/libc/kernel/tools/update_all.py *** *** Any manual change here will be lost the next time this script will *** be run. You've been warned! *** **************************************************************************** ****************************************************************************/ #ifndef _PERF_PERF_H #define _PERF_PERF_H #ifdef __i386__ /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define rmb() asm volatile("lock; addl $0,0(%%esp)" : : : "memory") #define cpu_relax() asm volatile("rep; nop" : : : "memory"); #define CPUINFO_PROC "model name" #ifndef __NR_perf_event_open /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define __NR_perf_event_open 336 #endif #endif #ifdef __x86_64__ /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define rmb() asm volatile("lfence" : : : "memory") #define cpu_relax() asm volatile("rep; nop" : : : "memory"); #define CPUINFO_PROC "model name" #ifndef __NR_perf_event_open /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define __NR_perf_event_open 298 #endif #endif #ifdef __powerpc__ /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define rmb() asm volatile("sync" : : : "memory") #define cpu_relax() asm volatile("" : : : "memory"); #define CPUINFO_PROC "cpu" /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #endif #ifdef __s390__ #define rmb() asm volatile("bcr 15,0" : : : "memory") #define cpu_relax() asm volatile("" : : : "memory"); /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #endif #ifdef __sh__ #if defined(__SH4A__) || defined(__SH5__) #define rmb() asm volatile("synco" : : : "memory") /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #else #define rmb() asm volatile("" : : : "memory") #endif #define cpu_relax() asm volatile("" : : : "memory") /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define CPUINFO_PROC "cpu type" #endif #ifdef __hppa__ #define rmb() asm volatile("" : : : "memory") /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define cpu_relax() asm volatile("" : : : "memory"); #define CPUINFO_PROC "cpu" #endif #ifdef __sparc__ /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define rmb() asm volatile("" : : : "memory") #define cpu_relax() asm volatile("" : : : "memory") #define CPUINFO_PROC "cpu" #endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #ifdef __alpha__ #define rmb() asm volatile("mb" : : : "memory") #define cpu_relax() asm volatile("" : : : "memory") #define CPUINFO_PROC "cpu model" /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #endif #ifdef __ia64__ #define rmb() asm volatile("mf" : : : "memory") #define cpu_relax() asm volatile("hint @pause" : : : "memory") /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define CPUINFO_PROC "model name" #endif #ifdef __arm__ #define rmb() ((void(*) (void)) 0xffff0fa0) () /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define cpu_relax() asm volatile("" : : : "memory") #define CPUINFO_PROC "Processor" #endif #ifdef __aarch64__ /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define rmb() asm volatile("dmb ld" : : : "memory") #define cpu_relax() asm volatile("yield" : : : "memory") #endif #ifdef __mips__ /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define rmb() asm volatile(".set mips2\n\t" "sync\n\t" ".set mips0" : : : "memory") #define cpu_relax() asm volatile("" : : : "memory") #define CPUINFO_PROC "cpu model" #endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #ifdef __arc__ #define rmb() asm volatile("" : : : "memory") #define cpu_relax() rmb() #define CPUINFO_PROC "Processor" /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #endif #ifdef __metag__ #define rmb() asm volatile("" : : : "memory") #define cpu_relax() asm volatile("" : : : "memory") /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define CPUINFO_PROC "CPU" #endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define PR_TASK_PERF_EVENTS_DISABLE 31 #define PR_TASK_PERF_EVENTS_ENABLE 32 #ifndef NSEC_PER_SEC /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define NSEC_PER_SEC 1000000000ULL #endif #ifndef NSEC_PER_USEC #define NSEC_PER_USEC 1000ULL /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #endif #define __user #define asmlinkage #define unlikely(x) __builtin_expect(! ! (x), 0) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define min(x,y) ({ typeof(x) _min1 = (x); typeof(y) _min2 = (y); (void) (& _min1 == & _min2); _min1 < _min2 ? _min1 : _min2; }) #define MAX_COUNTERS 256 #define MAX_NR_CPUS 256 struct ip_callchain { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ u64 nr; u64 ips[0]; }; struct branch_flags { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ u64 mispred : 1; u64 predicted : 1; u64 reserved : 62; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct branch_entry { u64 from; u64 to; struct branch_flags flags; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; struct branch_stack { u64 nr; struct branch_entry entries[0]; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; enum perf_call_graph_mode { CALLCHAIN_NONE, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ CALLCHAIN_FP, CALLCHAIN_DWARF }; struct perf_record_opts { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct perf_target target; int call_graph; bool group; bool inherit_stat; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ bool no_delay; bool no_inherit; bool no_samples; bool pipe_output; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ bool raw_samples; bool sample_address; bool sample_weight; bool sample_time; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ bool period; unsigned int freq; unsigned int mmap_pages; unsigned int user_freq; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ u64 branch_stack; u64 default_interval; u64 user_interval; u16 stack_dump_size; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; #endif