Home
last modified time | relevance | path

Searched refs:schib (Results 1 – 25 of 32) sorted by relevance

12

/openbmc/linux/drivers/s390/cio/
H A Dcio.c117 CIO_HEX_EVENT(0, &sch->schib, sizeof (struct schib)); in cio_start_handle_notoper()
162 sch->schib.scsw.cmd.actl |= SCSW_ACTL_START_PEND; in cio_start_key()
199 sch->schib.scsw.cmd.actl |= SCSW_ACTL_RESUME_PEND; in cio_resume()
238 sch->schib.scsw.cmd.actl |= SCSW_ACTL_HALT_PEND; in cio_halt()
272 sch->schib.scsw.cmd.actl |= SCSW_ACTL_CLEAR_PEND; in cio_clear()
340 if (!sch->schib.pmcw.ena) in cio_cancel_halt_clear()
344 if (!(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_HALT_PEND) && in cio_cancel_halt_clear()
345 !(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_CLEAR_PEND)) { in cio_cancel_halt_clear()
346 if (!scsw_is_tm(&sch->schib.scsw)) { in cio_cancel_halt_clear()
358 if (!(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_CLEAR_PEND)) { in cio_cancel_halt_clear()
[all …]
H A Dtrace.h25 TP_PROTO(struct subchannel_id schid, struct schib *schib, int cc),
26 TP_ARGS(schid, schib, cc),
32 __field_struct(struct schib, schib)
50 __entry->devno = schib->pmcw.dev;
51 __entry->schib = *schib;
52 __entry->pmcw_ena = schib->pmcw.ena;
53 __entry->pmcw_st = schib->pmcw.st;
54 __entry->pmcw_dnv = schib->pmcw.dnv;
55 __entry->pmcw_dev = schib->pmcw.dev;
56 __entry->pmcw_lpm = schib->pmcw.lpm;
[all …]
H A Ddevice_ops.c145 if (!sch->schib.pmcw.ena) in ccw_device_clear()
201 if (!sch->schib.pmcw.ena) in ccw_device_start_timeout_key()
217 ((sch->schib.scsw.cmd.stctl & SCSW_STCTL_PRIM_STATUS) && in ccw_device_start_timeout_key()
218 !(sch->schib.scsw.cmd.stctl & SCSW_STCTL_SEC_STATUS))) in ccw_device_start_timeout_key()
378 if (!sch->schib.pmcw.ena) in ccw_device_halt()
412 if (!sch->schib.pmcw.ena) in ccw_device_resume()
417 !(sch->schib.scsw.cmd.actl & SCSW_ACTL_SUSPENDED)) in ccw_device_resume()
482 chpid.id = sch->schib.pmcw.chpid[chp_idx]; in ccw_device_get_chp_desc()
502 chpid.id = sch->schib.pmcw.chpid[chp_idx]; in ccw_device_get_util_str()
547 if (!sch->schib.pmcw.ena) in ccw_device_tm_start_timeout_key()
[all …]
H A Dcss.c175 struct schib *schib) in css_validate_subchannel() argument
179 switch (schib->pmcw.st) { in css_validate_subchannel()
182 if (!css_sch_is_valid(schib)) in css_validate_subchannel()
184 else if (is_blacklisted(schid.ssid, schib->pmcw.dev)) { in css_validate_subchannel()
187 schib->pmcw.dev, schid.ssid); in css_validate_subchannel()
199 schid.ssid, schid.sch_no, schib->pmcw.st); in css_validate_subchannel()
205 struct schib *schib) in css_alloc_subchannel() argument
210 ret = css_validate_subchannel(schid, schib); in css_alloc_subchannel()
219 sch->schib = *schib; in css_alloc_subchannel()
220 sch->st = schib->pmcw.st; in css_alloc_subchannel()
[all …]
H A Dcss.h105 struct schib *schib);
151 struct schib;
152 int css_sch_is_valid(struct schib *);
H A Dioasm.c18 static inline int __stsch(struct subchannel_id schid, struct schib *addr) in __stsch()
36 int stsch(struct subchannel_id schid, struct schib *addr) in stsch()
47 static inline int __msch(struct subchannel_id schid, struct schib *addr) in __msch()
65 int msch(struct subchannel_id schid, struct schib *addr) in msch()
H A Dioasm.h16 int stsch(struct subchannel_id schid, struct schib *addr);
17 int msch(struct subchannel_id schid, struct schib *addr);
H A Dcio.h66 struct schib { struct
97 struct schib schib; /* subchannel information block */ member
H A Ddevice_fsm.c40 struct schib schib; in ccw_timeout_log() local
49 cc = stsch(sch->schid, &schib); in ccw_timeout_log()
89 &schib, sizeof(schib), 0); in ccw_timeout_log()
179 chpid.id = sch->schib.pmcw.chpid[i]; in __recover_lost_chpids()
208 sch->lpm = sch->schib.pmcw.pam & sch->opm; in ccw_device_recog_done()
476 u8 broken_paths = (sch->schib.pmcw.pam & sch->opm) ^ sch->vpm; in ccw_device_handle_broken_paths()
608 if (scsw_actl(&sch->schib.scsw) != 0) in ccw_device_offline()
669 if (scsw_actl(&sch->schib.scsw) != 0 || in ccw_device_online_verify()
670 (scsw_stctl(&sch->schib.scsw) & SCSW_STCTL_STATUS_PEND) || in ccw_device_online_verify()
948 sch->lpm = sch->schib.pmcw.pam & sch->opm; in ccw_device_trigger_reprobe()
[all …]
H A Dccwreq.c337 if ((0x80 >> chp) & sch->schib.pmcw.lpum) in ccw_request_timeout()
340 scsw_cstat(&sch->schib.scsw), in ccw_request_timeout()
341 scsw_dstat(&sch->schib.scsw), in ccw_request_timeout()
343 sch->schib.pmcw.chpid[chp]); in ccw_request_timeout()
H A Ddevice.c744 priv->dev_id.devno = sch->schib.pmcw.dev; in io_subchannel_initialize_dev()
928 old_enabled = old_sch->schib.pmcw.ena; in ccw_device_move_to_sch()
947 sch->schib.pmcw.dev, rc); in ccw_device_move_to_sch()
1012 sch->lpm = sch->schib.pmcw.pam & sch->opm; 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()
1019 sch->schib.pmcw.pam, sch->schib.pmcw.pom); in io_subchannel_init_fields()
1131 if (scsw_actl(&sch->schib.scsw) == 0 || sch->schib.pmcw.lpum != mask) in io_subchannel_terminate_path()
1213 if (!sch->schib.pmcw.ena) in io_subchannel_quiesce()
1260 if ((sch->schib.pmcw.pam & sch->opm) == sch->vpm) in recovery_check()
[all …]
H A Ddevice_pgid.c78 req->lpm = lpm_adjust(req->lpm, sch->schib.pmcw.pam & sch->opm & in nop_do()
183 req->lpm = sch->schib.pmcw.pam; in pgid_wipeout_start()
460 req->lpm = lpm_adjust(req->lpm, sch->schib.pmcw.pam & in snid_do()
518 sch->lpm = sch->schib.pmcw.pam; in verify_start()
524 cdev->private->pgid_todo_mask = sch->schib.pmcw.pam; in verify_start()
614 req->lpm = sch->schib.pmcw.pam & sch->opm; in ccw_device_disband_start()
674 req->lpm = sch->schib.pmcw.pam & sch->opm; in ccw_device_stlck_start()
H A Dvfio_ccw_fsm.c49 sch->schib.scsw.cmd.actl |= SCSW_ACTL_START_PEND; in fsm_io_helper()
101 sch->schib.scsw.cmd.actl |= SCSW_ACTL_HALT_PEND; in fsm_do_halt()
140 sch->schib.scsw.cmd.actl = SCSW_ACTL_CLEAR_PEND; in fsm_do_clear()
402 if (!sch->schib.pmcw.ena) in fsm_close()
H A Deadm_sch.c76 sch->schib.scsw.eadm.actl |= SCSW_ACTL_START_PEND; in eadm_subchannel_start()
95 sch->schib.scsw.eadm.actl |= SCSW_ACTL_CLEAR_PEND; in eadm_subchannel_clear()
125 struct eadm_scsw *scsw = &sch->schib.scsw.eadm; in eadm_subchannel_irq()
H A Dvfio_ccw_drv.c164 struct pmcw *pmcw = &sch->schib.pmcw; in vfio_ccw_sch_probe()
324 if (sch->schib.pmcw.lpum & mask) in vfio_ccw_chp_event()
329 if (sch->schib.pmcw.lpum & mask) in vfio_ccw_chp_event()
H A Dvfio_ccw_chp.c36 memcpy(region, &sch->schib, sizeof(*region)); in vfio_ccw_schib_region_read()
/openbmc/qemu/hw/s390x/
H A Dcss.c702 SCHIB *schib = &sch->curr_status; in sch_handle_clear_func() local
709 schib->pmcw.lpum = 0; in sch_handle_clear_func()
710 schib->pmcw.pom = 0xff; in sch_handle_clear_func()
711 schib->scsw.flags &= ~SCSW_FLAGS_MASK_PNO; in sch_handle_clear_func()
716 schib->scsw.ctrl &= ~SCSW_ACTL_CLEAR_PEND; in sch_handle_clear_func()
717 schib->scsw.ctrl |= SCSW_STCTL_STATUS_PEND; in sch_handle_clear_func()
719 schib->scsw.dstat = 0; in sch_handle_clear_func()
720 schib->scsw.cstat = 0; in sch_handle_clear_func()
721 schib->pmcw.lpum = path; in sch_handle_clear_func()
727 SCHIB *schib = &sch->curr_status; in sch_handle_halt_func() local
[all …]
H A D3270-ccw.c85 SCHIB *schib = &sch->curr_status; in emulated_ccw_3270_cb() local
89 schib->scsw.ctrl &= ~SCSW_ACTL_START_PEND; in emulated_ccw_3270_cb()
90 schib->scsw.ctrl &= ~SCSW_CTRL_MASK_STCTL; in emulated_ccw_3270_cb()
91 schib->scsw.ctrl |= SCSW_STCTL_PRIMARY | SCSW_STCTL_SECONDARY | in emulated_ccw_3270_cb()
/openbmc/qemu/hw/vfio/
H A Dccw.c129 SCHIB *schib = &sch->curr_status; in vfio_ccw_handle_store() local
158 schib->pmcw.pnom = s->pmcw.pnom; in vfio_ccw_handle_store()
159 schib->pmcw.lpum = s->pmcw.lpum; in vfio_ccw_handle_store()
160 schib->pmcw.pam = s->pmcw.pam; in vfio_ccw_handle_store()
161 schib->pmcw.pom = s->pmcw.pom; in vfio_ccw_handle_store()
164 schib->scsw.flags |= SCSW_FLAGS_MASK_PNO; in vfio_ccw_handle_store()
315 SCHIB *schib = &sch->curr_status; in vfio_ccw_io_notifier_handler() local
331 schib->scsw.flags |= SCSW_FLAGS_MASK_CC; in vfio_ccw_io_notifier_handler()
332 schib->scsw.ctrl &= ~SCSW_CTRL_MASK_STCTL; in vfio_ccw_io_notifier_handler()
333 schib->scsw.ctrl |= (SCSW_STCTL_ALERT | SCSW_STCTL_STATUS_PEND); in vfio_ccw_io_notifier_handler()
[all …]
/openbmc/qemu/target/s390x/
H A Dioinst.c114 static int ioinst_schib_valid(SCHIB *schib) in ioinst_schib_valid() argument
116 if ((be16_to_cpu(schib->pmcw.flags) & PMCW_FLAGS_MASK_INVALID) || in ioinst_schib_valid()
117 (be32_to_cpu(schib->pmcw.chars) & PMCW_CHARS_MASK_INVALID)) { in ioinst_schib_valid()
121 if (be32_to_cpu(schib->pmcw.chars) & PMCW_CHARS_MASK_XMWME) { in ioinst_schib_valid()
126 if ((be32_to_cpu(schib->pmcw.chars) & PMCW_CHARS_MASK_MBFC) && in ioinst_schib_valid()
127 (be64_to_cpu(schib->mba) & 0x03fUL)) { in ioinst_schib_valid()
137 SCHIB schib; in ioinst_handle_msch() local
148 s390_cpu_pv_mem_read(cpu, addr, &schib, sizeof(schib)); in ioinst_handle_msch()
149 } else if (s390_cpu_virt_mem_read(cpu, addr, ar, &schib, sizeof(schib))) { in ioinst_handle_msch()
154 !ioinst_schib_valid(&schib)) { in ioinst_handle_msch()
[all …]
/openbmc/qemu/pc-bios/s390-ccw/
H A Dnetmain.c439 static bool find_net_dev(Schib *schib, int dev_no) in find_net_dev() argument
445 r = stsch_err(net_schid, schib); in find_net_dev()
449 if (!schib->pmcw.dnv) { in find_net_dev()
459 if (dev_no < 0 || schib->pmcw.dev == dev_no) { in find_net_dev()
469 Schib schib; in virtio_setup() local
487 found = find_net_dev(&schib, dev_no); in virtio_setup()
491 found = find_net_dev(&schib, -1); in virtio_setup()
H A Dmain.c72 Schib schib; in is_dev_possibly_bootable() local
76 r = stsch_err(blk_schid, &schib); in is_dev_possibly_bootable()
80 if (!schib.pmcw.dnv) { in is_dev_possibly_bootable()
119 if (schib.pmcw.dev == dev_no) { in is_dev_possibly_bootable()
H A Dcio.h117 typedef struct schib { struct
377 static inline int stsch_err(struct subchannel_id schid, struct schib *addr) in stsch_err()
393 static inline int msch(struct subchannel_id schid, struct schib *addr) in msch()
408 static inline int msch_err(struct subchannel_id schid, struct schib *addr) in msch_err()
H A Dcio.c44 Schib schib; in enable_subchannel() local
46 stsch_err(schid, &schib); in enable_subchannel()
47 schib.pmcw.ena = 1; in enable_subchannel()
48 msch(schid, &schib); in enable_subchannel()
/openbmc/qemu/include/hw/s390x/
H A Dcss.h246 IOInstEnding css_do_stsch(SubchDev *sch, SCHIB *schib);
248 IOInstEnding css_do_msch(SubchDev *sch, const SCHIB *schib);

12