Blame src/perfctr-2.7.x/examples/self/ppc.c

Packit 577717
/* $Id: ppc.c,v 1.4 2005/03/14 01:48:42 mikpe Exp $
Packit 577717
 * PPC32-specific code.
Packit 577717
 *
Packit 577717
 * Copyright (C) 2004  Mikael Pettersson
Packit 577717
 */
Packit 577717
#include <stdio.h>
Packit 577717
#include <stdlib.h>
Packit 577717
#include <string.h>
Packit 577717
#include "libperfctr.h"
Packit 577717
#include "arch.h"
Packit 577717
Packit 577717
void do_setup(const struct perfctr_info *info,
Packit 577717
	      struct perfctr_cpu_control *cpu_control)
Packit 577717
{
Packit 577717
    memset(cpu_control, 0, sizeof *cpu_control);
Packit 577717
    cpu_control->tsc_on = 1;
Packit 577717
    if (info->cpu_type > PERFCTR_PPC_GENERIC) {
Packit 577717
	cpu_control->nractrs = 1;
Packit 577717
	cpu_control->pmc_map[0] = 0;
Packit 577717
	cpu_control->evntsel[0] = 0x02; /* INSTRUCTIONS_COMPLETED */
Packit 577717
	cpu_control->ppc.mmcr0 = (1 << (31-1)); /* don't count in kernel mode */
Packit 577717
    }
Packit 577717
}