Lines Matching defs:crd
190 struct usb_cdev_refdata *crd, int need_uref)
198 memset(crd, 0, sizeof(*crd));
231 crd->do_unlock = usbd_enum_lock_sig(cpd->udev);
238 crd->is_uref = 1;
241 if (crd->do_unlock > 1) {
242 crd->do_unlock = 0;
255 crd->txfifo = f;
256 crd->is_write = 1; /* ref */
263 crd->is_usbfs = 1;
271 crd->rxfifo = f;
272 crd->is_read = 1; /* ref */
279 crd->is_usbfs = 1;
285 if (crd->is_write) {
287 crd->txfifo->refcount++;
289 if (crd->is_read) {
291 crd->rxfifo->refcount++;
298 if (crd->do_unlock)
301 if (crd->is_uref) {
309 memset(crd, 0, sizeof(*crd));
326 struct usb_cdev_refdata *crd)
331 if (crd->is_uref)
338 usb_unref_device(cpd, crd);
340 return (usb_ref_device(cpd, crd, 1 /* need uref */));
351 struct usb_cdev_refdata *crd)
354 DPRINTFN(2, "cpd=%p is_uref=%d\n", cpd, crd->is_uref);
356 if (crd->do_unlock)
360 if (crd->is_read) {
361 if (--(crd->rxfifo->refcount) == 0) {
362 cv_signal(&crd->rxfifo->cv_drain);
364 crd->is_read = 0;
366 if (crd->is_write) {
367 if (--(crd->txfifo->refcount) == 0) {
368 cv_signal(&crd->txfifo->cv_drain);
370 crd->is_write = 0;
372 if (crd->is_uref) {
373 crd->is_uref = 0;
400 struct usb_cdev_refdata *crd)
424 crd->txfifo = f;
430 crd->rxfifo = f;
555 crd->txfifo = udev->fifo[n + USB_FIFO_TX];
558 crd->rxfifo = udev->fifo[n + USB_FIFO_RX];