Lines Matching refs:irb
384 memset(&cdev->private->irb, 0, sizeof(struct irb));
498 static void create_fake_irb(struct irb *irb, int type)
500 memset(irb, 0, sizeof(*irb));
502 struct cmd_scsw *scsw = &irb->scsw.cmd;
508 struct tm_scsw *scsw = &irb->scsw.tm;
538 /* Deliver fake irb to device driver, if needed. */
540 create_fake_irb(&cdev->private->irb,
545 &cdev->private->irb);
546 memset(&cdev->private->irb, 0, sizeof(struct irb));
702 (scsw_stctl(&cdev->private->irb.scsw) & SCSW_STCTL_STATUS_PEND)) {
739 struct irb *irb;
742 irb = this_cpu_ptr(&cio_irb);
743 is_cmd = !scsw_is_tm(&irb->scsw);
745 if (!scsw_is_solicited(&irb->scsw)) {
746 if (is_cmd && (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) &&
747 !irb->esw.esw0.erw.cons) {
749 if (ccw_device_do_sense(cdev, irb) != 0)
751 memcpy(&cdev->private->irb, irb, sizeof(struct irb));
758 cdev->handler (cdev, 0, irb);
764 ccw_device_accumulate_irb(cdev, irb);
766 if (ccw_device_do_sense(cdev, irb) == 0) {
806 struct irb *irb;
808 irb = this_cpu_ptr(&cio_irb);
810 if (scsw_stctl(&irb->scsw) ==
812 if (scsw_cc(&irb->scsw) == 1)
814 ccw_device_do_sense(cdev, irb);
821 cdev->handler (cdev, 0, irb);
830 if (scsw_fctl(&irb->scsw) &
833 memset(&cdev->private->irb, 0, sizeof(struct irb));
834 ccw_device_accumulate_irb(cdev, irb);
837 /* Add basic sense info to irb. */
838 ccw_device_accumulate_basic_sense(cdev, irb);
841 ccw_device_do_sense(cdev, irb);