Lines Matching refs:bp_info
1039 struct ppc_hw_breakpoint *bp_info) in set_intruction_bp() argument
1052 if (bp_info->addr >= TASK_SIZE) in set_intruction_bp()
1055 if (bp_info->addr_mode != PPC_BREAKPOINT_MODE_EXACT) { in set_intruction_bp()
1058 if (bp_info->addr2 >= TASK_SIZE) in set_intruction_bp()
1064 child->thread.iac1 = bp_info->addr; in set_intruction_bp()
1065 child->thread.iac2 = bp_info->addr2; in set_intruction_bp()
1067 if (bp_info->addr_mode == in set_intruction_bp()
1075 child->thread.iac3 = bp_info->addr; in set_intruction_bp()
1076 child->thread.iac4 = bp_info->addr2; in set_intruction_bp()
1078 if (bp_info->addr_mode == in set_intruction_bp()
1097 child->thread.iac1 = bp_info->addr; in set_intruction_bp()
1104 child->thread.iac2 = bp_info->addr; in set_intruction_bp()
1109 child->thread.iac3 = bp_info->addr; in set_intruction_bp()
1113 child->thread.iac4 = bp_info->addr; in set_intruction_bp()
1181 static int set_dac(struct task_struct *child, struct ppc_hw_breakpoint *bp_info) in set_dac() argument
1184 (bp_info->condition_mode >> PPC_BREAKPOINT_CONDITION_BE_SHIFT) in set_dac()
1187 bp_info->condition_mode & PPC_BREAKPOINT_CONDITION_MODE; in set_dac()
1193 if (bp_info->addr >= TASK_SIZE) in set_dac()
1198 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_READ) in set_dac()
1200 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_WRITE) in set_dac()
1202 child->thread.dac1 = (unsigned long)bp_info->addr; in set_dac()
1206 (unsigned long)bp_info->condition_value; in set_dac()
1219 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_READ) in set_dac()
1221 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_WRITE) in set_dac()
1223 child->thread.dac2 = (unsigned long)bp_info->addr; in set_dac()
1227 (unsigned long)bp_info->condition_value; in set_dac()
1283 struct ppc_hw_breakpoint *bp_info) in set_dac_range() argument
1285 int mode = bp_info->addr_mode & PPC_BREAKPOINT_MODE_MASK; in set_dac_range()
1288 if (bp_info->condition_mode) in set_dac_range()
1297 if (bp_info->addr >= TASK_SIZE) in set_dac_range()
1304 if (~((unsigned long)bp_info->addr2) >= TASK_SIZE) in set_dac_range()
1310 if (bp_info->addr2 >= TASK_SIZE) in set_dac_range()
1318 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_READ) in set_dac_range()
1320 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_WRITE) in set_dac_range()
1322 child->thread.dac1 = bp_info->addr; in set_dac_range()
1323 child->thread.dac2 = bp_info->addr2; in set_dac_range()
1337 struct ppc_hw_breakpoint *bp_info) in ppc_set_hwdebug() argument
1343 if (bp_info->version != 1) in ppc_set_hwdebug()
1349 if ((bp_info->trigger_type == 0) || in ppc_set_hwdebug()
1350 (bp_info->trigger_type & ~(PPC_BREAKPOINT_TRIGGER_EXECUTE | in ppc_set_hwdebug()
1352 (bp_info->addr_mode & ~PPC_BREAKPOINT_MODE_MASK) || in ppc_set_hwdebug()
1353 (bp_info->condition_mode & in ppc_set_hwdebug()
1358 if (bp_info->condition_mode != PPC_BREAKPOINT_CONDITION_NONE) in ppc_set_hwdebug()
1362 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_EXECUTE) { in ppc_set_hwdebug()
1363 if ((bp_info->trigger_type != PPC_BREAKPOINT_TRIGGER_EXECUTE) || in ppc_set_hwdebug()
1364 (bp_info->condition_mode != PPC_BREAKPOINT_CONDITION_NONE)) in ppc_set_hwdebug()
1366 return set_intruction_bp(child, bp_info); in ppc_set_hwdebug()
1368 if (bp_info->addr_mode == PPC_BREAKPOINT_MODE_EXACT) in ppc_set_hwdebug()
1369 return set_dac(child, bp_info); in ppc_set_hwdebug()
1372 return set_dac_range(child, bp_info); in ppc_set_hwdebug()
1380 if ((bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_RW) == 0 || in ppc_set_hwdebug()
1381 (bp_info->trigger_type & ~PPC_BREAKPOINT_TRIGGER_RW) != 0 || in ppc_set_hwdebug()
1382 bp_info->addr_mode != PPC_BREAKPOINT_MODE_EXACT || in ppc_set_hwdebug()
1383 bp_info->condition_mode != PPC_BREAKPOINT_CONDITION_NONE) in ppc_set_hwdebug()
1389 if ((unsigned long)bp_info->addr >= TASK_SIZE) in ppc_set_hwdebug()
1392 dabr = (unsigned long)bp_info->addr & ~7UL; in ppc_set_hwdebug()
1394 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_READ) in ppc_set_hwdebug()
1396 if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_WRITE) in ppc_set_hwdebug()
1583 struct ppc_hw_breakpoint bp_info; in arch_ptrace() local
1588 ret = __copy_from_user(&bp_info, datavp, in arch_ptrace()
1592 ret = ppc_set_hwdebug(child, &bp_info); in arch_ptrace()