return -EFAULT;
}
- len = ck->read_payload_3270(dev, ccw->cda, ccw->count);
+ len = ck->read_payload_3270(dev);
ccw_dev->sch->curr_status.scsw.count = ccw->count - len;
return 0;
return -EFAULT;
}
- len = ck->write_payload_3270(dev, ccw->cmd_code, ccw->cda, ccw->count);
+ len = ck->write_payload_3270(dev, ccw->cmd_code);
if (len <= 0) {
return -EIO;
EmulatedCcw3270Class *ck = EMULATED_CCW_3270_GET_CLASS(dev);
CcwDevice *cdev = CCW_DEVICE(ds);
CCWDeviceClass *cdk = CCW_DEVICE_GET_CLASS(cdev);
- SubchDev *sch = css_create_virtual_sch(cdev->devno, errp);
+ DeviceState *parent = DEVICE(cdev);
+ BusState *qbus = qdev_get_parent_bus(parent);
+ VirtualCssBus *cbus = VIRTUAL_CSS_BUS(qbus);
+ SubchDev *sch;
Error *err = NULL;
+ sch = css_create_sch(cdev->devno, cbus->squash_mcss, errp);
if (!sch) {
return;
}
sch->id.cu_type = EMULATED_CCW_3270_CU_TYPE;
css_sch_build_virtual_schib(sch, (uint8_t)chpid,
EMULATED_CCW_3270_CHPID_TYPE);
+ sch->do_subchannel_work = do_subchannel_work_virtual;
sch->ccw_cb = emulated_ccw_3270_cb;
ck->init(dev, &err);
dc->bus_type = TYPE_VIRTUAL_CSS_BUS;
dc->realize = emulated_ccw_3270_realize;
dc->hotpluggable = false;
+ set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories);
}
static const TypeInfo emulated_ccw_3270_info = {