Lines Matching refs:schib
117 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()
379 static void cio_apply_config(struct subchannel *sch, struct schib *schib) in cio_apply_config() argument
381 schib->pmcw.intparm = sch->config.intparm; in cio_apply_config()
382 schib->pmcw.mbi = sch->config.mbi; in cio_apply_config()
383 schib->pmcw.isc = sch->config.isc; in cio_apply_config()
384 schib->pmcw.ena = sch->config.ena; in cio_apply_config()
385 schib->pmcw.mme = sch->config.mme; in cio_apply_config()
386 schib->pmcw.mp = sch->config.mp; in cio_apply_config()
387 schib->pmcw.csense = sch->config.csense; in cio_apply_config()
388 schib->pmcw.mbfc = sch->config.mbfc; in cio_apply_config()
390 schib->mba = sch->config.mba; in cio_apply_config()
393 static int cio_check_config(struct subchannel *sch, struct schib *schib) in cio_check_config() argument
395 return (schib->pmcw.intparm == sch->config.intparm) && in cio_check_config()
396 (schib->pmcw.mbi == sch->config.mbi) && in cio_check_config()
397 (schib->pmcw.isc == sch->config.isc) && in cio_check_config()
398 (schib->pmcw.ena == sch->config.ena) && in cio_check_config()
399 (schib->pmcw.mme == sch->config.mme) && in cio_check_config()
400 (schib->pmcw.mp == sch->config.mp) && in cio_check_config()
401 (schib->pmcw.csense == sch->config.csense) && in cio_check_config()
402 (schib->pmcw.mbfc == sch->config.mbfc) && in cio_check_config()
403 (!sch->config.mbfc || (schib->mba == sch->config.mba)); in cio_check_config()
412 struct schib schib; in cio_commit_config() local
415 if (stsch(sch->schid, &schib) || !css_sch_is_valid(&schib)) in cio_commit_config()
420 cio_apply_config(sch, &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()
427 !css_sch_is_valid(&schib)) in cio_commit_config()
429 if (cio_check_config(sch, &schib)) { in cio_commit_config()
431 memcpy(&sch->schib, &schib, sizeof(schib)); in cio_commit_config()
460 struct schib schib; in cio_update_schib() local
462 if (stsch(sch->schid, &schib) || !css_sch_is_valid(&schib)) in cio_update_schib()
465 memcpy(&sch->schib, &schib, sizeof(schib)); in cio_update_schib()
553 memcpy (&sch->schib.scsw, &irb->scsw, sizeof (irb->scsw)); in do_cio_interrupt()
596 memcpy(&sch->schib.scsw, &irb->scsw, sizeof(union scsw)); in cio_tsch()
616 struct schib schib; in cio_test_for_console() local
618 if (stsch(schid, &schib) != 0) in cio_test_for_console()
620 if ((schib.pmcw.st == SUBCHANNEL_TYPE_IO) && schib.pmcw.dnv && in cio_test_for_console()
621 (schib.pmcw.dev == console_devno)) { in cio_test_for_console()
631 struct schib schib; in cio_get_console_sch_no() local
637 if (stsch(schid, &schib) != 0 || in cio_get_console_sch_no()
638 (schib.pmcw.st != SUBCHANNEL_TYPE_IO) || !schib.pmcw.dnv) in cio_get_console_sch_no()
640 console_devno = schib.pmcw.dev; in cio_get_console_sch_no()
652 struct schib schib; in cio_probe_console() local
662 ret = stsch(schid, &schib); in cio_probe_console()
666 sch = css_alloc_subchannel(schid, &schib); in cio_probe_console()