Lines Matching refs:td

87 	struct thread *td;
94 td = curthread;
95 p = td->td_proc;
101 regs = td->td_frame;
107 sf.sf_uc.uc_stack = td->td_sigstk;
112 sf.sf_uc.uc_mcontext.mc_tls = td->td_md.md_tls;
116 sf.sf_uc.uc_mcontext.mc_fpused = td->td_md.md_flags & MDTD_FPUSED;
119 if (td == PCPU_GET(fpcurthread))
120 MipsSaveCurFPState(td);
121 bcopy((void *)&td->td_frame->f0,
127 if ((td->td_pflags & TDP_ALTSTACK) != 0 && !oonstack &&
129 sfp = (struct sigframe *)(((uintptr_t)td->td_sigstk.ss_sp +
130 td->td_sigstk.ss_size - sizeof(struct sigframe))
167 sigexit(td, SIGILL);
189 sys_sigreturn(struct thread *td, struct sigreturn_args *uap)
198 error = set_mcontext(td, &uc.uc_mcontext);
202 kern_sigprocmask(td, SIG_SETMASK, &uc.uc_sigmask, NULL, 0);
208 ptrace_set_pc(struct thread *td, unsigned long addr)
210 td->td_frame->pc = (register_t) addr;
215 ptrace_read_int(struct thread *td, off_t addr, int *v)
218 if (proc_readmem(td, td->td_proc, addr, v, sizeof(*v)) != sizeof(*v))
224 ptrace_write_int(struct thread *td, off_t addr, int v)
227 if (proc_writemem(td, td->td_proc, addr, &v, sizeof(v)) != sizeof(v))
233 ptrace_single_step(struct thread *td)
236 struct trapframe *locr0 = td->td_frame;
242 p = td->td_proc;
247 ptrace_read_int(td, (off_t)locr0->pc, &curinstr);
256 if (td->td_md.md_ss_addr) {
258 p->p_comm, p->p_pid, td->td_md.md_ss_addr, va); /* XXX */
261 td->td_md.md_ss_addr = va;
265 ptrace_read_int(td, (off_t)va, &td->td_md.md_ss_instr);
270 i = ptrace_write_int (td, va, bpinstr);
299 fill_regs(struct thread *td, struct reg *regs)
301 memcpy(regs, td->td_frame, sizeof(struct reg));
306 set_regs(struct thread *td, struct reg *regs)
311 f = (struct trapframe *) td->td_frame;
316 memcpy(td->td_frame, regs, sizeof(struct reg));
322 get_mcontext(struct thread *td, mcontext_t *mcp, int flags)
326 tp = td->td_frame;
330 bcopy((void *)&td->td_frame->zero, (void *)&mcp->mc_regs,
333 mcp->mc_fpused = td->td_md.md_flags & MDTD_FPUSED;
335 bcopy((void *)&td->td_frame->f0, (void *)&mcp->mc_fpregs,
344 mcp->mc_pc = td->td_frame->pc;
345 mcp->mullo = td->td_frame->mullo;
346 mcp->mulhi = td->td_frame->mulhi;
347 mcp->mc_tls = td->td_md.md_tls;
352 set_mcontext(struct thread *td, mcontext_t *mcp)
356 tp = td->td_frame;
357 bcopy((void *)&mcp->mc_regs, (void *)&td->td_frame->zero,
360 td->td_md.md_flags = mcp->mc_fpused & MDTD_FPUSED;
362 bcopy((void *)&mcp->mc_fpregs, (void *)&td->td_frame->f0,
365 td->td_frame->pc = mcp->mc_pc;
366 td->td_frame->mullo = mcp->mullo;
367 td->td_frame->mulhi = mcp->mulhi;
368 td->td_md.md_tls = mcp->mc_tls;
375 fill_fpregs(struct thread *td, struct fpreg *fpregs)
377 if (td == PCPU_GET(fpcurthread))
378 MipsSaveCurFPState(td);
379 memcpy(fpregs, &td->td_frame->f0, sizeof(struct fpreg));
384 set_fpregs(struct thread *td, struct fpreg *fpregs)
386 if (PCPU_GET(fpcurthread) == td)
388 memcpy(&td->td_frame->f0, fpregs, sizeof(struct fpreg));
400 exec_setregs(struct thread *td, struct image_params *imgp, u_long stack)
403 bzero((caddr_t)td->td_frame, sizeof(struct trapframe));
410 td->td_frame->sp = ((register_t) stack) & ~(sizeof(__int64_t) - 1);
434 td->td_frame->sp -= 65536;
437 td->td_frame->pc = imgp->entry_addr & ~3;
438 td->td_frame->t9 = imgp->entry_addr & ~3; /* abicall req */
439 td->td_frame->sr = MIPS_SR_KSU_USER | MIPS_SR_EXL | MIPS_SR_INT_IE |
442 td->td_frame->sr |= MIPS_SR_PX;
444 td->td_frame->sr |= MIPS_SR_PX | MIPS_SR_UX | MIPS_SR_KX;
460 td->td_frame->a0 = (register_t) stack;
461 td->td_frame->a1 = 0;
462 td->td_frame->a2 = 0;
463 td->td_frame->a3 = (register_t)imgp->ps_strings;
465 td->td_md.md_flags &= ~MDTD_FPUSED;
466 if (PCPU_GET(fpcurthread) == td)
468 td->td_md.md_ss_addr = 0;
472 ptrace_clear_single_step(struct thread *td)
477 p = td->td_proc;
479 if (!td->td_md.md_ss_addr)
485 i = ptrace_write_int (td, td->td_md.md_ss_addr, td->td_md.md_ss_instr);
491 p->p_comm, p->p_pid, td->td_md.md_ss_addr,
492 td->td_md.md_ss_instr);
494 td->td_md.md_ss_addr = 0;