Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
header.h
Go to the documentation of this file.
1 #ifndef __PERF_HEADER_H
2 #define __PERF_HEADER_H
3 
4 #include <linux/perf_event.h>
5 #include <sys/types.h>
6 #include <stdbool.h>
7 #include "types.h"
8 #include "event.h"
9 
10 #include <linux/bitmap.h>
11 
12 enum {
13  HEADER_RESERVED = 0, /* always cleared */
17 
34 };
35 
39 };
40 
48  DECLARE_BITMAP(adds_features, HEADER_FEAT_BITS);
49 };
50 
54 };
55 
56 struct perf_header;
57 
59  struct perf_header *ph, int fd);
60 
62  char *hostname;
63  char *os_release;
64  char *version;
65  char *arch;
68  char *cpu_desc;
69  char *cpuid;
70  unsigned long long total_mem;
71 
73  char *cmdline;
79  char *numa_nodes;
81  char *pmu_mappings;
82 };
83 
84 struct perf_header {
85  int frozen;
86  bool needs_swap;
92  DECLARE_BITMAP(adds_features, HEADER_FEAT_BITS);
94 };
95 
96 struct perf_evlist;
97 struct perf_session;
98 
99 int perf_session__read_header(struct perf_session *session, int fd);
100 int perf_session__write_header(struct perf_session *session,
101  struct perf_evlist *evlist,
102  int fd, bool at_exit);
103 int perf_header__write_pipe(int fd);
104 
105 int perf_header__push_event(u64 id, const char *name);
106 char *perf_header__find_event(u64 id);
107 
108 void perf_header__set_feat(struct perf_header *header, int feat);
110 bool perf_header__has_feat(const struct perf_header *header, int feat);
111 
112 int perf_header__set_cmdline(int argc, const char **argv);
113 
115  void *data,
116  int (*process)(struct perf_file_section *section,
117  struct perf_header *ph,
118  int feat, int fd, void *data));
119 
120 int perf_header__fprintf_info(struct perf_session *s, FILE *fp, bool full);
121 
122 int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
123  const char *name, bool is_kallsyms, bool is_vdso);
124 int build_id_cache__remove_s(const char *sbuild_id, const char *debugdir);
125 
126 int perf_event__synthesize_attr(struct perf_tool *tool,
127  struct perf_event_attr *attr, u32 ids, u64 *id,
128  perf_event__handler_t process);
129 int perf_event__synthesize_attrs(struct perf_tool *tool,
130  struct perf_session *session,
131  perf_event__handler_t process);
132 int perf_event__process_attr(union perf_event *event, struct perf_evlist **pevlist);
133 
135  u64 event_id, char *name,
136  perf_event__handler_t process,
137  struct machine *machine);
139  perf_event__handler_t process,
140  struct machine *machine);
142  union perf_event *event);
143 
145  int fd, struct perf_evlist *evlist,
146  perf_event__handler_t process);
148  struct perf_session *session);
149 
151  struct dso *pos, u16 misc,
152  perf_event__handler_t process,
153  struct machine *machine);
154 int perf_event__process_build_id(struct perf_tool *tool,
155  union perf_event *event,
156  struct perf_session *session);
157 
158 /*
159  * arch specific callback
160  */
161 int get_cpuid(char *buffer, size_t sz);
162 
163 #endif /* __PERF_HEADER_H */