Lines Matching defs:lwp

81  * NOTE:  'lwp' might not correspond to 'curthread' since this is
82 * called from code in /proc to set the registers of another lwp.
85 setfpregs(klwp_t *lwp, fpregset_t *fp)
90 model_t model = lwp_getdatamodel(lwp);
92 mpcb = lwptompcb(lwp);
93 pfp = lwptofpu(lwp);
150 if (lwp != ttolwp(curthread)) {
186 * Currently the lwp has floating point enabled.
193 if (lwp == ttolwp(curthread))
203 setfpregs32(klwp_t *lwp, fpregset32_t *fp)
208 setfpregs(lwp, &fpregs);
213 * NOTE: 'lwp' might not correspond to 'curthread' since this is
214 * called from code in /proc to set the registers of another lwp.
217 run_fpq(klwp_t *lwp, fpregset_t *fp)
225 if (lwp == ttolwp(curthread)) {
228 fp_runq(lwp->lwp_regs);
235 * NOTE: 'lwp' might not correspond to 'curthread' since this is
236 * called from code in /proc to set the registers of another lwp.
239 getfpregs(klwp_t *lwp, fpregset_t *fp)
242 model_t model = lwp_getdatamodel(lwp);
244 pfp = lwptofpu(lwp);
246 if (fpu_exists && ttolwp(curthread) == lwp)
268 if (fpu_exists && ttolwp(curthread) == lwp) {
310 getfpregs32(klwp_t *lwp, fpregset32_t *fp)
314 getfpregs(lwp, &fpregs);
321 * NOTE: 'lwp' might not correspond to 'curthread' since this is
322 * called from code in /proc to set the registers of another lwp.
327 setgregs(klwp_t *lwp, gregset_t grp)
329 struct regs *rp = lwptoregs(lwp);
330 kfpu_t *fp = lwptofpu(lwp);
333 int current = (lwp == curthread->t_lwp);
380 lwp->lwp_eosys = JUSTRETURN;
387 * NOTE: 'lwp' might not correspond to 'curthread' since this is
388 * called from code in /proc to get the registers of another lwp.
391 getgregs(klwp_t *lwp, gregset_t grp)
393 struct regs *rp = lwptoregs(lwp);
397 if (fpu_exists && ttolwp(curthread) == lwp) {
400 kfpu_t *fp = lwptofpu(lwp);
428 getgregs32(klwp_t *lwp, gregset32_t grp)
430 struct regs *rp = lwptoregs(lwp);
434 if (fpu_exists && ttolwp(curthread) == lwp) {
437 kfpu_t *fp = lwptofpu(lwp);
476 setgwins(klwp_t *lwp, gwindows_t *gwins)
478 struct machpcb *mpcb = lwptompcb(lwp);
509 setgwins32(klwp_t *lwp, gwindows32_t *gwins)
511 struct machpcb *mpcb = lwptompcb(lwp);
545 * NOTE: 'lwp' might not correspond to 'curthread' since this is
546 * called from code in /proc to set the registers of another lwp.
549 getgwins(klwp_t *lwp, gwindows_t *gwp)
551 struct machpcb *mpcb = lwptompcb(lwp);
581 getgwins32(klwp_t *lwp, gwindows32_t *gwp)
583 struct machpcb *mpcb = lwptompcb(lwp);
721 klwp_t *lwp = ttolwp(curthread);
722 struct machpcb *mpcb = lwptompcb(lwp);
738 caddr32_t sp1_32 = (uint32_t)lwptoregs(lwp)->r_sp;
761 klwp_t *lwp;
769 lwp = ttolwp(curthread);
770 mpcb = lwptompcb(lwp);
773 sp1 = (caddr_t)lwptoregs(lwp)->r_sp + STACK_BIAS;
796 klwp_t *lwp = ttolwp(curthread);
797 kfpu_t *fpp = lwptofpu(lwp);
798 struct machpcb *mpcb = lwptompcb(lwp);
805 rp = lwptoregs(lwp);
820 lwp->lwp_eosys = JUSTRETURN;
821 lwp->lwp_pcb.pcb_trap0addr = NULL; /* no trap 0 handler */
891 klwp_t *lwp = ttolwp(curthread);
917 if (lwp->lwp_pcb.pcb_xregstat != XREGNONE)
918 xregrestore(lwp, 0);
920 mpcb = lwptompcb(lwp);
921 rp = lwptoregs(lwp);
943 fpp = lwptofpu(lwp);
950 mpcb = lwptompcb(lwp);
971 !(lwp->lwp_sigaltstack.ss_flags & (SS_ONSTACK|SS_DISABLE)));
983 (SA((uintptr_t)lwp->lwp_sigaltstack.ss_sp) +
984 SA((int)lwp->lwp_sigaltstack.ss_size) - STACK_ALIGN -
994 !(lwp->lwp_sigaltstack.ss_flags & SS_ONSTACK))
1024 savecontext(tuc, &lwp->lwp_sigoldmask);
1030 xregs_setptr(lwp, tuc, sp);
1032 xregs_get(lwp, xregs);
1075 (ulong_t)lwp->lwp_arg[i]);
1087 * windows to the stack, it puts them in the lwp's pcb.
1091 getgwins(lwp, gwp);
1139 lwp->lwp_oldcontext = (uintptr_t)&fp->uc;
1142 lwp->lwp_sigaltstack.ss_flags |= SS_ONSTACK;
1144 if (lwp->lwp_ustack) {
1145 copyout_noerr(&lwp->lwp_sigaltstack,
1146 (stack_t *)lwp->lwp_ustack, sizeof (stack_t));
1220 klwp_t *lwp = ttolwp(curthread);
1248 if (lwp->lwp_pcb.pcb_xregstat != XREGNONE)
1249 xregrestore(lwp, 0);
1251 mpcb = lwptompcb(lwp);
1252 rp = lwptoregs(lwp);
1270 fpp = lwptofpu(lwp);
1278 mpcb = lwptompcb(lwp);
1300 !(lwp->lwp_sigaltstack.ss_flags & (SS_ONSTACK|SS_DISABLE)));
1312 (SA32((uintptr_t)lwp->lwp_sigaltstack.ss_sp) +
1313 SA32((int)lwp->lwp_sigaltstack.ss_size) -
1324 !(lwp->lwp_sigaltstack.ss_flags & SS_ONSTACK))
1354 savecontext32(tuc, &lwp->lwp_sigoldmask, dfq);
1360 xregs_setptr32(lwp, tuc, (caddr32_t)(uintptr_t)sp);
1362 xregs_get(lwp, xregs);
1403 (uint32_t)lwp->lwp_arg[i]);
1415 * windows to the stack, it puts them in the lwp's pcb.
1419 getgwins32(lwp, gwp);
1476 lwp->lwp_oldcontext = (uintptr_t)&fp->uc;
1479 lwp->lwp_sigaltstack.ss_flags |= SS_ONSTACK;
1480 if (lwp->lwp_ustack) {
1484 (caddr32_t)(uintptr_t)lwp->lwp_sigaltstack.ss_sp;
1485 stk32.ss_size = (size32_t)lwp->lwp_sigaltstack.ss_size;
1486 stk32.ss_flags = (int32_t)lwp->lwp_sigaltstack.ss_flags;
1488 copyout_noerr(&stk32, (stack32_t *)lwp->lwp_ustack,
1545 * Load user registers into lwp. Called only from syslwp_create().
1550 lwp_load(klwp_t *lwp, gregset_t grp, uintptr_t thrptr)
1552 setgregs(lwp, grp);
1553 if (lwptoproc(lwp)->p_model == DATAMODEL_ILP32)
1554 lwptoregs(lwp)->r_tstate = TSTATE_USER32 | TSTATE_MM_TSO;
1556 lwptoregs(lwp)->r_tstate = TSTATE_USER64 | TSTATE_MM_TSO;
1559 lwptoregs(lwp)->r_tstate &= ~TSTATE_PEF;
1560 lwp->lwp_eosys = JUSTRETURN;
1561 lwptot(lwp)->t_post_sys = 1;
1565 * set syscall()'s return values for a lwp.
1568 lwp_setrval(klwp_t *lwp, int v1, int v2)
1570 struct regs *rp = lwptoregs(lwp);
1578 * set stack pointer for a lwp
1581 lwp_setsp(klwp_t *lwp, caddr_t sp)
1583 struct regs *rp = lwptoregs(lwp);
1596 klwp_t *lwp = ttolwp(curthread);
1598 if (lwp->lwp_pcb.pcb_flags & ASYNC_HWERR) {
1599 lwp->lwp_pcb.pcb_flags &= ~ASYNC_HWERR;
1640 * When this routine is invoked, the process is just about to add a new lwp;
1658 * This routine is invoked immediately after the lwp has added a mapping
1672 * lwp has mapped shared memory and is no longer safe