Lines Matching refs:ufp

285 	uf_entry_t *ufp = &fip->fi_list[fd];
288 ASSERT((ufp->uf_busy == 0 && incr == 1) ||
289 (ufp->uf_busy == 1 && incr == -1));
290 ASSERT(MUTEX_HELD(&ufp->uf_lock));
296 ufp->uf_busy += incr;
587 uf_entry_t *ufp;
599 UF_ENTER(ufp, fip, fd);
601 if ((fp = ufp->uf_file) == NULL) {
602 UF_EXIT(ufp);
609 ufp->uf_refcnt++;
613 UF_EXIT(ufp);
631 uf_entry_t *ufp;
645 * If ufp is reserved but has no file pointer, it's in the
657 UF_ENTER(ufp, fip, fd);
658 while (ufp->uf_busy && ufp->uf_file == NULL) {
660 cv_wait_stop(&ufp->uf_wanted_cv, &ufp->uf_lock, 250);
661 UF_EXIT(ufp);
663 UF_ENTER(ufp, fip, fd);
665 if ((fp = ufp->uf_file) == NULL) {
666 ASSERT(ufp->uf_fpollinfo == NULL);
667 ASSERT(ufp->uf_flag == 0);
669 ufp->uf_file = newfp;
670 UF_EXIT(ufp);
676 UF_ENTER(ufp, fip, fd);
677 if ((fp = ufp->uf_file) == NULL) {
678 UF_EXIT(ufp);
683 ASSERT(ufp->uf_busy);
684 ufp->uf_file = NULL;
685 ufp->uf_flag = 0;
699 ASSERT(ufp->uf_refcnt == 0 || p->p_lwpcnt > 1);
700 if (ufp->uf_refcnt > 0) {
706 * To do this, we must drop ufp->uf_lock and then
708 * and ufp->uf_lock at the same time). ufp->uf_lock
710 * (set_active_fd() is called while holding ufp->uf_lock).
717 UF_EXIT(ufp);
724 UF_ENTER(ufp, fip, fd);
725 ASSERT(ufp->uf_file == NULL);
727 if (ufp->uf_refcnt > 0) {
742 UF_EXIT(ufp);
747 UF_ENTER(ufp, fip, fd);
748 ASSERT(ufp->uf_file == NULL);
754 while (ufp->uf_refcnt > 0) {
755 cv_wait_stop(&ufp->uf_closing_cv, &ufp->uf_lock, 250);
757 * cv_wait_stop() drops ufp->uf_lock, so the file list
759 * ufp and let UF_ENTER() find and lock the current ufp.
761 UF_EXIT(ufp);
762 UF_ENTER(ufp, fip, fd);
769 if (ufp->uf_fpollinfo != NULL)
770 checkwfdlist(fp->f_vnode, ufp->uf_fpollinfo);
782 pfd = ufp->uf_portfd;
783 ufp->uf_portfd = NULL;
784 fpip = ufp->uf_fpollinfo;
785 ufp->uf_fpollinfo = NULL;
788 UF_EXIT(ufp);
812 uf_entry_t *ufp;
814 UF_ENTER(ufp, fip, fd);
815 ASSERT(ufp->uf_refcnt > 0);
817 if (--ufp->uf_refcnt == 0)
818 cv_broadcast(&ufp->uf_closing_cv);
819 UF_EXIT(ufp);
828 uf_entry_t *ufp;
830 UF_ENTER(ufp, fip, fd);
831 ASSERT(ufp->uf_refcnt > 0);
832 if (--ufp->uf_refcnt == 0)
833 cv_broadcast(&ufp->uf_closing_cv);
834 UF_EXIT(ufp);
889 uf_entry_t *ufp;
891 ufp = fip->fi_list;
892 for (fd = 0; fd < fip->fi_nfiles; fd++, ufp++) {
893 if ((fp = ufp->uf_file) != NULL) {
894 ufp->uf_file = NULL;
895 if (ufp->uf_portfd != NULL) {
898 pfd = ufp->uf_portfd;
899 ufp->uf_portfd = NULL;
902 ASSERT(ufp->uf_fpollinfo == NULL);
992 uf_entry_t *ufp;
1027 UF_ENTER(ufp, fip, fd);
1029 ASSERT(ufp->uf_file == NULL);
1030 ufp->uf_file = fp;
1031 UF_EXIT(ufp);
1173 uf_entry_t *ufp;
1180 UF_ENTER(ufp, fip, fd);
1184 UF_ENTER(ufp, fip, fd);
1185 ASSERT(ufp->uf_busy);
1187 ASSERT(ufp->uf_fpollinfo == NULL);
1188 ASSERT(ufp->uf_flag == 0);
1189 ufp->uf_file = fp;
1190 cv_broadcast(&ufp->uf_wanted_cv);
1191 UF_EXIT(ufp);
1203 uf_entry_t *ufp;
1210 UF_ENTER(ufp, fip, fd);
1211 if ((fp = ufp->uf_file) == NULL)
1226 UF_EXIT(ufp);
1241 uf_entry_t *ufp;
1249 UF_ENTER(ufp, fip, fd);
1250 if ((fp = ufp->uf_file) == NULL)
1253 flag = ufp->uf_flag;
1259 UF_EXIT(ufp);
1285 uf_entry_t *ufp;
1291 UF_ENTER(ufp, fip, fd);
1292 if (ufp->uf_file == NULL)
1295 ufp->uf_flag = flags & FD_CLOEXEC;
1298 UF_EXIT(ufp);
1410 uf_entry_t *ufp;
1413 ufp = fip->fi_list;
1414 for (i = 0; i < fip->fi_nfiles; i++, ufp++) {
1415 if ((fp = ufp->uf_file) != NULL) {
1435 uf_entry_t *ufp;
1438 ufp = fip->fi_list;
1439 for (fd = 0; fd < fip->fi_nfiles; fd++, ufp++) {
1440 if ((fp = ufp->uf_file) != NULL &&
1441 ((ufp->uf_flag & FD_CLOEXEC) ||
1443 fpip = ufp->uf_fpollinfo;
1445 mutex_enter(&ufp->uf_lock);
1448 ufp->uf_file = NULL;
1449 ufp->uf_fpollinfo = NULL;
1450 ufp->uf_flag = 0;
1462 pfd = ufp->uf_portfd;
1463 ufp->uf_portfd = NULL;
1466 mutex_exit(&ufp->uf_lock);
1597 uf_entry_t *ufp;
1601 UF_ENTER(ufp, fip, fd);
1602 if ((fp = ufp->uf_file) != NULL &&
1604 UF_EXIT(ufp);
1608 UF_EXIT(ufp);
1624 uf_entry_t *ufp;
1628 UF_ENTER(ufp, fip, fd);
1629 if ((fp = ufp->uf_file) != NULL &&
1631 UF_EXIT(ufp);
1635 UF_EXIT(ufp);
1653 curthread_in_plist(uf_entry_t *ufp)
1657 ASSERT(MUTEX_HELD(&ufp->uf_lock));
1658 for (fpip = ufp->uf_fpollinfo; fpip; fpip = fpip->fp_next)
1673 uf_entry_t *ufp;
1677 UF_ENTER(ufp, fip, fd);
1678 ASSERT(!curthread_in_plist(ufp));
1679 UF_EXIT(ufp);
1694 uf_entry_t *ufp;
1697 UF_ENTER(ufp, fip, fd);
1698 rc = curthread_in_plist(ufp);
1699 UF_EXIT(ufp);
1713 struct uf_entry *ufp;
1719 UF_ENTER(ufp, fip, fd);
1724 ASSERT(!curthread_in_plist(ufp));
1728 ASSERT(ufp->uf_refcnt >= 1);
1729 fpip->fp_next = ufp->uf_fpollinfo;
1730 ufp->uf_fpollinfo = fpip;
1731 UF_EXIT(ufp);
1740 struct uf_entry *ufp;
1745 UF_ENTER(ufp, fip, fd);
1746 for (fpipp = &ufp->uf_fpollinfo;
1759 ASSERT(!curthread_in_plist(ufp));
1760 UF_EXIT(ufp);
1771 struct uf_entry *ufp;
1774 UF_ENTER(ufp, fip, fd);
1778 ASSERT(ufp->uf_refcnt >= 1);
1779 if (ufp->uf_portfd == NULL) {
1781 ufp->uf_portfd = pfd;
1784 pfd->pfd_next = ufp->uf_portfd;
1785 ufp->uf_portfd = pfd;
1788 UF_EXIT(ufp);
1794 struct uf_entry *ufp;
1797 UF_ENTER(ufp, fip, fd);
1801 ASSERT(ufp->uf_refcnt >= 1);
1802 if (ufp->uf_portfd == pfd) {
1804 ufp->uf_portfd = pfd->pfd_next;
1810 UF_EXIT(ufp);