Lines Matching defs:cdev

110 	struct capidev	*cdev;
297 static void capincci_alloc_minor(struct capidev *cdev, struct capincci *np)
299 if (cdev->userflags & CAPIFLAG_HIGHJACKING)
300 np->minorp = capiminor_alloc(&cdev->ap, np->ncci);
338 capincci_alloc_minor(struct capidev *cdev, struct capincci *np) { }
343 static struct capincci *capincci_alloc(struct capidev *cdev, u32 ncci)
351 np->cdev = cdev;
353 capincci_alloc_minor(cdev, np);
355 list_add_tail(&np->list, &cdev->nccis);
360 static void capincci_free(struct capidev *cdev, u32 ncci)
364 list_for_each_entry_safe(np, tmp, &cdev->nccis, list)
373 static struct capincci *capincci_find(struct capidev *cdev, u32 ncci)
377 list_for_each_entry(np, &cdev->nccis, list)
573 struct capidev *cdev = ap->private;
580 mutex_lock(&cdev->lock);
585 capincci_alloc(cdev, CAPIMSG_NCCI(skb->data));
588 capincci_alloc(cdev, CAPIMSG_NCCI(skb->data));
591 skb_queue_tail(&cdev->recvqueue, skb);
592 wake_up_interruptible(&cdev->recvwait);
597 skb_queue_tail(&cdev->recvqueue, skb);
598 wake_up_interruptible(&cdev->recvwait);
602 np = capincci_find(cdev, CAPIMSG_CONTROL(skb->data));
605 skb_queue_tail(&cdev->recvqueue, skb);
606 wake_up_interruptible(&cdev->recvwait);
612 skb_queue_tail(&cdev->recvqueue, skb);
613 wake_up_interruptible(&cdev->recvwait);
637 skb_queue_tail(&cdev->recvqueue, skb);
638 wake_up_interruptible(&cdev->recvwait);
643 mutex_unlock(&cdev->lock);
651 struct capidev *cdev = file->private_data;
656 if (!cdev->ap.applid)
659 skb = skb_dequeue(&cdev->recvqueue);
663 err = wait_event_interruptible(cdev->recvwait,
664 (skb = skb_dequeue(&cdev->recvqueue)));
669 skb_queue_head(&cdev->recvqueue, skb);
673 skb_queue_head(&cdev->recvqueue, skb);
686 struct capidev *cdev = file->private_data;
690 if (!cdev->ap.applid)
717 CAPIMSG_SETAPPID(skb->data, cdev->ap.applid);
724 mutex_lock(&cdev->lock);
725 capincci_free(cdev, CAPIMSG_NCCI(skb->data));
726 mutex_unlock(&cdev->lock);
729 cdev->errcode = capi20_put_message(&cdev->ap, skb);
731 if (cdev->errcode) {
741 struct capidev *cdev = file->private_data;
744 if (!cdev->ap.applid)
747 poll_wait(file, &(cdev->recvwait), wait);
749 if (!skb_queue_empty_lockless(&cdev->recvqueue))
757 struct capidev *cdev = file->private_data;
764 mutex_lock(&cdev->lock);
766 if (cdev->ap.applid) {
770 if (copy_from_user(&cdev->ap.rparam, argp,
775 cdev->ap.private = cdev;
776 cdev->ap.recv_message = capi_recv_message;
777 cdev->errcode = capi20_register(&cdev->ap);
778 retval = (int)cdev->ap.applid;
779 if (cdev->errcode) {
780 cdev->ap.applid = 0;
785 mutex_unlock(&cdev->lock);
792 cdev->errcode = capi20_get_version(data.contr, &data.version);
793 if (cdev->errcode)
804 cdev->errcode = capi20_get_serial(data.contr, data.serial);
805 if (cdev->errcode)
818 cdev->errcode = capi20_get_profile(data.contr, &data.profile);
819 if (cdev->errcode)
827 cdev->errcode = capi20_get_profile(data.contr, &data.profile);
828 if (cdev->errcode)
842 cdev->errcode = capi20_get_manufacturer(data.contr, data.manufacturer);
843 if (cdev->errcode)
853 data.errcode = cdev->errcode;
854 cdev->errcode = CAPI_NOERROR;
882 mutex_lock(&cdev->lock);
884 cdev->userflags |= userflags;
886 cdev->userflags &= ~userflags;
887 mutex_unlock(&cdev->lock);
891 if (copy_to_user(argp, &cdev->userflags,
892 sizeof(cdev->userflags)))
909 mutex_lock(&cdev->lock);
910 nccip = capincci_find(cdev, (u32)ncci);
913 mutex_unlock(&cdev->lock);
926 mutex_lock(&cdev->lock);
927 nccip = capincci_find(cdev, (u32)ncci);
933 mutex_unlock(&cdev->lock);
985 struct capidev *cdev;
987 cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
988 if (!cdev)
991 mutex_init(&cdev->lock);
992 skb_queue_head_init(&cdev->recvqueue);
993 init_waitqueue_head(&cdev->recvwait);
994 INIT_LIST_HEAD(&cdev->nccis);
995 file->private_data = cdev;
998 list_add_tail(&cdev->list, &capidev_list);
1006 struct capidev *cdev = file->private_data;
1009 list_del(&cdev->list);
1012 if (cdev->ap.applid)
1013 capi20_release(&cdev->ap);
1014 skb_queue_purge(&cdev->recvqueue);
1015 capincci_free(cdev, 0xffffffff);
1017 kfree(cdev);
1361 struct capidev *cdev;
1366 cdev = list_entry(l, struct capidev, list);
1368 cdev->ap.applid,
1369 cdev->ap.nrecvctlpkt,
1370 cdev->ap.nrecvdatapkt,
1371 cdev->ap.nsentctlpkt,
1372 cdev->ap.nsentdatapkt);
1384 struct capidev *cdev;
1388 list_for_each_entry(cdev, &capidev_list, list) {
1389 mutex_lock(&cdev->lock);
1390 list_for_each_entry(np, &cdev->nccis, list)
1391 seq_printf(m, "%d 0x%x\n", cdev->ap.applid, np->ncci);
1392 mutex_unlock(&cdev->lock);