Changeset View
Changeset View
Standalone View
Standalone View
lib/libpmc/libpmc_pmu_util.c
Show First 20 Lines • Show All 296 Lines • ▼ Show 20 Lines | |||||
pmc_pmu_sample_rate_get(const char *event_name) | pmc_pmu_sample_rate_get(const char *event_name) | ||||
{ | { | ||||
const struct pmu_event *pe; | const struct pmu_event *pe; | ||||
struct pmu_event_desc ped; | struct pmu_event_desc ped; | ||||
event_name = pmu_alias_get(event_name); | event_name = pmu_alias_get(event_name); | ||||
if ((pe = pmu_event_get(NULL, event_name, NULL)) == NULL) | if ((pe = pmu_event_get(NULL, event_name, NULL)) == NULL) | ||||
return (DEFAULT_SAMPLE_COUNT); | return (DEFAULT_SAMPLE_COUNT); | ||||
if (pe->alias && (pe = pmu_event_get(NULL, pe->alias, NULL)) == NULL) | |||||
return (DEFAULT_SAMPLE_COUNT); | |||||
if (pe->event == NULL) | if (pe->event == NULL) | ||||
return (DEFAULT_SAMPLE_COUNT); | return (DEFAULT_SAMPLE_COUNT); | ||||
if (pmu_parse_event(&ped, pe->event)) | if (pmu_parse_event(&ped, pe->event)) | ||||
return (DEFAULT_SAMPLE_COUNT); | return (DEFAULT_SAMPLE_COUNT); | ||||
return (ped.ped_period); | return (ped.ped_period); | ||||
} | } | ||||
int | int | ||||
▲ Show 20 Lines • Show All 205 Lines • ▼ Show 20 Lines | pmc_pmu_pmcallocate(const char *event_name, struct pmc_op_pmcallocate *pm) | ||||
if ((mfr = pmu_events_mfr()) == PMU_INVALID) | if ((mfr = pmu_events_mfr()) == PMU_INVALID) | ||||
return (ENOENT); | return (ENOENT); | ||||
bzero(&pm->pm_md, sizeof(pm->pm_md)); | bzero(&pm->pm_md, sizeof(pm->pm_md)); | ||||
pm->pm_caps |= (PMC_CAP_READ | PMC_CAP_WRITE); | pm->pm_caps |= (PMC_CAP_READ | PMC_CAP_WRITE); | ||||
event_name = pmu_alias_get(event_name); | event_name = pmu_alias_get(event_name); | ||||
if ((pe = pmu_event_get(NULL, event_name, &idx)) == NULL) | if ((pe = pmu_event_get(NULL, event_name, &idx)) == NULL) | ||||
return (ENOENT); | |||||
if (pe->alias && (pe = pmu_event_get(NULL, pe->alias, &idx)) == NULL) | |||||
return (ENOENT); | return (ENOENT); | ||||
assert(idx >= 0); | assert(idx >= 0); | ||||
pm->pm_ev = idx; | pm->pm_ev = idx; | ||||
if (pe->event == NULL) | if (pe->event == NULL) | ||||
return (ENOENT); | return (ENOENT); | ||||
if (pmu_parse_event(&ped, pe->event)) | if (pmu_parse_event(&ped, pe->event)) | ||||
return (ENOENT); | return (ENOENT); | ||||
▲ Show 20 Lines • Show All 67 Lines • Show Last 20 Lines |