Lines Matching refs:pdp

740 	polldat_t	*pdp;  in pollwakeup()  local
762 for (pdp = php->ph_list; pdp; pdp = pdp->pd_next) in pollwakeup()
767 for (pdp = php->ph_list; pdp; pdp = pdp->pd_next) in pollwakeup()
770 ASSERT(pdp != NULL); in pollwakeup()
772 pdp = php->ph_list; in pollwakeup()
775 first = pdp; in pollwakeup()
777 if ((pdp->pd_events & events) || in pollwakeup()
782 if (pdp->pd_portev != NULL) { in pollwakeup()
783 port_kevent_t *pkevp = pdp->pd_portev; in pollwakeup()
795 (pdp->pd_events | POLLHUP | in pollwakeup()
833 pcp = pdp->pd_pcache; in pollwakeup()
842 pollnotify(pcp, pdp->pd_fd); in pollwakeup()
885 pdp = pdp->pd_next; in pollwakeup()
886 if (pdp == NULL) in pollwakeup()
887 pdp = php->ph_list; in pollwakeup()
888 if (pdp == first) in pollwakeup()
942 pollhead_insert(pollhead_t *php, polldat_t *pdp) in pollhead_insert() argument
945 ASSERT(pdp->pd_next == NULL); in pollhead_insert()
953 ASSERT(wp != pdp); in pollhead_insert()
957 pdp->pd_next = php->ph_list; in pollhead_insert()
958 php->ph_list = pdp; in pollhead_insert()
966 pollhead_delete(pollhead_t *php, polldat_t *pdp) in pollhead_delete() argument
973 if (wp == pdp) { in pollhead_delete()
974 *wpp = pdp->pd_next; in pollhead_delete()
975 pdp->pd_next = NULL; in pollhead_delete()
982 ASSERT(wp != pdp); in pollhead_delete()
1047 polldat_t *pdp; in pcache_lookup_fd() local
1050 pdp = pcp->pc_hash[hashindex]; in pcache_lookup_fd()
1051 while (pdp != NULL) { in pcache_lookup_fd()
1052 if (pdp->pd_fd == fd) in pcache_lookup_fd()
1054 pdp = pdp->pd_hashnext; in pcache_lookup_fd()
1056 return (pdp); in pcache_lookup_fd()
1062 polldat_t *pdp; in pcache_alloc_fd() local
1064 pdp = kmem_zalloc(sizeof (polldat_t), KM_SLEEP); in pcache_alloc_fd()
1066 pdp->pd_ref = kmem_zalloc(sizeof (xref_t) * nsets, KM_SLEEP); in pcache_alloc_fd()
1067 pdp->pd_nsets = nsets; in pcache_alloc_fd()
1069 return (pdp); in pcache_alloc_fd()
1077 pcache_insert_fd(pollcache_t *pcp, polldat_t *pdp, nfds_t nfds) in pcache_insert_fd() argument
1086 fd = pdp->pd_fd; in pcache_insert_fd()
1088 pdp->pd_hashnext = pcp->pc_hash[hashindex]; in pcache_insert_fd()
1089 pcp->pc_hash[hashindex] = pdp; in pcache_insert_fd()
1098 for (pdp1 = pdp->pd_hashnext; pdp1; pdp1 = pdp1->pd_hashnext) { in pcache_insert_fd()
1099 ASSERT(pdp->pd_fd != pdp1->pd_fd); in pcache_insert_fd()
1115 polldat_t *pdp, *pdp1; in pcache_grow_hashtbl() local
1137 pdp = oldtbl[i]; in pcache_grow_hashtbl()
1138 while (pdp != NULL) { in pcache_grow_hashtbl()
1139 pdp1 = pdp->pd_hashnext; in pcache_grow_hashtbl()
1140 pcache_insert_fd(pcp, pdp, nfds); in pcache_grow_hashtbl()
1141 pdp = pdp1; in pcache_grow_hashtbl()
1186 polldat_t *pdp; in pcache_clean() local
1191 for (pdp = hashtbl[i]; pdp; pdp = pdp->pd_hashnext) { in pcache_clean()
1192 if (pdp->pd_php != NULL) { in pcache_clean()
1193 pollhead_delete(pdp->pd_php, pdp); in pcache_clean()
1194 pdp->pd_php = NULL; in pcache_clean()
1196 if (pdp->pd_fp != NULL) { in pcache_clean()
1197 delfpollinfo(pdp->pd_fd); in pcache_clean()
1198 pdp->pd_fp = NULL; in pcache_clean()
1205 pcacheset_invalidate(pollstate_t *ps, polldat_t *pdp) in pcacheset_invalidate() argument
1208 int fd = pdp->pd_fd; in pcacheset_invalidate()
1213 ASSERT(pdp->pd_fp == NULL); in pcacheset_invalidate()
1215 pdp->pd_events = 0; in pcacheset_invalidate()
1220 ASSERT(pdp->pd_ref != NULL); in pcacheset_invalidate()
1221 refp = &pdp->pd_ref[i]; in pcacheset_invalidate()
1228 pdp->pd_count--; in pcacheset_invalidate()
1240 pdp->pd_count--; in pcacheset_invalidate()
1248 ASSERT(pdp->pd_count == 0); in pcacheset_invalidate()
1262 polldat_t *pdp; in pcache_insert() local
1296 pdp = pcache_lookup_fd(pcp, fd); in pcache_insert()
1297 if (pdp == NULL) { in pcache_insert()
1299 pdp = pcache_alloc_fd(ps->ps_nsets); in pcache_insert()
1306 if ((pdp->pd_count > 0) && (pdp->pd_fp == NULL)) { in pcache_insert()
1307 pcacheset_invalidate(ps, pdp); in pcache_insert()
1308 ASSERT(pdp->pd_next == NULL); in pcache_insert()
1310 if (pdp->pd_count == 0) { in pcache_insert()
1311 pdp->pd_fd = fd; in pcache_insert()
1312 pdp->pd_fp = fp; in pcache_insert()
1314 pdp->pd_thread = curthread; in pcache_insert()
1315 pdp->pd_pcache = pcp; in pcache_insert()
1320 ASSERT(pdp->pd_next == NULL); in pcache_insert()
1331 ASSERT(pdp->pd_fp == fp); in pcache_insert()
1341 pdp->pd_events |= pollfdp->events; in pcache_insert()
1343 pdp->pd_count++; in pcache_insert()
1354 ASSERT(pdp->pd_ref != NULL); in pcache_insert()
1355 refp = &pdp->pd_ref[which]; in pcache_insert()
1375 pcache_insert_fd(ps->ps_pcache, pdp, ps->ps_nfds); in pcache_insert()
1378 if (pdp->pd_php == NULL) { in pcache_insert()
1379 pollhead_insert(memphp, pdp); in pcache_insert()
1380 pdp->pd_php = memphp; in pcache_insert()
1382 if (memphp != pdp->pd_php) { in pcache_insert()
1388 pollhead_delete(pdp->pd_php, pdp); in pcache_insert()
1389 pollhead_insert(memphp, pdp); in pcache_insert()
1390 pdp->pd_php = memphp; in pcache_insert()
1417 polldat_t *pdp; in pcache_delete_fd() local
1423 pdp = pcache_lookup_fd(pcp, fd); in pcache_delete_fd()
1424 ASSERT(pdp != NULL); in pcache_delete_fd()
1425 ASSERT(pdp->pd_count > 0); in pcache_delete_fd()
1426 ASSERT(pdp->pd_ref != NULL); in pcache_delete_fd()
1427 refp = &pdp->pd_ref[which]; in pcache_delete_fd()
1428 if (pdp->pd_count == 1) { in pcache_delete_fd()
1429 pdp->pd_events = 0; in pcache_delete_fd()
1433 if (pdp->pd_php) { in pcache_delete_fd()
1440 pollhead_delete(pdp->pd_php, pdp); in pcache_delete_fd()
1441 pdp->pd_php = NULL; in pcache_delete_fd()
1443 pdp->pd_count = 0; in pcache_delete_fd()
1444 if (pdp->pd_fp != NULL) { in pcache_delete_fd()
1445 pdp->pd_fp = NULL; in pcache_delete_fd()
1459 pcacheset_invalidate(ps, pdp); in pcache_delete_fd()
1460 ASSERT(pdp->pd_php == NULL); in pcache_delete_fd()
1472 pdp->pd_count--; in pcache_delete_fd()
1495 polldat_t *pdp; in pcache_update_xref() local
1497 pdp = pcache_lookup_fd(pcp, fd); in pcache_update_xref()
1498 ASSERT(pdp != NULL); in pcache_update_xref()
1499 ASSERT(pdp->pd_ref != NULL); in pcache_update_xref()
1500 pdp->pd_ref[which].xf_position = pos; in pcache_update_xref()
1514 polldat_t *pdp; in pollchecksanity() local
1529 pdp = pcache_lookup_fd(pcp, fd); in pollchecksanity()
1530 ASSERT(pdp != NULL); in pollchecksanity()
1532 ASSERT(pdp->pd_fp == fp); in pollchecksanity()
1536 if (pdp->pd_php == NULL) in pollchecksanity()
1879 polldat_t *pdp; in pcache_poll() local
1914 pdp = pcache_lookup_fd(pcp, fd); in pcache_poll()
1915 ASSERT(pdp != NULL); in pcache_poll()
1916 ASSERT(pdp->pd_ref != NULL); in pcache_poll()
1917 refp = &pdp->pd_ref[which]; in pcache_poll()
1931 if (pdp->pd_fp == NULL) { in pcache_poll()
1932 ASSERT(pdp->pd_count > 0); in pcache_poll()
1948 pcacheset_invalidate(ps, pdp); in pcache_poll()
1974 ASSERT(pdp->pd_fp == fp); in pcache_poll()
1980 ASSERT(pdp->pd_php == NULL || in pcache_poll()
1981 MUTEX_NOT_HELD(PHLOCK(pdp->pd_php))); in pcache_poll()
2013 if (php != NULL && pdp->pd_php != NULL && in pcache_poll()
2014 php != pdp->pd_php) { in pcache_poll()
2016 pollhead_delete(pdp->pd_php, pdp); in pcache_poll()
2017 pdp->pd_php = php; in pcache_poll()
2018 pollhead_insert(php, pdp); in pcache_poll()
2038 error = plist_chkdupfd(fp, pdp, ps, in pcache_poll()
2059 if ((pdp->pd_php != NULL) && in pcache_poll()
2060 (pollfdp[entry].events == pdp->pd_events) && in pcache_poll()
2068 if ((pdp->pd_php == NULL) && (php != NULL)) { in pcache_poll()
2069 pdp->pd_php = php; in pcache_poll()
2070 pollhead_insert(php, pdp); in pcache_poll()
2087 error = plist_chkdupfd(fp, pdp, ps, in pcache_poll()
2200 polldat_t *pdp; in pcache_clean_entry() local
2207 pdp = pcache_lookup_fd(pcp, fd); in pcache_clean_entry()
2208 ASSERT(pdp != NULL); in pcache_clean_entry()
2213 pdp->pd_fp = NULL; in pcache_clean_entry()
2222 ASSERT(pdp->pd_ref != NULL); in pcache_clean_entry()
2227 refp = &pdp->pd_ref[i]; in pcache_clean_entry()
2250 if (pdp->pd_php) { in pcache_clean_entry()
2251 pollwakeup(pdp->pd_php, POLLHUP); in pcache_clean_entry()
2252 pollhead_delete(pdp->pd_php, pdp); in pcache_clean_entry()
2253 pdp->pd_php = NULL; in pcache_clean_entry()
2409 polldat_t *pdp; in pollhead_clean() local
2421 pdp = php->ph_list; in pollhead_clean()
2422 ASSERT(pdp->pd_php == php); in pollhead_clean()
2423 if (pdp->pd_thread == NULL) { in pollhead_clean()
2429 php->ph_list = pdp->pd_next; in pollhead_clean()
2430 pdp->pd_php = NULL; in pollhead_clean()
2431 pdp->pd_next = NULL; in pollhead_clean()
2434 ps = pdp->pd_thread->t_pollstate; in pollhead_clean()
2436 pcp = pdp->pd_pcache; in pollhead_clean()
2451 if (pdp->pd_php == php) { in pollhead_clean()
2452 ASSERT(pdp == php->ph_list); in pollhead_clean()
2453 php->ph_list = pdp->pd_next; in pollhead_clean()
2454 pdp->pd_php = NULL; in pollhead_clean()
2455 pdp->pd_next = NULL; in pollhead_clean()
2522 polldat_t *pdp; in pollcheckphlist() local
2530 pdp = stp->sd_pollist.ph_list; in pollcheckphlist()
2531 while (pdp) { in pollcheckphlist()
2532 ASSERT(pdp->pd_thread != curthread); in pollcheckphlist()
2533 pdp = pdp->pd_next; in pollcheckphlist()
2552 polldat_t *pdp; in pollcheckxref() local
2560 pdp = pcache_lookup_fd(pcp, pollfdp[i].fd); in pollcheckxref()
2561 ASSERT(pdp != NULL); in pollcheckxref()
2562 ASSERT(pdp->pd_ref != NULL); in pollcheckxref()
2563 refp = &pdp->pd_ref[cacheindex]; in pollcheckxref()
2566 ASSERT(pollfdp[refp->xf_position].fd == pdp->pd_fd); in pollcheckxref()
2574 if (pollfdp[j].fd == pdp->pd_fd) { in pollcheckxref()
2598 polldat_t *pdp; in checkpolldat() local
2600 for (pdp = hashtbl[i]; pdp; pdp = pdp->pd_hashnext) { in checkpolldat()
2601 ASSERT(pdp->pd_ref != NULL); in checkpolldat()
2602 if (pdp->pd_count > 0) { in checkpolldat()
2609 refp = &pdp->pd_ref[j]; in checkpolldat()
2614 ASSERT(pdp->pd_fd == pollfd[refp->xf_position].fd); in checkpolldat()
2630 polldat_t *pdp; in checkwfdlist() local
2637 for (pdp = stp->sd_pollist.ph_list; pdp; pdp = pdp->pd_next) { in checkwfdlist()
2638 if (pdp->pd_thread != NULL && in checkwfdlist()
2639 pdp->pd_thread->t_procp == curthread->t_procp) { in checkwfdlist()
2641 if (pdp->pd_thread == fpip2->fp_thread) { in checkwfdlist()
2663 polldat_t *pdp; in pollcheckrevents() local
2666 pdp = pcache_lookup_fd(pcp, i); in pollcheckrevents()
2667 if (pdp && pdp->pd_fp != NULL) { in pollcheckrevents()
2671 ASSERT(pdp->pd_ref != NULL); in pollcheckrevents()
2672 refp = &pdp->pd_ref[cacheindex]; in pollcheckrevents()
2740 polldat_t *pdp, *pdp2; in pcache_destroy() local
2742 pdp = hashtbl[i]; in pcache_destroy()
2743 while (pdp != NULL) { in pcache_destroy()
2744 pdp2 = pdp->pd_hashnext; in pcache_destroy()
2745 if (pdp->pd_ref != NULL) { in pcache_destroy()
2746 kmem_free(pdp->pd_ref, sizeof (xref_t) * in pcache_destroy()
2747 pdp->pd_nsets); in pcache_destroy()
2749 kmem_free(pdp, sizeof (polldat_t)); in pcache_destroy()
2750 pdp = pdp2; in pcache_destroy()
2795 plist_chkdupfd(file_t *fp, polldat_t *pdp, pollstate_t *psp, pollfd_t *pollfdp, in plist_chkdupfd() argument
2833 if (php != NULL && pdp->pd_php != NULL && in plist_chkdupfd()
2834 php != pdp->pd_php) { in plist_chkdupfd()
2835 pollhead_delete(pdp->pd_php, pdp); in plist_chkdupfd()
2836 pdp->pd_php = php; in plist_chkdupfd()
2837 pollhead_insert(php, pdp); in plist_chkdupfd()