Blame src/perfctr-2.6.x/usr.lib/arm.c
|
Packit |
577717 |
/* $Id: arm.c,v 1.1.2.1 2007/02/11 20:15:03 mikpe Exp $
|
|
Packit |
577717 |
* ARM-specific perfctr library procedures.
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* Copyright (C) 2005-2007 Mikael Pettersson
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
#include <stdio.h>
|
|
Packit |
577717 |
#include "libperfctr.h"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
unsigned int perfctr_info_nrctrs(const struct perfctr_info *info)
|
|
Packit |
577717 |
{
|
|
Packit |
577717 |
switch (info->cpu_type) {
|
|
Packit |
577717 |
case PERFCTR_ARM_XSC1:
|
|
Packit |
577717 |
return 2;
|
|
Packit |
577717 |
case PERFCTR_ARM_XSC2:
|
|
Packit |
577717 |
return 4;
|
|
Packit |
577717 |
default:
|
|
Packit |
577717 |
return 0;
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
const char *perfctr_info_cpu_name(const struct perfctr_info *info)
|
|
Packit |
577717 |
{
|
|
Packit |
577717 |
switch (info->cpu_type) {
|
|
Packit |
577717 |
case PERFCTR_ARM_XSC1:
|
|
Packit |
577717 |
return "XScale1";
|
|
Packit |
577717 |
case PERFCTR_ARM_XSC2:
|
|
Packit |
577717 |
return "XScale2";
|
|
Packit |
577717 |
default:
|
|
Packit |
577717 |
return "?";
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
void perfctr_cpu_control_print(const struct perfctr_cpu_control *control)
|
|
Packit |
577717 |
{
|
|
Packit |
577717 |
unsigned int i, nractrs, nrictrs, nrctrs;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
nractrs = control->nractrs;
|
|
Packit |
577717 |
nrictrs = control->nrictrs;
|
|
Packit |
577717 |
nrctrs = control->nractrs + nrictrs;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
printf("tsc_on\t\t\t%u\n", control->tsc_on);
|
|
Packit |
577717 |
printf("nractrs\t\t\t%u\n", nractrs);
|
|
Packit |
577717 |
if (nrictrs)
|
|
Packit |
577717 |
printf("nrictrs\t\t\t%u\n", nrictrs);
|
|
Packit |
577717 |
for(i = 0; i < nrctrs; ++i) {
|
|
Packit |
577717 |
printf("pmc_map[%u]\t\t%u\n", i, control->pmc_map[i]);
|
|
Packit |
577717 |
printf("evntsel[%u]\t\t0x%08X\n", i, control->evntsel[i]);
|
|
Packit |
577717 |
if (i >= nractrs)
|
|
Packit |
577717 |
printf("ireset[%u]\t\t%d\n", i, control->ireset[i]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|