Lines Matching refs:bp_info
1072 struct ppc_hw_breakpoint *bp_info) in set_instruction_bp() argument
1085 if (bp_info->addr >= TASK_SIZE) in set_instruction_bp()
1088 if (bp_info->addr_mode != PPC_BREAKPOINT_MODE_EXACT) { in set_instruction_bp()
1091 if (bp_info->addr2 >= TASK_SIZE) in set_instruction_bp()
1097 child->thread.debug.iac1 = bp_info->addr; in set_instruction_bp()
1098 child->thread.debug.iac2 = bp_info->addr2; in set_instruction_bp()
1100 if (bp_info->addr_mode == in set_instruction_bp()
1108 child->thread.debug.iac3 = bp_info->addr; in set_instruction_bp()
1109 child->thread.debug.iac4 = bp_info->addr2; in set_instruction_bp()
1111 if (bp_info->addr_mode == in set_instruction_bp()
1130 child->thread.debug.iac1 = bp_info->addr; in set_instruction_bp()
1137 child->thread.debug.iac2 = bp_info->addr; in set_instruction_bp()
1142 child->thread.debug.iac3 = bp_info->addr; in set_instruction_bp()
1146 child->thread.debug.iac4 = bp_info->addr; in set_instruction_bp()
1214 static int set_dac(struct task_struct *child, struct ppc_hw_breakpoint *bp_info) in set_dac() argument
1217 (bp_info->condition_mode >> PPC_BREAKPOINT_CONDITION_BE_SHIFT) in set_dac()
1220 bp_info->condition_mode & PPC_BREAKPOINT_CONDITION_MODE; in set_dac()
1226 if (bp_info->addr >= TASK_SIZE) in set_dac()
1231 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_READ) in set_dac()
1233 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_WRITE) in set_dac()
1235 child->thread.debug.dac1 = (unsigned long)bp_info->addr; in set_dac()
1239 (unsigned long)bp_info->condition_value; in set_dac()
1252 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_READ) in set_dac()
1254 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_WRITE) in set_dac()
1256 child->thread.debug.dac2 = (unsigned long)bp_info->addr; in set_dac()
1260 (unsigned long)bp_info->condition_value; in set_dac()
1316 struct ppc_hw_breakpoint *bp_info) in set_dac_range() argument
1318 int mode = bp_info->addr_mode & PPC_BREAKPOINT_MODE_MASK; in set_dac_range()
1321 if (bp_info->condition_mode) in set_dac_range()
1330 if (bp_info->addr >= TASK_SIZE) in set_dac_range()
1337 if (~((unsigned long)bp_info->addr2) >= TASK_SIZE) in set_dac_range()
1343 if (bp_info->addr2 >= TASK_SIZE) in set_dac_range()
1351 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_READ) in set_dac_range()
1353 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_WRITE) in set_dac_range()
1355 child->thread.debug.dac1 = bp_info->addr; in set_dac_range()
1356 child->thread.debug.dac2 = bp_info->addr2; in set_dac_range()
1370 struct ppc_hw_breakpoint *bp_info) in ppc_set_hwdebug() argument
1382 if (bp_info->version != 1) in ppc_set_hwdebug()
1388 if ((bp_info->trigger_type == 0) || in ppc_set_hwdebug()
1389 (bp_info->trigger_type & ~(PPC_BREAKPOINT_TRIGGER_EXECUTE | in ppc_set_hwdebug()
1391 (bp_info->addr_mode & ~PPC_BREAKPOINT_MODE_MASK) || in ppc_set_hwdebug()
1392 (bp_info->condition_mode & in ppc_set_hwdebug()
1397 if (bp_info->condition_mode != PPC_BREAKPOINT_CONDITION_NONE) in ppc_set_hwdebug()
1401 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_EXECUTE) { in ppc_set_hwdebug()
1402 if ((bp_info->trigger_type != PPC_BREAKPOINT_TRIGGER_EXECUTE) || in ppc_set_hwdebug()
1403 (bp_info->condition_mode != PPC_BREAKPOINT_CONDITION_NONE)) in ppc_set_hwdebug()
1405 return set_instruction_bp(child, bp_info); in ppc_set_hwdebug()
1407 if (bp_info->addr_mode == PPC_BREAKPOINT_MODE_EXACT) in ppc_set_hwdebug()
1408 return set_dac(child, bp_info); in ppc_set_hwdebug()
1411 return set_dac_range(child, bp_info); in ppc_set_hwdebug()
1419 if ((bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_RW) == 0 || in ppc_set_hwdebug()
1420 (bp_info->trigger_type & ~PPC_BREAKPOINT_TRIGGER_RW) != 0 || in ppc_set_hwdebug()
1421 bp_info->condition_mode != PPC_BREAKPOINT_CONDITION_NONE) in ppc_set_hwdebug()
1424 if ((unsigned long)bp_info->addr >= TASK_SIZE) in ppc_set_hwdebug()
1427 brk.address = bp_info->addr & ~7UL; in ppc_set_hwdebug()
1430 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_READ) in ppc_set_hwdebug()
1432 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_WRITE) in ppc_set_hwdebug()
1439 if (bp_info->addr_mode == PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE) in ppc_set_hwdebug()
1440 len = bp_info->addr2 - bp_info->addr; in ppc_set_hwdebug()
1441 else if (bp_info->addr_mode == PPC_BREAKPOINT_MODE_EXACT) in ppc_set_hwdebug()
1451 attr.bp_addr = (unsigned long)bp_info->addr & ~HW_BREAKPOINT_ALIGN; in ppc_set_hwdebug()
1465 if (bp_info->addr_mode != PPC_BREAKPOINT_MODE_EXACT) in ppc_set_hwdebug()
1646 struct ppc_hw_breakpoint bp_info; in arch_ptrace() local
1651 ret = __copy_from_user(&bp_info, datavp, in arch_ptrace()
1655 ret = ppc_set_hwdebug(child, &bp_info); in arch_ptrace()