• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/compat/linuxkpi/common/src/

Lines Matching refs:filp

444 	struct linux_file *filp;
446 filp = kzalloc(sizeof(*filp), GFP_KERNEL);
449 filp->f_count = 1;
452 spin_lock_init(&filp->f_kqlock);
453 knlist_init(&filp->f_selinfo.si_note, &filp->f_kqlock,
456 return (filp);
460 linux_file_free(struct linux_file *filp)
462 if (filp->_file == NULL) {
463 if (filp->f_shmem != NULL)
464 vm_object_deallocate(filp->f_shmem);
465 kfree(filp);
471 _fdrop(filp->_file, curthread);
705 linux_get_fop(struct linux_file *filp, const struct file_operations **fop,
711 ldev = filp->f_cdev;
712 *fop = filp->f_op;
764 struct linux_file *filp;
770 filp = linux_file_alloc();
771 filp->f_dentry = &filp->f_dentry_store;
772 filp->f_op = ldev->ops;
773 filp->f_mode = file->f_flag;
774 filp->f_flags = file->f_flag;
775 filp->f_vnode = file->f_vnode;
776 filp->_file = file;
778 filp->f_cdev = ldev;
781 linux_get_fop(filp, &fop, &ldev);
784 error = -fop->open(file->f_vnode, filp);
787 linux_cdev_deref(filp->f_cdev);
788 kfree(filp);
794 vhold(filp->f_vnode);
797 finit(file, filp->f_mode, DTYPE_DEV, filp, &linuxfileops);
933 linux_file_ioctl_sub(struct file *fp, struct linux_file *filp,
961 error = -OPW(fp, td, fop->compat_ioctl(filp,
969 error = -OPW(fp, td, fop->unlocked_ioctl(filp,
976 error = -OPW(fp, td, fop->unlocked_ioctl(filp,
989 linux_file_kqfilter_poll(filp,
1025 struct linux_file *filp = container_of(wq, struct linux_file, f_wait_queue.wq);
1027 switch (linux_poll_wakeup_state(&filp->f_wait_queue.state, state)) {
1029 linux_poll_wakeup(filp);
1037 linux_poll_wait(struct linux_file *filp, wait_queue_head_t *wqh, poll_table *p)
1048 selrecord(curthread, &filp->f_selinfo);
1050 switch (linux_poll_wakeup_state(&filp->f_wait_queue.state, state)) {
1053 filp->f_wait_queue.wqh = wqh;
1054 filp->f_wait_queue.wq.func = &linux_poll_wakeup_callback;
1055 add_wait_queue(wqh, &filp->f_wait_queue.wq);
1056 atomic_set(&filp->f_wait_queue.state, LINUX_FWQ_STATE_QUEUED);
1064 linux_poll_wait_dequeue(struct linux_file *filp)
1073 seldrain(&filp->f_selinfo);
1075 switch (linux_poll_wakeup_state(&filp->f_wait_queue.state, state)) {
1079 remove_wait_queue(filp->f_wait_queue.wqh, &filp->f_wait_queue.wq);
1087 linux_poll_wakeup(struct linux_file *filp)
1090 if (filp == NULL)
1093 selwakeup(&filp->f_selinfo);
1095 spin_lock(&filp->f_kqlock);
1096 filp->f_kqflags |= LINUX_KQ_FLAG_NEED_READ |
1100 KNOTE_LOCKED(&filp->f_selinfo.si_note, 1);
1101 spin_unlock(&filp->f_kqlock);
1107 struct linux_file *filp = kn->kn_hook;
1109 spin_lock(&filp->f_kqlock);
1110 knlist_remove(&filp->f_selinfo.si_note, kn, 1);
1111 spin_unlock(&filp->f_kqlock);
1117 struct linux_file *filp = kn->kn_hook;
1119 mtx_assert(&filp->f_kqlock.m, MA_OWNED);
1121 return ((filp->f_kqflags & LINUX_KQ_FLAG_NEED_READ) ? 1 : 0);
1127 struct linux_file *filp = kn->kn_hook;
1129 mtx_assert(&filp->f_kqlock.m, MA_OWNED);
1131 return ((filp->f_kqflags & LINUX_KQ_FLAG_NEED_WRITE) ? 1 : 0);
1147 linux_file_kqfilter_poll(struct linux_file *filp, int kqflags)
1154 if ((filp->f_kqflags & kqflags) == 0)
1159 linux_get_fop(filp, &fop, &ldev);
1161 temp = OPW(filp->_file, td, fop->poll(filp, NULL));
1164 spin_lock(&filp->f_kqlock);
1166 filp->f_kqflags &= ~(LINUX_KQ_FLAG_NEED_READ |
1171 filp->f_kqflags |= LINUX_KQ_FLAG_NEED_READ;
1173 filp->f_kqflags |= LINUX_KQ_FLAG_NEED_WRITE;
1176 KNOTE_LOCKED(&filp->f_selinfo.si_note, 0);
1178 spin_unlock(&filp->f_kqlock);
1184 struct linux_file *filp;
1189 filp = (struct linux_file *)file->f_data;
1190 filp->f_flags = file->f_flag;
1191 if (filp->f_op->poll == NULL)
1194 spin_lock(&filp->f_kqlock);
1197 filp->f_kqflags |= LINUX_KQ_FLAG_HAS_READ;
1199 kn->kn_hook = filp;
1200 knlist_add(&filp->f_selinfo.si_note, kn, 1);
1204 filp->f_kqflags |= LINUX_KQ_FLAG_HAS_WRITE;
1206 kn->kn_hook = filp;
1207 knlist_add(&filp->f_selinfo.si_note, kn, 1);
1214 spin_unlock(&filp->f_kqlock);
1220 linux_file_kqfilter_poll(filp,
1234 struct linux_file *filp;
1238 filp = (struct linux_file *)fp->f_data;
1239 filp->f_flags = fp->f_flag;
1267 vmap->vm_file = get_file(filp);
1273 error = -OPW(fp, td, fop->mmap(filp, vmap));
1391 struct linux_file *filp;
1398 filp = (struct linux_file *)file->f_data;
1399 filp->f_flags = file->f_flag;
1406 linux_get_fop(filp, &fop, &ldev);
1408 bytes = OPW(file, td, fop->read(filp,
1423 linux_file_kqfilter_poll(filp, LINUX_KQ_FLAG_HAS_READ);
1433 struct linux_file *filp;
1439 filp = (struct linux_file *)file->f_data;
1440 filp->f_flags = file->f_flag;
1447 linux_get_fop(filp, &fop, &ldev);
1449 bytes = OPW(file, td, fop->write(filp,
1465 linux_file_kqfilter_poll(filp, LINUX_KQ_FLAG_HAS_WRITE);
1476 struct linux_file *filp;
1481 filp = (struct linux_file *)file->f_data;
1482 filp->f_flags = file->f_flag;
1484 linux_get_fop(filp, &fop, &ldev);
1486 revents = OPW(file, td, fop->poll(filp,
1498 struct linux_file *filp;
1504 filp = (struct linux_file *)file->f_data;
1506 KASSERT(file_count(filp) == 0,
1507 ("File refcount(%d) is not zero", file_count(filp)));
1513 filp->f_flags = file->f_flag;
1515 linux_poll_wait_dequeue(filp);
1516 linux_get_fop(filp, &fop, &ldev);
1521 release = filp->f_op->release;
1523 error = -OPW(file, td, release(filp->f_vnode, filp));
1524 funsetown(&filp->f_sigio);
1525 if (filp->f_vnode != NULL)
1526 vdrop(filp->f_vnode);
1528 ldev = filp->f_cdev;
1531 kfree(filp);
1540 struct linux_file *filp;
1548 filp = (struct linux_file *)fp->f_data;
1549 filp->f_flags = fp->f_flag;
1550 linux_get_fop(filp, &fop, &ldev);
1559 error = -OPW(fp, td, fop->fasync(0, filp, fp->f_flag & FASYNC));
1562 error = fsetown(*(int *)data, &filp->f_sigio);
1566 error = -OPW(fp, td, fop->fasync(0, filp,
1571 *(int *)data = fgetown(&filp->f_sigio);
1577 if (filp->f_cdev == NULL || filp->f_cdev->cdev == NULL) {
1582 p = devtoname(filp->f_cdev->cdev);
1591 error = linux_file_ioctl_sub(fp, filp, fop, cmd, data, td);
1622 struct linux_file *filp;
1631 filp = (struct linux_file *)fp->f_data;
1633 vp = filp->f_vnode;
1671 linux_get_fop(filp, &fop, &ldev);
1690 struct linux_file *filp;
1694 filp = (struct linux_file *)fp->f_data;
1695 if (filp->f_vnode == NULL)
1698 vp = filp->f_vnode;
1711 struct linux_file *filp;
1715 filp = fp->f_data;
1716 vp = filp->f_vnode;