Lines Matching refs:fip
257 fd_find(uf_info_t *fip, int minfd) in fd_find() argument
261 ASSERT(MUTEX_HELD(&fip->fi_lock)); in fd_find()
262 ASSERT((fip->fi_nfiles & (fip->fi_nfiles + 1)) == 0); in fd_find()
264 for (fd = minfd; (uint_t)fd < fip->fi_nfiles; fd |= fd + 1) { in fd_find()
266 if (fip->fi_list[fd].uf_alloc == size) in fd_find()
269 ralloc += fip->fi_list[fd + size].uf_alloc; in fd_find()
270 if (fip->fi_list[fd].uf_alloc == ralloc + size) { in fd_find()
281 fd_reserve(uf_info_t *fip, int fd, int incr) in fd_reserve() argument
284 uf_entry_t *ufp = &fip->fi_list[fd]; in fd_reserve()
286 ASSERT((uint_t)fd < fip->fi_nfiles); in fd_reserve()
290 ASSERT(MUTEX_HELD(&fip->fi_lock)); in fd_reserve()
293 fip->fi_list[pfd].uf_alloc += incr; in fd_reserve()
299 flist_minsize(uf_info_t *fip) in flist_minsize() argument
308 ASSERT((fip->fi_nfiles & (fip->fi_nfiles + 1)) == 0); in flist_minsize()
310 for (fd = fip->fi_nfiles; fd != 0; fd >>= 1) in flist_minsize()
311 if (fip->fi_list[fd >> 1].uf_alloc != 0) in flist_minsize()
318 flist_nalloc(uf_info_t *fip) in flist_nalloc() argument
323 ASSERT(MUTEX_HELD(&fip->fi_lock)); in flist_nalloc()
324 ASSERT((fip->fi_nfiles & (fip->fi_nfiles + 1)) == 0); in flist_nalloc()
326 for (fd = fip->fi_nfiles; fd != 0; fd >>= 1) in flist_nalloc()
327 nalloc += fip->fi_list[fd >> 1].uf_alloc; in flist_nalloc()
339 uf_info_t *fip = P_FINFO(curproc); in flist_grow() local
349 mutex_enter(&fip->fi_lock); in flist_grow()
350 oldcnt = fip->fi_nfiles; in flist_grow()
352 mutex_exit(&fip->fi_lock); in flist_grow()
357 oldlist = fip->fi_list; in flist_grow()
397 fip->fi_list = newlist; in flist_grow()
412 fip->fi_nfiles = newcnt; in flist_grow()
431 mutex_exit(&fip->fi_lock); in flist_grow()
446 mutex_enter(&fip->fi_lock); in flist_grow()
447 urp->ur_next = fip->fi_rlist; in flist_grow()
448 fip->fi_rlist = urp; in flist_grow()
449 mutex_exit(&fip->fi_lock); in flist_grow()
585 uf_info_t *fip = P_FINFO(curproc); in getf() local
589 if ((uint_t)fd >= fip->fi_nfiles) in getf()
598 UF_ENTER(ufp, fip, fd); in getf()
603 if (fd == fip->fi_badfd && fip->fi_action > 0) in getf()
604 tsignal(curthread, fip->fi_action); in getf()
629 uf_info_t *fip = P_FINFO(p); in closeandsetf() local
636 if ((uint_t)fd >= fip->fi_nfiles) { in closeandsetf()
649 mutex_enter(&fip->fi_lock); in closeandsetf()
650 if (fd == fip->fi_badfd) { in closeandsetf()
651 mutex_exit(&fip->fi_lock); in closeandsetf()
652 if (fip->fi_action > 0) in closeandsetf()
653 tsignal(curthread, fip->fi_action); in closeandsetf()
656 UF_ENTER(ufp, fip, fd); in closeandsetf()
658 mutex_exit(&fip->fi_lock); in closeandsetf()
661 mutex_enter(&fip->fi_lock); in closeandsetf()
662 UF_ENTER(ufp, fip, fd); in closeandsetf()
667 fd_reserve(fip, fd, 1); in closeandsetf()
670 mutex_exit(&fip->fi_lock); in closeandsetf()
673 mutex_exit(&fip->fi_lock); in closeandsetf()
675 UF_ENTER(ufp, fip, fd); in closeandsetf()
723 UF_ENTER(ufp, fip, fd); in closeandsetf()
746 UF_ENTER(ufp, fip, fd); in closeandsetf()
761 UF_ENTER(ufp, fip, fd); in closeandsetf()
810 uf_info_t *fip = P_FINFO(curproc); in releasef() local
813 UF_ENTER(ufp, fip, fd); in releasef()
825 areleasef(int fd, uf_info_t *fip) in areleasef() argument
829 UF_ENTER(ufp, fip, fd); in areleasef()
884 closeall(uf_info_t *fip) in closeall() argument
890 ufp = fip->fi_list; in closeall()
891 for (fd = 0; fd < fip->fi_nfiles; fd++, ufp++) { in closeall()
906 kmem_free(fip->fi_list, fip->fi_nfiles * sizeof (uf_entry_t)); in closeall()
907 fip->fi_list = NULL; in closeall()
908 fip->fi_nfiles = 0; in closeall()
909 while (fip->fi_rlist != NULL) { in closeall()
910 uf_rlist_t *urp = fip->fi_rlist; in closeall()
911 fip->fi_rlist = urp->ur_next; in closeall()
987 uf_info_t *fip = P_FINFO(p); in ufalloc_file() local
1001 mutex_enter(&fip->fi_lock); in ufalloc_file()
1002 fd = fd_find(fip, start); in ufalloc_file()
1003 if (fd >= 0 && fd == fip->fi_badfd) { in ufalloc_file()
1005 mutex_exit(&fip->fi_lock); in ufalloc_file()
1011 mutex_exit(&fip->fi_lock); in ufalloc_file()
1019 nfiles = fip->fi_nfiles; in ufalloc_file()
1020 mutex_exit(&fip->fi_lock); in ufalloc_file()
1024 UF_ENTER(ufp, fip, fd); in ufalloc_file()
1025 fd_reserve(fip, fd, 1); in ufalloc_file()
1029 mutex_exit(&fip->fi_lock); in ufalloc_file()
1052 uf_info_t *fip = P_FINFO(p); in ufcanalloc() local
1062 mutex_enter(&fip->fi_lock); in ufcanalloc()
1063 current = flist_nalloc(fip); /* # of in-use descriptors */ in ufcanalloc()
1064 mutex_exit(&fip->fi_lock); in ufcanalloc()
1169 uf_info_t *fip = P_FINFO(curproc); in setf() local
1176 mutex_enter(&fip->fi_lock); in setf()
1177 UF_ENTER(ufp, fip, fd); in setf()
1178 fd_reserve(fip, fd, -1); in setf()
1179 mutex_exit(&fip->fi_lock); in setf()
1181 UF_ENTER(ufp, fip, fd); in setf()
1199 uf_info_t *fip = P_FINFO(curproc); in f_getfl() local
1204 if ((uint_t)fd >= fip->fi_nfiles) in f_getfl()
1207 UF_ENTER(ufp, fip, fd); in f_getfl()
1236 uf_info_t *fip = P_FINFO(curproc); in f_getfd_error() local
1242 if ((uint_t)fd >= fip->fi_nfiles) in f_getfd_error()
1245 UF_ENTER(ufp, fip, fd); in f_getfd_error()
1280 uf_info_t *fip = P_FINFO(curproc); in f_setfd_error() local
1284 if ((uint_t)fd >= fip->fi_nfiles) in f_setfd_error()
1287 UF_ENTER(ufp, fip, fd); in f_setfd_error()
1318 uf_info_t *fip = P_FINFO(curproc); in f_badfd() local
1332 mutex_enter(&fip->fi_lock); in f_badfd()
1333 badfd = fip->fi_badfd; in f_badfd()
1334 mutex_exit(&fip->fi_lock); in f_badfd()
1348 mutex_enter(&fip->fi_lock); in f_badfd()
1349 if (fip->fi_badfd != -1) { in f_badfd()
1351 mutex_exit(&fip->fi_lock); in f_badfd()
1355 fip->fi_action = action; in f_badfd()
1356 fip->fi_badfd = fdr; in f_badfd()
1357 mutex_exit(&fip->fi_lock); in f_badfd()
1403 fcnt_add(uf_info_t *fip, int incr) in fcnt_add() argument
1409 ufp = fip->fi_list; in fcnt_add()
1410 for (i = 0; i < fip->fi_nfiles; i++, ufp++) { in fcnt_add()
1426 close_exec(uf_info_t *fip) in close_exec() argument
1434 ufp = fip->fi_list; in close_exec()
1435 for (fd = 0; fd < fip->fi_nfiles; fd++, ufp++) { in close_exec()
1440 mutex_enter(&fip->fi_lock); in close_exec()
1442 fd_reserve(fip, fd, -1); in close_exec()
1443 mutex_exit(&fip->fi_lock); in close_exec()
1472 fip->fi_badfd = -1; in close_exec()
1473 fip->fi_action = -1; in close_exec()
1592 uf_info_t *fip = P_FINFO(curproc); in fisopen() local
1595 mutex_enter(&fip->fi_lock); in fisopen()
1596 for (fd = 0; fd < fip->fi_nfiles; fd++) { in fisopen()
1597 UF_ENTER(ufp, fip, fd); in fisopen()
1601 mutex_exit(&fip->fi_lock); in fisopen()
1606 mutex_exit(&fip->fi_lock); in fisopen()
1619 uf_info_t *fip = P_FINFO(curproc); in files_can_change_zones() local
1622 mutex_enter(&fip->fi_lock); in files_can_change_zones()
1623 for (fd = 0; fd < fip->fi_nfiles; fd++) { in files_can_change_zones()
1624 UF_ENTER(ufp, fip, fd); in files_can_change_zones()
1628 mutex_exit(&fip->fi_lock); in files_can_change_zones()
1633 mutex_exit(&fip->fi_lock); in files_can_change_zones()
1668 uf_info_t *fip = P_FINFO(curproc); in checkfpollinfo() local
1671 mutex_enter(&fip->fi_lock); in checkfpollinfo()
1672 for (fd = 0; fd < fip->fi_nfiles; fd++) { in checkfpollinfo()
1673 UF_ENTER(ufp, fip, fd); in checkfpollinfo()
1677 mutex_exit(&fip->fi_lock); in checkfpollinfo()
1689 uf_info_t *fip = P_FINFO(curproc); in infpollinfo() local
1693 UF_ENTER(ufp, fip, fd); in infpollinfo()
1711 uf_info_t *fip = P_FINFO(curproc); in addfpollinfo() local
1715 UF_ENTER(ufp, fip, fd); in addfpollinfo()
1739 uf_info_t *fip = P_FINFO(curproc); in delfpollinfo() local
1741 UF_ENTER(ufp, fip, fd); in delfpollinfo()
1768 uf_info_t *fip = P_FINFO(curproc); in addfd_port() local
1770 UF_ENTER(ufp, fip, fd); in addfd_port()
1791 uf_info_t *fip = P_FINFO(curproc); in delfd_port() local
1793 UF_ENTER(ufp, fip, fd); in delfd_port()