Lines Matching refs:ldev

108 static void linux_cdev_deref(struct linux_cdev *ldev);
715 struct linux_cdev *ldev; in linux_get_fop() local
718 ldev = filp->f_cdev; in linux_get_fop()
720 if (ldev != NULL) { in linux_get_fop()
721 for (siref = ldev->siref;;) { in linux_get_fop()
723 ldev = &dummy_ldev; in linux_get_fop()
724 siref = ldev->siref; in linux_get_fop()
725 *fop = ldev->ops; in linux_get_fop()
726 MPASS((ldev->siref & LDEV_SI_DTR) == 0); in linux_get_fop()
727 } else if (atomic_fcmpset_int(&ldev->siref, &siref, in linux_get_fop()
733 *dev = ldev; in linux_get_fop()
737 linux_drop_fop(struct linux_cdev *ldev) in linux_drop_fop() argument
740 if (ldev == NULL) in linux_drop_fop()
742 MPASS((ldev->siref & ~LDEV_SI_DTR) != 0); in linux_drop_fop()
743 atomic_subtract_int(&ldev->siref, LDEV_SI_REF); in linux_drop_fop()
761 struct linux_cdev *ldev; in linux_dev_fdopen() local
766 ldev = dev->si_drv1; in linux_dev_fdopen()
770 filp->f_op = ldev->ops; in linux_dev_fdopen()
775 refcount_acquire(&ldev->refs); in linux_dev_fdopen()
776 filp->f_cdev = ldev; in linux_dev_fdopen()
779 linux_get_fop(filp, &fop, &ldev); in linux_dev_fdopen()
784 linux_drop_fop(ldev); in linux_dev_fdopen()
796 linux_drop_fop(ldev); in linux_dev_fdopen()
1150 struct linux_cdev *ldev; in linux_file_kqfilter_poll() local
1158 linux_get_fop(filp, &fop, &ldev); in linux_file_kqfilter_poll()
1161 linux_drop_fop(ldev); in linux_file_kqfilter_poll()
1390 struct linux_cdev *ldev; in linux_file_read() local
1403 linux_get_fop(filp, &fop, &ldev); in linux_file_read()
1421 linux_drop_fop(ldev); in linux_file_read()
1432 struct linux_cdev *ldev; in linux_file_write() local
1444 linux_get_fop(filp, &fop, &ldev); in linux_file_write()
1464 linux_drop_fop(ldev); in linux_file_write()
1475 struct linux_cdev *ldev; in linux_file_poll() local
1481 linux_get_fop(filp, &fop, &ldev); in linux_file_poll()
1488 linux_drop_fop(ldev); in linux_file_poll()
1497 struct linux_cdev *ldev; in linux_file_close() local
1512 linux_get_fop(filp, &fop, &ldev); in linux_file_close()
1518 linux_drop_fop(ldev); in linux_file_close()
1532 struct linux_cdev *ldev; in linux_file_ioctl() local
1538 linux_get_fop(filp, &fop, &ldev); in linux_file_ioctl()
1565 linux_drop_fop(ldev); in linux_file_ioctl()
1595 struct linux_cdev *ldev; in linux_file_mmap() local
1642 linux_get_fop(filp, &fop, &ldev); in linux_file_mmap()
1653 linux_drop_fop(ldev); in linux_file_mmap()
1705 struct linux_cdev *ldev; in linux_iminor() local
1710 ldev = inode->v_rdev->si_drv1; in linux_iminor()
1711 if (ldev == NULL) in linux_iminor()
1714 return (minor(ldev->dev)); in linux_iminor()
2084 linux_cdev_deref(struct linux_cdev *ldev) in linux_cdev_deref() argument
2087 if (refcount_release(&ldev->refs)) in linux_cdev_deref()
2088 kfree(ldev); in linux_cdev_deref()
2117 linux_destroy_dev(struct linux_cdev *ldev) in linux_destroy_dev() argument
2120 if (ldev->cdev == NULL) in linux_destroy_dev()
2123 MPASS((ldev->siref & LDEV_SI_DTR) == 0); in linux_destroy_dev()
2124 atomic_set_int(&ldev->siref, LDEV_SI_DTR); in linux_destroy_dev()
2125 while ((atomic_load_int(&ldev->siref) & ~LDEV_SI_DTR) != 0) in linux_destroy_dev()
2128 destroy_dev(ldev->cdev); in linux_destroy_dev()
2129 ldev->cdev = NULL; in linux_destroy_dev()
2325 struct linux_cdev *ldev = cdev->si_drv1; in linux_find_cdev() local
2326 if (ldev->dev == dev && in linux_find_cdev()
2327 strcmp(kobject_name(&ldev->kobj), name) == 0) { in linux_find_cdev()