Linux Perf
header.c File Reference
#include <errno.h>
#include <inttypes.h>
#include "util.h"
#include "string2.h"
#include <sys/param.h>
#include <sys/types.h>
#include <byteswap.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <linux/compiler.h>
#include <linux/list.h>
#include <linux/kernel.h>
#include <linux/bitops.h>
#include <linux/stringify.h>
#include <sys/stat.h>
#include <sys/utsname.h>
#include <linux/time64.h>
#include <dirent.h>
#include "evlist.h"
#include "evsel.h"
#include "header.h"
#include "memswap.h"
#include "../perf.h"
#include "trace-event.h"
#include "session.h"
#include "symbol.h"
#include "debug.h"
#include "cpumap.h"
#include "pmu.h"
#include "vdso.h"
#include "strbuf.h"
#include "build-id.h"
#include "data.h"
#include <api/fs/fs.h>
#include "asm/bug.h"
#include "tool.h"
#include "time-utils.h"
#include "units.h"
#include "sane_ctype.h"
Include dependency graph for header.c:

Go to the source code of this file.

Classes

struct  perf_file_attr
 
struct  feat_fd
 
struct  cpu_topo
 
struct  feature_ops
 
struct  header_print_data
 

Macros

#define PERF_MAGIC   __perf_magic2
 
#define string_size(str)   (PERF_ALIGN((strlen(str) + 1), NAME_ALIGN) + sizeof(u32))
 
#define CORE_SIB_FMT   "/sys/devices/system/cpu/cpu%d/topology/core_siblings_list"
 
#define THRD_SIB_FMT   "/sys/devices/system/cpu/cpu%d/topology/thread_siblings_list"
 
#define MAX_CACHES   2000
 
#define _W(v)
 
#define _W(v)
 
#define for_each_memory(mem, dir)
 
#define MAX_MEMORY_NODES   2000
 
#define _W(v)
 
#define FEAT_PROCESS_STR_FUN(__feat, __feat_env)
 
#define _R(v)
 
#define _R(v)
 
#define _R(v)
 
#define FEAT_OPR(n, func, __full_only)
 
#define FEAT_OPN(n, func, __full_only)
 
#define print_tracing_data   NULL
 
#define print_build_id   NULL
 
#define process_branch_stack   NULL
 
#define process_stat   NULL
 
#define PERF_PIPE_HDR_VER0   16
 

Functions

void perf_header__set_feat (struct perf_header *header, int feat)
 
void perf_header__clear_feat (struct perf_header *header, int feat)
 
bool perf_header__has_feat (const struct perf_header *header, int feat)
 
static int __do_write_fd (struct feat_fd *ff, const void *buf, size_t size)
 
static int __do_write_buf (struct feat_fd *ff, const void *buf, size_t size)
 
int do_write (struct feat_fd *ff, const void *buf, size_t size)
 
static int do_write_bitmap (struct feat_fd *ff, unsigned long *set, u64 size)
 
int write_padded (struct feat_fd *ff, const void *bf, size_t count, size_t count_aligned)
 
static int do_write_string (struct feat_fd *ff, const char *str)
 
static int __do_read_fd (struct feat_fd *ff, void *addr, ssize_t size)
 
static int __do_read_buf (struct feat_fd *ff, void *addr, ssize_t size)
 
static int __do_read (struct feat_fd *ff, void *addr, ssize_t size)
 
static int do_read_u32 (struct feat_fd *ff, u32 *addr)
 
static int do_read_u64 (struct feat_fd *ff, u64 *addr)
 
static char * do_read_string (struct feat_fd *ff)
 
static int do_read_bitmap (struct feat_fd *ff, unsigned long **pset, u64 *psize)
 
static int write_tracing_data (struct feat_fd *ff, struct perf_evlist *evlist)
 
static int write_build_id (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_hostname (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_osrelease (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_arch (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_version (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int __write_cpudesc (struct feat_fd *ff, const char *cpuinfo_proc)
 
static int write_cpudesc (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_nrcpus (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_event_desc (struct feat_fd *ff, struct perf_evlist *evlist)
 
static int write_cmdline (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int build_cpu_topo (struct cpu_topo *tp, int cpu)
 
static void free_cpu_topo (struct cpu_topo *tp)
 
static struct cpu_topobuild_cpu_topology (void)
 
static int write_cpu_topology (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_total_mem (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_topo_node (struct feat_fd *ff, int node)
 
static int write_numa_topology (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_pmu_mappings (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_group_desc (struct feat_fd *ff, struct perf_evlist *evlist)
 
int __weak get_cpuid (char *buffer __maybe_unused, size_t sz __maybe_unused)
 
static int write_cpuid (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_branch_stack (struct feat_fd *ff __maybe_unused, struct perf_evlist *evlist __maybe_unused)
 
static int write_auxtrace (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int cpu_cache_level__sort (const void *a, const void *b)
 
static bool cpu_cache_level__cmp (struct cpu_cache_level *a, struct cpu_cache_level *b)
 
static int cpu_cache_level__read (struct cpu_cache_level *cache, u32 cpu, u16 level)
 
static void cpu_cache_level__fprintf (FILE *out, struct cpu_cache_level *c)
 
static int build_caches (struct cpu_cache_level caches[], u32 size, u32 *cntp)
 
static int write_cache (struct feat_fd *ff, struct perf_evlist *evlist __maybe_unused)
 
static int write_stat (struct feat_fd *ff __maybe_unused, struct perf_evlist *evlist __maybe_unused)
 
static int write_sample_time (struct feat_fd *ff, struct perf_evlist *evlist)
 
static int memory_node__read (struct memory_node *n, unsigned long idx)
 
static int memory_node__sort (const void *a, const void *b)
 
static int build_mem_topology (struct memory_node *nodes, u64 size, u64 *cntp)
 
static int write_mem_topology (struct feat_fd *ff __maybe_unused, struct perf_evlist *evlist __maybe_unused)
 
static void print_hostname (struct feat_fd *ff, FILE *fp)
 
static void print_osrelease (struct feat_fd *ff, FILE *fp)
 
static void print_arch (struct feat_fd *ff, FILE *fp)
 
static void print_cpudesc (struct feat_fd *ff, FILE *fp)
 
static void print_nrcpus (struct feat_fd *ff, FILE *fp)
 
static void print_version (struct feat_fd *ff, FILE *fp)
 
static void print_cmdline (struct feat_fd *ff, FILE *fp)
 
static void print_cpu_topology (struct feat_fd *ff, FILE *fp)
 
static void free_event_desc (struct perf_evsel *events)
 
static struct perf_evselread_event_desc (struct feat_fd *ff)
 
static int __desc_attr__fprintf (FILE *fp, const char *name, const char *val, void *priv __maybe_unused)
 
static void print_event_desc (struct feat_fd *ff, FILE *fp)
 
static void print_total_mem (struct feat_fd *ff, FILE *fp)
 
static void print_numa_topology (struct feat_fd *ff, FILE *fp)
 
static void print_cpuid (struct feat_fd *ff, FILE *fp)
 
static void print_branch_stack (struct feat_fd *ff __maybe_unused, FILE *fp)
 
static void print_auxtrace (struct feat_fd *ff __maybe_unused, FILE *fp)
 
static void print_stat (struct feat_fd *ff __maybe_unused, FILE *fp)
 
static void print_cache (struct feat_fd *ff, FILE *fp __maybe_unused)
 
static void print_pmu_mappings (struct feat_fd *ff, FILE *fp)
 
static void print_group_desc (struct feat_fd *ff, FILE *fp)
 
static void print_sample_time (struct feat_fd *ff, FILE *fp)
 
static void memory_node__fprintf (struct memory_node *n, unsigned long long bsize, FILE *fp)
 
static void print_mem_topology (struct feat_fd *ff, FILE *fp)
 
static int __event_process_build_id (struct build_id_event *bev, char *filename, struct perf_session *session)
 
static int perf_header__read_build_ids_abi_quirk (struct perf_header *header, int input, u64 offset, u64 size)
 
static int perf_header__read_build_ids (struct perf_header *header, int input, u64 offset, u64 size)
 
 FEAT_PROCESS_STR_FUN (hostname, hostname)
 
 FEAT_PROCESS_STR_FUN (osrelease, os_release)
 
 FEAT_PROCESS_STR_FUN (version, version)
 
 FEAT_PROCESS_STR_FUN (arch, arch)
 
 FEAT_PROCESS_STR_FUN (cpudesc, cpu_desc)
 
 FEAT_PROCESS_STR_FUN (cpuid, cpuid)
 
static int process_tracing_data (struct feat_fd *ff, void *data)
 
static int process_build_id (struct feat_fd *ff, void *data __maybe_unused)
 
static int process_nrcpus (struct feat_fd *ff, void *data __maybe_unused)
 
static int process_total_mem (struct feat_fd *ff, void *data __maybe_unused)
 
static struct perf_evselperf_evlist__find_by_index (struct perf_evlist *evlist, int idx)
 
static void perf_evlist__set_event_name (struct perf_evlist *evlist, struct perf_evsel *event)
 
static int process_event_desc (struct feat_fd *ff, void *data __maybe_unused)
 
static int process_cmdline (struct feat_fd *ff, void *data __maybe_unused)
 
static int process_cpu_topology (struct feat_fd *ff, void *data __maybe_unused)
 
static int process_numa_topology (struct feat_fd *ff, void *data __maybe_unused)
 
static int process_pmu_mappings (struct feat_fd *ff, void *data __maybe_unused)
 
static int process_group_desc (struct feat_fd *ff, void *data __maybe_unused)
 
static int process_auxtrace (struct feat_fd *ff, void *data __maybe_unused)
 
static int process_cache (struct feat_fd *ff, void *data __maybe_unused)
 
static int process_sample_time (struct feat_fd *ff, void *data __maybe_unused)
 
static int process_mem_topology (struct feat_fd *ff, void *data __maybe_unused)
 
static int perf_file_section__fprintf_info (struct perf_file_section *section, struct perf_header *ph, int feat, int fd, void *data)
 
int perf_header__fprintf_info (struct perf_session *session, FILE *fp, bool full)
 
static int do_write_feat (struct feat_fd *ff, int type, struct perf_file_section **p, struct perf_evlist *evlist)
 
static int perf_header__adds_write (struct perf_header *header, struct perf_evlist *evlist, int fd)
 
int perf_header__write_pipe (int fd)
 
int perf_session__write_header (struct perf_session *session, struct perf_evlist *evlist, int fd, bool at_exit)
 
static int perf_header__getbuffer64 (struct perf_header *header, int fd, void *buf, size_t size)
 
int perf_header__process_sections (struct perf_header *header, int fd, void *data, int(*process)(struct perf_file_section *section, struct perf_header *ph, int feat, int fd, void *data))
 
static int try_all_file_abis (uint64_t hdr_sz, struct perf_header *ph)
 
static int try_all_pipe_abis (uint64_t hdr_sz, struct perf_header *ph)
 
bool is_perf_magic (u64 magic)
 
static int check_magic_endian (u64 magic, uint64_t hdr_sz, bool is_pipe, struct perf_header *ph)
 
int perf_file_header__read (struct perf_file_header *header, struct perf_header *ph, int fd)
 
static int perf_file_section__process (struct perf_file_section *section, struct perf_header *ph, int feat, int fd, void *data)
 
static int perf_file_header__read_pipe (struct perf_pipe_file_header *header, struct perf_header *ph, int fd, bool repipe)
 
static int perf_header__read_pipe (struct perf_session *session)
 
static int read_attr (int fd, struct perf_header *ph, struct perf_file_attr *f_attr)
 
static int perf_evsel__prepare_tracepoint_event (struct perf_evsel *evsel, struct pevent *pevent)
 
static int perf_evlist__prepare_tracepoint_events (struct perf_evlist *evlist, struct pevent *pevent)
 
int perf_session__read_header (struct perf_session *session)
 
int perf_event__synthesize_attr (struct perf_tool *tool, struct perf_event_attr *attr, u32 ids, u64 *id, perf_event__handler_t process)
 
int perf_event__synthesize_features (struct perf_tool *tool, struct perf_session *session, struct perf_evlist *evlist, perf_event__handler_t process)
 
int perf_event__process_feature (struct perf_tool *tool, union perf_event *event, struct perf_session *session __maybe_unused)
 
static struct event_update_eventevent_update_event__new (size_t size, u64 type, u64 id)
 
int perf_event__synthesize_event_update_unit (struct perf_tool *tool, struct perf_evsel *evsel, perf_event__handler_t process)
 
int perf_event__synthesize_event_update_scale (struct perf_tool *tool, struct perf_evsel *evsel, perf_event__handler_t process)
 
int perf_event__synthesize_event_update_name (struct perf_tool *tool, struct perf_evsel *evsel, perf_event__handler_t process)
 
int perf_event__synthesize_event_update_cpus (struct perf_tool *tool, struct perf_evsel *evsel, perf_event__handler_t process)
 
size_t perf_event__fprintf_event_update (union perf_event *event, FILE *fp)
 
int perf_event__synthesize_attrs (struct perf_tool *tool, struct perf_session *session, perf_event__handler_t process)
 
static bool has_unit (struct perf_evsel *counter)
 
static bool has_scale (struct perf_evsel *counter)
 
int perf_event__synthesize_extra_attr (struct perf_tool *tool, struct perf_evlist *evsel_list, perf_event__handler_t process, bool is_pipe)
 
int perf_event__process_attr (struct perf_tool *tool __maybe_unused, union perf_event *event, struct perf_evlist **pevlist)
 
int perf_event__process_event_update (struct perf_tool *tool __maybe_unused, union perf_event *event, struct perf_evlist **pevlist)
 
int perf_event__synthesize_tracing_data (struct perf_tool *tool, int fd, struct perf_evlist *evlist, perf_event__handler_t process)
 
int perf_event__process_tracing_data (struct perf_tool *tool __maybe_unused, union perf_event *event, struct perf_session *session)
 
int perf_event__synthesize_build_id (struct perf_tool *tool, struct dso *pos, u16 misc, perf_event__handler_t process, struct machine *machine)
 
int perf_event__process_build_id (struct perf_tool *tool __maybe_unused, union perf_event *event, struct perf_session *session)
 

Variables

static const char * __perf_magic1 = "PERFFILE"
 
static const u64 __perf_magic2 = 0x32454c4946524550ULL
 
static const u64 __perf_magic2_sw = 0x50455246494c4532ULL
 
const char perf_version_string [] = PERF_VERSION
 
static const struct feature_ops feat_ops [HEADER_LAST_FEATURE]
 
static const int attr_file_abi_sizes []
 
static const size_t attr_pipe_abi_sizes []
 

Macro Definition Documentation

◆ _R [1/3]

#define _R (   v)
Value:
if (do_read_u32(ff, &c.v))\
goto out_free_caches; \
static int do_read_u32(struct feat_fd *ff, u32 *addr)
Definition: header.c:216

◆ _R [2/3]

#define _R (   v)
Value:
c.v = do_read_string(ff); \
if (!c.v) \
goto out_free_caches;
static char * do_read_string(struct feat_fd *ff)
Definition: header.c:242

◆ _R [3/3]

#define _R (   v)
Value:
if (do_read_u64(ff, &n.v)) \
goto out; \
static int do_read_u64(struct feat_fd *ff, u64 *addr)
Definition: header.c:229

◆ _W [1/3]

#define _W (   v)
Value:
ret = do_write(ff, &c->v, sizeof(u32)); \
if (ret < 0) \
goto out;
int do_write(struct feat_fd *ff, const void *buf, size_t size)
Definition: header.c:129

◆ _W [2/3]

#define _W (   v)
Value:
ret = do_write_string(ff, (const char *) c->v); \
if (ret < 0) \
goto out;
static int do_write_string(struct feat_fd *ff, const char *str)
Definition: header.c:172

◆ _W [3/3]

#define _W (   v)
Value:
ret = do_write(ff, &n->v, sizeof(n->v)); \
if (ret < 0) \
goto out;
int do_write(struct feat_fd *ff, const void *buf, size_t size)
Definition: header.c:129

◆ CORE_SIB_FMT

#define CORE_SIB_FMT   "/sys/devices/system/cpu/cpu%d/topology/core_siblings_list"

Definition at line 562 of file header.c.

◆ FEAT_OPN

#define FEAT_OPN (   n,
  func,
  __full_only 
)
Value:
[HEADER_##n] = { \
.name = __stringify(n), \
.write = write_##func, \
.print = print_##func, \
.full_only = __full_only, \
.process = process_##func \
}
int(* func)(void)
Definition: clang.c:9

Definition at line 2548 of file header.c.

◆ FEAT_OPR

#define FEAT_OPR (   n,
  func,
  __full_only 
)
Value:
[HEADER_##n] = { \
.name = __stringify(n), \
.write = write_##func, \
.print = print_##func, \
.full_only = __full_only, \
.process = process_##func, \
.synthesize = true \
}
int(* func)(void)
Definition: clang.c:9

Definition at line 2538 of file header.c.

◆ FEAT_PROCESS_STR_FUN

#define FEAT_PROCESS_STR_FUN (   __feat,
  __feat_env 
)
Value:
static int process_##__feat(struct feat_fd *ff, void *data __maybe_unused) \
{\
ff->ph->env.__feat_env = do_read_string(ff); \
return ff->ph->env.__feat_env ? 0 : -ENOMEM; \
}
dictionary data
Definition: stat-cpi.py:4
Definition: header.c:67
static char * do_read_string(struct feat_fd *ff)
Definition: header.c:242

Definition at line 1971 of file header.c.

◆ for_each_memory

#define for_each_memory (   mem,
  dir 
)
Value:
while ((ent = readdir(dir))) \
if (strcmp(ent->d_name, ".") && \
strcmp(ent->d_name, "..") && \
sscanf(ent->d_name, "memory%u", &mem) == 1)
static char * dir
Definition: attr.c:39
#define mem

◆ MAX_CACHES

#define MAX_CACHES   2000

Definition at line 1178 of file header.c.

◆ MAX_MEMORY_NODES

#define MAX_MEMORY_NODES   2000

Definition at line 1356 of file header.c.

◆ PERF_MAGIC

#define PERF_MAGIC   __perf_magic2

Definition at line 58 of file header.c.

◆ PERF_PIPE_HDR_VER0

#define PERF_PIPE_HDR_VER0   16

Definition at line 2934 of file header.c.

◆ print_build_id

#define print_build_id   NULL

Definition at line 2559 of file header.c.

◆ print_tracing_data

#define print_tracing_data   NULL

Definition at line 2558 of file header.c.

◆ process_branch_stack

#define process_branch_stack   NULL

Definition at line 2561 of file header.c.

◆ process_stat

#define process_stat   NULL

Definition at line 2562 of file header.c.

◆ string_size

#define string_size (   str)    (PERF_ALIGN((strlen(str) + 1), NAME_ALIGN) + sizeof(u32))

Definition at line 168 of file header.c.

◆ THRD_SIB_FMT

#define THRD_SIB_FMT   "/sys/devices/system/cpu/cpu%d/topology/thread_siblings_list"

Definition at line 564 of file header.c.

Function Documentation

◆ __desc_attr__fprintf()

static int __desc_attr__fprintf ( FILE *  fp,
const char *  name,
const char *  val,
void *priv  __maybe_unused 
)
static

Definition at line 1607 of file header.c.

◆ __do_read()

static int __do_read ( struct feat_fd ff,
void *  addr,
ssize_t  size 
)
static

Definition at line 209 of file header.c.

Here is the call graph for this function:

◆ __do_read_buf()

static int __do_read_buf ( struct feat_fd ff,
void *  addr,
ssize_t  size 
)
static

Definition at line 197 of file header.c.

Here is the call graph for this function:

◆ __do_read_fd()

static int __do_read_fd ( struct feat_fd ff,
void *  addr,
ssize_t  size 
)
static

Definition at line 188 of file header.c.

Here is the call graph for this function:

◆ __do_write_buf()

static int __do_write_buf ( struct feat_fd ff,
const void *  buf,
size_t  size 
)
static

Definition at line 100 of file header.c.

Here is the call graph for this function:

◆ __do_write_fd()

static int __do_write_fd ( struct feat_fd ff,
const void *  buf,
size_t  size 
)
static

Definition at line 91 of file header.c.

Here is the call graph for this function:

◆ __event_process_build_id()

static int __event_process_build_id ( struct build_id_event bev,
char *  filename,
struct perf_session session 
)
static

Definition at line 1815 of file header.c.

Here is the call graph for this function:

◆ __write_cpudesc()

static int __write_cpudesc ( struct feat_fd ff,
const char *  cpuinfo_proc 
)
static

Definition at line 377 of file header.c.

Here is the call graph for this function:

◆ build_caches()

static int build_caches ( struct cpu_cache_level  caches[],
u32  size,
u32 *  cntp 
)
static

Definition at line 1134 of file header.c.

Here is the call graph for this function:

◆ build_cpu_topo()

static int build_cpu_topo ( struct cpu_topo tp,
int  cpu 
)
static

Definition at line 575 of file header.c.

Here is the call graph for this function:

◆ build_cpu_topology()

static struct cpu_topo* build_cpu_topology ( void  )
static

Definition at line 657 of file header.c.

Here is the call graph for this function:

◆ build_mem_topology()

static int build_mem_topology ( struct memory_node nodes,
u64  size,
u64 *  cntp 
)
static

Definition at line 1310 of file header.c.

Here is the call graph for this function:

◆ check_magic_endian()

static int check_magic_endian ( u64  magic,
uint64_t  hdr_sz,
bool  is_pipe,
struct perf_header ph 
)
static

Definition at line 2977 of file header.c.

Here is the call graph for this function:

◆ cpu_cache_level__cmp()

static bool cpu_cache_level__cmp ( struct cpu_cache_level a,
struct cpu_cache_level b 
)
static

Definition at line 1047 of file header.c.

◆ cpu_cache_level__fprintf()

static void cpu_cache_level__fprintf ( FILE *  out,
struct cpu_cache_level c 
)
static

Definition at line 1129 of file header.c.

◆ cpu_cache_level__read()

static int cpu_cache_level__read ( struct cpu_cache_level cache,
u32  cpu,
u16  level 
)
static

Definition at line 1073 of file header.c.

Here is the call graph for this function:

◆ cpu_cache_level__sort()

static int cpu_cache_level__sort ( const void *  a,
const void *  b 
)
static

Definition at line 1039 of file header.c.

◆ do_read_bitmap()

static int do_read_bitmap ( struct feat_fd ff,
unsigned long **  pset,
u64 *  psize 
)
static

Definition at line 268 of file header.c.

Here is the call graph for this function:

◆ do_read_string()

static char* do_read_string ( struct feat_fd ff)
static

Definition at line 242 of file header.c.

Here is the call graph for this function:

◆ do_read_u32()

static int do_read_u32 ( struct feat_fd ff,
u32 *  addr 
)
static

Definition at line 216 of file header.c.

Here is the call graph for this function:

◆ do_read_u64()

static int do_read_u64 ( struct feat_fd ff,
u64 *  addr 
)
static

Definition at line 229 of file header.c.

Here is the call graph for this function:

◆ do_write()

int do_write ( struct feat_fd ff,
const void *  buf,
size_t  size 
)

Definition at line 129 of file header.c.

Here is the call graph for this function:

◆ do_write_bitmap()

static int do_write_bitmap ( struct feat_fd ff,
unsigned long *  set,
u64  size 
)
static

Definition at line 137 of file header.c.

Here is the call graph for this function:

◆ do_write_feat()

static int do_write_feat ( struct feat_fd ff,
int  type,
struct perf_file_section **  p,
struct perf_evlist evlist 
)
static

Definition at line 2666 of file header.c.

Here is the call graph for this function:

◆ do_write_string()

static int do_write_string ( struct feat_fd ff,
const char *  str 
)
static

Definition at line 172 of file header.c.

Here is the call graph for this function:

◆ event_update_event__new()

static struct event_update_event* event_update_event__new ( size_t  size,
u64  type,
u64  id 
)
static

Definition at line 3489 of file header.c.

Here is the call graph for this function:

◆ FEAT_PROCESS_STR_FUN() [1/6]

FEAT_PROCESS_STR_FUN ( hostname  ,
hostname   
)

◆ FEAT_PROCESS_STR_FUN() [2/6]

FEAT_PROCESS_STR_FUN ( osrelease  ,
os_release   
)

◆ FEAT_PROCESS_STR_FUN() [3/6]

FEAT_PROCESS_STR_FUN ( version  ,
version   
)

◆ FEAT_PROCESS_STR_FUN() [4/6]

FEAT_PROCESS_STR_FUN ( arch  ,
arch   
)

◆ FEAT_PROCESS_STR_FUN() [5/6]

FEAT_PROCESS_STR_FUN ( cpudesc  ,
cpu_desc   
)

◆ FEAT_PROCESS_STR_FUN() [6/6]

FEAT_PROCESS_STR_FUN ( cpuid  ,
cpuid   
)

◆ free_cpu_topo()

static void free_cpu_topo ( struct cpu_topo tp)
static

Definition at line 641 of file header.c.

Here is the call graph for this function:

◆ free_event_desc()

static void free_event_desc ( struct perf_evsel events)
static

Definition at line 1514 of file header.c.

Here is the call graph for this function:

◆ get_cpuid()

int __weak get_cpuid ( char *buffer  __maybe_unused,
size_t sz  __maybe_unused 
)

Definition at line 996 of file header.c.

◆ has_scale()

static bool has_scale ( struct perf_evsel counter)
static

Definition at line 3658 of file header.c.

◆ has_unit()

static bool has_unit ( struct perf_evsel counter)
static

Definition at line 3653 of file header.c.

◆ is_perf_magic()

bool is_perf_magic ( u64  magic)

Definition at line 2967 of file header.c.

◆ memory_node__fprintf()

static void memory_node__fprintf ( struct memory_node n,
unsigned long long  bsize,
FILE *  fp 
)
static

Definition at line 1786 of file header.c.

Here is the call graph for this function:

◆ memory_node__read()

static int memory_node__read ( struct memory_node n,
unsigned long  idx 
)
static

Definition at line 1253 of file header.c.

◆ memory_node__sort()

static int memory_node__sort ( const void *  a,
const void *  b 
)
static

Definition at line 1302 of file header.c.

◆ perf_event__fprintf_event_update()

size_t perf_event__fprintf_event_update ( union perf_event event,
FILE *  fp 
)

Definition at line 3595 of file header.c.

Here is the call graph for this function:

◆ perf_event__process_attr()

int perf_event__process_attr ( struct perf_tool *tool  __maybe_unused,
union perf_event event,
struct perf_evlist **  pevlist 
)

Definition at line 3721 of file header.c.

Here is the call graph for this function:

◆ perf_event__process_build_id()

int perf_event__process_build_id ( struct perf_tool *tool  __maybe_unused,
union perf_event event,
struct perf_session session 
)

Definition at line 3922 of file header.c.

Here is the call graph for this function:

◆ perf_event__process_event_update()

int perf_event__process_event_update ( struct perf_tool *tool  __maybe_unused,
union perf_event event,
struct perf_evlist **  pevlist 
)

Definition at line 3759 of file header.c.

Here is the call graph for this function:

◆ perf_event__process_feature()

int perf_event__process_feature ( struct perf_tool tool,
union perf_event event,
struct perf_session *session  __maybe_unused 
)

Definition at line 3446 of file header.c.

◆ perf_event__process_tracing_data()

int perf_event__process_tracing_data ( struct perf_tool *tool  __maybe_unused,
union perf_event event,
struct perf_session session 
)

Definition at line 3854 of file header.c.

Here is the call graph for this function:

◆ perf_event__synthesize_attr()

int perf_event__synthesize_attr ( struct perf_tool tool,
struct perf_event_attr *  attr,
u32  ids,
u64 *  id,
perf_event__handler_t  process 
)

Definition at line 3348 of file header.c.

Here is the call graph for this function:

◆ perf_event__synthesize_attrs()

int perf_event__synthesize_attrs ( struct perf_tool tool,
struct perf_session session,
perf_event__handler_t  process 
)

Definition at line 3634 of file header.c.

Here is the call graph for this function:

◆ perf_event__synthesize_build_id()

int perf_event__synthesize_build_id ( struct perf_tool tool,
struct dso pos,
u16  misc,
perf_event__handler_t  process,
struct machine machine 
)

Definition at line 3894 of file header.c.

Here is the call graph for this function:

◆ perf_event__synthesize_event_update_cpus()

int perf_event__synthesize_event_update_cpus ( struct perf_tool tool,
struct perf_evsel evsel,
perf_event__handler_t  process 
)

Definition at line 3565 of file header.c.

Here is the call graph for this function:

◆ perf_event__synthesize_event_update_name()

int perf_event__synthesize_event_update_name ( struct perf_tool tool,
struct perf_evsel evsel,
perf_event__handler_t  process 
)

Definition at line 3546 of file header.c.

Here is the call graph for this function:

◆ perf_event__synthesize_event_update_scale()

int perf_event__synthesize_event_update_scale ( struct perf_tool tool,
struct perf_evsel evsel,
perf_event__handler_t  process 
)

Definition at line 3526 of file header.c.

Here is the call graph for this function:

◆ perf_event__synthesize_event_update_unit()

int perf_event__synthesize_event_update_unit ( struct perf_tool tool,
struct perf_evsel evsel,
perf_event__handler_t  process 
)

Definition at line 3507 of file header.c.

Here is the call graph for this function:

◆ perf_event__synthesize_extra_attr()

int perf_event__synthesize_extra_attr ( struct perf_tool tool,
struct perf_evlist evsel_list,
perf_event__handler_t  process,
bool  is_pipe 
)

Definition at line 3663 of file header.c.

Here is the call graph for this function:

◆ perf_event__synthesize_features()

int perf_event__synthesize_features ( struct perf_tool tool,
struct perf_session session,
struct perf_evlist evlist,
perf_event__handler_t  process 
)

Definition at line 3382 of file header.c.

Here is the call graph for this function:

◆ perf_event__synthesize_tracing_data()

int perf_event__synthesize_tracing_data ( struct perf_tool tool,
int  fd,
struct perf_evlist evlist,
perf_event__handler_t  process 
)

Definition at line 3805 of file header.c.

Here is the call graph for this function:

◆ perf_evlist__find_by_index()

static struct perf_evsel* perf_evlist__find_by_index ( struct perf_evlist evlist,
int  idx 
)
static

Definition at line 2029 of file header.c.

◆ perf_evlist__prepare_tracepoint_events()

static int perf_evlist__prepare_tracepoint_events ( struct perf_evlist evlist,
struct pevent *  pevent 
)
static

Definition at line 3233 of file header.c.

Here is the call graph for this function:

◆ perf_evlist__set_event_name()

static void perf_evlist__set_event_name ( struct perf_evlist evlist,
struct perf_evsel event 
)
static

Definition at line 2042 of file header.c.

Here is the call graph for this function:

◆ perf_evsel__prepare_tracepoint_event()

static int perf_evsel__prepare_tracepoint_event ( struct perf_evsel evsel,
struct pevent *  pevent 
)
static

Definition at line 3201 of file header.c.

◆ perf_file_header__read()

int perf_file_header__read ( struct perf_file_header header,
struct perf_header ph,
int  fd 
)

Definition at line 3012 of file header.c.

Here is the call graph for this function:

◆ perf_file_header__read_pipe()

static int perf_file_header__read_pipe ( struct perf_pipe_file_header header,
struct perf_header ph,
int  fd,
bool  repipe 
)
static

Definition at line 3112 of file header.c.

Here is the call graph for this function:

◆ perf_file_section__fprintf_info()

static int perf_file_section__fprintf_info ( struct perf_file_section section,
struct perf_header ph,
int  feat,
int  fd,
void *  data 
)
static

Definition at line 2595 of file header.c.

◆ perf_file_section__process()

static int perf_file_section__process ( struct perf_file_section section,
struct perf_header ph,
int  feat,
int  fd,
void *  data 
)
static

Definition at line 3084 of file header.c.

◆ perf_header__adds_write()

static int perf_header__adds_write ( struct perf_header header,
struct perf_evlist evlist,
int  fd 
)
static

Definition at line 2697 of file header.c.

Here is the call graph for this function:

◆ perf_header__clear_feat()

void perf_header__clear_feat ( struct perf_header header,
int  feat 
)

Definition at line 81 of file header.c.

◆ perf_header__fprintf_info()

int perf_header__fprintf_info ( struct perf_session session,
FILE *  fp,
bool  full 
)

Definition at line 2628 of file header.c.

Here is the call graph for this function:

◆ perf_header__getbuffer64()

static int perf_header__getbuffer64 ( struct perf_header header,
int  fd,
void *  buf,
size_t  size 
)
static

Definition at line 2844 of file header.c.

Here is the call graph for this function:

◆ perf_header__has_feat()

bool perf_header__has_feat ( const struct perf_header header,
int  feat 
)

Definition at line 86 of file header.c.

◆ perf_header__process_sections()

int perf_header__process_sections ( struct perf_header header,
int  fd,
void *  data,
int(*)(struct perf_file_section *section, struct perf_header *ph, int feat, int fd, void *data)  process 
)

Definition at line 2856 of file header.c.

Here is the call graph for this function:

◆ perf_header__read_build_ids()

static int perf_header__read_build_ids ( struct perf_header header,
int  input,
u64  offset,
u64  size 
)
static

Definition at line 1921 of file header.c.

Here is the call graph for this function:

◆ perf_header__read_build_ids_abi_quirk()

static int perf_header__read_build_ids_abi_quirk ( struct perf_header header,
int  input,
u64  offset,
u64  size 
)
static

Definition at line 1875 of file header.c.

Here is the call graph for this function:

◆ perf_header__read_pipe()

static int perf_header__read_pipe ( struct perf_session session)
static

Definition at line 3140 of file header.c.

Here is the call graph for this function:

◆ perf_header__set_feat()

void perf_header__set_feat ( struct perf_header header,
int  feat 
)

Definition at line 76 of file header.c.

◆ perf_header__write_pipe()

int perf_header__write_pipe ( int  fd)

Definition at line 2743 of file header.c.

Here is the call graph for this function:

◆ perf_session__read_header()

int perf_session__read_header ( struct perf_session session)

Definition at line 3247 of file header.c.

Here is the call graph for this function:

◆ perf_session__write_header()

int perf_session__write_header ( struct perf_session session,
struct perf_evlist evlist,
int  fd,
bool  at_exit 
)

Definition at line 2765 of file header.c.

Here is the call graph for this function:

◆ print_arch()

static void print_arch ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1433 of file header.c.

◆ print_auxtrace()

static void print_auxtrace ( struct feat_fd *ff  __maybe_unused,
FILE *  fp 
)
static

Definition at line 1683 of file header.c.

◆ print_branch_stack()

static void print_branch_stack ( struct feat_fd *ff  __maybe_unused,
FILE *  fp 
)
static

Definition at line 1678 of file header.c.

◆ print_cache()

static void print_cache ( struct feat_fd ff,
FILE *fp  __maybe_unused 
)
static

Definition at line 1693 of file header.c.

Here is the call graph for this function:

◆ print_cmdline()

static void print_cmdline ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1454 of file header.c.

Here is the call graph for this function:

◆ print_cpu_topology()

static void print_cpu_topology ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1483 of file header.c.

Here is the call graph for this function:

◆ print_cpudesc()

static void print_cpudesc ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1438 of file header.c.

◆ print_cpuid()

static void print_cpuid ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1673 of file header.c.

◆ print_event_desc()

static void print_event_desc ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1613 of file header.c.

Here is the call graph for this function:

◆ print_group_desc()

static void print_group_desc ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1740 of file header.c.

Here is the call graph for this function:

◆ print_hostname()

static void print_hostname ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1423 of file header.c.

◆ print_mem_topology()

static void print_mem_topology ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1799 of file header.c.

Here is the call graph for this function:

◆ print_nrcpus()

static void print_nrcpus ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1443 of file header.c.

◆ print_numa_topology()

static void print_numa_topology ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1656 of file header.c.

Here is the call graph for this function:

◆ print_osrelease()

static void print_osrelease ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1428 of file header.c.

◆ print_pmu_mappings()

static void print_pmu_mappings ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1704 of file header.c.

Here is the call graph for this function:

◆ print_sample_time()

static void print_sample_time ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1764 of file header.c.

Here is the call graph for this function:

◆ print_stat()

static void print_stat ( struct feat_fd *ff  __maybe_unused,
FILE *  fp 
)
static

Definition at line 1688 of file header.c.

◆ print_total_mem()

static void print_total_mem ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1651 of file header.c.

◆ print_version()

static void print_version ( struct feat_fd ff,
FILE *  fp 
)
static

Definition at line 1449 of file header.c.

◆ process_auxtrace()

static int process_auxtrace ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 2390 of file header.c.

Here is the call graph for this function:

◆ process_build_id()

static int process_build_id ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 1992 of file header.c.

Here is the call graph for this function:

◆ process_cache()

static int process_cache ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 2404 of file header.c.

Here is the call graph for this function:

◆ process_cmdline()

static int process_cmdline ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 2086 of file header.c.

Here is the call graph for this function:

◆ process_cpu_topology()

static int process_cpu_topology ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 2124 of file header.c.

Here is the call graph for this function:

◆ process_event_desc()

static int process_event_desc ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 2061 of file header.c.

Here is the call graph for this function:

◆ process_group_desc()

static int process_group_desc ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 2306 of file header.c.

Here is the call graph for this function:

◆ process_mem_topology()

static int process_mem_topology ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 2477 of file header.c.

Here is the call graph for this function:

◆ process_nrcpus()

static int process_nrcpus ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 1999 of file header.c.

Here is the call graph for this function:

◆ process_numa_topology()

static int process_numa_topology ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 2213 of file header.c.

Here is the call graph for this function:

◆ process_pmu_mappings()

static int process_pmu_mappings ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 2259 of file header.c.

Here is the call graph for this function:

◆ process_sample_time()

static int process_sample_time ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 2456 of file header.c.

Here is the call graph for this function:

◆ process_total_mem()

static int process_total_mem ( struct feat_fd ff,
void *data  __maybe_unused 
)
static

Definition at line 2016 of file header.c.

Here is the call graph for this function:

◆ process_tracing_data()

static int process_tracing_data ( struct feat_fd ff,
void *  data 
)
static

Definition at line 1985 of file header.c.

Here is the call graph for this function:

◆ read_attr()

static int read_attr ( int  fd,
struct perf_header ph,
struct perf_file_attr f_attr 
)
static

Definition at line 3155 of file header.c.

Here is the call graph for this function:

◆ read_event_desc()

static struct perf_evsel* read_event_desc ( struct feat_fd ff)
static

Definition at line 1529 of file header.c.

Here is the call graph for this function:

◆ try_all_file_abis()

static int try_all_file_abis ( uint64_t  hdr_sz,
struct perf_header ph 
)
static

Definition at line 2910 of file header.c.

◆ try_all_pipe_abis()

static int try_all_pipe_abis ( uint64_t  hdr_sz,
struct perf_header ph 
)
static

Definition at line 2948 of file header.c.

◆ write_arch()

static int write_arch ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 358 of file header.c.

Here is the call graph for this function:

◆ write_auxtrace()

static int write_auxtrace ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 1022 of file header.c.

Here is the call graph for this function:

◆ write_branch_stack()

static int write_branch_stack ( struct feat_fd *ff  __maybe_unused,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 1016 of file header.c.

◆ write_build_id()

static int write_build_id ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 308 of file header.c.

Here is the call graph for this function:

◆ write_cache()

static int write_cache ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 1180 of file header.c.

Here is the call graph for this function:

◆ write_cmdline()

static int write_cmdline ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 528 of file header.c.

Here is the call graph for this function:

◆ write_cpu_topology()

static int write_cpu_topology ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 708 of file header.c.

Here is the call graph for this function:

◆ write_cpudesc()

static int write_cpudesc ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 434 of file header.c.

Here is the call graph for this function:

◆ write_cpuid()

static int write_cpuid ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 1001 of file header.c.

Here is the call graph for this function:

◆ write_event_desc()

static int write_event_desc ( struct feat_fd ff,
struct perf_evlist evlist 
)
static

Definition at line 472 of file header.c.

Here is the call graph for this function:

◆ write_group_desc()

static int write_group_desc ( struct feat_fd ff,
struct perf_evlist evlist 
)
static

Definition at line 958 of file header.c.

Here is the call graph for this function:

◆ write_hostname()

static int write_hostname ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 332 of file header.c.

Here is the call graph for this function:

◆ write_mem_topology()

static int write_mem_topology ( struct feat_fd *ff  __maybe_unused,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 1373 of file header.c.

Here is the call graph for this function:

◆ write_nrcpus()

static int write_nrcpus ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 450 of file header.c.

Here is the call graph for this function:

◆ write_numa_topology()

static int write_numa_topology ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 848 of file header.c.

Here is the call graph for this function:

◆ write_osrelease()

static int write_osrelease ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 345 of file header.c.

Here is the call graph for this function:

◆ write_padded()

int write_padded ( struct feat_fd ff,
const void *  bf,
size_t  count,
size_t  count_aligned 
)

Definition at line 156 of file header.c.

Here is the call graph for this function:

◆ write_pmu_mappings()

static int write_pmu_mappings ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 909 of file header.c.

Here is the call graph for this function:

◆ write_sample_time()

static int write_sample_time ( struct feat_fd ff,
struct perf_evlist evlist 
)
static

Definition at line 1238 of file header.c.

Here is the call graph for this function:

◆ write_stat()

static int write_stat ( struct feat_fd *ff  __maybe_unused,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 1232 of file header.c.

◆ write_topo_node()

static int write_topo_node ( struct feat_fd ff,
int  node 
)
static

Definition at line 788 of file header.c.

Here is the call graph for this function:

◆ write_total_mem()

static int write_total_mem ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 759 of file header.c.

Here is the call graph for this function:

◆ write_tracing_data()

static int write_tracing_data ( struct feat_fd ff,
struct perf_evlist evlist 
)
static

Definition at line 299 of file header.c.

Here is the call graph for this function:

◆ write_version()

static int write_version ( struct feat_fd ff,
struct perf_evlist *evlist  __maybe_unused 
)
static

Definition at line 371 of file header.c.

Here is the call graph for this function:

Variable Documentation

◆ __perf_magic1

const char* __perf_magic1 = "PERFFILE"
static

Definition at line 54 of file header.c.

◆ __perf_magic2

const u64 __perf_magic2 = 0x32454c4946524550ULL
static

Definition at line 55 of file header.c.

◆ __perf_magic2_sw

const u64 __perf_magic2_sw = 0x50455246494c4532ULL
static

Definition at line 56 of file header.c.

◆ attr_file_abi_sizes

const int attr_file_abi_sizes[]
static
Initial value:
= {
[0] = PERF_ATTR_SIZE_VER0,
[1] = PERF_ATTR_SIZE_VER1,
[2] = PERF_ATTR_SIZE_VER2,
[3] = PERF_ATTR_SIZE_VER3,
[4] = PERF_ATTR_SIZE_VER4,
0,
}

Definition at line 2895 of file header.c.

◆ attr_pipe_abi_sizes

const size_t attr_pipe_abi_sizes[]
static
Initial value:
= {
0,
}
#define PERF_PIPE_HDR_VER0
Definition: header.c:2934

Definition at line 2936 of file header.c.

◆ feat_ops

const struct feature_ops feat_ops[HEADER_LAST_FEATURE]
static
Initial value:
= {
FEAT_OPN(TRACING_DATA, tracing_data, false),
FEAT_OPN(BUILD_ID, build_id, false),
FEAT_OPR(HOSTNAME, hostname, false),
FEAT_OPR(OSRELEASE, osrelease, false),
FEAT_OPR(ARCH, arch, false),
FEAT_OPR(NRCPUS, nrcpus, false),
FEAT_OPR(CPUDESC, cpudesc, false),
FEAT_OPR(CPUID, cpuid, false),
FEAT_OPR(TOTAL_MEM, total_mem, false),
FEAT_OPR(EVENT_DESC, event_desc, false),
FEAT_OPR(CMDLINE, cmdline, false),
FEAT_OPR(CPU_TOPOLOGY, cpu_topology, true),
FEAT_OPR(NUMA_TOPOLOGY, numa_topology, true),
FEAT_OPN(BRANCH_STACK, branch_stack, false),
FEAT_OPR(PMU_MAPPINGS, pmu_mappings, false),
FEAT_OPN(GROUP_DESC, group_desc, false),
FEAT_OPN(AUXTRACE, auxtrace, false),
FEAT_OPN(STAT, stat, false),
FEAT_OPN(CACHE, cache, true),
FEAT_OPR(SAMPLE_TIME, sample_time, false),
FEAT_OPR(MEM_TOPOLOGY, mem_topology, true),
}
#define FEAT_OPR(n, func, __full_only)
Definition: header.c:2538
#define VERSION
#define FEAT_OPN(n, func, __full_only)
Definition: header.c:2548
Definition: annotate.c:60
static void cpuid(unsigned int op, unsigned int *a, unsigned int *b, unsigned int *c, unsigned int *d)
Definition: header.c:11

Definition at line 2565 of file header.c.

◆ perf_version_string

const char perf_version_string[] = PERF_VERSION

Definition at line 60 of file header.c.