Lines Matching refs:emul64

99 static void emul64_i_initcap(struct emul64 *emul64);
101 static void emul64_i_log(struct emul64 *emul64, int level, char *fmt, ...);
102 static int emul64_get_tgtrange(struct emul64 *,
106 static int emul64_write_off(struct emul64 *,
109 static int emul64_write_on(struct emul64 *,
120 extern emul64_tgt_t *find_tgt(struct emul64 *, ushort_t, ushort_t);
225 ret = ddi_soft_state_init(&emul64_state, sizeof (struct emul64), in _init()
285 struct emul64 *foo; in emul64_info()
319 struct emul64 *emul64; in emul64_attach() local
338 emul64 = TRAN2EMUL64(tran); in emul64_attach()
358 emul64 = (struct emul64 *)ddi_get_soft_state(emul64_state, instance); in emul64_attach()
359 if (emul64 == (struct emul64 *)NULL) { in emul64_attach()
376 emul64->emul64_tran = tran; in emul64_attach()
377 emul64->emul64_dip = dip; in emul64_attach()
379 tran->tran_hba_private = emul64; in emul64_attach()
408 emul64->emul64_initiator_id = 2; in emul64_attach()
413 emul64->emul64_scsi_options = in emul64_attach()
416 EMUL64_DEBUG(emul64, SCSI_DEBUG, "emul64 scsi-options=%x", in emul64_attach()
417 emul64->emul64_scsi_options); in emul64_attach()
421 mutex_init(EMUL64_REQ_MUTEX(emul64), NULL, MUTEX_DRIVER, in emul64_attach()
422 emul64->emul64_iblock); in emul64_attach()
423 mutex_init(EMUL64_RESP_MUTEX(emul64), NULL, MUTEX_DRIVER, in emul64_attach()
424 emul64->emul64_iblock); in emul64_attach()
428 EMUL64_MUTEX_ENTER(emul64); in emul64_attach()
433 emul64_i_initcap(emul64); in emul64_attach()
435 EMUL64_MUTEX_EXIT(emul64); in emul64_attach()
439 emul64->emul64_taskq = taskq_create("emul64_comp", in emul64_attach()
448 mutex_destroy(EMUL64_REQ_MUTEX(emul64)); in emul64_attach()
449 mutex_destroy(EMUL64_RESP_MUTEX(emul64)); in emul64_attach()
462 struct emul64 *emul64; in emul64_detach() local
473 emul64 = TRAN2EMUL64(tran); in emul64_detach()
475 if (!emul64) { in emul64_detach()
479 EMUL64_DEBUG(emul64, SCSI_DEBUG, "emul64_detach: cmd = %d", cmd); in emul64_detach()
483 EMUL64_MUTEX_ENTER(emul64); in emul64_detach()
485 taskq_destroy(emul64->emul64_taskq); in emul64_detach()
488 scsi_hba_tran_free(emul64->emul64_tran); in emul64_detach()
491 EMUL64_MUTEX_EXIT(emul64); in emul64_detach()
493 mutex_destroy(EMUL64_REQ_MUTEX(emul64)); in emul64_detach()
494 mutex_destroy(EMUL64_RESP_MUTEX(emul64)); in emul64_detach()
497 EMUL64_DEBUG(emul64, SCSI_DEBUG, "emul64_detach: done"); in emul64_detach()
521 struct emul64 *emul64; in emul64_tran_tgt_init() local
532 emul64 = TRAN2EMUL64(tran); in emul64_tran_tgt_init()
533 EMUL64_MUTEX_ENTER(emul64); in emul64_tran_tgt_init()
540 tgt = find_tgt(emul64, sd->sd_address.a_target, sd->sd_address.a_lun); in emul64_tran_tgt_init()
587 sizeof (emul64->emul64_tgt->emul64_tgt_inq)); in emul64_tran_tgt_init()
612 tgt->emul64_tgt_next = emul64->emul64_tgt; in emul64_tran_tgt_init()
613 emul64->emul64_tgt = tgt; in emul64_tran_tgt_init()
616 out: EMUL64_MUTEX_EXIT(emul64); in emul64_tran_tgt_init()
635 emul64_i_initcap(struct emul64 *emul64) in emul64_i_initcap() argument
643 emul64->emul64_cap[i] = cap; in emul64_i_initcap()
644 emul64->emul64_synch[i] = synch; in emul64_i_initcap()
646 EMUL64_DEBUG(emul64, SCSI_DEBUG, "default cap = 0x%x", cap); in emul64_i_initcap()
662 struct emul64 *emul64 = ADDR2EMUL64(ap); in emul64_scsi_getcap() local
672 EMUL64_MUTEX_ENTER(emul64); in emul64_scsi_getcap()
700 rval = emul64->emul64_initiator_id; in emul64_scsi_getcap()
716 EMUL64_MUTEX_EXIT(emul64); in emul64_scsi_getcap()
736 struct emul64 *emul64 = ADDR2EMUL64(ap); in emul64_scsi_setcap() local
746 EMUL64_MUTEX_ENTER(emul64); in emul64_scsi_setcap()
779 emul64->nt_total_sectors[ap->a_target][ap->a_lun] = value; in emul64_scsi_setcap()
791 EMUL64_MUTEX_EXIT(emul64); in emul64_scsi_setcap()
813 struct emul64 *emul64 = ADDR2EMUL64(ap); in emul64_scsi_init_pkt() local
822 pkt = scsi_hba_pkt_alloc(emul64->emul64_dip, ap, cmdlen, in emul64_scsi_init_pkt()
841 sp->cmd_emul64 = emul64; in emul64_scsi_init_pkt()
943 struct emul64 *emul64 = ADDR2EMUL64(ap); in emul64_scsi_reset_notify() local
947 mutex_enter(EMUL64_REQ_MUTEX(emul64)); in emul64_scsi_reset_notify()
949 p = emul64->emul64_reset_notify_listf; in emul64_scsi_reset_notify()
961 emul64->emul64_reset_notify_listf = p->next; in emul64_scsi_reset_notify()
975 p->next = emul64->emul64_reset_notify_listf; in emul64_scsi_reset_notify()
976 emul64->emul64_reset_notify_listf = p; in emul64_scsi_reset_notify()
980 mutex_exit(EMUL64_REQ_MUTEX(emul64)); in emul64_scsi_reset_notify()
1002 struct emul64 *emul64 = ADDR2EMUL64(ap); in emul64_scsi_start() local
1006 ASSERT(mutex_owned(EMUL64_REQ_MUTEX(emul64)) == 0 || ddi_in_panic()); in emul64_scsi_start()
1007 ASSERT(mutex_owned(EMUL64_RESP_MUTEX(emul64)) == 0 || ddi_in_panic()); in emul64_scsi_start()
1009 EMUL64_DEBUG2(emul64, SCSI_DEBUG, "emul64_scsi_start %x", sp); in emul64_scsi_start()
1043 dispatched = taskq_dispatch(emul64->emul64_taskq, in emul64_scsi_start()
1053 (void) taskq_dispatch(emul64->emul64_taskq, in emul64_scsi_start()
1059 ASSERT(mutex_owned(EMUL64_REQ_MUTEX(emul64)) == 0 || ddi_in_panic()); in emul64_scsi_start()
1060 ASSERT(mutex_owned(EMUL64_RESP_MUTEX(emul64)) == 0 || ddi_in_panic()); in emul64_scsi_start()
1148 emul64_error_inject_req(struct emul64 *emul64, intptr_t arg) in emul64_error_inject_req() argument
1164 EMUL64_MUTEX_ENTER(emul64); in emul64_error_inject_req()
1165 tgt = find_tgt(emul64, error_inj_req.eccd_target, in emul64_error_inject_req()
1167 EMUL64_MUTEX_EXIT(emul64); in emul64_error_inject_req()
1371 emul64_get_tgtrange(struct emul64 *emul64, in emul64_get_tgtrange() argument
1380 EMUL64_MUTEX_ENTER(emul64); in emul64_get_tgtrange()
1381 *tgtp = find_tgt(emul64, tgtr->emul64_target, tgtr->emul64_lun); in emul64_get_tgtrange()
1382 EMUL64_MUTEX_EXIT(emul64); in emul64_get_tgtrange()
1386 ddi_get_instance(emul64->emul64_dip)); in emul64_get_tgtrange()
1400 struct emul64 *emul64; in emul64_ioctl() local
1407 emul64 = (struct emul64 *)ddi_get_soft_state(emul64_state, instance); in emul64_ioctl()
1408 if (emul64 == NULL) { in emul64_ioctl()
1416 rv = emul64_get_tgtrange(emul64, arg, &tgt, &tgtr); in emul64_ioctl()
1418 rv = emul64_write_off(emul64, tgt, &tgtr); in emul64_ioctl()
1422 rv = emul64_get_tgtrange(emul64, arg, &tgt, &tgtr); in emul64_ioctl()
1424 rv = emul64_write_on(emul64, tgt, &tgtr); in emul64_ioctl()
1428 rv = emul64_get_tgtrange(emul64, arg, &tgt, &tgtr); in emul64_ioctl()
1436 rv = emul64_error_inject_req(emul64, arg); in emul64_ioctl()
1447 emul64_write_off(struct emul64 *emul64, in emul64_write_off() argument
1490 emul64_write_on(struct emul64 *emul64, in emul64_write_on() argument
1605 emul64_i_log(struct emul64 *emul64, int level, char *fmt, ...) in emul64_i_log() argument
1614 scsi_log(emul64 ? emul64->emul64_dip : NULL, in emul64_i_log()
1625 struct emul64 *emul64 = ADDR2EMUL64(ap); in emul64_debug_dump_cdb() local
1633 ddi_get_instance(emul64->emul64_dip), in emul64_debug_dump_cdb()