static void ahc_dump_target_state(struct ahc_softc *ahc, struct info_str *info, u_int our_id, char channel, u_int target_id, u_int target_offset) { struct ahc_linux_target *targ; struct scsi_target *starget; struct ahc_initiator_tinfo *tinfo; struct ahc_tmode_tstate *tstate; int lun; tinfo = ahc_fetch_transinfo(ahc, channel, our_id, target_id, &tstate); if ((ahc->features & AHC_TWIN) != 0) copy_info(info, "Channel %c ", channel); copy_info(info, "Target %d Negotiation Settings\n", target_id); copy_info(info, "\tUser: "******"\tGoal: "); ahc_format_transinfo(info, &tinfo->goal); copy_info(info, "\tCurr: "); ahc_format_transinfo(info, &tinfo->curr); for (lun = 0; lun < AHC_NUM_LUNS; lun++) { struct scsi_device *sdev; sdev = targ->sdev[lun]; if (sdev == NULL) continue; ahc_dump_device_state(info, sdev); } }
static void ahc_dump_target_state(struct ahc_softc *ahc, struct seq_file *m, u_int our_id, char channel, u_int target_id, u_int target_offset) { struct scsi_target *starget; struct ahc_initiator_tinfo *tinfo; struct ahc_tmode_tstate *tstate; int lun; tinfo = ahc_fetch_transinfo(ahc, channel, our_id, target_id, &tstate); if ((ahc->features & AHC_TWIN) != 0) seq_printf(m, "Channel %c ", channel); seq_printf(m, "Target %d Negotiation Settings\n", target_id); seq_printf(m, "\tUser: "******"\tGoal: "); ahc_format_transinfo(m, &tinfo->goal); seq_printf(m, "\tCurr: "); ahc_format_transinfo(m, &tinfo->curr); for (lun = 0; lun < AHC_NUM_LUNS; lun++) { struct scsi_device *sdev; sdev = scsi_device_lookup_by_target(starget, lun); if (sdev == NULL) continue; ahc_dump_device_state(m, sdev); } }