Lines Matching refs:lwp

306 lwp_load(klwp_t *lwp, gregset_t grp, uintptr_t thrptr)  in lwp_load()  argument
308 struct regs *rp = lwptoregs(lwp); in lwp_load()
310 setgregs(lwp, grp); in lwp_load()
327 if (lwp_getdatamodel(lwp) == DATAMODEL_ILP32) { in lwp_load()
329 (void) lwp_setprivate(lwp, _LWP_GSBASE, thrptr); in lwp_load()
349 (void) lwp_setprivate(lwp, _LWP_FSBASE, in lwp_load()
353 (void) lwp_setprivate(lwp, _LWP_GSBASE, in lwp_load()
358 (void) lwp_setprivate(lwp, _LWP_GSBASE, thrptr); in lwp_load()
361 lwp->lwp_eosys = JUSTRETURN; in lwp_load()
362 lwptot(lwp)->t_post_sys = 1; in lwp_load()
369 lwp_setrval(klwp_t *lwp, int v1, int v2) in lwp_setrval() argument
371 lwptoregs(lwp)->r_ps &= ~PS_C; in lwp_setrval()
372 lwptoregs(lwp)->r_r0 = v1; in lwp_setrval()
373 lwptoregs(lwp)->r_r1 = v2; in lwp_setrval()
380 lwp_setsp(klwp_t *lwp, caddr_t sp) in lwp_setsp() argument
382 lwptoregs(lwp)->r_sp = (intptr_t)sp; in lwp_setsp()
389 lwp_forkregs(klwp_t *lwp, klwp_t *clwp) in lwp_forkregs() argument
393 struct regs *rp = lwptoregs(lwp); in lwp_forkregs()
406 bcopy(lwp->lwp_regs, clwp->lwp_regs, sizeof (struct regs)); in lwp_forkregs()
414 lwp_freeregs(klwp_t *lwp, int isexec) in lwp_freeregs() argument
459 lwp_segregs_save(klwp_t *lwp) in lwp_segregs_save() argument
462 pcb_t *pcb = &lwp->lwp_pcb; in lwp_segregs_save()
469 rp = lwptoregs(lwp); in lwp_segregs_save()
483 lwp->lwp_thread->t_post_sys = 1; in lwp_segregs_save()
488 ASSERT(bcmp(&CPU->cpu_gdt[GDT_LWPFS], &lwp->lwp_pcb.pcb_fsdesc, in lwp_segregs_save()
489 sizeof (lwp->lwp_pcb.pcb_fsdesc)) == 0); in lwp_segregs_save()
490 ASSERT(bcmp(&CPU->cpu_gdt[GDT_LWPGS], &lwp->lwp_pcb.pcb_gsdesc, in lwp_segregs_save()
491 sizeof (lwp->lwp_pcb.pcb_gsdesc)) == 0); in lwp_segregs_save()
509 update_sregs(struct regs *rp, klwp_t *lwp) in update_sregs() argument
511 pcb_t *pcb = &lwp->lwp_pcb; in update_sregs()
706 lwp_segregs_restore(klwp_t *lwp) in lwp_segregs_restore() argument
708 pcb_t *pcb = &lwp->lwp_pcb; in lwp_segregs_restore()
725 lwp_segregs_restore32(klwp_t *lwp) in lwp_segregs_restore32() argument
729 pcb_t *pcb = &lwp->lwp_pcb; in lwp_segregs_restore32()
731 ASSERT(VALID_LWP_DESC(&lwp->lwp_pcb.pcb_fsdesc)); in lwp_segregs_restore32()
732 ASSERT(VALID_LWP_DESC(&lwp->lwp_pcb.pcb_gsdesc)); in lwp_segregs_restore32()
749 lwp_attach_brand_hdlrs(klwp_t *lwp) in lwp_attach_brand_hdlrs() argument
751 kthread_t *t = lwptot(lwp); in lwp_attach_brand_hdlrs()
753 ASSERT(PROC_IS_BRANDED(lwptoproc(lwp))); in lwp_attach_brand_hdlrs()
775 lwp_detach_brand_hdlrs(klwp_t *lwp) in lwp_detach_brand_hdlrs() argument
777 kthread_t *t = lwptot(lwp); in lwp_detach_brand_hdlrs()
779 ASSERT(PROC_IS_BRANDED(lwptoproc(lwp))); in lwp_detach_brand_hdlrs()
816 lwp_installctx(klwp_t *lwp) in lwp_installctx() argument
818 kthread_t *t = lwptot(lwp); in lwp_installctx()
821 void (*restop)(klwp_t *) = lwp_getdatamodel(lwp) == DATAMODEL_NATIVE ? in lwp_installctx()
838 ASSERT(removectx(t, lwp, lwp_segregs_save, restop, in lwp_installctx()
842 installctx(t, lwp, lwp_segregs_save, restop, in lwp_installctx()
848 restop(lwp); in lwp_installctx()
862 caddr_t kstktop = (caddr_t)lwp->lwp_regs; in lwp_installctx()
864 caddr_t kstktop = ((caddr_t)lwp->lwp_regs - MINFRAME) + in lwp_installctx()
885 lwp_attach_brand_hdlrs(lwp); in lwp_installctx()
896 klwp_t *lwp = ttolwp(t); in setregs() local
897 pcb_t *pcb = &lwp->lwp_pcb; in setregs()
904 rp = lwptoregs(lwp); in setregs()
939 (void) lwp_setprivate(lwp, _LWP_FSBASE, args->thrptr); in setregs()
958 (void) lwp_setprivate(lwp, _LWP_GSBASE, args->thrptr); in setregs()
984 (void) lwp_setprivate(lwp, _LWP_GSBASE, args->thrptr); in setregs()
987 lwp->lwp_eosys = JUSTRETURN; in setregs()
1001 lwp_installctx(lwp); in setregs()
1018 lwp_getdatamodel(klwp_t *lwp) in lwp_getdatamodel() argument
1020 return (lwp->lwp_procp->p_model); in lwp_getdatamodel()