Beispiel #1
0
static int match_field(char *map, jsmntok_t *field, int nz,
                       char **event, jsmntok_t *val)
{
    struct field *f;
    jsmntok_t newval = *val;

    for (f = fields; f->field; f++)
        if (json_streq(map, field, f->field) && nz) {
            cut_comma(map, &newval);
            addfield(map, event, ",", f->kernel, &newval);
            return 1;
        }
    return 0;
}
Beispiel #2
0
static struct msrmap *lookup_msr(char *map, jsmntok_t *val)
{
    jsmntok_t newval = *val;
    static bool warned = false;
    int i;

    cut_comma(map, &newval);
    for (i = 0; msrmap[i].num; i++)
        if (json_streq(map, &newval, msrmap[i].num))
            return &msrmap[i];
    if (!warned) {
        warned = true;
        fprintf(stderr, "Unknown MSR in event file %.*s\n",
                json_len(val), map + val->start);
    }
    return NULL;
}
Beispiel #3
0
static struct msrmap *lookup_msr(char *map, jsmntok_t *val)
{
	jsmntok_t newval = *val;
	static bool warned = false;
	int i;

	cut_comma(map, &newval);
	for (i = 0; msrmap[i].num; i++)
		if (json_streq(map, &newval, msrmap[i].num))
			return &msrmap[i];
	if (!warned && strncmp(map + val->start, "0x3F7", 5)) {
		/* no warning for Skylake PEBS Frontend MSR */
		warned = true;
		fprintf(stderr, "Unknown MSR in event file %.*s\n",
			json_len(val), map + val->start);
	}
	return NULL;
}