/openbmc/linux/drivers/s390/cio/ |
H A D | ioasm.c | 18 static inline int __stsch(struct subchannel_id schid, struct schib *addr) in __stsch() argument 20 unsigned long r1 = *(unsigned int *)&schid; in __stsch() 36 int stsch(struct subchannel_id schid, struct schib *addr) in stsch() argument 40 ccode = __stsch(schid, addr); in stsch() 41 trace_s390_cio_stsch(schid, addr, ccode); in stsch() 47 static inline int __msch(struct subchannel_id schid, struct schib *addr) in __msch() argument 49 unsigned long r1 = *(unsigned int *)&schid; in __msch() 65 int msch(struct subchannel_id schid, struct schib *addr) in msch() argument 69 ccode = __msch(schid, addr); in msch() 70 trace_s390_cio_msch(schid, addr, ccode); in msch() [all …]
|
H A D | vfio_ccw_trace.h | 21 TP_PROTO(struct subchannel_id schid, 24 TP_ARGS(schid, mask, event), 35 __entry->cssid = schid.cssid; 36 __entry->ssid = schid.ssid; 37 __entry->sch_no = schid.sch_no; 51 TP_PROTO(struct subchannel_id schid, 54 TP_ARGS(schid, command, errno), 65 __entry->cssid = schid.cssid; 66 __entry->ssid = schid.ssid; 67 __entry->sch_no = schid.sch_no; [all …]
|
H A D | trace.h | 25 TP_PROTO(struct subchannel_id schid, struct schib *schib, int cc), 26 TP_ARGS(schid, schib, cc), 47 __entry->cssid = schid.cssid; 48 __entry->ssid = schid.ssid; 49 __entry->schno = schid.sch_no; 85 TP_PROTO(struct subchannel_id schid, struct schib *schib, int cc), 86 TP_ARGS(schid, schib, cc) 96 TP_PROTO(struct subchannel_id schid, struct schib *schib, int cc), 97 TP_ARGS(schid, schib, cc) 107 TP_PROTO(struct subchannel_id schid, struct irb *irb, int cc), [all …]
|
H A D | idset.c | 69 void idset_sch_add(struct idset *set, struct subchannel_id schid) in idset_sch_add() argument 71 idset_add(set, schid.ssid, schid.sch_no); in idset_sch_add() 74 void idset_sch_del(struct idset *set, struct subchannel_id schid) in idset_sch_del() argument 76 idset_del(set, schid.ssid, schid.sch_no); in idset_sch_del() 80 void idset_sch_del_subseq(struct idset *set, struct subchannel_id schid) in idset_sch_del_subseq() argument 82 int pos = schid.ssid * set->num_id + schid.sch_no; in idset_sch_del_subseq() 84 bitmap_clear(set->bitmap, pos, set->num_id - schid.sch_no); in idset_sch_del_subseq() 87 int idset_sch_contains(struct idset *set, struct subchannel_id schid) in idset_sch_contains() argument 89 return idset_contains(set, schid.ssid, schid.sch_no); in idset_sch_contains()
|
H A D | vfio_ccw_fsm.c | 40 ccode = ssch(sch->schid, orb); in fsm_io_helper() 92 ccode = hsch(sch->schid); in fsm_do_halt() 131 ccode = csch(sch->schid); in fsm_do_clear() 160 sch->schid.cssid, in fsm_notoper() 161 sch->schid.ssid, in fsm_notoper() 162 sch->schid.sch_no, in fsm_notoper() 237 return sch->schid; in get_schid() 250 struct subchannel_id schid = get_schid(private); in fsm_io_request() local 263 schid.cssid, in fsm_io_request() 264 schid.ssid, schid.sch_no); in fsm_io_request() [all …]
|
H A D | ioasm.h | 16 int stsch(struct subchannel_id schid, struct schib *addr); 17 int msch(struct subchannel_id schid, struct schib *addr); 18 int tsch(struct subchannel_id schid, struct irb *addr); 19 int ssch(struct subchannel_id schid, union orb *addr); 20 int csch(struct subchannel_id schid); 23 int rsch(struct subchannel_id schid); 24 int hsch(struct subchannel_id schid); 25 int xsch(struct subchannel_id schid);
|
H A D | css.c | 47 struct subchannel_id schid; in for_each_subchannel() local 50 init_subchannel_id(&schid); in for_each_subchannel() 53 ret = fn(schid, data); in for_each_subchannel() 56 } while (schid.sch_no++ < __MAX_SUBCHANNEL); in for_each_subchannel() 57 schid.sch_no = 0; in for_each_subchannel() 58 } while (schid.ssid++ < max_ssid); in for_each_subchannel() 76 idset_sch_del(cb->set, sch->schid); in call_fn_known_sch() 82 static int call_fn_unknown_sch(struct subchannel_id schid, void *data) in call_fn_unknown_sch() argument 87 if (idset_sch_contains(cb->set, schid)) in call_fn_unknown_sch() 88 rc = cb->fn_unknown_sch(schid, cb->data); in call_fn_unknown_sch() [all …]
|
H A D | cio.c | 109 "subchannel 0.%x.%04x!\n", sch->schid.ssid, in cio_start_handle_notoper() 110 sch->schid.sch_no); in cio_start_handle_notoper() 152 ccode = ssch(sch->schid, orb); in cio_start_key() 193 ccode = rsch (sch->schid); in cio_resume() 232 ccode = hsch (sch->schid); in cio_halt() 266 ccode = csch (sch->schid); in cio_clear() 298 ccode = xsch (sch->schid); in cio_cancel() 415 if (stsch(sch->schid, &schib) || !css_sch_is_valid(&schib)) in cio_commit_config() 421 ccode = msch(sch->schid, &schib); in cio_commit_config() 426 if (stsch(sch->schid, &schib) || in cio_commit_config() [all …]
|
H A D | qdio_main.c | 33 static inline int do_siga_sync(unsigned long schid, in do_siga_sync() argument 48 : [fc] "d" (fc), [schid] "d" (schid), in do_siga_sync() 54 static inline int do_siga_input(unsigned long schid, unsigned long mask, in do_siga_input() argument 67 : [fc] "d" (fc), [schid] "d" (schid), [mask] "d" (mask) in do_siga_input() 83 static inline int do_siga_output(unsigned long schid, unsigned long mask, in do_siga_output() argument 99 : [schid] "d" (schid), [mask] "d" (mask), [aob] "d" (aob) in do_siga_output() 287 unsigned long schid = *((u32 *) &q->irq_ptr->schid); in qdio_siga_sync() local 295 schid = q->irq_ptr->sch_token; in qdio_siga_sync() 299 cc = do_siga_sync(schid, output, input, fc); in qdio_siga_sync() 326 unsigned long schid = *((u32 *) &q->irq_ptr->schid); in qdio_siga_output() local [all …]
|
H A D | vfio_ccw_drv.c | 59 sch->schid.ssid, sch->schid.sch_no); in vfio_ccw_sch_quiesce() 144 sch->schid.cssid, sch->schid.ssid, in vfio_ccw_sch_irq() 145 sch->schid.sch_no); in vfio_ccw_sch_irq() 197 sch->schid.cssid, sch->schid.ssid, in vfio_ccw_sch_probe() 198 sch->schid.sch_no); in vfio_ccw_sch_probe() 219 sch->schid.cssid, sch->schid.ssid, in vfio_ccw_sch_remove() 220 sch->schid.sch_no); in vfio_ccw_sch_remove() 310 trace_vfio_ccw_chp_event(sch->schid, mask, event); in vfio_ccw_chp_event() 312 sch->schid.cssid, in vfio_ccw_chp_event() 313 sch->schid.ssid, sch->schid.sch_no, in vfio_ccw_chp_event()
|
H A D | chsc.c | 103 int chsc_get_ssd_info(struct subchannel_id schid, struct chsc_ssd_info *ssd) in chsc_get_ssd_info() argument 117 ssd_area->ssid = schid.ssid; in chsc_get_ssd_info() 118 ssd_area->f_sch = schid.sch_no; in chsc_get_ssd_info() 119 ssd_area->l_sch = schid.sch_no; in chsc_get_ssd_info() 130 schid.ssid, schid.sch_no, in chsc_get_ssd_info() 167 int chsc_ssqd(struct subchannel_id schid, struct chsc_ssqd_area *ssqd) in chsc_ssqd() argument 172 ssqd->first_sch = schid.sch_no; in chsc_ssqd() 173 ssqd->last_sch = schid.sch_no; in chsc_ssqd() 174 ssqd->ssid = schid.ssid; in chsc_ssqd() 193 int chsc_sadc(struct subchannel_id schid, struct chsc_scssc_area *scssc, in chsc_sadc() argument [all …]
|
H A D | chsc.h | 102 struct subchannel_id schid; member 141 extern int chsc_get_ssd_info(struct subchannel_id schid, 165 int chsc_ssqd(struct subchannel_id schid, struct chsc_ssqd_area *ssqd); 166 int chsc_sadc(struct subchannel_id schid, struct chsc_scssc_area *scssc, 172 int chsc_siosl(struct subchannel_id schid); 209 int chsc_pnso(struct subchannel_id schid, struct chsc_pnso_area *pnso_area,
|
H A D | chsc_sch.c | 67 sch->schid.ssid, sch->schid.sch_no); in chsc_subchannel_irq() 83 sch->schid.ssid, sch->schid.sch_no); in chsc_subchannel_probe() 92 sch->schid.ssid, sch->schid.sch_no, ret); in chsc_subchannel_probe() 221 chsc_area->header.sid = sch->schid; in chsc_async() 223 CHSC_LOG_HEX(2, &sch->schid, sizeof(sch->schid)); in chsc_async() 244 sch->schid.ssid, sch->schid.sch_no, cc); in chsc_async() 581 sscud_area->m = cud->schid.m; in chsc_ioctl_info_sch_cu() 583 sscud_area->ssid = cud->schid.ssid; in chsc_ioctl_info_sch_cu() 584 sscud_area->first_sch = cud->schid.sch_no; in chsc_ioctl_info_sch_cu() 585 sscud_area->cssid = cud->schid.cssid; in chsc_ioctl_info_sch_cu() [all …]
|
H A D | qdio_setup.c | 237 struct subchannel_id *schid, in qdio_setup_get_ssqd() argument 243 DBF_EVENT("getssqd:%4x", schid->sch_no); in qdio_setup_get_ssqd() 252 rc = chsc_ssqd(*schid, ssqd); in qdio_setup_get_ssqd() 258 (ssqd->qdio_ssqd.sch != schid->sch_no)) in qdio_setup_get_ssqd() 276 rc = qdio_setup_get_ssqd(irq_ptr, &irq_ptr->schid, &irq_ptr->ssqd_desc); in qdio_setup_ssqd_info() 278 DBF_ERROR("%4x ssqd ERR", irq_ptr->schid.sch_no); in qdio_setup_ssqd_info() 370 ccw_device_get_schid(cdev, &irq_ptr->schid); in qdio_setup_irq() 407 irq_ptr->schid.sch_no, in qdio_print_subchannel_info()
|
H A D | eadm_sch.c | 71 EADM_LOG_HEX(6, &sch->schid, sizeof(sch->schid)); in eadm_subchannel_start() 73 cc = ssch(sch->schid, orb); in eadm_subchannel_start() 91 cc = csch(sch->schid); in eadm_subchannel_clear() 106 EADM_LOG_HEX(1, &sch->schid, sizeof(sch->schid)); in eadm_subchannel_timeout()
|
H A D | device.c | 574 rc = chsc_siosl(sch->schid); in initiate_logging() 577 sch->schid.ssid, sch->schid.sch_no, rc); in initiate_logging() 581 sch->schid.ssid, sch->schid.sch_no); in initiate_logging() 745 priv->dev_id.ssid = sch->schid.ssid; in io_subchannel_initialize_dev() 946 cdev->private->dev_id.devno, sch->schid.ssid, in ccw_device_move_to_sch() 963 css_schedule_eval(old_sch->schid); in ccw_device_move_to_sch() 1008 if (cio_is_console(sch->schid)) in io_subchannel_init_fields() 1013 sch->isc = cio_is_console(sch->schid) ? CONSOLE_ISC : IO_SCH_ISC; in io_subchannel_init_fields() 1017 sch->schib.pmcw.dev, sch->schid.ssid, in io_subchannel_init_fields() 1018 sch->schid.sch_no, sch->schib.pmcw.pim, in io_subchannel_init_fields() [all …]
|
/openbmc/qemu/pc-bios/s390-ccw/ |
H A D | dasd-ipl.c | 76 static int run_dynamic_ccw_program(SubChannelId schid, uint16_t cutype, in run_dynamic_ccw_program() argument 88 rc = do_cio(schid, cutype, cpa, CCW_FMT0); in run_dynamic_ccw_program() 114 static int run_readipl(SubChannelId schid, uint16_t cutype) in run_readipl() argument 116 return do_cio(schid, cutype, 0x00, CCW_FMT0); in run_readipl() 182 static int run_ipl1(SubChannelId schid, uint16_t cutype) in run_ipl1() argument 186 return do_cio(schid, cutype, startAddr, CCW_FMT0); in run_ipl1() 189 static int run_ipl2(SubChannelId schid, uint16_t cutype, uint32_t addr) in run_ipl2() argument 191 return run_dynamic_ccw_program(schid, cutype, addr); in run_ipl2() 198 int dasd_ipl(SubChannelId schid, uint16_t cutype) in dasd_ipl() argument 205 if (run_readipl(schid, cutype)) { in dasd_ipl() [all …]
|
H A D | cio.c | 23 static int __do_cio(SubChannelId schid, uint32_t ccw_addr, int fmt, Irb *irb); 42 void enable_subchannel(SubChannelId schid) in enable_subchannel() argument 46 stsch_err(schid, &schib); in enable_subchannel() 48 msch(schid, &schib); in enable_subchannel() 51 uint16_t cu_type(SubChannelId schid) in cu_type() argument 61 if (do_cio(schid, CU_TYPE_UNKNOWN, ptr2u32(&sense_id_ccw), CCW_FMT1)) { in cu_type() 69 int basic_sense(SubChannelId schid, uint16_t cutype, void *sense_data, in basic_sense() argument 79 return __do_cio(schid, ptr2u32(&senseCcw), CCW_FMT1, &irb); in basic_sense() 310 static int __do_cio(SubChannelId schid, uint32_t ccw_addr, int fmt, Irb *irb) in __do_cio() argument 332 rc = ssch(schid, &orb); in __do_cio() [all …]
|
H A D | cio.h | 162 struct subchannel_id schid; member 367 void enable_subchannel(SubChannelId schid); 368 uint16_t cu_type(SubChannelId schid); 369 int basic_sense(SubChannelId schid, uint16_t cutype, void *sense_data, 371 int do_cio(SubChannelId schid, uint16_t cutype, uint32_t ccw_addr, int fmt); 377 static inline int stsch_err(struct subchannel_id schid, struct schib *addr) in stsch_err() argument 379 register struct subchannel_id reg1 asm ("1") = schid; in stsch_err() 393 static inline int msch(struct subchannel_id schid, struct schib *addr) in msch() argument 395 register struct subchannel_id reg1 asm ("1") = schid; in msch() 408 static inline int msch_err(struct subchannel_id schid, struct schib *addr) in msch_err() argument [all …]
|
H A D | virtio.c | 32 .schid = { .one = 1 }, 65 static long virtio_notify(SubChannelId schid, int vq_idx, long cookie) in virtio_notify() argument 67 return kvm_hypercall(KVM_S390_VIRTIO_CCW_NOTIFY, *(u32 *)&schid, in virtio_notify() 75 int drain_irqs(SubChannelId schid) in drain_irqs() argument 82 if (tsch(schid, &irb)) { in drain_irqs() 106 return do_cio(vdev->schid, vdev->senseid.cu_type, ptr2u32(&ccw), CCW_FMT1); in run_ccw() 137 vr->cookie = virtio_notify(vr->schid, vr->id, vr->cookie); in vring_notify() 214 if (drain_irqs(vr->schid)) { in virtio_run() 229 if (!virtio_is_supported(vdev->schid)) { in virtio_setup_ccw() 314 vdev->vrings[i].schid = vdev->schid; in virtio_setup_ccw() [all …]
|
H A D | virtio-blkdev.c | 45 if (drain_irqs(vr->schid)) { in virtio_blk_read_many() 225 int virtio_blk_setup_device(SubChannelId schid) in virtio_blk_setup_device() argument 230 vdev->schid = schid; in virtio_blk_setup_device()
|
/openbmc/qemu/target/s390x/ |
H A D | ioinst.c | 40 int *schid) in ioinst_disassemble_sch_ident() argument 56 *schid = IOINST_SCHID_NR(value); in ioinst_disassemble_sch_ident() 62 int cssid, ssid, schid, m; in ioinst_handle_xsch() local 65 if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid)) { in ioinst_handle_xsch() 69 trace_ioinst_sch_id("xsch", cssid, ssid, schid); in ioinst_handle_xsch() 70 sch = css_find_subch(m, cssid, ssid, schid); in ioinst_handle_xsch() 80 int cssid, ssid, schid, m; in ioinst_handle_csch() local 83 if (ioinst_disassemble_sch_ident(reg1, &m, &cssid, &ssid, &schid)) { in ioinst_handle_csch() 87 trace_ioinst_sch_id("csch", cssid, ssid, schid); in ioinst_handle_csch() 88 sch = css_find_subch(m, cssid, ssid, schid); in ioinst_handle_csch() [all …]
|
/openbmc/linux/arch/s390/include/asm/ |
H A D | schid.h | 10 init_subchannel_id(struct subchannel_id *schid) in init_subchannel_id() argument 12 memset(schid, 0, sizeof(struct subchannel_id)); in init_subchannel_id() 13 schid->one = 1; in init_subchannel_id()
|
/openbmc/qemu/hw/s390x/ |
H A D | css.c | 368 s->migrated_schid = s->schid; in subch_dev_pre_save() 379 if (s->migrated_schid != s->schid) { in subch_dev_post_load() 380 if (css_find_subch(true, s->cssid, s->ssid, s->schid) == s) { in subch_dev_post_load() 386 css_subch_assign(s->cssid, s->ssid, s->schid, s->devno, NULL); in subch_dev_post_load() 389 s->schid = s->migrated_schid; in subch_dev_post_load() 390 css_subch_assign(s->cssid, s->ssid, s->schid, s->devno, s); in subch_dev_post_load() 612 trace_css_io_interrupt(sch->cssid, sch->ssid, sch->schid, in css_inject_io_interrupt() 615 sch->schid, in css_inject_io_interrupt() 637 trace_css_io_interrupt(sch->cssid, sch->ssid, sch->schid, in css_conditional_io_interrupt() 645 sch->schid, in css_conditional_io_interrupt() [all …]
|
/openbmc/qemu/include/hw/s390x/ |
H A D | css.h | 126 uint16_t schid; member 197 uint16_t schid); 200 void css_subch_assign(uint8_t cssid, uint8_t ssid, uint16_t schid, 214 void css_generate_sch_crws(uint8_t cssid, uint8_t ssid, uint16_t schid, 243 uint16_t schid); 247 bool css_schid_final(int m, uint8_t cssid, uint8_t ssid, uint16_t schid);
|