#ifndef _PERF_PERF_H | |
#define _PERF_PERF_H | |
#include <time.h> | |
#include <stdbool.h> | |
#include <linux/types.h> | |
#include <linux/perf_event.h> | |
extern bool test_attr__enabled; | |
void test_attr__init(void); | |
void test_attr__open(struct perf_event_attr *attr, pid_t pid, int cpu, | |
int fd, int group_fd, unsigned long flags); | |
#define HAVE_ATTR_TEST | |
#include "perf-sys.h" | |
#ifndef NSEC_PER_SEC | |
# define NSEC_PER_SEC 1000000000ULL | |
#endif | |
#ifndef NSEC_PER_USEC | |
# define NSEC_PER_USEC 1000ULL | |
#endif | |
static inline unsigned long long rdclock(void) | |
{ | |
struct timespec ts; | |
clock_gettime(CLOCK_MONOTONIC, &ts); | |
return ts.tv_sec * 1000000000ULL + ts.tv_nsec; | |
} | |
#define MAX_NR_CPUS 1024 | |
extern const char *input_name; | |
extern bool perf_host, perf_guest; | |
extern const char perf_version_string[]; | |
void pthread__unblock_sigwinch(void); | |
#include "util/target.h" | |
struct record_opts { | |
struct target target; | |
bool group; | |
bool inherit_stat; | |
bool no_buffering; | |
bool no_inherit; | |
bool no_inherit_set; | |
bool no_samples; | |
bool raw_samples; | |
bool sample_address; | |
bool sample_weight; | |
bool sample_time; | |
bool sample_time_set; | |
bool callgraph_set; | |
bool period; | |
bool running_time; | |
bool full_auxtrace; | |
bool auxtrace_snapshot_mode; | |
bool record_switch_events; | |
unsigned int freq; | |
unsigned int mmap_pages; | |
unsigned int auxtrace_mmap_pages; | |
unsigned int user_freq; | |
u64 branch_stack; | |
u64 sample_intr_regs; | |
u64 default_interval; | |
u64 user_interval; | |
size_t auxtrace_snapshot_size; | |
const char *auxtrace_snapshot_opts; | |
bool sample_transaction; | |
unsigned initial_delay; | |
bool use_clockid; | |
clockid_t clockid; | |
unsigned int proc_map_timeout; | |
}; | |
struct option; | |
extern const char * const *record_usage; | |
extern struct option *record_options; | |
#endif |