/qemu/hw/s390x/ |
H A D | s390-ccw.c | 23 IOInstEnding s390_ccw_cmd_request(SubchDev *sch) in s390_ccw_cmd_request() argument 25 S390CCWDeviceClass *cdc = S390_CCW_DEVICE_GET_CLASS(sch->driver_data); in s390_ccw_cmd_request() 30 return cdc->handle_request(sch); in s390_ccw_cmd_request() 33 int s390_ccw_halt(SubchDev *sch) in s390_ccw_halt() argument 35 S390CCWDeviceClass *cdc = S390_CCW_DEVICE_GET_CLASS(sch->driver_data); in s390_ccw_halt() 40 return cdc->handle_halt(sch); in s390_ccw_halt() 43 int s390_ccw_clear(SubchDev *sch) in s390_ccw_clear() argument 45 S390CCWDeviceClass *cdc = S390_CCW_DEVICE_GET_CLASS(sch->driver_data); in s390_ccw_clear() 50 return cdc->handle_clear(sch); in s390_ccw_clear() 53 IOInstEnding s390_ccw_store(SubchDev *sch) in s390_ccw_store() argument [all …]
|
H A D | 3270-ccw.c | 36 ccw_dev->sch->curr_status.scsw.count = ccw->count - len; in handle_payload_3270_read() 58 ccw_dev->sch->curr_status.scsw.count = ccw->count - len; in handle_payload_3270_write() 62 static int emulated_ccw_3270_cb(SubchDev *sch, CCW1 ccw) in emulated_ccw_3270_cb() argument 65 EmulatedCcw3270Device *dev = sch->driver_data; in emulated_ccw_3270_cb() 85 SCHIB *schib = &sch->curr_status; in emulated_ccw_3270_cb() 87 sch->curr_status.scsw.dstat = SCSW_DSTAT_UNIT_CHECK; in emulated_ccw_3270_cb() 88 sch->sense_data[0] = 0x40; /* intervention-req */ in emulated_ccw_3270_cb() 105 SubchDev *sch; in emulated_ccw_3270_realize() local 108 sch = css_create_sch(cdev->devno, errp); in emulated_ccw_3270_realize() 109 if (!sch) { in emulated_ccw_3270_realize() [all …]
|
H A D | css.c | 71 SubchDev *sch[MAX_SCHID + 1]; member 574 uint16_t css_build_subchannel_id(SubchDev *sch) in css_build_subchannel_id() argument 576 return css_do_build_subchannel_id(sch->cssid, sch->ssid); in css_build_subchannel_id() 579 void css_inject_io_interrupt(SubchDev *sch) in css_inject_io_interrupt() argument 581 uint8_t isc = (sch->curr_status.pmcw.flags & PMCW_FLAGS_MASK_ISC) >> 11; in css_inject_io_interrupt() 583 trace_css_io_interrupt(sch->cssid, sch->ssid, sch->schid, in css_inject_io_interrupt() 584 sch->curr_status.pmcw.intparm, isc, ""); in css_inject_io_interrupt() 585 s390_io_interrupt(css_build_subchannel_id(sch), in css_inject_io_interrupt() 586 sch->schid, in css_inject_io_interrupt() 587 sch->curr_status.pmcw.intparm, in css_inject_io_interrupt() [all …]
|
H A D | virtio-ccw.c | 47 ccw_dev->sch->driver_data = dev; in virtio_ccw_dev_post_load() 48 if (ccw_dev->sch->thinint_active) { in virtio_ccw_dev_post_load() 123 VirtIODevice *virtio_ccw_get_vdev(SubchDev *sch) in virtio_ccw_get_vdev() argument 126 VirtioCcwDevice *dev = sch->driver_data; in virtio_ccw_get_vdev() 156 SubchDev *sch = ccw_dev->sch; in virtio_ccw_ioeventfd_assign() local 157 uint32_t sch_id = (css_build_subchannel_id(sch) << 16) | sch->schid; in virtio_ccw_ioeventfd_assign() 203 static int virtio_ccw_set_vqs(SubchDev *sch, VqInfoBlock *info, in virtio_ccw_set_vqs() argument 206 VirtIODevice *vdev = virtio_ccw_get_vdev(sch); in virtio_ccw_set_vqs() 269 ccw_dev->sch->thinint_active = false; in virtio_ccw_reset_virtio() 272 static int virtio_ccw_handle_set_vq(SubchDev *sch, CCW1 ccw, bool check_len, in virtio_ccw_handle_set_vq() argument [all …]
|
H A D | css-bridge.c | 34 SubchDev *sch = ccw_dev->sch; in ccw_device_unplug() local 49 assert(sch != NULL); in ccw_device_unplug() 51 sch->curr_status.pmcw.flags &= ~(PMCW_FLAGS_MASK_ENA | in ccw_device_unplug() 54 css_generate_sch_crws(sch->cssid, sch->ssid, sch->schid, 1, 0); in ccw_device_unplug() 68 SubchDev *sch = ccw_dev->sch; in virtual_css_bus_get_dev_path() local 70 return g_strdup_printf("/%02x.%1x.%04x", sch->cssid, sch->ssid, sch->devno); in virtual_css_bus_get_dev_path()
|
H A D | ccw-device.c | 23 SubchDev *sch = dev->sch; in ccw_device_refill_ids() local 25 assert(sch); in ccw_device_refill_ids() 27 dev->dev_id.cssid = sch->cssid; in ccw_device_refill_ids() 28 dev->dev_id.ssid = sch->ssid; in ccw_device_refill_ids() 29 dev->dev_id.devid = sch->devno; in ccw_device_refill_ids() 32 dev->subch_id.cssid = sch->cssid; in ccw_device_refill_ids() 33 dev->subch_id.ssid = sch->ssid; in ccw_device_refill_ids() 34 dev->subch_id.devid = sch->schid; in ccw_device_refill_ids() 94 css_reset_sch(ccw_dev->sch); in ccw_device_reset_hold() 115 VMSTATE_STRUCT_POINTER(sch, CcwDevice, vmstate_subch_dev, SubchDev),
|
H A D | s390-hypercall.c | 33 SubchDev *sch; in handle_virtio_ccw_notify() local 41 sch = css_find_subch(m, cssid, ssid, schid); in handle_virtio_ccw_notify() 42 if (!sch || !css_subch_visible(sch)) { in handle_virtio_ccw_notify() 46 vdev = virtio_ccw_get_vdev(sch); in handle_virtio_ccw_notify()
|
H A D | ipl.c | 454 iplb->scsi.devno = cpu_to_be16(ccw_dev->sch->devno); in s390_build_iplb() 455 iplb->scsi.ssid = ccw_dev->sch->ssid & 3; in s390_build_iplb() 460 iplb->ccw.devno = cpu_to_be16(ccw_dev->sch->devno); in s390_build_iplb() 461 iplb->ccw.ssid = ccw_dev->sch->ssid & 3; in s390_build_iplb() 469 iplb->ccw.devno = cpu_to_be16(ccw_dev->sch->devno); in s390_build_iplb() 470 iplb->ccw.ssid = ccw_dev->sch->ssid & 3; in s390_build_iplb()
|
H A D | ccw-device.h | 21 SubchDev *sch; member
|
H A D | virtio-ccw.h | 91 VirtIODevice *virtio_ccw_get_vdev(SubchDev *sch);
|
H A D | trace-events | 9 …32_t intparm, uint8_t isc, const char *conditional) "CSS: I/O interrupt on sch %x.%x.%04x (intparm…
|
/qemu/include/hw/s390x/ |
H A D | css.h | 147 static inline void sch_gen_unit_exception(SubchDev *sch) in sch_gen_unit_exception() argument 149 sch->curr_status.scsw.ctrl &= ~(SCSW_ACTL_DEVICE_ACTIVE | in sch_gen_unit_exception() 151 sch->curr_status.scsw.ctrl |= SCSW_STCTL_PRIMARY | in sch_gen_unit_exception() 155 sch->curr_status.scsw.cpa = sch->channel_prog + 8; in sch_gen_unit_exception() 156 sch->curr_status.scsw.dstat = SCSW_DSTAT_UNIT_EXCEP; in sch_gen_unit_exception() 201 uint16_t devno, SubchDev *sch); 202 void css_sch_build_virtual_schib(SubchDev *sch, uint8_t chpid, uint8_t type); 203 int css_sch_build_schib(SubchDev *sch, CssDevId *dev_id); 205 uint16_t css_build_subchannel_id(SubchDev *sch); 208 void css_inject_io_interrupt(SubchDev *sch); [all …]
|
H A D | s390-ccw.h | 36 IOInstEnding (*handle_request) (SubchDev *sch); 37 int (*handle_halt) (SubchDev *sch); 38 int (*handle_clear) (SubchDev *sch); 39 IOInstEnding (*handle_store) (SubchDev *sch);
|
/qemu/target/s390x/ |
H A D | ioinst.c | 64 SubchDev *sch; in ioinst_handle_xsch() local 71 sch = css_find_subch(m, cssid, ssid, schid); in ioinst_handle_xsch() 72 if (!sch || !css_subch_visible(sch)) { in ioinst_handle_xsch() 76 setcc(cpu, css_do_xsch(sch)); in ioinst_handle_xsch() 82 SubchDev *sch; in ioinst_handle_csch() local 89 sch = css_find_subch(m, cssid, ssid, schid); in ioinst_handle_csch() 90 if (!sch || !css_subch_visible(sch)) { in ioinst_handle_csch() 94 setcc(cpu, css_do_csch(sch)); in ioinst_handle_csch() 100 SubchDev *sch; in ioinst_handle_hsch() local 107 sch = css_find_subch(m, cssid, ssid, schid); in ioinst_handle_hsch() [all …]
|
/qemu/hw/vfio/ |
H A D | ccw.c | 69 static IOInstEnding vfio_ccw_handle_request(SubchDev *sch) in vfio_ccw_handle_request() argument 71 VFIOCCWDevice *vcdev = VFIO_CCW(sch->driver_data); in vfio_ccw_handle_request() 75 if (!(sch->orb.ctrl0 & ORB_CTRL0_MASK_PFCH) && vcdev->force_orb_pfch) { in vfio_ccw_handle_request() 76 sch->orb.ctrl0 |= ORB_CTRL0_MASK_PFCH; in vfio_ccw_handle_request() 78 sch->cssid, sch->ssid, sch->devno); in vfio_ccw_handle_request() 87 memcpy(region->orb_area, &sch->orb, sizeof(ORB)); in vfio_ccw_handle_request() 88 memcpy(region->scsw_area, &sch->curr_status.scsw, sizeof(SCSW)); in vfio_ccw_handle_request() 112 sch_gen_unit_exception(sch); in vfio_ccw_handle_request() 113 css_inject_io_interrupt(sch); in vfio_ccw_handle_request() 118 static IOInstEnding vfio_ccw_handle_store(SubchDev *sch) in vfio_ccw_handle_store() argument [all …]
|
/qemu/hw/char/ |
H A D | terminal3270.c | 68 SubchDev *sch = ccw_dev->sch; in TN3270_handshake_done() local 71 sch->curr_status.scsw.dstat = SCSW_DSTAT_DEVICE_END; in TN3270_handshake_done() 72 css_conditional_io_interrupt(sch); in TN3270_handshake_done() 101 SubchDev *sch = ccw_dev->sch; in terminal_read() local 137 sch->curr_status.scsw.dstat = SCSW_DSTAT_ATTENTION; in terminal_read() 138 css_conditional_io_interrupt(sch); in terminal_read() 152 SubchDev *sch = ccw_dev->sch; in chr_event() local 169 sch->curr_status.scsw.dstat = SCSW_DSTAT_DEVICE_END; in chr_event() 170 css_conditional_io_interrupt(sch); in chr_event() 196 return &(CCW_DEVICE(&t->cdev)->sch->cds); in get_cds()
|
/qemu/target/s390x/kvm/ |
H A D | trace-events | 7 kvm_assign_subch_ioeventfd(int fd, uint32_t addr, bool assign, int datamatch) "fd: %d sch: @0x%x as…
|
H A D | kvm_s390x.h | 37 int kvm_s390_assign_subch_ioeventfd(EventNotifier *notifier, uint32_t sch,
|
H A D | kvm.c | 1967 int kvm_s390_assign_subch_ioeventfd(EventNotifier *notifier, uint32_t sch, in kvm_s390_assign_subch_ioeventfd() argument 1975 .addr = sch, in kvm_s390_assign_subch_ioeventfd()
|