|
Packit |
577717 |
/* $Id: event_set_x86.c,v 1.2.2.1 2004/08/02 22:27:27 mikpe Exp $
|
|
Packit |
577717 |
* Descriptions of the events available for different processor types.
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* Copyright (C) 1999-2004 Mikael Pettersson
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
#include <stddef.h> /* for NULL */
|
|
Packit |
577717 |
#include "libperfctr.h"
|
|
Packit |
577717 |
#include "event_set.h"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Generic events.
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const struct perfctr_event_set generic_event_set = {
|
|
Packit |
577717 |
.cpu_type = PERFCTR_X86_GENERIC,
|
|
Packit |
577717 |
.event_prefix = NULL,
|
|
Packit |
577717 |
.include = NULL,
|
|
Packit |
577717 |
.nevents = 0,
|
|
Packit |
577717 |
.events = NULL,
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Helper function to translate a cpu_type code to an event_set pointer.
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
static const struct perfctr_event_set * const cpu_event_set[] = {
|
|
Packit |
577717 |
[PERFCTR_X86_GENERIC] = &generic_event_set,
|
|
Packit |
577717 |
#if !defined(__x86_64__)
|
|
Packit |
577717 |
[PERFCTR_X86_INTEL_P5] = &perfctr_p5_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_INTEL_P5MMX] = &perfctr_p5mmx_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_INTEL_P6] = &perfctr_ppro_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_INTEL_PII] = &perfctr_p2_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_INTEL_PIII] = &perfctr_p3_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_CYRIX_MII] = &perfctr_mii_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_WINCHIP_C6] = &perfctr_wcc6_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_WINCHIP_2] = &perfctr_wc2_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_AMD_K7] = &perfctr_k7_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_VIA_C3] = &perfctr_vc3_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_INTEL_P4] = &perfctr_p4_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_INTEL_P4M2] = &perfctr_p4_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_INTEL_PENTM] = &perfctr_pentm_event_set,
|
|
Packit |
577717 |
#endif
|
|
Packit |
577717 |
[PERFCTR_X86_INTEL_P4M3] = &perfctr_p4m3_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_AMD_K8] = &perfctr_k8_event_set,
|
|
Packit |
577717 |
[PERFCTR_X86_AMD_K8C] = &perfctr_k8c_event_set,
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
const struct perfctr_event_set *perfctr_cpu_event_set(unsigned cpu_type)
|
|
Packit |
577717 |
{
|
|
Packit |
577717 |
if( cpu_type >= ARRAY_SIZE(cpu_event_set) )
|
|
Packit |
577717 |
return 0;
|
|
Packit |
577717 |
return cpu_event_set[cpu_type];
|
|
Packit |
577717 |
}
|