5 p = argparse.ArgumentParser()
8 "-i", "--input", action="store", help="input JSON file name", required=True
12 "-o", "--output", action="store", help="output C file name", required=True
19 help="CPU model in format: model[,stepping0]",
25 with open(r.input, "r") as fp:
26 objects = json.load(fp)
28 c = open(r.output, "w")
32 #include <perfmon/perfmon_intel.h>
34 static perfmon_intel_pmc_cpu_model_t cpu_model_table[] = {
43 c.write(" {}0x{:02X}, 0x{:02X}, 1{},\n".format("{", m, s, "}"))
46 c.write(" {}0x{:02X}, 0x00, 0{},\n".format("{", m, "}"))
51 static perfmon_intel_pmc_event_t event_table[] = {
56 MSRIndex = obj["MSRIndex"]
60 EventCode = obj["EventCode"]
62 EventName = obj["EventName"].lower()
67 c.write(" .event_code = {}{}{},\n".format("{", EventCode, "}"))
68 c.write(" .umask = {},\n".format(UMask))
69 c.write(' .event_name = "{}",\n'.format(EventName))
79 PERFMON_REGISTER_INTEL_PMC (cpu_model_table, event_table);