254{
261 unsigned long plm;
262 unsigned int i, j, cnt, k, umask;
264
270
272 for (j=0; j < cnt; j++) {
274 }
275 }
276
279
282
284
285 for(j=0; j < cnt; j++) {
286
287
288
290 DPRINT(
"event=%d invalid plm=%d\n", e[j].event, e[j].plm);
292 }
293
295 DPRINT(
"event=%d invalid flags=0x%lx\n", e[j].event, e[j].flags);
297 }
298
299
300
301
303 DPRINT(
"event does not support unit mask combination\n");
305 }
306 }
307
308
309
310 for(j=0; j < cnt; j++) {
314 assign[j] = 0;
319 assign[j] = 1;
321 }
322 }
323
324
325
326 for (j=0,
i=0; j < cnt ; j++ ) {
328 continue;
329
336 }
337
338
339
340 for (j=0; j < cnt ; j++) {
342
343
345
347
348
349
350
351
353
356 }
361
362
363
364 if (assign[j] == 0)
366
367 if (cntrs) {
371 }
372
377
378
381
383
384 __pfm_vbprintf(
"[PERFEVTSEL%u(pmc%u)=0x%lx emask=0x%x umask=0x%x os=%d usr=%d en=%d int=%d inv=%d edge=%d cnt_mask=%d] %s\n",
385 assign[j],
386 assign[j],
398
400 }
401
402
403
404
412 j++;
413
414 __pfm_vbprintf(
"[PERFEVTSEL0(pmc0)=0x%lx] required for enabling counters\n", reg.
val);
415 }
416
419
421}
#define PFMLIB_ERR_FEATCOMB
static int pfm_regmask_clr(pfmlib_regmask_t *h, unsigned int b)
static int pfm_regmask_andnot(pfmlib_regmask_t *dst, pfmlib_regmask_t *h1, pfmlib_regmask_t *h2)
#define PFMLIB_ERR_TOOMANY
static int pfm_regmask_isset(pfmlib_regmask_t *h, unsigned int b)
#define PFMLIB_ERR_NOASSIGN
#define PFMLIB_I386_P6_ALL_FLAGS
static void pfm_i386_p6_get_impl_counters(pfmlib_regmask_t *impl_counters)
#define PFMLIB_I386_P6_HAS_COMBO(_e)
static pme_i386_p6_entry_t * i386_pe
#define PFM_I386_P6_SEL_INV
#define PMU_I386_P6_NUM_COUNTERS
#define PFM_I386_P6_SEL_EDGE
#define PFMLIB_I386_P6_CTR0_ONLY
#define PFMLIB_I386_P6_CTR1_ONLY
void __pfm_vbprintf(const char *fmt,...)
#define DPRINT(fmt, a...)
unsigned int unit_masks[PFMLIB_MAX_MASKS_PER_EVENT]
pfm_i386_p6_cnt_mask_t cnt_mask
pfmlib_reg_t pfp_pmds[PFMLIB_MAX_PMDS]
pfmlib_reg_t pfp_pmcs[PFMLIB_MAX_PMCS]
unsigned int pfp_pmc_count
unsigned int pfp_pmd_count
unsigned long long reg_value
unsigned long reg_alt_addr
unsigned long long reg_addr
pfmlib_regmask_bits_t bits[PFMLIB_REG_BV]
pme_i386_p6_umask_t pme_umasks[PFMLIB_I386_P6_MAX_UMASK]
unsigned long sel_unit_mask
unsigned long sel_cnt_mask
unsigned long sel_event_mask