Lines Matching refs:counter

198 def output_rpn_equation_code(set, counter, equation):
220 raise Exception("Failed to resolve variable " + operand + " in equation " + equation + " for " + set.name + " :: " + counter.get('name'));
230 counter.get('name') + ".\nThis is probably due to some unhandled RPN function, in the equation \"" +
242 def splice_rpn_expression(set, counter, expression):
258 raise Exception("Failed to resolve variable " + operand + " in expression " + expression + " for " + set.name + " :: " + counter.get('name'));
267 counter.get('name') + ".\nThis is probably due to some unhandled RPN operation, in the expression \"" +
272 def output_counter_read(gen, set, counter):
274 c("/* {0} :: {1} */".format(set.name, counter.get('name')))
276 if counter.read_hash in hashed_funcs:
277 c("#define %s \\" % counter.read_sym)
279 c("%s" % hashed_funcs[counter.read_hash])
282 ret_type = counter.get('data_type')
286 read_eq = counter.get('equation')
289 c(counter.read_sym + "(UNUSED struct intel_perf_config *perf,\n")
290 c_indent(len(counter.read_sym) + 1)
293 c_outdent(len(counter.read_sym) + 1)
297 output_rpn_equation_code(set, counter, read_eq)
301 hashed_funcs[counter.read_hash] = counter.read_sym
304 def output_counter_max(gen, set, counter):
305 max_eq = counter.get('max_equation')
307 if not counter.has_max_func():
311 c("/* {0} :: {1} */".format(set.name, counter.get('name')))
313 if counter.max_hash in hashed_funcs:
314 c("#define %s \\" % counter.max_sym())
316 c("%s" % hashed_funcs[counter.max_hash])
319 ret_type = counter.get('data_type')
324 c(counter.max_sym() + "(struct intel_perf_config *perf)\n")
327 output_rpn_equation_code(set, counter, max_eq)
331 hashed_funcs[counter.max_hash] = counter.max_sym()
398 def output_counter_report(set, counter, current_offset):
399 data_type = counter.get('data_type')
406 semantic_type = counter.get('semantic_type')
414 availability = counter.get('availability')
416 output_availability(set, availability, counter.get('name'))
419 c("counter = &query->counters[query->n_counters++];\n")
420 c("counter->oa_counter_read_" + data_type + " = " + set.read_funcs[counter.get('symbol_name')] + ";\n")
421 c("counter->name = \"" + counter.get('name') + "\";\n")
422 c("counter->desc = \"" + counter.get('description') + desc_units(counter.get('units')) + "\";\n")
423 c("counter->symbol_name = \"" + counter.get('symbol_name') + "\";\n")
424 c("counter->category = \"" + counter.get('mdapi_group') + "\";\n")
425 c("counter->type = INTEL_PERF_COUNTER_TYPE_" + semantic_type_uc + ";\n")
426 c("counter->data_type = INTEL_PERF_COUNTER_DATA_TYPE_" + data_type_uc + ";\n")
427 c("counter->units = INTEL_PERF_COUNTER_UNITS_" + output_units(counter.get('units')) + ";\n")
428 c("counter->raw_max = " + set.max_values[counter.get('symbol_name')] + ";\n")
431 c("counter->offset = " + str(current_offset) + ";\n")
486 # Wraps a <counter> element from the oa-*.xml files.
501 # Compute the hash of a counter's equation by expanding (including all the
572 xml_counters = self.xml.findall("counter")
575 counter = Counter(self, xml_counter)
576 self.counters.append(counter)
577 self.counter_vars["$" + counter.get('symbol_name')] = counter
578 self.read_funcs[counter.get('symbol_name')] = counter.read_sym
579 self.max_values[counter.get('symbol_name')] = counter.max_value()
581 for counter in self.counters:
582 counter.compute_hashes()
700 for counter in set.counters:
701 output_counter_read(gen, set, counter)
702 output_counter_max(gen, set, counter)
754 c("struct intel_perf_query_counter *counter = query->counters;\n")
766 for counter in counters:
767 offset = output_counter_report(set, counter, offset)
770 c("\nquery->data_size = counter->offset + intel_perf_query_counter_get_size(counter);\n")