Lines Matching defs:event

16  * Bits in event code for POWER6
21 #define PM_UNIT_SH 16 /* Unit event comes (TTMxSEL encoding) */
26 #define PM_BYTE_SH 12 /* Byte of event bus to use */
28 #define PM_SUBUNIT_SH 8 /* Subunit event comes from (NEST_SEL enc.) */
55 * top 4 bits say what sort of event:
56 * 0 = direct marked event,
57 * 1 = byte decode event,
58 * 4 = add/and event (PMC1 -> bits 0 & 4),
59 * 5 = add/and event (PMC1 -> bits 1 & 5),
60 * 6 = add/and event (PMC1 -> bits 2 & 6),
61 * 7 = add/and event (PMC1 -> bits 3 & 7).
134 * Returns 1 if event counts things relating to marked instructions
137 static int power6_marked_instr_event(u64 event)
143 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
144 psel = (event & PM_PMCSEL_MSK) >> 1; /* drop edge/level bit */
163 if (!(event & PM_BUSEVENT_MSK) || bit == -1)
166 byte = (event >> PM_BYTE_SH) & PM_BYTE_MSK;
167 unit = (event >> PM_UNIT_SH) & PM_UNIT_MSK;
175 static int p6_compute_mmcr(u64 event[], int n_ev,
189 pmc = (event[i] >> PM_PMC_SH) & PM_PMC_MSK;
197 ev = event[i];
213 /* this event uses the event bus */
216 /* check for conflict on this byte of event bus */
244 if (power6_marked_instr_event(event[i]))
265 * 16-19 select field: unit on byte 0 of event bus
267 * 32-34 select field: nest (subunit) event selector
269 static int p6_get_constraint(u64 event, unsigned long *maskp,
275 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
277 if (pmc > 4 && !(event == 0x500009 || event == 0x600005))
283 if (event & PM_BUSEVENT_MSK) {
284 byte = (event >> PM_BYTE_SH) & PM_BYTE_MSK;
287 value |= (unsigned long)(event & PM_UNIT_MSKS) << sh;
288 if ((event & PM_UNIT_MSKS) == (5 << PM_UNIT_SH)) {
289 subunit = (event >> PM_SUBUNIT_SH) & PM_SUBUNIT_MSK;
303 static int p6_limited_pmc_event(u64 event)
305 int pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
310 #define MAX_ALT 4 /* at most 4 alternatives for any event */
342 static int find_alternatives_list(u64 event)
348 if (event < event_alternatives[i][0])
352 if (!alt || event < alt)
354 if (event == alt)
361 static int p6_get_alternatives(u64 event, unsigned int flags, u64 alt[])
368 alt[0] = event;
369 nlim = p6_limited_pmc_event(event);
372 i = find_alternatives_list(event);
379 if (aevent != event)
387 psel = event & (PM_PMCSEL_MSK & ~1); /* ignore edge bit */
388 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
390 alt[nalt++] = ((event ^ 0x6) & ~PM_PMC_MSKS) |
395 alt[nalt++] = ((event ^ 0x2) & ~PM_PMC_MSKS) |
408 * we never end up with more than 4 alternatives for any event.
484 * are event codes.