Lines Matching defs:pcp
227 prcommon_t *pcp = pnp->pr_pcommon;
294 ASSERT(p == pcp->prc_proc);
307 pcp->prc_selfopens++;
312 if (pcp->prc_writers > pcp->prc_selfopens) {
318 pcp->prc_flags |= PRC_EXCL;
319 } else if (pcp->prc_flags & PRC_EXCL) {
320 ASSERT(pcp->prc_writers > pcp->prc_selfopens);
325 pcp->prc_writers++;
335 pcp->prc_selfopens++;
336 ASSERT(pcp->prc_selfopens <= pcp->prc_writers);
337 if (pcp->prc_selfopens == pcp->prc_writers)
338 pcp->prc_flags &= ~PRC_EXCL;
420 prcommon_t *pcp = pnp->pr_pcommon;
475 ASSERT(pcp->prc_selfopens != 0);
476 --pcp->prc_selfopens;
478 ASSERT(pcp->prc_writers != 0);
479 if (--pcp->prc_writers == pcp->prc_selfopens)
480 pcp->prc_flags &= ~PRC_EXCL;
482 ASSERT(pcp->prc_writers >= pcp->prc_selfopens);
493 ASSERT(p == pcp->prc_proc);
522 if (pcp->prc_writers == 0 &&
524 !(pcp->prc_flags & PRC_DESTROY) &&
2779 prcommon_t *pcp;
2898 pcp = pnp->pr_common;
2907 pmkino(pcp->prc_tslot, pcp->prc_slot, pnp->pr_type);
2908 if ((pcp->prc_flags & PRC_LWP) && pcp->prc_tslot != -1) {
2911 p->p_lwpdir[pcp->prc_tslot].ld_entry->le_start;
3141 if ((t = pcp->prc_thread) == NULL) {
3449 prcommon_t *pcp;
3513 pcp = pnp->pr_common; /* the newly-allocated prcommon struct */
3516 prfreecommon(pcp);
3517 pcp = VTOP(vp)->pr_common;
3518 mutex_enter(&pcp->prc_mutex);
3519 ASSERT(pcp->prc_refcnt > 0);
3520 pcp->prc_refcnt++;
3521 mutex_exit(&pcp->prc_mutex);
3522 pnp->pr_common = pcp;
3526 pcp->prc_flags |= PRC_SYS;
3528 pcp->prc_flags |= PRC_DESTROY;
3529 pcp->prc_proc = p;
3530 pcp->prc_datamodel = p->p_model;
3531 pcp->prc_pid = p->p_pid;
3532 pcp->prc_slot = p->p_slot;
3534 pnp->pr_pcommon = pcp;
3549 pnp->pr_ino = ptoi(pcp->prc_pid);
3550 pnp->pr_common = pcp;
3551 pnp->pr_pcommon = pcp;
3760 prcommon_t *pcp;
3842 pcp = pnp->pr_common; /* the newly-allocated prcommon struct */
3845 prfreecommon(pcp);
3846 pcp = VTOP(vp)->pr_common;
3847 mutex_enter(&pcp->prc_mutex);
3848 ASSERT(pcp->prc_refcnt > 0);
3849 pcp->prc_refcnt++;
3850 mutex_exit(&pcp->prc_mutex);
3851 pnp->pr_common = pcp;
3854 pcp->prc_flags |= PRC_LWP;
3856 pcp->prc_flags |= PRC_SYS;
3858 pcp->prc_flags |= PRC_DESTROY;
3859 pcp->prc_proc = p;
3860 pcp->prc_datamodel = dpnp->pr_pcommon->prc_datamodel;
3861 pcp->prc_pid = p->p_pid;
3862 pcp->prc_slot = p->p_slot;
3863 pcp->prc_thread = t;
3864 pcp->prc_tid = tid;
3865 pcp->prc_tslot = tslot;
4365 prcommon_t *pcp;
4399 pcp = VTOP(dp)->pr_common;
4400 pnp->pr_ino = ptoi(pcp->prc_pid);
4401 pnp->pr_common = pcp;
4413 } else if (pcp->prc_thread == NULL) {
4449 prcommon_t *pcp;
4476 pcp = kmem_zalloc(sizeof (prcommon_t), KM_SLEEP);
4477 pcp->prc_refcnt = 1;
4478 pnp->pr_common = pcp;
4479 mutex_init(&pcp->prc_mutex, NULL, MUTEX_DEFAULT, NULL);
4480 cv_init(&pcp->prc_wait, NULL, CV_DEFAULT, NULL);
4614 prfreecommon(prcommon_t *pcp)
4616 mutex_enter(&pcp->prc_mutex);
4617 ASSERT(pcp->prc_refcnt > 0);
4618 if (--pcp->prc_refcnt != 0)
4619 mutex_exit(&pcp->prc_mutex);
4621 mutex_exit(&pcp->prc_mutex);
4622 ASSERT(pcp->prc_pollhead.ph_list == NULL);
4623 ASSERT(pcp->prc_refcnt == 0);
4624 ASSERT(pcp->prc_selfopens == 0 && pcp->prc_writers == 0);
4625 mutex_destroy(&pcp->prc_mutex);
4626 cv_destroy(&pcp->prc_wait);
4627 kmem_free(pcp, sizeof (prcommon_t));
5134 prcommon_t *pcp = pnp->pr_common;
5135 int zombie = ((pcp->prc_flags & PRC_DESTROY) != 0);
5149 if (pcp->prc_proc == NULL || pcp->prc_tslot == -1)
5159 pslot = pcp->prc_slot;
5160 tslot = pcp->prc_tslot;
5179 pcp->prc_datamodel != DATAMODEL_LP64)
5915 prcommon_t *pcp = pnp->pr_common;
5916 pollhead_t *php = &pcp->prc_pollhead;
5931 ASSERT(pnp->pr_common == pcp);
5978 p = pcp->prc_proc;
6001 if (pcp->prc_flags & PRC_LWP) {
6002 t = pcp->prc_thread;
6023 pcp->prc_flags |= PRC_POLL;