summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>1997-02-08 03:42:22 +0000
committerwpaul <wpaul@FreeBSD.org>1997-02-08 03:42:22 +0000
commitc1848416f24da8b2257295879320ed78d84dd3a5 (patch)
tree8f99ab8e81cd1f411a772d64448329afe3cea8f8 /sys
parent3a676129b4df4e178a01f915f6fe6770f65aa508 (diff)
downloadFreeBSD-src-c1848416f24da8b2257295879320ed78d84dd3a5.zip
FreeBSD-src-c1848416f24da8b2257295879320ed78d84dd3a5.tar.gz
Make some small tweaks to the messages to clean up some stuff
from last time. Some people have pointed out that there were some odd side-effects in the changes I made. Two things are different: - sc_print_addr() will print 'foodev0:' (i.e. sd0:, st0:, cd0:, etc...) if the device name is known. If it's not known, it'll use a longer notation. This shortens error messages back to a sane length. - Added a small function called sc_print_init() to set the sc_printing flag so that sc_print_addr() will know that we want it to print a linefeed. Used this in scsi_device_attach() to restore proper carriage return printing behavior which I broke. Remaining bogons: the NCR SCSI driver prints out information while the device-specific attach routine is running with its own linefeeds. This breaks up the individual messages emitted by the subdriver modules and causes at least one message to appear on a line by itself without a device spec prefix. I'm not sure of the correct way to fix this, and I don't have any NCR SCSI hardware to test with anyway. There's probably more, but I gather that a rewrite of the SCSI subsystem is pending anyway, so I'll leave the rest to Those Who Know More About This Than I (tm).
Diffstat (limited to 'sys')
-rw-r--r--sys/scsi/scsi_base.c11
-rw-r--r--sys/scsi/scsi_driver.c8
-rw-r--r--sys/scsi/scsiconf.c2
-rw-r--r--sys/scsi/scsiconf.h1
4 files changed, 19 insertions, 3 deletions
diff --git a/sys/scsi/scsi_base.c b/sys/scsi/scsi_base.c
index e77dd9b..3504b5a 100644
--- a/sys/scsi/scsi_base.c
+++ b/sys/scsi/scsi_base.c
@@ -1199,6 +1199,12 @@ scsi_4btou(bytes)
static sc_printing;
void
+sc_print_init()
+{
+ sc_printing++;
+}
+
+void
sc_print_start(sc_link)
struct scsi_link *sc_link;
{
@@ -1245,11 +1251,12 @@ sc_print_addr(sc_link)
printf("\n");
if (sc_link->device == 0) {
- printf("nodevice");
+ printf("nodevice at ");
}
else if (strcmp(sc_link->device->name, "probe") != 0) {
printf("%s", sc_link->device->name);
- id_put(sc_link->dev_unit, " at ");
+ id_put(sc_link->dev_unit, ": ");
+ return;
}
printf("scbus");
diff --git a/sys/scsi/scsi_driver.c b/sys/scsi/scsi_driver.c
index 07018f9..f03e2c1 100644
--- a/sys/scsi/scsi_driver.c
+++ b/sys/scsi/scsi_driver.c
@@ -90,6 +90,13 @@ int scsi_device_attach(struct scsi_link *sc_link)
#endif
printf("%s%d: %s ", device->name, sc_link->dev_unit, device->desc);
+ /*
+ * XXX some SCSI adapter drivers print out things while the
+ * device-specific attach routine is running. The result is
+ * something of a mess. This hack at least keeps it so each
+ * line will begin with foodev0:.
+ */
+ sc_print_init();
dev = scsi_dev_lookup(device->open);
@@ -100,6 +107,7 @@ int scsi_device_attach(struct scsi_link *sc_link)
errcode = (device->attach) ? (*(device->attach))(sc_link) : 0;
printf("\n");
+ sc_print_finish();
if (errcode == 0)
sc_link->flags |= device->link_flags;
diff --git a/sys/scsi/scsiconf.c b/sys/scsi/scsiconf.c
index c993d6f..0c5974b 100644
--- a/sys/scsi/scsiconf.c
+++ b/sys/scsi/scsiconf.c
@@ -763,7 +763,7 @@ scsi_attachdevs(scbus)
}
bzero(scbus->sc_link, sizeof(struct scsi_link*[scbus->maxtarg + 1][8]));
#if defined(SCSI_DELAY) && SCSI_DELAY > 2
- printf("%s%d waiting for scsi devices to settle\n",
+ printf("%s%d: waiting for scsi devices to settle\n",
sc_link_proto->adapter->name, sc_link_proto->adapter_unit);
#else /* SCSI_DELAY > 2 */
#undef SCSI_DELAY
diff --git a/sys/scsi/scsiconf.h b/sys/scsi/scsiconf.h
index 144165c..dd328cf 100644
--- a/sys/scsi/scsiconf.h
+++ b/sys/scsi/scsiconf.h
@@ -472,6 +472,7 @@ u_int32_t scsi_2btou __P((u_char *));
void sc_print_addr __P((struct scsi_link *));
void sc_print_start __P((struct scsi_link *));
+void sc_print_init __P((void));
void sc_print_finish __P((void));
#ifndef SCSIDEBUG
OpenPOWER on IntegriCloud