1018 unsigned int event, umask;
1023 pentium4_escr_value_t escr_value;
1024 pentium4_cccr_value_t cccr_value;
1025 unsigned int num_masks, replay_mask, unit_masks[12];
1026 unsigned int event_mask;
1027 unsigned int tag_value, tag_enable;
1029 int j, escr, cccr, pmd;
1037 for (
i = 0;
i < MAX_ESCRS_PER_EVENT;
i++ ) {
1044 bits->
escr[
i] = escr;
1046 for ( j = 0; j < MAX_CCCRS_PER_ESCR; j++ ) {
1069 if ( event_mask & 0xF0000 ) {
1071 tag_value = ( ( event_mask & 0xF0000 ) >> EVENT_MASK_BITS );
1074 event_mask &= 0x0FFFF;
1078 escr_value.bits.t1_usr = 0;
1079 escr_value.bits.t1_os = 0;
1082 escr_value.bits.tag_enable = tag_enable;
1083 escr_value.bits.tag_value = tag_value;
1084 escr_value.bits.event_mask = event_mask;
1086 escr_value.bits.reserved = 0;
1090 cccr_value.bits.reserved1 = 0;
1091 cccr_value.bits.enable = 1;
1093 cccr_value.bits.active_thread = 3;
1099 cccr_value.bits.compare = 0;
1101 cccr_value.bits.complement = 0;
1103 cccr_value.bits.threshold = 0;
1105 cccr_value.bits.force_ovf = 0;
1108 cccr_value.bits.ovf_pmi_t0 = 0;
1109 cccr_value.bits.ovf_pmi_t1 = 0;
1111 cccr_value.bits.reserved2 = 0;
1112 cccr_value.bits.cascade = 0;
1114 cccr_value.bits.overflow = 0;
1125 for (
i = 0;
i < num_masks;
i++ ) {
1126 replay_mask = unit_masks[
i];
1127 if ( replay_mask > 1 && replay_mask < 11 ) {
1136 bits->
event = escr_value.val;
1137 bits->
cccr = cccr_value.val;
1139 SUBDBG(
"escr: 0x%lx; cccr: 0x%lx\n", escr_value.val, cccr_value.val );
1154 SUBDBG(
"event: %#x; umask: %#x; code: %#x; cmd: %#x\n", event,
static int prepare_umask(unsigned int foo, unsigned int *values)
pentium4_escr_reg_t pentium4_escrs[]
pentium4_cccr_reg_t pentium4_cccrs[]
static int is_pentium4(void)
#define P4_REPLAY_REAL_MASK
static int _pfm_get_counter_info(unsigned int event, unsigned int *selector, int *code)
unsigned int _pfm_convert_umask(unsigned int event, unsigned int umask)
#define SUBDBG(format, args...)
static pentium4_replay_regs_t p4_replay_regs[]
unsigned pebs_matrix_vert
pentium4_event_t pentium4_events[]
static int _pfm_decode_native_event(unsigned int EventCode, unsigned int *event, unsigned int *umask)