Lines Matching refs:task

171 static unsigned long get_user_msr(struct task_struct *task)  in get_user_msr()  argument
173 return task->thread.regs->msr | task->thread.fpexc_mode; in get_user_msr()
176 static int set_user_msr(struct task_struct *task, unsigned long msr) in set_user_msr() argument
178 task->thread.regs->msr &= ~MSR_DEBUGCHANGE; in set_user_msr()
179 task->thread.regs->msr |= msr & MSR_DEBUGCHANGE; in set_user_msr()
184 static int get_user_dscr(struct task_struct *task, unsigned long *data) in get_user_dscr() argument
186 *data = task->thread.dscr; in get_user_dscr()
190 static int set_user_dscr(struct task_struct *task, unsigned long dscr) in set_user_dscr() argument
192 task->thread.dscr = dscr; in set_user_dscr()
193 task->thread.dscr_inherit = 1; in set_user_dscr()
197 static int get_user_dscr(struct task_struct *task, unsigned long *data) in get_user_dscr() argument
202 static int set_user_dscr(struct task_struct *task, unsigned long dscr) in set_user_dscr() argument
212 static int set_user_trap(struct task_struct *task, unsigned long trap) in set_user_trap() argument
214 task->thread.regs->trap = trap & 0xfff0; in set_user_trap()
221 int ptrace_get_reg(struct task_struct *task, int regno, unsigned long *data) in ptrace_get_reg() argument
223 if ((task->thread.regs == NULL) || !data) in ptrace_get_reg()
227 *data = get_user_msr(task); in ptrace_get_reg()
232 return get_user_dscr(task, data); in ptrace_get_reg()
235 *data = ((unsigned long *)task->thread.regs)[regno]; in ptrace_get_reg()
245 int ptrace_put_reg(struct task_struct *task, int regno, unsigned long data) in ptrace_put_reg() argument
247 if (task->thread.regs == NULL) in ptrace_put_reg()
251 return set_user_msr(task, data); in ptrace_put_reg()
253 return set_user_trap(task, data); in ptrace_put_reg()
255 return set_user_dscr(task, data); in ptrace_put_reg()
258 ((unsigned long *)task->thread.regs)[regno] = data; in ptrace_put_reg()
842 const struct user_regset_view *task_user_regset_view(struct task_struct *task) in task_user_regset_view() argument
845 if (test_tsk_thread_flag(task, TIF_32BIT)) in task_user_regset_view()
852 void user_enable_single_step(struct task_struct *task) in user_enable_single_step() argument
854 struct pt_regs *regs = task->thread.regs; in user_enable_single_step()
858 task->thread.debug.dbcr0 &= ~DBCR0_BT; in user_enable_single_step()
859 task->thread.debug.dbcr0 |= DBCR0_IDM | DBCR0_IC; in user_enable_single_step()
866 set_tsk_thread_flag(task, TIF_SINGLESTEP); in user_enable_single_step()
869 void user_enable_block_step(struct task_struct *task) in user_enable_block_step() argument
871 struct pt_regs *regs = task->thread.regs; in user_enable_block_step()
875 task->thread.debug.dbcr0 &= ~DBCR0_IC; in user_enable_block_step()
876 task->thread.debug.dbcr0 = DBCR0_IDM | DBCR0_BT; in user_enable_block_step()
883 set_tsk_thread_flag(task, TIF_SINGLESTEP); in user_enable_block_step()
886 void user_disable_single_step(struct task_struct *task) in user_disable_single_step() argument
888 struct pt_regs *regs = task->thread.regs; in user_disable_single_step()
898 task->thread.debug.dbcr0 &= ~(DBCR0_IC|DBCR0_BT); in user_disable_single_step()
902 if (!DBCR_ACTIVE_EVENTS(task->thread.debug.dbcr0, in user_disable_single_step()
903 task->thread.debug.dbcr1)) { in user_disable_single_step()
907 task->thread.debug.dbcr0 &= ~DBCR0_IDM; in user_disable_single_step()
914 clear_tsk_thread_flag(task, TIF_SINGLESTEP); in user_disable_single_step()
935 static int ptrace_set_debugreg(struct task_struct *task, unsigned long addr, in ptrace_set_debugreg() argument
940 struct thread_struct *thread = &(task->thread); in ptrace_set_debugreg()
1011 ptrace_triggered, NULL, task); in ptrace_set_debugreg()
1018 task->thread.hw_brk = hw_brk; in ptrace_set_debugreg()
1026 task->thread.debug.dac1 = data & ~0x3UL; in ptrace_set_debugreg()
1028 if (task->thread.debug.dac1 == 0) { in ptrace_set_debugreg()
1029 dbcr_dac(task) &= ~(DBCR_DAC1R | DBCR_DAC1W); in ptrace_set_debugreg()
1030 if (!DBCR_ACTIVE_EVENTS(task->thread.debug.dbcr0, in ptrace_set_debugreg()
1031 task->thread.debug.dbcr1)) { in ptrace_set_debugreg()
1032 task->thread.regs->msr &= ~MSR_DE; in ptrace_set_debugreg()
1033 task->thread.debug.dbcr0 &= ~DBCR0_IDM; in ptrace_set_debugreg()
1045 task->thread.debug.dbcr0 |= DBCR0_IDM; in ptrace_set_debugreg()
1049 dbcr_dac(task) &= ~(DBCR_DAC1R|DBCR_DAC1W); in ptrace_set_debugreg()
1051 dbcr_dac(task) |= DBCR_DAC1R; in ptrace_set_debugreg()
1053 dbcr_dac(task) |= DBCR_DAC1W; in ptrace_set_debugreg()
1054 task->thread.regs->msr |= MSR_DE; in ptrace_set_debugreg()