Lines Matching defs:pcp
249 pollcache_t *pcp, nfds_t nfds, int *fdcntp)
265 ASSERT(MUTEX_HELD(&pcp->pc_lock));
266 if (pcp->pc_bitmap == NULL) {
282 start = ostart = pcp->pc_mapstart;
283 end = pcp->pc_mapend;
305 fd = bt_getlowbit(pcp->pc_bitmap, start, end);
319 pdp = pcache_lookup_fd(pcp, fd);
361 BT_CLEAR(pcp->pc_bitmap, fd);
387 * cleaner solution if we could pass pcp as
395 curthread->t_pollcache = pcp;
417 ASSERT(BT_TEST(pcp->pc_bitmap, fd));
496 BT_CLEAR(pcp->pc_bitmap, fd);
511 BT_CLEAR(pcp->pc_bitmap, fd);
527 ((pcp->pc_flag & PC_POLLWAKE) == 0)) {
528 BT_CLEAR(pcp->pc_bitmap, fd);
556 pcp->pc_mapstart = start;
569 pollcache_t *pcp;
614 pcp = pcache_alloc();
615 dpep->dpe_pcache = pcp;
616 pcp->pc_pid = -1;
636 pollcache_t *pcp;
658 pcp = dpep->dpe_pcache;
663 if (!is_epoll && curproc->p_pid != pcp->pc_pid) {
664 if (pcp->pc_pid != -1) {
668 pcp->pc_pid = curproc->p_pid;
741 VERIFY(pollstate_enter(pcp) == PSE_SUCCESS);
743 if (pcp->pc_bitmap == NULL) {
744 pcache_create(pcp, pollfdnum);
762 pdp = pcache_lookup_fd(pcp, fd);
784 pdp->pd_pcache = pcp;
785 pcache_insert_fd(pcp, pdp, pollfdnum);
839 ASSERT(pdp->pd_pcache == pcp);
840 if (fd >= pcp->pc_mapsize) {
841 mutex_exit(&pcp->pc_lock);
842 pcache_grow_map(pcp, fd);
843 mutex_enter(&pcp->pc_lock);
845 if (fd > pcp->pc_mapend) {
846 pcp->pc_mapend = fd;
855 BT_SET(pcp->pc_bitmap, fd);
887 * cleaner solution if we could pass pcp as
895 curthread->t_pollcache = pcp;
906 BT_SET(pcp->pc_bitmap, fd);
950 BT_CLEAR(pcp->pc_bitmap, fd);
962 cv_broadcast(&pcp->pc_cv);
963 pcache_wake_parents(pcp);
965 pollstate_exit(pcp);
993 pollcache_t *pcp;
1010 pcp = dpep->dpe_pcache;
1035 if (!is_epoll && curproc->p_pid != pcp->pc_pid) {
1036 if (pcp->pc_pid != -1) {
1041 pcp->pc_pid = curproc->p_pid;
1219 VERIFY(pollstate_enter(pcp) == PSE_SUCCESS);
1221 pcp->pc_flag &= ~PC_POLLWAKE;
1228 pcachelink_mark_stale(pcp);
1231 pcp, nfds, &fdcnt);
1236 pcachelink_purge_stale(pcp);
1241 if (pcp->pc_flag & PC_POLLWAKE)
1252 error = cv_timedwait_sig_hrtime(&pcp->pc_cv,
1253 &pcp->pc_lock, deadline);
1266 pollstate_exit(pcp);
1292 mutex_enter(&pcp->pc_lock);
1293 if (pcp->pc_hash == NULL) {
1298 mutex_exit(&pcp->pc_lock);
1303 mutex_exit(&pcp->pc_lock);
1306 pdp = pcache_lookup_fd(pcp, pollfd.fd);
1311 mutex_exit(&pcp->pc_lock);
1317 mutex_exit(&pcp->pc_lock);
1396 pollcache_t *pcp;
1414 pcp = dpep->dpe_pcache;
1418 res = pollstate_enter(pcp);
1424 rc = dp_pcache_poll(dpep, NULL, pcp, nfds, &fdcnt);
1428 pcachelink_assoc(pcp, ps->ps_pc_stack[0]);
1429 pollstate_exit(pcp);
1467 pollcache_t *pcp;
1479 pcp = dpep->dpe_pcache;
1480 ASSERT(pcp != NULL);
1486 hashtbl = pcp->pc_hash;
1487 for (i = 0; i < pcp->pc_hashsize; i++) {
1500 mutex_enter(&pcp->pc_no_exit);
1501 ASSERT(pcp->pc_busy >= 0);
1502 while (pcp->pc_busy > 0)
1503 cv_wait(&pcp->pc_busy_cv, &pcp->pc_no_exit);
1504 mutex_exit(&pcp->pc_no_exit);
1507 if (pcp->pc_parents != NULL || pcp->pc_children != NULL) {
1512 mutex_enter(&pcp->pc_lock);
1513 pcachelink_purge_all(pcp);
1514 mutex_exit(&pcp->pc_lock);
1517 pcache_destroy(pcp);
1603 pcachelink_mark_stale(pollcache_t *pcp)
1607 ASSERT(MUTEX_HELD(&pcp->pc_lock));
1609 plpn = &pcp->pc_children;
1610 for (pl = pcp->pc_children; pl != NULL; pl = *plpn) {
1633 pcachelink_purge_stale(pollcache_t *pcp)
1637 ASSERT(MUTEX_HELD(&pcp->pc_lock));
1639 plpn = &pcp->pc_children;
1640 for (pl = pcp->pc_children; pl != NULL; pl = *plpn) {
1663 pcachelink_purge_all(pollcache_t *pcp)
1667 ASSERT(MUTEX_HELD(&pcp->pc_lock));
1669 plpn = &pcp->pc_parents;
1670 for (pl = pcp->pc_parents; pl != NULL; pl = *plpn) {
1679 plpn = &pcp->pc_children;
1680 for (pl = pcp->pc_children; pl != NULL; pl = *plpn) {
1689 ASSERT(pcp->pc_parents == NULL);
1690 ASSERT(pcp->pc_children == NULL);