Lines Matching refs:format
91 * struct perf_pmu_format - Values from a format file read from
92 * <sysfs>/devices/cpu/format/ held in struct perf_pmu.
94 * For example, the contents of <sysfs>/devices/cpu/format/event may be
101 /** @bits: Which config bits are set by this format value. */
106 * @value : Which config value the format relates to. Supported values
119 struct perf_pmu_format *format;
121 format = zalloc(sizeof(*format));
122 if (!format)
125 format->name = strdup(name);
126 if (!format->name) {
127 free(format);
130 list_add_tail(&format->list, list);
131 return format;
134 /* Called at the end of parsing a format. */
137 struct perf_pmu_format *format = vformat;
139 format->value = config;
140 memcpy(format->bits, bits, sizeof(format->bits));
143 static void __perf_pmu_format__load(struct perf_pmu_format *format, FILE *file)
153 ret = perf_pmu_parse(format, scanner);
155 format->loaded = true;
158 static void perf_pmu_format__load(struct perf_pmu *pmu, struct perf_pmu_format *format)
163 if (format->loaded)
166 if (!perf_pmu__pathname_scnprintf(path, sizeof(path), pmu->name, "format"))
169 assert(strlen(path) + strlen(format->name) + 2 < sizeof(path));
171 strcat(path, format->name);
176 __perf_pmu_format__load(format, file);
195 struct perf_pmu_format *format;
201 format = perf_pmu__new_format(&pmu->format, name);
202 if (!format) {
220 __perf_pmu_format__load(format, file);
230 * Reading/parsing the default pmu format definition, which should be
232 * /sys/bus/event_source/devices/<dev>/format as sysfs group attributes.
238 fd = perf_pmu__pathname_fd(dirfd, name, "format", O_DIRECTORY);
986 INIT_LIST_HEAD(&pmu->format);
992 * type value and format definitions. Load both right
1044 INIT_LIST_HEAD(&pmu->format);
1053 struct perf_pmu_format *format;
1060 /* fake pmu doesn't have format list */
1064 list_for_each_entry(format, &pmu->format, list) {
1065 perf_pmu_format__load(pmu, format);
1066 if (format->value >= PERF_PMU_FORMAT_VALUE_CONFIG_END) {
1067 pr_warning("WARNING: '%s' format '%s' requires 'perf_event_attr::config%d'"
1069 pmu->name, format->name, format->value);
1114 struct perf_pmu_format *format;
1116 list_for_each_entry(format, formats, list)
1117 if (!strcmp(format->name, name))
1118 return format;
1125 struct perf_pmu_format *format = pmu_find_format(&pmu->format, name);
1129 if (!format)
1132 for_each_set_bit(fbit, format->bits, PERF_PMU_FORMAT_BITS)
1140 struct perf_pmu_format *format = pmu_find_format(&pmu->format, name);
1142 if (!format)
1145 perf_pmu_format__load(pmu, format);
1146 return format->value;
1150 * Sets value based on the format definition (format parameter)
1153 static void pmu_format_value(unsigned long *format, __u64 value, __u64 *v,
1160 if (!test_bit(fbit, format))
1170 static __u64 pmu_format_max_value(const unsigned long *format)
1174 w = bitmap_weight(format, PERF_PMU_FORMAT_BITS);
1185 * - We have a term like "base-or-format-term=param-term",
1212 struct perf_pmu_format *format;
1221 list_for_each_entry(format, formats, list)
1222 if (strbuf_addf(&buf, i++ ? ",%s" : "%s", format->name) < 0)
1242 struct perf_pmu_format *format;
1260 format = pmu_find_format(&pmu->format, term->config);
1261 if (!format) {
1262 char *pmu_term = pmu_formats_string(&pmu->format);
1282 perf_pmu_format__load(pmu, format);
1283 switch (format->value) {
1306 bitmap_weight(format->bits, PERF_PMU_FORMAT_BITS) > 1) {
1335 max_val = pmu_format_max_value(format->bits);
1342 "value too big for format, maximum is %llu",
1344 ? strdup("value too big for format")
1355 pmu_format_value(format->bits, val, vp, zero);
1377 * 2) pmu format definitions - specified by pmu parameter
1400 if (pmu_find_format(&pmu->format, term->config))
1570 struct perf_pmu_format *format;
1572 list_for_each_entry(format, &pmu->format, list) {
1573 if (!strcmp(format->name, name))
1931 struct perf_pmu_format *format;
1936 list_for_each_entry(format, &pmu->format, list) {
1940 if (format->value >= PERF_PMU_FORMAT_VALUE_CONFIG_END)
1944 mask = &pmu->config_masks[format->value];
1946 for_each_set_bit(i, format->bits, PERF_PMU_FORMAT_BITS)
1962 * Kernel doesn't export any valid format bits.
2020 * sysfs. For example if pmu_name = "cs_etm" and 'filename' = "format"
2022 * "/sys/bus/event_source/devices/cs_etm/format"
2049 perf_pmu__del_formats(&pmu->format);