Lines Matching refs:filp

401 	struct linux_file *filp;  in linux_file_alloc()  local
403 filp = kzalloc(sizeof(*filp), GFP_KERNEL); in linux_file_alloc()
406 filp->f_count = 1; in linux_file_alloc()
409 spin_lock_init(&filp->f_kqlock); in linux_file_alloc()
410 knlist_init(&filp->f_selinfo.si_note, &filp->f_kqlock, in linux_file_alloc()
413 return (filp); in linux_file_alloc()
417 linux_file_free(struct linux_file *filp) in linux_file_free() argument
419 if (filp->_file == NULL) { in linux_file_free()
420 if (filp->f_op != NULL && filp->f_op->release != NULL) in linux_file_free()
421 filp->f_op->release(filp->f_vnode, filp); in linux_file_free()
422 if (filp->f_shmem != NULL) in linux_file_free()
423 vm_object_deallocate(filp->f_shmem); in linux_file_free()
424 kfree_rcu(filp, rcu); in linux_file_free()
430 _fdrop(filp->_file, curthread); in linux_file_free()
687 linux_get_fop(struct linux_file *filp, const struct file_operations **fop, in linux_get_fop() argument
693 ldev = filp->f_cdev; in linux_get_fop()
694 *fop = filp->f_op; in linux_get_fop()
746 struct linux_file *filp; in linux_dev_fdopen() local
752 filp = linux_file_alloc(); in linux_dev_fdopen()
753 filp->f_dentry = &filp->f_dentry_store; in linux_dev_fdopen()
754 filp->f_op = ldev->ops; in linux_dev_fdopen()
755 filp->f_mode = file->f_flag; in linux_dev_fdopen()
756 filp->f_flags = file->f_flag; in linux_dev_fdopen()
757 filp->f_vnode = file->f_vnode; in linux_dev_fdopen()
758 filp->_file = file; in linux_dev_fdopen()
760 filp->f_cdev = ldev; in linux_dev_fdopen()
763 linux_get_fop(filp, &fop, &ldev); in linux_dev_fdopen()
766 error = -fop->open(file->f_vnode, filp); in linux_dev_fdopen()
769 linux_cdev_deref(filp->f_cdev); in linux_dev_fdopen()
770 kfree(filp); in linux_dev_fdopen()
776 vref(filp->f_vnode); in linux_dev_fdopen()
779 finit(file, filp->f_mode, DTYPE_DEV, filp, &linuxfileops); in linux_dev_fdopen()
915 linux_file_ioctl_sub(struct file *fp, struct linux_file *filp, in linux_file_ioctl_sub() argument
943 error = -OPW(fp, td, fop->compat_ioctl(filp, in linux_file_ioctl_sub()
951 error = -OPW(fp, td, fop->unlocked_ioctl(filp, in linux_file_ioctl_sub()
958 error = -OPW(fp, td, fop->unlocked_ioctl(filp, in linux_file_ioctl_sub()
971 linux_file_kqfilter_poll(filp, in linux_file_ioctl_sub()
1007 struct linux_file *filp = container_of(wq, struct linux_file, f_wait_queue.wq); in linux_poll_wakeup_callback() local
1009 switch (linux_poll_wakeup_state(&filp->f_wait_queue.state, state)) { in linux_poll_wakeup_callback()
1011 linux_poll_wakeup(filp); in linux_poll_wakeup_callback()
1019 linux_poll_wait(struct linux_file *filp, wait_queue_head_t *wqh, poll_table *p) in linux_poll_wait() argument
1030 selrecord(curthread, &filp->f_selinfo); in linux_poll_wait()
1032 switch (linux_poll_wakeup_state(&filp->f_wait_queue.state, state)) { in linux_poll_wait()
1035 filp->f_wait_queue.wqh = wqh; in linux_poll_wait()
1036 filp->f_wait_queue.wq.func = &linux_poll_wakeup_callback; in linux_poll_wait()
1037 add_wait_queue(wqh, &filp->f_wait_queue.wq); in linux_poll_wait()
1038 atomic_set(&filp->f_wait_queue.state, LINUX_FWQ_STATE_QUEUED); in linux_poll_wait()
1046 linux_poll_wait_dequeue(struct linux_file *filp) in linux_poll_wait_dequeue() argument
1055 seldrain(&filp->f_selinfo); in linux_poll_wait_dequeue()
1057 switch (linux_poll_wakeup_state(&filp->f_wait_queue.state, state)) { in linux_poll_wait_dequeue()
1061 remove_wait_queue(filp->f_wait_queue.wqh, &filp->f_wait_queue.wq); in linux_poll_wait_dequeue()
1069 linux_poll_wakeup(struct linux_file *filp) in linux_poll_wakeup() argument
1072 if (filp == NULL) in linux_poll_wakeup()
1075 selwakeup(&filp->f_selinfo); in linux_poll_wakeup()
1077 spin_lock(&filp->f_kqlock); in linux_poll_wakeup()
1078 filp->f_kqflags |= LINUX_KQ_FLAG_NEED_READ | in linux_poll_wakeup()
1082 KNOTE_LOCKED(&filp->f_selinfo.si_note, 1); in linux_poll_wakeup()
1083 spin_unlock(&filp->f_kqlock); in linux_poll_wakeup()
1141 struct linux_file *filp = kn->kn_hook; in linux_file_kqfilter_detach() local
1143 spin_lock(&filp->f_kqlock); in linux_file_kqfilter_detach()
1144 knlist_remove(&filp->f_selinfo.si_note, kn, 1); in linux_file_kqfilter_detach()
1145 spin_unlock(&filp->f_kqlock); in linux_file_kqfilter_detach()
1151 struct linux_file *filp = kn->kn_hook; in linux_file_kqfilter_read_event() local
1153 mtx_assert(&filp->f_kqlock, MA_OWNED); in linux_file_kqfilter_read_event()
1155 return ((filp->f_kqflags & LINUX_KQ_FLAG_NEED_READ) ? 1 : 0); in linux_file_kqfilter_read_event()
1161 struct linux_file *filp = kn->kn_hook; in linux_file_kqfilter_write_event() local
1163 mtx_assert(&filp->f_kqlock, MA_OWNED); in linux_file_kqfilter_write_event()
1165 return ((filp->f_kqflags & LINUX_KQ_FLAG_NEED_WRITE) ? 1 : 0); in linux_file_kqfilter_write_event()
1181 linux_file_kqfilter_poll(struct linux_file *filp, int kqflags) in linux_file_kqfilter_poll() argument
1188 if ((filp->f_kqflags & kqflags) == 0) in linux_file_kqfilter_poll()
1193 linux_get_fop(filp, &fop, &ldev); in linux_file_kqfilter_poll()
1195 temp = OPW(filp->_file, td, fop->poll(filp, NULL)); in linux_file_kqfilter_poll()
1198 spin_lock(&filp->f_kqlock); in linux_file_kqfilter_poll()
1200 filp->f_kqflags &= ~(LINUX_KQ_FLAG_NEED_READ | in linux_file_kqfilter_poll()
1205 filp->f_kqflags |= LINUX_KQ_FLAG_NEED_READ; in linux_file_kqfilter_poll()
1207 filp->f_kqflags |= LINUX_KQ_FLAG_NEED_WRITE; in linux_file_kqfilter_poll()
1210 KNOTE_LOCKED(&filp->f_selinfo.si_note, 0); in linux_file_kqfilter_poll()
1212 spin_unlock(&filp->f_kqlock); in linux_file_kqfilter_poll()
1218 struct linux_file *filp; in linux_file_kqfilter() local
1223 filp = (struct linux_file *)file->f_data; in linux_file_kqfilter()
1224 filp->f_flags = file->f_flag; in linux_file_kqfilter()
1225 if (filp->f_op->poll == NULL) in linux_file_kqfilter()
1228 spin_lock(&filp->f_kqlock); in linux_file_kqfilter()
1231 filp->f_kqflags |= LINUX_KQ_FLAG_HAS_READ; in linux_file_kqfilter()
1233 kn->kn_hook = filp; in linux_file_kqfilter()
1234 knlist_add(&filp->f_selinfo.si_note, kn, 1); in linux_file_kqfilter()
1238 filp->f_kqflags |= LINUX_KQ_FLAG_HAS_WRITE; in linux_file_kqfilter()
1240 kn->kn_hook = filp; in linux_file_kqfilter()
1241 knlist_add(&filp->f_selinfo.si_note, kn, 1); in linux_file_kqfilter()
1248 spin_unlock(&filp->f_kqlock); in linux_file_kqfilter()
1254 linux_file_kqfilter_poll(filp, in linux_file_kqfilter()
1268 struct linux_file *filp; in linux_file_mmap_single() local
1272 filp = (struct linux_file *)fp->f_data; in linux_file_mmap_single()
1273 filp->f_flags = fp->f_flag; in linux_file_mmap_single()
1301 vmap->vm_file = get_file(filp); in linux_file_mmap_single()
1307 error = -OPW(fp, td, fop->mmap(filp, vmap)); in linux_file_mmap_single()
1425 struct linux_file *filp; in linux_file_read() local
1432 filp = (struct linux_file *)file->f_data; in linux_file_read()
1433 filp->f_flags = file->f_flag; in linux_file_read()
1440 linux_get_fop(filp, &fop, &ldev); in linux_file_read()
1442 bytes = OPW(file, td, fop->read(filp, in linux_file_read()
1457 linux_file_kqfilter_poll(filp, LINUX_KQ_FLAG_HAS_READ); in linux_file_read()
1467 struct linux_file *filp; in linux_file_write() local
1473 filp = (struct linux_file *)file->f_data; in linux_file_write()
1474 filp->f_flags = file->f_flag; in linux_file_write()
1481 linux_get_fop(filp, &fop, &ldev); in linux_file_write()
1483 bytes = OPW(file, td, fop->write(filp, in linux_file_write()
1499 linux_file_kqfilter_poll(filp, LINUX_KQ_FLAG_HAS_WRITE); in linux_file_write()
1510 struct linux_file *filp; in linux_file_poll() local
1515 filp = (struct linux_file *)file->f_data; in linux_file_poll()
1516 filp->f_flags = file->f_flag; in linux_file_poll()
1518 linux_get_fop(filp, &fop, &ldev); in linux_file_poll()
1520 revents = OPW(file, td, fop->poll(filp, in linux_file_poll()
1532 struct linux_file *filp; in linux_file_close() local
1538 filp = (struct linux_file *)file->f_data; in linux_file_close()
1540 KASSERT(file_count(filp) == 0, in linux_file_close()
1541 ("File refcount(%d) is not zero", file_count(filp))); in linux_file_close()
1547 filp->f_flags = file->f_flag; in linux_file_close()
1549 linux_poll_wait_dequeue(filp); in linux_file_close()
1550 linux_get_fop(filp, &fop, &ldev); in linux_file_close()
1555 release = filp->f_op->release; in linux_file_close()
1557 error = -OPW(file, td, release(filp->f_vnode, filp)); in linux_file_close()
1558 funsetown(&filp->f_sigio); in linux_file_close()
1559 if (filp->f_vnode != NULL) in linux_file_close()
1560 vrele(filp->f_vnode); in linux_file_close()
1562 ldev = filp->f_cdev; in linux_file_close()
1566 kfree(filp); in linux_file_close()
1575 struct linux_file *filp; in linux_file_ioctl() local
1583 filp = (struct linux_file *)fp->f_data; in linux_file_ioctl()
1584 filp->f_flags = fp->f_flag; in linux_file_ioctl()
1585 linux_get_fop(filp, &fop, &ldev); in linux_file_ioctl()
1594 error = -OPW(fp, td, fop->fasync(0, filp, fp->f_flag & FASYNC)); in linux_file_ioctl()
1597 error = fsetown(*(int *)data, &filp->f_sigio); in linux_file_ioctl()
1601 error = -OPW(fp, td, fop->fasync(0, filp, in linux_file_ioctl()
1606 *(int *)data = fgetown(&filp->f_sigio); in linux_file_ioctl()
1612 if (filp->f_cdev == NULL || filp->f_cdev->cdev == NULL) { in linux_file_ioctl()
1617 p = devtoname(filp->f_cdev->cdev); in linux_file_ioctl()
1626 error = linux_file_ioctl_sub(fp, filp, fop, cmd, data, td); in linux_file_ioctl()
1657 struct linux_file *filp; in linux_file_mmap() local
1666 filp = (struct linux_file *)fp->f_data; in linux_file_mmap()
1668 vp = filp->f_vnode; in linux_file_mmap()
1706 linux_get_fop(filp, &fop, &ldev); in linux_file_mmap()
1724 struct linux_file *filp; in linux_file_stat() local
1728 filp = (struct linux_file *)fp->f_data; in linux_file_stat()
1729 if (filp->f_vnode == NULL) in linux_file_stat()
1732 vp = filp->f_vnode; in linux_file_stat()
1745 struct linux_file *filp; in linux_file_fill_kinfo() local
1749 filp = fp->f_data; in linux_file_fill_kinfo()
1750 vp = filp->f_vnode; in linux_file_fill_kinfo()