Lines Matching refs:thread

143 		tm_save_sprs(&(tsk->thread));  in flush_tmregs_to_thread()
207 return task->thread.regs->msr | task->thread.fpexc_mode; in get_user_msr()
212 task->thread.regs->msr &= ~MSR_DEBUGCHANGE; in set_user_msr()
213 task->thread.regs->msr |= msr & MSR_DEBUGCHANGE; in set_user_msr()
220 return task->thread.ckpt_regs.msr | task->thread.fpexc_mode; in get_user_ckpt_msr()
225 task->thread.ckpt_regs.msr &= ~MSR_DEBUGCHANGE; in set_user_ckpt_msr()
226 task->thread.ckpt_regs.msr |= msr & MSR_DEBUGCHANGE; in set_user_ckpt_msr()
232 task->thread.ckpt_regs.trap = trap & 0xfff0; in set_user_ckpt_trap()
240 *data = task->thread.dscr; in get_user_dscr()
246 task->thread.dscr = dscr; in set_user_dscr()
247 task->thread.dscr_inherit = 1; in set_user_dscr()
268 task->thread.regs->trap = trap & 0xfff0; in set_user_trap()
277 if ((task->thread.regs == NULL) || !data) in ptrace_get_reg()
301 *data = ((unsigned long *)task->thread.regs)[regno]; in ptrace_get_reg()
313 if (task->thread.regs == NULL) in ptrace_put_reg()
324 ((unsigned long *)task->thread.regs)[regno] = data; in ptrace_put_reg()
336 if (target->thread.regs == NULL) in gpr_get()
339 if (!FULL_REGS(target->thread.regs)) { in gpr_get()
342 target->thread.regs->gpr[i] = NV_REG_POISON; in gpr_get()
346 target->thread.regs, in gpr_get()
361 &target->thread.regs->orig_gpr3, in gpr_get()
378 if (target->thread.regs == NULL) in gpr_set()
381 CHECK_FULL_REGS(target->thread.regs); in gpr_set()
384 target->thread.regs, in gpr_set()
400 &target->thread.regs->orig_gpr3, in gpr_set()
450 buf[i] = target->thread.TS_FPR(i); in fpr_get()
451 buf[32] = target->thread.fp_state.fpscr; in fpr_get()
460 &target->thread.fp_state, 0, -1); in fpr_get()
488 buf[i] = target->thread.TS_FPR(i); in fpr_set()
489 buf[32] = target->thread.fp_state.fpscr; in fpr_set()
497 target->thread.TS_FPR(i) = buf[i]; in fpr_set()
498 target->thread.fp_state.fpscr = buf[32]; in fpr_set()
507 &target->thread.fp_state, 0, -1); in fpr_set()
529 return target->thread.used_vr ? regset->n : 0; in vr_active()
558 &target->thread.vr_state, 0, in vr_get()
570 vrsave.word = target->thread.vrsave; in vr_get()
605 &target->thread.vr_state, 0, in vr_set()
617 vrsave.word = target->thread.vrsave; in vr_set()
622 target->thread.vrsave = vrsave.word; in vr_set()
640 return target->thread.used_vsr ? regset->n : 0; in vsr_active()
668 buf[i] = target->thread.fp_state.fpr[i][TS_VSRLOWOFFSET]; in vsr_get()
701 buf[i] = target->thread.fp_state.fpr[i][TS_VSRLOWOFFSET]; in vsr_set()
707 target->thread.fp_state.fpr[i][TS_VSRLOWOFFSET] = buf[i]; in vsr_set()
729 return target->thread.used_spe ? regset->n : 0; in evr_active()
741 &target->thread.evr, in evr_get()
742 0, sizeof(target->thread.evr)); in evr_get()
749 &target->thread.acc, in evr_get()
750 sizeof(target->thread.evr), -1); in evr_get()
764 &target->thread.evr, in evr_set()
765 0, sizeof(target->thread.evr)); in evr_set()
772 &target->thread.acc, in evr_set()
773 sizeof(target->thread.evr), -1); in evr_set()
794 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cgpr_active()
830 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cgpr_get()
838 &target->thread.ckpt_regs, in tm_cgpr_get()
854 &target->thread.ckpt_regs.orig_gpr3, in tm_cgpr_get()
895 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cgpr_set()
903 &target->thread.ckpt_regs, in tm_cgpr_set()
919 &target->thread.ckpt_regs.orig_gpr3, in tm_cgpr_set()
959 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cfpr_active()
997 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cfpr_get()
1006 buf[i] = target->thread.TS_CKFPR(i); in tm_cfpr_get()
1007 buf[32] = target->thread.ckfp_state.fpscr; in tm_cfpr_get()
1043 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cfpr_set()
1051 buf[i] = target->thread.TS_CKFPR(i); in tm_cfpr_set()
1052 buf[32] = target->thread.ckfp_state.fpscr; in tm_cfpr_set()
1059 target->thread.TS_CKFPR(i) = buf[i]; in tm_cfpr_set()
1060 target->thread.ckfp_state.fpscr = buf[32]; in tm_cfpr_set()
1078 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cvmx_active()
1118 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cvmx_get()
1127 &target->thread.ckvr_state, 0, in tm_cvmx_get()
1138 vrsave.word = target->thread.ckvrsave; in tm_cvmx_get()
1180 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cvmx_set()
1188 &target->thread.ckvr_state, 0, in tm_cvmx_set()
1199 vrsave.word = target->thread.ckvrsave; in tm_cvmx_set()
1203 target->thread.ckvrsave = vrsave.word; in tm_cvmx_set()
1223 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cvsx_active()
1227 return target->thread.used_vsr ? regset->n : 0; in tm_cvsx_active()
1261 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cvsx_get()
1271 buf[i] = target->thread.ckfp_state.fpr[i][TS_VSRLOWOFFSET]; in tm_cvsx_get()
1309 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_cvsx_set()
1319 buf[i] = target->thread.ckfp_state.fpr[i][TS_VSRLOWOFFSET]; in tm_cvsx_set()
1325 target->thread.ckfp_state.fpr[i][TS_VSRLOWOFFSET] = buf[i]; in tm_cvsx_set()
1387 &target->thread.tm_tfhar, 0, sizeof(u64)); in tm_spr_get()
1392 &target->thread.tm_texasr, sizeof(u64), in tm_spr_get()
1398 &target->thread.tm_tfiar, in tm_spr_get()
1443 &target->thread.tm_tfhar, 0, sizeof(u64)); in tm_spr_set()
1448 &target->thread.tm_texasr, sizeof(u64), in tm_spr_set()
1454 &target->thread.tm_tfiar, in tm_spr_set()
1465 if (MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_tar_active()
1481 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_tar_get()
1485 &target->thread.tm_tar, 0, sizeof(u64)); in tm_tar_get()
1499 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_tar_set()
1503 &target->thread.tm_tar, 0, sizeof(u64)); in tm_tar_set()
1513 if (MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_ppr_active()
1530 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_ppr_get()
1534 &target->thread.tm_ppr, 0, sizeof(u64)); in tm_ppr_get()
1548 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_ppr_set()
1552 &target->thread.tm_ppr, 0, sizeof(u64)); in tm_ppr_set()
1562 if (MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_dscr_active()
1578 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_dscr_get()
1582 &target->thread.tm_dscr, 0, sizeof(u64)); in tm_dscr_get()
1596 if (!MSR_TM_ACTIVE(target->thread.regs->msr)) in tm_dscr_set()
1600 &target->thread.tm_dscr, 0, sizeof(u64)); in tm_dscr_set()
1612 &target->thread.ppr, 0, sizeof(u64)); in ppr_get()
1621 &target->thread.ppr, 0, sizeof(u64)); in ppr_set()
1630 &target->thread.dscr, 0, sizeof(u64)); in dscr_get()
1638 &target->thread.dscr, 0, sizeof(u64)); in dscr_set()
1648 &target->thread.tar, 0, sizeof(u64)); in tar_get()
1656 &target->thread.tar, 0, sizeof(u64)); in tar_set()
1665 if (target->thread.used_ebb) in ebb_active()
1683 if (!target->thread.used_ebb) in ebb_get()
1687 &target->thread.ebbrr, 0, 3 * sizeof(unsigned long)); in ebb_get()
1704 if (target->thread.used_ebb) in ebb_set()
1708 &target->thread.ebbrr, 0, sizeof(unsigned long)); in ebb_set()
1712 &target->thread.ebbhr, sizeof(unsigned long), in ebb_set()
1717 &target->thread.bescr, in ebb_set()
1746 &target->thread.siar, 0, in pmu_get()
1767 &target->thread.siar, 0, in pmu_set()
1772 &target->thread.sdar, sizeof(unsigned long), in pmu_set()
1777 &target->thread.sier, 2 * sizeof(unsigned long), in pmu_set()
1782 &target->thread.mmcr2, 3 * sizeof(unsigned long), in pmu_set()
1787 &target->thread.mmcr0, 4 * sizeof(unsigned long), in pmu_set()
1815 &target->thread.amr, 0, in pkey_get()
1840 target->thread.amr = (new_amr & target->thread.uamor) | in pkey_set()
1841 (target->thread.amr & ~target->thread.uamor); in pkey_set()
2128 &target->thread.ckpt_regs.gpr[0]); in tm_cgpr32_get()
2137 &target->thread.ckpt_regs.gpr[0]); in tm_cgpr32_set()
2148 if (target->thread.regs == NULL) in gpr32_get()
2151 if (!FULL_REGS(target->thread.regs)) { in gpr32_get()
2157 target->thread.regs->gpr[i] = NV_REG_POISON; in gpr32_get()
2160 &target->thread.regs->gpr[0]); in gpr32_get()
2168 if (target->thread.regs == NULL) in gpr32_set()
2171 CHECK_FULL_REGS(target->thread.regs); in gpr32_set()
2173 &target->thread.regs->gpr[0]); in gpr32_set()
2291 struct pt_regs *regs = task->thread.regs; in user_enable_single_step()
2295 task->thread.debug.dbcr0 &= ~DBCR0_BT; in user_enable_single_step()
2296 task->thread.debug.dbcr0 |= DBCR0_IDM | DBCR0_IC; in user_enable_single_step()
2308 struct pt_regs *regs = task->thread.regs; in user_enable_block_step()
2312 task->thread.debug.dbcr0 &= ~DBCR0_IC; in user_enable_block_step()
2313 task->thread.debug.dbcr0 = DBCR0_IDM | DBCR0_BT; in user_enable_block_step()
2325 struct pt_regs *regs = task->thread.regs; in user_disable_single_step()
2335 task->thread.debug.dbcr0 &= ~(DBCR0_IC|DBCR0_BT); in user_disable_single_step()
2339 if (!DBCR_ACTIVE_EVENTS(task->thread.debug.dbcr0, in user_disable_single_step()
2340 task->thread.debug.dbcr1)) { in user_disable_single_step()
2344 task->thread.debug.dbcr0 &= ~DBCR0_IDM; in user_disable_single_step()
2377 struct thread_struct *thread = &(task->thread); in ptrace_set_debugreg() local
2418 bp = thread->ptrace_bps[0]; in ptrace_set_debugreg()
2422 thread->ptrace_bps[0] = NULL; in ptrace_set_debugreg()
2438 thread->ptrace_bps[0] = bp; in ptrace_set_debugreg()
2439 thread->hw_brk = hw_brk; in ptrace_set_debugreg()
2450 thread->ptrace_bps[0] = bp = register_user_hw_breakpoint(&attr, in ptrace_set_debugreg()
2453 thread->ptrace_bps[0] = NULL; in ptrace_set_debugreg()
2461 task->thread.hw_brk = hw_brk; in ptrace_set_debugreg()
2469 task->thread.debug.dac1 = data & ~0x3UL; in ptrace_set_debugreg()
2471 if (task->thread.debug.dac1 == 0) { in ptrace_set_debugreg()
2473 if (!DBCR_ACTIVE_EVENTS(task->thread.debug.dbcr0, in ptrace_set_debugreg()
2474 task->thread.debug.dbcr1)) { in ptrace_set_debugreg()
2475 task->thread.regs->msr &= ~MSR_DE; in ptrace_set_debugreg()
2476 task->thread.debug.dbcr0 &= ~DBCR0_IDM; in ptrace_set_debugreg()
2488 task->thread.debug.dbcr0 |= DBCR0_IDM; in ptrace_set_debugreg()
2497 task->thread.regs->msr |= MSR_DE; in ptrace_set_debugreg()
2518 int slot1_in_use = ((child->thread.debug.dbcr0 & DBCR0_IAC1) != 0); in set_instruction_bp()
2519 int slot2_in_use = ((child->thread.debug.dbcr0 & DBCR0_IAC2) != 0); in set_instruction_bp()
2520 int slot3_in_use = ((child->thread.debug.dbcr0 & DBCR0_IAC3) != 0); in set_instruction_bp()
2521 int slot4_in_use = ((child->thread.debug.dbcr0 & DBCR0_IAC4) != 0); in set_instruction_bp()
2540 child->thread.debug.iac1 = bp_info->addr; in set_instruction_bp()
2541 child->thread.debug.iac2 = bp_info->addr2; in set_instruction_bp()
2542 child->thread.debug.dbcr0 |= DBCR0_IAC1; in set_instruction_bp()
2551 child->thread.debug.iac3 = bp_info->addr; in set_instruction_bp()
2552 child->thread.debug.iac4 = bp_info->addr2; in set_instruction_bp()
2553 child->thread.debug.dbcr0 |= DBCR0_IAC3; in set_instruction_bp()
2573 child->thread.debug.iac1 = bp_info->addr; in set_instruction_bp()
2574 child->thread.debug.dbcr0 |= DBCR0_IAC1; in set_instruction_bp()
2580 child->thread.debug.iac2 = bp_info->addr; in set_instruction_bp()
2581 child->thread.debug.dbcr0 |= DBCR0_IAC2; in set_instruction_bp()
2585 child->thread.debug.iac3 = bp_info->addr; in set_instruction_bp()
2586 child->thread.debug.dbcr0 |= DBCR0_IAC3; in set_instruction_bp()
2589 child->thread.debug.iac4 = bp_info->addr; in set_instruction_bp()
2590 child->thread.debug.dbcr0 |= DBCR0_IAC4; in set_instruction_bp()
2596 child->thread.debug.dbcr0 |= DBCR0_IDM; in set_instruction_bp()
2597 child->thread.regs->msr |= MSR_DE; in set_instruction_bp()
2606 if ((child->thread.debug.dbcr0 & DBCR0_IAC1) == 0) in del_instruction_bp()
2611 child->thread.debug.iac2 = 0; in del_instruction_bp()
2614 child->thread.debug.iac1 = 0; in del_instruction_bp()
2615 child->thread.debug.dbcr0 &= ~DBCR0_IAC1; in del_instruction_bp()
2618 if ((child->thread.debug.dbcr0 & DBCR0_IAC2) == 0) in del_instruction_bp()
2624 child->thread.debug.iac2 = 0; in del_instruction_bp()
2625 child->thread.debug.dbcr0 &= ~DBCR0_IAC2; in del_instruction_bp()
2629 if ((child->thread.debug.dbcr0 & DBCR0_IAC3) == 0) in del_instruction_bp()
2634 child->thread.debug.iac4 = 0; in del_instruction_bp()
2637 child->thread.debug.iac3 = 0; in del_instruction_bp()
2638 child->thread.debug.dbcr0 &= ~DBCR0_IAC3; in del_instruction_bp()
2641 if ((child->thread.debug.dbcr0 & DBCR0_IAC4) == 0) in del_instruction_bp()
2647 child->thread.debug.iac4 = 0; in del_instruction_bp()
2648 child->thread.debug.dbcr0 &= ~DBCR0_IAC4; in del_instruction_bp()
2678 child->thread.debug.dac1 = (unsigned long)bp_info->addr; in set_dac()
2681 child->thread.debug.dvc1 = in set_dac()
2683 child->thread.debug.dbcr2 |= in set_dac()
2689 } else if (child->thread.debug.dbcr2 & DBCR2_DAC12MODE) { in set_dac()
2699 child->thread.debug.dac2 = (unsigned long)bp_info->addr; in set_dac()
2702 child->thread.debug.dvc2 = in set_dac()
2704 child->thread.debug.dbcr2 |= in set_dac()
2711 child->thread.debug.dbcr0 |= DBCR0_IDM; in set_dac()
2712 child->thread.regs->msr |= MSR_DE; in set_dac()
2723 child->thread.debug.dac1 = 0; in del_dac()
2726 if (child->thread.debug.dbcr2 & DBCR2_DAC12MODE) { in del_dac()
2727 child->thread.debug.dac2 = 0; in del_dac()
2728 child->thread.debug.dbcr2 &= ~DBCR2_DAC12MODE; in del_dac()
2730 child->thread.debug.dbcr2 &= ~(DBCR2_DVC1M | DBCR2_DVC1BE); in del_dac()
2733 child->thread.debug.dvc1 = 0; in del_dac()
2740 if (child->thread.debug.dbcr2 & DBCR2_DAC12MODE) in del_dac()
2743 child->thread.debug.dbcr2 &= ~(DBCR2_DVC2M | DBCR2_DVC2BE); in del_dac()
2746 child->thread.debug.dvc2 = 0; in del_dac()
2748 child->thread.debug.dac2 = 0; in del_dac()
2790 if (child->thread.debug.dbcr0 & in set_dac_range()
2795 child->thread.debug.dbcr0 |= (DBCR0_DAC1R | DBCR0_IDM); in set_dac_range()
2797 child->thread.debug.dbcr0 |= (DBCR0_DAC1W | DBCR0_IDM); in set_dac_range()
2798 child->thread.debug.dac1 = bp_info->addr; in set_dac_range()
2799 child->thread.debug.dac2 = bp_info->addr2; in set_dac_range()
2801 child->thread.debug.dbcr2 |= DBCR2_DAC12M; in set_dac_range()
2803 child->thread.debug.dbcr2 |= DBCR2_DAC12MX; in set_dac_range()
2805 child->thread.debug.dbcr2 |= DBCR2_DAC12MM; in set_dac_range()
2806 child->thread.regs->msr |= MSR_DE; in set_dac_range()
2817 struct thread_struct *thread = &(child->thread); in ppc_set_hwdebug() local
2888 bp = thread->ptrace_bps[0]; in ppc_set_hwdebug()
2898 thread->ptrace_bps[0] = bp = register_user_hw_breakpoint(&attr, in ppc_set_hwdebug()
2901 thread->ptrace_bps[0] = NULL; in ppc_set_hwdebug()
2911 if (child->thread.hw_brk.address) in ppc_set_hwdebug()
2917 child->thread.hw_brk = brk; in ppc_set_hwdebug()
2927 struct thread_struct *thread = &(child->thread); in ppc_del_hwdebug() local
2939 if (!DBCR_ACTIVE_EVENTS(child->thread.debug.dbcr0, in ppc_del_hwdebug()
2940 child->thread.debug.dbcr1)) { in ppc_del_hwdebug()
2941 child->thread.debug.dbcr0 &= ~DBCR0_IDM; in ppc_del_hwdebug()
2942 child->thread.regs->msr &= ~MSR_DE; in ppc_del_hwdebug()
2951 bp = thread->ptrace_bps[0]; in ppc_del_hwdebug()
2954 thread->ptrace_bps[0] = NULL; in ppc_del_hwdebug()
2959 if (child->thread.hw_brk.address == 0) in ppc_del_hwdebug()
2962 child->thread.hw_brk.address = 0; in ppc_del_hwdebug()
2963 child->thread.hw_brk.type = 0; in ppc_del_hwdebug()
2987 || (child->thread.regs == NULL)) in arch_ptrace()
2994 CHECK_FULL_REGS(child->thread.regs); in arch_ptrace()
3004 memcpy(&tmp, &child->thread.TS_FPR(fpidx), in arch_ptrace()
3007 tmp = child->thread.fp_state.fpscr; in arch_ptrace()
3022 || (child->thread.regs == NULL)) in arch_ptrace()
3029 CHECK_FULL_REGS(child->thread.regs); in arch_ptrace()
3037 memcpy(&child->thread.TS_FPR(fpidx), &data, in arch_ptrace()
3040 child->thread.fp_state.fpscr = data; in arch_ptrace()
3114 ret = put_user(child->thread.debug.dac1, datalp); in arch_ptrace()
3116 dabr_fake = ((child->thread.hw_brk.address & (~HW_BRK_TYPE_DABR)) | in arch_ptrace()
3117 (child->thread.hw_brk.type & HW_BRK_TYPE_DABR)); in arch_ptrace()