/****************************************************************************
****************************************************************************
***
*** 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