Lines Matching defs:dr6
1148 unsigned long dr6;
1150 get_debugreg(dr6, 6);
1151 dr6 ^= DR6_RESERVED; /* Flip to positive polarity */
1173 return dr6;
1201 static bool notify_debug(struct pt_regs *regs, unsigned long *dr6)
1204 * Notifiers will clear bits in @dr6 to indicate the event has been
1210 if (notify_die(DIE_DEBUG, "debug", regs, (long)dr6, 0, SIGTRAP) == NOTIFY_STOP)
1216 static noinstr void exc_debug_kernel(struct pt_regs *regs, unsigned long dr6)
1263 (dr6 & DR_STEP) && is_sysenter_singlestep(regs))
1264 dr6 &= ~DR_STEP;
1269 if (!dr6)
1272 if (notify_debug(regs, &dr6))
1286 if (WARN_ON_ONCE(dr6 & DR_STEP))
1295 static noinstr void exc_debug_user(struct pt_regs *regs, unsigned long dr6)
1324 current->thread.virtual_dr6 = (dr6 & DR_STEP);
1334 * If dr6 has no reason to give us about the origin of this trap,
1338 icebp = !dr6;
1340 if (notify_debug(regs, &dr6))
1352 if (dr6 & DR_BUS_LOCK)
1356 dr6 |= current->thread.virtual_dr6;
1357 if (dr6 & (DR_STEP | DR_TRAP_BITS) || icebp)
1358 send_sigtrap(regs, 0, get_si_code(dr6));
1398 unsigned long dr6 = fred_event_data(regs);
1401 exc_debug_user(regs, dr6);
1403 exc_debug_kernel(regs, dr6);
1411 unsigned long dr6 = debug_read_reset_dr6();
1414 exc_debug_user(regs, dr6);
1416 exc_debug_kernel(regs, dr6);