Lines Matching defs:cdev
111 struct capidev *cdev;
298 static void capincci_alloc_minor(struct capidev *cdev, struct capincci *np)
300 if (cdev->userflags & CAPIFLAG_HIGHJACKING)
301 np->minorp = capiminor_alloc(&cdev->ap, np->ncci);
339 capincci_alloc_minor(struct capidev *cdev, struct capincci *np) { }
344 static struct capincci *capincci_alloc(struct capidev *cdev, u32 ncci)
352 np->cdev = cdev;
354 capincci_alloc_minor(cdev, np);
356 list_add_tail(&np->list, &cdev->nccis);
361 static void capincci_free(struct capidev *cdev, u32 ncci)
365 list_for_each_entry_safe(np, tmp, &cdev->nccis, list)
374 static struct capincci *capincci_find(struct capidev *cdev, u32 ncci)
378 list_for_each_entry(np, &cdev->nccis, list)
574 struct capidev *cdev = ap->private;
581 mutex_lock(&cdev->lock);
586 capincci_alloc(cdev, CAPIMSG_NCCI(skb->data));
589 capincci_alloc(cdev, CAPIMSG_NCCI(skb->data));
592 skb_queue_tail(&cdev->recvqueue, skb);
593 wake_up_interruptible(&cdev->recvwait);
598 skb_queue_tail(&cdev->recvqueue, skb);
599 wake_up_interruptible(&cdev->recvwait);
603 np = capincci_find(cdev, CAPIMSG_CONTROL(skb->data));
606 skb_queue_tail(&cdev->recvqueue, skb);
607 wake_up_interruptible(&cdev->recvwait);
613 skb_queue_tail(&cdev->recvqueue, skb);
614 wake_up_interruptible(&cdev->recvwait);
638 skb_queue_tail(&cdev->recvqueue, skb);
639 wake_up_interruptible(&cdev->recvwait);
644 mutex_unlock(&cdev->lock);
652 struct capidev *cdev = file->private_data;
657 if (!cdev->ap.applid)
660 skb = skb_dequeue(&cdev->recvqueue);
664 err = wait_event_interruptible(cdev->recvwait,
665 (skb = skb_dequeue(&cdev->recvqueue)));
670 skb_queue_head(&cdev->recvqueue, skb);
674 skb_queue_head(&cdev->recvqueue, skb);
687 struct capidev *cdev = file->private_data;
691 if (!cdev->ap.applid)
718 CAPIMSG_SETAPPID(skb->data, cdev->ap.applid);
725 mutex_lock(&cdev->lock);
726 capincci_free(cdev, CAPIMSG_NCCI(skb->data));
727 mutex_unlock(&cdev->lock);
730 cdev->errcode = capi20_put_message(&cdev->ap, skb);
732 if (cdev->errcode) {
742 struct capidev *cdev = file->private_data;
745 if (!cdev->ap.applid)
748 poll_wait(file, &(cdev->recvwait), wait);
750 if (!skb_queue_empty_lockless(&cdev->recvqueue))
758 struct capidev *cdev = file->private_data;
765 mutex_lock(&cdev->lock);
767 if (cdev->ap.applid) {
771 if (copy_from_user(&cdev->ap.rparam, argp,
776 cdev->ap.private = cdev;
777 cdev->ap.recv_message = capi_recv_message;
778 cdev->errcode = capi20_register(&cdev->ap);
779 retval = (int)cdev->ap.applid;
780 if (cdev->errcode) {
781 cdev->ap.applid = 0;
786 mutex_unlock(&cdev->lock);
793 cdev->errcode = capi20_get_version(data.contr, &data.version);
794 if (cdev->errcode)
805 cdev->errcode = capi20_get_serial(data.contr, data.serial);
806 if (cdev->errcode)
819 cdev->errcode = capi20_get_profile(data.contr, &data.profile);
820 if (cdev->errcode)
828 cdev->errcode = capi20_get_profile(data.contr, &data.profile);
829 if (cdev->errcode)
843 cdev->errcode = capi20_get_manufacturer(data.contr, data.manufacturer);
844 if (cdev->errcode)
854 data.errcode = cdev->errcode;
855 cdev->errcode = CAPI_NOERROR;
883 mutex_lock(&cdev->lock);
885 cdev->userflags |= userflags;
887 cdev->userflags &= ~userflags;
888 mutex_unlock(&cdev->lock);
892 if (copy_to_user(argp, &cdev->userflags,
893 sizeof(cdev->userflags)))
910 mutex_lock(&cdev->lock);
911 nccip = capincci_find(cdev, (u32)ncci);
914 mutex_unlock(&cdev->lock);
927 mutex_lock(&cdev->lock);
928 nccip = capincci_find(cdev, (u32)ncci);
934 mutex_unlock(&cdev->lock);
986 struct capidev *cdev;
988 cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
989 if (!cdev)
992 mutex_init(&cdev->lock);
993 skb_queue_head_init(&cdev->recvqueue);
994 init_waitqueue_head(&cdev->recvwait);
995 INIT_LIST_HEAD(&cdev->nccis);
996 file->private_data = cdev;
999 list_add_tail(&cdev->list, &capidev_list);
1007 struct capidev *cdev = file->private_data;
1010 list_del(&cdev->list);
1013 if (cdev->ap.applid)
1014 capi20_release(&cdev->ap);
1015 skb_queue_purge(&cdev->recvqueue);
1016 capincci_free(cdev, 0xffffffff);
1018 kfree(cdev);
1328 struct capidev *cdev;
1333 cdev = list_entry(l, struct capidev, list);
1335 cdev->ap.applid,
1336 cdev->ap.nrecvctlpkt,
1337 cdev->ap.nrecvdatapkt,
1338 cdev->ap.nsentctlpkt,
1339 cdev->ap.nsentdatapkt);
1351 struct capidev *cdev;
1355 list_for_each_entry(cdev, &capidev_list, list) {
1356 mutex_lock(&cdev->lock);
1357 list_for_each_entry(np, &cdev->nccis, list)
1358 seq_printf(m, "%d 0x%x\n", cdev->ap.applid, np->ncci);
1359 mutex_unlock(&cdev->lock);