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

Lines Matching refs:filp

449 	struct linux_file *filp;
451 filp = kzalloc(sizeof(*filp), GFP_KERNEL);
454 filp->f_count = 1;
457 spin_lock_init(&filp->f_kqlock);
458 knlist_init(&filp->f_selinfo.si_note, &filp->f_kqlock,
462 return (filp);
466 linux_file_free(struct linux_file *filp)
468 if (filp->_file == NULL) {
469 if (filp->f_shmem != NULL)
470 vm_object_deallocate(filp->f_shmem);
471 kfree(filp);
477 _fdrop(filp->_file, curthread);
716 linux_get_fop(struct linux_file *filp, const struct file_operations **fop,
722 ldev = filp->f_cdev;
723 *fop = filp->f_op;
775 struct linux_file *filp;
781 filp = linux_file_alloc();
782 filp->f_dentry = &filp->f_dentry_store;
783 filp->f_op = ldev->ops;
784 filp->f_mode = file->f_flag;
785 filp->f_flags = file->f_flag;
786 filp->f_vnode = file->f_vnode;
787 filp->_file = file;
789 filp->f_cdev = ldev;
792 linux_get_fop(filp, &fop, &ldev);
795 error = -fop->open(file->f_vnode, filp);
798 linux_cdev_deref(filp->f_cdev);
799 kfree(filp);
805 vhold(filp->f_vnode);
808 finit(file, filp->f_mode, DTYPE_DEV, filp, &linuxfileops);
944 linux_file_ioctl_sub(struct file *fp, struct linux_file *filp,
972 error = -OPW(fp, td, fop->compat_ioctl(filp,
980 error = -OPW(fp, td, fop->unlocked_ioctl(filp,
987 error = -OPW(fp, td, fop->unlocked_ioctl(filp,
1000 linux_file_kqfilter_poll(filp,
1037 struct linux_file *filp = container_of(wq, struct linux_file, f_wait_queue.wq);
1039 switch (linux_poll_wakeup_state(&filp->f_wait_queue.state, state)) {
1041 linux_poll_wakeup(filp);
1049 linux_poll_wait(struct linux_file *filp, wait_queue_head_t *wqh, poll_table *p)
1060 selrecord(curthread, &filp->f_selinfo);
1062 switch (linux_poll_wakeup_state(&filp->f_wait_queue.state, state)) {
1065 filp->f_wait_queue.wqh = wqh;
1066 filp->f_wait_queue.wq.func = &linux_poll_wakeup_callback;
1067 add_wait_queue(wqh, &filp->f_wait_queue.wq);
1068 atomic_set(&filp->f_wait_queue.state, LINUX_FWQ_STATE_QUEUED);
1076 linux_poll_wait_dequeue(struct linux_file *filp)
1085 seldrain(&filp->f_selinfo);
1087 switch (linux_poll_wakeup_state(&filp->f_wait_queue.state, state)) {
1091 remove_wait_queue(filp->f_wait_queue.wqh, &filp->f_wait_queue.wq);
1099 linux_poll_wakeup(struct linux_file *filp)
1102 if (filp == NULL)
1105 selwakeup(&filp->f_selinfo);
1107 spin_lock(&filp->f_kqlock);
1108 filp->f_kqflags |= LINUX_KQ_FLAG_NEED_READ |
1112 KNOTE_LOCKED(&filp->f_selinfo.si_note, 1);
1113 spin_unlock(&filp->f_kqlock);
1119 struct linux_file *filp = kn->kn_hook;
1121 spin_lock(&filp->f_kqlock);
1122 knlist_remove(&filp->f_selinfo.si_note, kn, 1);
1123 spin_unlock(&filp->f_kqlock);
1129 struct linux_file *filp = kn->kn_hook;
1131 mtx_assert(&filp->f_kqlock.m, MA_OWNED);
1133 return ((filp->f_kqflags & LINUX_KQ_FLAG_NEED_READ) ? 1 : 0);
1139 struct linux_file *filp = kn->kn_hook;
1141 mtx_assert(&filp->f_kqlock.m, MA_OWNED);
1143 return ((filp->f_kqflags & LINUX_KQ_FLAG_NEED_WRITE) ? 1 : 0);
1159 linux_file_kqfilter_poll(struct linux_file *filp, int kqflags)
1166 if ((filp->f_kqflags & kqflags) == 0)
1171 linux_get_fop(filp, &fop, &ldev);
1173 temp = OPW(filp->_file, td, fop->poll(filp, NULL));
1176 spin_lock(&filp->f_kqlock);
1178 filp->f_kqflags &= ~(LINUX_KQ_FLAG_NEED_READ |
1183 filp->f_kqflags |= LINUX_KQ_FLAG_NEED_READ;
1185 filp->f_kqflags |= LINUX_KQ_FLAG_NEED_WRITE;
1188 KNOTE_LOCKED(&filp->f_selinfo.si_note, 0);
1190 spin_unlock(&filp->f_kqlock);
1196 struct linux_file *filp;
1201 filp = (struct linux_file *)file->f_data;
1202 filp->f_flags = file->f_flag;
1203 if (filp->f_op->poll == NULL)
1206 spin_lock(&filp->f_kqlock);
1209 filp->f_kqflags |= LINUX_KQ_FLAG_HAS_READ;
1211 kn->kn_hook = filp;
1212 knlist_add(&filp->f_selinfo.si_note, kn, 1);
1216 filp->f_kqflags |= LINUX_KQ_FLAG_HAS_WRITE;
1218 kn->kn_hook = filp;
1219 knlist_add(&filp->f_selinfo.si_note, kn, 1);
1226 spin_unlock(&filp->f_kqlock);
1232 linux_file_kqfilter_poll(filp,
1246 struct linux_file *filp;
1250 filp = (struct linux_file *)fp->f_data;
1251 filp->f_flags = fp->f_flag;
1277 vmap->vm_file = get_file(filp);
1283 error = -OPW(fp, td, fop->mmap(filp, vmap));
1401 struct linux_file *filp;
1408 filp = (struct linux_file *)file->f_data;
1409 filp->f_flags = file->f_flag;
1416 linux_get_fop(filp, &fop, &ldev);
1418 bytes = OPW(file, td, fop->read(filp,
1433 linux_file_kqfilter_poll(filp, LINUX_KQ_FLAG_HAS_READ);
1443 struct linux_file *filp;
1449 filp = (struct linux_file *)file->f_data;
1450 filp->f_flags = file->f_flag;
1457 linux_get_fop(filp, &fop, &ldev);
1459 bytes = OPW(file, td, fop->write(filp,
1475 linux_file_kqfilter_poll(filp, LINUX_KQ_FLAG_HAS_WRITE);
1486 struct linux_file *filp;
1491 filp = (struct linux_file *)file->f_data;
1492 filp->f_flags = file->f_flag;
1494 linux_get_fop(filp, &fop, &ldev);
1496 revents = OPW(file, td, fop->poll(filp,
1508 struct linux_file *filp;
1514 filp = (struct linux_file *)file->f_data;
1516 KASSERT(file_count(filp) == 0,
1517 ("File refcount(%d) is not zero", file_count(filp)));
1523 filp->f_flags = file->f_flag;
1525 linux_poll_wait_dequeue(filp);
1526 linux_get_fop(filp, &fop, &ldev);
1531 release = filp->f_op->release;
1533 error = -OPW(file, td, release(filp->f_vnode, filp));
1534 funsetown(&filp->f_sigio);
1535 if (filp->f_vnode != NULL)
1536 vdrop(filp->f_vnode);
1538 ldev = filp->f_cdev;
1541 kfree(filp);
1550 struct linux_file *filp;
1558 filp = (struct linux_file *)fp->f_data;
1559 filp->f_flags = fp->f_flag;
1560 linux_get_fop(filp, &fop, &ldev);
1569 error = -OPW(fp, td, fop->fasync(0, filp, fp->f_flag & FASYNC));
1572 error = fsetown(*(int *)data, &filp->f_sigio);
1576 error = -OPW(fp, td, fop->fasync(0, filp,
1581 *(int *)data = fgetown(&filp->f_sigio);
1584 if (filp->f_cdev == NULL || filp->f_cdev->cdev == NULL) {
1589 p = devtoname(filp->f_cdev->cdev);
1598 error = linux_file_ioctl_sub(fp, filp, fop, cmd, data, td);
1629 struct linux_file *filp;
1638 filp = (struct linux_file *)fp->f_data;
1640 vp = filp->f_vnode;
1678 linux_get_fop(filp, &fop, &ldev);
1697 struct linux_file *filp;
1701 filp = (struct linux_file *)fp->f_data;
1702 if (filp->f_vnode == NULL)
1705 vp = filp->f_vnode;
1718 struct linux_file *filp;
1722 filp = fp->f_data;
1723 vp = filp->f_vnode;