Lines Matching full:pmu

12 #include "pmu-events/pmu-events.h"
50 /** @name: The name of the PMU such as "cpu". */
53 * @alias_name: Optional alternate name for the PMU determined in
58 * @id: Optional PMU identifier read from
68 * @selectable: Can the PMU name be selected as if it were an event?
72 * @is_core: Is the PMU the core CPU PMU? Determined by the name being
75 * PMU on systems like Intel hybrid.
79 * @is_uncore: Is the PMU not within the CPU core? Determined by the
89 * @formats_checked: Only check PMU's formats are valid for
99 * PMU, read from
105 * initialize PMU specific parts of the perf_event_attr.
107 void (*perf_event_attr_init_default)(const struct perf_pmu *pmu,
124 * from json events in pmu-events.c.
128 * @events_table: The events table for json events in pmu-events.c.
135 /** @sys_json_aliases: Number of json event aliases loaded matching the PMU's identifier. */
140 * @cpu_aliases_added: Have all json events table entries for the PMU
156 /** @list: Element on pmus list in pmu.c. */
160 * @config_masks: Derived from the PMU's format data, bits that are
166 * @missing_features: Features to inhibit when events on this PMU are
195 const struct perf_pmu *pmu;
213 void pmu_add_sys_aliases(struct perf_pmu *pmu);
214 int perf_pmu__config(struct perf_pmu *pmu, struct perf_event_attr *attr,
218 int perf_pmu__config_terms(const struct perf_pmu *pmu,
223 __u64 perf_pmu__format_bits(struct perf_pmu *pmu, const char *name);
224 int perf_pmu__format_type(struct perf_pmu *pmu, const char *name);
225 int perf_pmu__check_alias(struct perf_pmu *pmu, struct parse_events_terms *head_terms,
228 int perf_pmu__find_event(struct perf_pmu *pmu, const char *event, void *state, pmu_event_callback cb);
231 bool perf_pmu__has_format(const struct perf_pmu *pmu, const char *name);
232 int perf_pmu__for_each_format(struct perf_pmu *pmu, void *state, pmu_format_callback cb);
235 bool perf_pmu__supports_legacy_cache(const struct perf_pmu *pmu);
236 bool perf_pmu__auto_merge_stats(const struct perf_pmu *pmu);
237 bool perf_pmu__have_event(struct perf_pmu *pmu, const char *name);
238 size_t perf_pmu__num_events(struct perf_pmu *pmu);
239 int perf_pmu__for_each_event(struct perf_pmu *pmu, bool skip_duplicate_pmus,
241 bool pmu__name_match(const struct perf_pmu *pmu, const char *pmu_name);
244 * perf_pmu_is_software - is the PMU a software PMU as in it uses the
247 bool perf_pmu__is_software(const struct perf_pmu *pmu);
249 FILE *perf_pmu__open_file(const struct perf_pmu *pmu, const char *name);
250 FILE *perf_pmu__open_file_at(const struct perf_pmu *pmu, int dirfd, const char *name);
252 int perf_pmu__scan_file(const struct perf_pmu *pmu, const char *name, const char *fmt, ...)
254 int perf_pmu__scan_file_at(const struct perf_pmu *pmu, int dirfd, const char *name,
257 bool perf_pmu__file_exists(const struct perf_pmu *pmu, const char *name);
261 void perf_pmu__arch_init(struct perf_pmu *pmu);
262 void pmu_add_cpu_aliases_table(struct perf_pmu *pmu,
269 int perf_pmu__caps_parse(struct perf_pmu *pmu);
271 void perf_pmu__warn_invalid_config(struct perf_pmu *pmu, __u64 config,
274 void perf_pmu__warn_invalid_formats(struct perf_pmu *pmu);
276 bool perf_pmu__match(const struct perf_pmu *pmu, const char *tok);
287 void perf_pmu__delete(struct perf_pmu *pmu);
290 const char *perf_pmu__name_from_config(struct perf_pmu *pmu, u64 config);
291 bool perf_pmu__is_fake(const struct perf_pmu *pmu);