Lines Matching refs:fip

258 fd_find(uf_info_t *fip, int minfd)  in fd_find()  argument
262 ASSERT(MUTEX_HELD(&fip->fi_lock)); in fd_find()
263 ASSERT((fip->fi_nfiles & (fip->fi_nfiles + 1)) == 0); in fd_find()
265 for (fd = minfd; (uint_t)fd < fip->fi_nfiles; fd |= fd + 1) { in fd_find()
267 if (fip->fi_list[fd].uf_alloc == size) in fd_find()
270 ralloc += fip->fi_list[fd + size].uf_alloc; in fd_find()
271 if (fip->fi_list[fd].uf_alloc == ralloc + size) { in fd_find()
282 fd_reserve(uf_info_t *fip, int fd, int incr) in fd_reserve() argument
285 uf_entry_t *ufp = &fip->fi_list[fd]; in fd_reserve()
287 ASSERT((uint_t)fd < fip->fi_nfiles); in fd_reserve()
291 ASSERT(MUTEX_HELD(&fip->fi_lock)); in fd_reserve()
294 fip->fi_list[pfd].uf_alloc += incr; in fd_reserve()
300 flist_minsize(uf_info_t *fip) in flist_minsize() argument
309 ASSERT((fip->fi_nfiles & (fip->fi_nfiles + 1)) == 0); in flist_minsize()
311 for (fd = fip->fi_nfiles; fd != 0; fd >>= 1) in flist_minsize()
312 if (fip->fi_list[fd >> 1].uf_alloc != 0) in flist_minsize()
319 flist_nalloc(uf_info_t *fip) in flist_nalloc() argument
324 ASSERT(MUTEX_HELD(&fip->fi_lock)); in flist_nalloc()
325 ASSERT((fip->fi_nfiles & (fip->fi_nfiles + 1)) == 0); in flist_nalloc()
327 for (fd = fip->fi_nfiles; fd != 0; fd >>= 1) in flist_nalloc()
328 nalloc += fip->fi_list[fd >> 1].uf_alloc; in flist_nalloc()
340 uf_info_t *fip = P_FINFO(curproc); in flist_grow() local
350 mutex_enter(&fip->fi_lock); in flist_grow()
351 oldcnt = fip->fi_nfiles; in flist_grow()
353 mutex_exit(&fip->fi_lock); in flist_grow()
358 oldlist = fip->fi_list; in flist_grow()
398 fip->fi_list = newlist; in flist_grow()
413 fip->fi_nfiles = newcnt; in flist_grow()
432 mutex_exit(&fip->fi_lock); in flist_grow()
447 mutex_enter(&fip->fi_lock); in flist_grow()
448 urp->ur_next = fip->fi_rlist; in flist_grow()
449 fip->fi_rlist = urp; in flist_grow()
450 mutex_exit(&fip->fi_lock); in flist_grow()
586 uf_info_t *fip = P_FINFO(curproc); in getf() local
590 if ((uint_t)fd >= fip->fi_nfiles) in getf()
599 UF_ENTER(ufp, fip, fd); in getf()
604 if (fd == fip->fi_badfd && fip->fi_action > 0) in getf()
605 tsignal(curthread, fip->fi_action); in getf()
630 uf_info_t *fip = P_FINFO(p); in closeandsetf() local
637 if ((uint_t)fd >= fip->fi_nfiles) { in closeandsetf()
650 mutex_enter(&fip->fi_lock); in closeandsetf()
651 if (fd == fip->fi_badfd) { in closeandsetf()
652 mutex_exit(&fip->fi_lock); in closeandsetf()
653 if (fip->fi_action > 0) in closeandsetf()
654 tsignal(curthread, fip->fi_action); in closeandsetf()
657 UF_ENTER(ufp, fip, fd); in closeandsetf()
659 mutex_exit(&fip->fi_lock); in closeandsetf()
662 mutex_enter(&fip->fi_lock); in closeandsetf()
663 UF_ENTER(ufp, fip, fd); in closeandsetf()
668 fd_reserve(fip, fd, 1); in closeandsetf()
671 mutex_exit(&fip->fi_lock); in closeandsetf()
674 mutex_exit(&fip->fi_lock); in closeandsetf()
676 UF_ENTER(ufp, fip, fd); in closeandsetf()
724 UF_ENTER(ufp, fip, fd); in closeandsetf()
747 UF_ENTER(ufp, fip, fd); in closeandsetf()
762 UF_ENTER(ufp, fip, fd); in closeandsetf()
811 uf_info_t *fip = P_FINFO(curproc); in releasef() local
814 UF_ENTER(ufp, fip, fd); in releasef()
826 areleasef(int fd, uf_info_t *fip) in areleasef() argument
830 UF_ENTER(ufp, fip, fd); in areleasef()
885 closeall(uf_info_t *fip) in closeall() argument
891 ufp = fip->fi_list; in closeall()
892 for (fd = 0; fd < fip->fi_nfiles; fd++, ufp++) { in closeall()
907 kmem_free(fip->fi_list, fip->fi_nfiles * sizeof (uf_entry_t)); in closeall()
908 fip->fi_list = NULL; in closeall()
909 fip->fi_nfiles = 0; in closeall()
910 while (fip->fi_rlist != NULL) { in closeall()
911 uf_rlist_t *urp = fip->fi_rlist; in closeall()
912 fip->fi_rlist = urp->ur_next; in closeall()
990 uf_info_t *fip = P_FINFO(p); in ufalloc_file() local
1004 mutex_enter(&fip->fi_lock); in ufalloc_file()
1005 fd = fd_find(fip, start); in ufalloc_file()
1006 if (fd >= 0 && fd == fip->fi_badfd) { in ufalloc_file()
1008 mutex_exit(&fip->fi_lock); in ufalloc_file()
1014 mutex_exit(&fip->fi_lock); in ufalloc_file()
1022 nfiles = fip->fi_nfiles; in ufalloc_file()
1023 mutex_exit(&fip->fi_lock); in ufalloc_file()
1027 UF_ENTER(ufp, fip, fd); in ufalloc_file()
1028 fd_reserve(fip, fd, 1); in ufalloc_file()
1032 mutex_exit(&fip->fi_lock); in ufalloc_file()
1055 uf_info_t *fip = P_FINFO(p); in ufcanalloc() local
1065 mutex_enter(&fip->fi_lock); in ufcanalloc()
1066 current = flist_nalloc(fip); /* # of in-use descriptors */ in ufcanalloc()
1067 mutex_exit(&fip->fi_lock); in ufcanalloc()
1172 uf_info_t *fip = P_FINFO(curproc); in setf() local
1179 mutex_enter(&fip->fi_lock); in setf()
1180 UF_ENTER(ufp, fip, fd); in setf()
1181 fd_reserve(fip, fd, -1); in setf()
1182 mutex_exit(&fip->fi_lock); in setf()
1184 UF_ENTER(ufp, fip, fd); in setf()
1202 uf_info_t *fip = P_FINFO(curproc); in f_getfl() local
1207 if ((uint_t)fd >= fip->fi_nfiles) in f_getfl()
1210 UF_ENTER(ufp, fip, fd); in f_getfl()
1240 uf_info_t *fip = P_FINFO(curproc); in f_getfd_error() local
1246 if ((uint_t)fd >= fip->fi_nfiles) in f_getfd_error()
1249 UF_ENTER(ufp, fip, fd); in f_getfd_error()
1284 uf_info_t *fip = P_FINFO(curproc); in f_setfd_error() local
1288 if ((uint_t)fd >= fip->fi_nfiles) in f_setfd_error()
1291 UF_ENTER(ufp, fip, fd); in f_setfd_error()
1322 uf_info_t *fip = P_FINFO(curproc); in f_badfd() local
1336 mutex_enter(&fip->fi_lock); in f_badfd()
1337 badfd = fip->fi_badfd; in f_badfd()
1338 mutex_exit(&fip->fi_lock); in f_badfd()
1352 mutex_enter(&fip->fi_lock); in f_badfd()
1353 if (fip->fi_badfd != -1) { in f_badfd()
1355 mutex_exit(&fip->fi_lock); in f_badfd()
1359 fip->fi_action = action; in f_badfd()
1360 fip->fi_badfd = fdr; in f_badfd()
1361 mutex_exit(&fip->fi_lock); in f_badfd()
1407 fcnt_add(uf_info_t *fip, int incr) in fcnt_add() argument
1413 ufp = fip->fi_list; in fcnt_add()
1414 for (i = 0; i < fip->fi_nfiles; i++, ufp++) { in fcnt_add()
1430 close_exec(uf_info_t *fip) in close_exec() argument
1438 ufp = fip->fi_list; in close_exec()
1439 for (fd = 0; fd < fip->fi_nfiles; fd++, ufp++) { in close_exec()
1444 mutex_enter(&fip->fi_lock); in close_exec()
1446 fd_reserve(fip, fd, -1); in close_exec()
1447 mutex_exit(&fip->fi_lock); in close_exec()
1476 fip->fi_badfd = -1; in close_exec()
1477 fip->fi_action = -1; in close_exec()
1598 uf_info_t *fip = P_FINFO(curproc); in fisopen() local
1601 mutex_enter(&fip->fi_lock); in fisopen()
1602 for (fd = 0; fd < fip->fi_nfiles; fd++) { in fisopen()
1603 UF_ENTER(ufp, fip, fd); in fisopen()
1607 mutex_exit(&fip->fi_lock); in fisopen()
1612 mutex_exit(&fip->fi_lock); in fisopen()
1625 uf_info_t *fip = P_FINFO(curproc); in files_can_change_zones() local
1628 mutex_enter(&fip->fi_lock); in files_can_change_zones()
1629 for (fd = 0; fd < fip->fi_nfiles; fd++) { in files_can_change_zones()
1630 UF_ENTER(ufp, fip, fd); in files_can_change_zones()
1634 mutex_exit(&fip->fi_lock); in files_can_change_zones()
1639 mutex_exit(&fip->fi_lock); in files_can_change_zones()
1674 uf_info_t *fip = P_FINFO(curproc); in checkfpollinfo() local
1677 mutex_enter(&fip->fi_lock); in checkfpollinfo()
1678 for (fd = 0; fd < fip->fi_nfiles; fd++) { in checkfpollinfo()
1679 UF_ENTER(ufp, fip, fd); in checkfpollinfo()
1683 mutex_exit(&fip->fi_lock); in checkfpollinfo()
1695 uf_info_t *fip = P_FINFO(curproc); in infpollinfo() local
1699 UF_ENTER(ufp, fip, fd); in infpollinfo()
1717 uf_info_t *fip = P_FINFO(curproc); in addfpollinfo() local
1721 UF_ENTER(ufp, fip, fd); in addfpollinfo()
1745 uf_info_t *fip = P_FINFO(curproc); in delfpollinfo() local
1747 UF_ENTER(ufp, fip, fd); in delfpollinfo()
1774 uf_info_t *fip = P_FINFO(curproc); in addfd_port() local
1776 UF_ENTER(ufp, fip, fd); in addfd_port()
1797 uf_info_t *fip = P_FINFO(curproc); in delfd_port() local
1799 UF_ENTER(ufp, fip, fd); in delfd_port()