summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1998-09-15 10:29:32 +0000
committergibbs <gibbs@FreeBSD.org>1998-09-15 10:29:32 +0000
commit30341692415afc6f06d2d7bb12c4b6c4d80e0f01 (patch)
tree5160b0476e0c753820c0e62f88255b5f60186684
parentc3660ef35318ca9e70d57650c4c6cefaa470cdd5 (diff)
downloadFreeBSD-src-30341692415afc6f06d2d7bb12c4b6c4d80e0f01.zip
FreeBSD-src-30341692415afc6f06d2d7bb12c4b6c4d80e0f01.tar.gz
Build CAM hardwiring info.
-rw-r--r--usr.sbin/config/mkioconf.c82
1 files changed, 12 insertions, 70 deletions
diff --git a/usr.sbin/config/mkioconf.c b/usr.sbin/config/mkioconf.c
index 736e6a5..f965aef 100644
--- a/usr.sbin/config/mkioconf.c
+++ b/usr.sbin/config/mkioconf.c
@@ -36,7 +36,7 @@
static char sccsid[] = "@(#)mkioconf.c 8.2 (Berkeley) 1/21/94";
#endif
static const char rcsid[] =
- "$Id: mkioconf.c,v 1.39 1998/09/03 21:03:43 nsouch Exp $";
+ "$Id: mkioconf.c,v 1.40 1998/09/04 07:48:53 ache Exp $";
#endif /* not lint */
#include <err.h>
@@ -795,11 +795,11 @@ id(int unit)
switch(unit)
{
case UNKNOWN:
- s ="SCCONF_UNSPEC";
- break;
+ s ="CAMCONF_UNSPEC";
+ break;;
case QUES:
- s ="SCCONF_ANY";
+ s ="CAMCONF_ANY";
break;
default:
@@ -817,44 +817,6 @@ static void id_put(fp, unit, s)
fprintf(fp, "%s%s", id(unit), s);
}
-struct node
-{
- char *id;
- struct node *next;
-};
-
-static void
-add_unique(struct node *node, char *id)
-{
- struct node *prev = node;
-
- for (prev = node; node; node = node->next)
- {
- if (strcmp(node->id, id) == 0) /* Already there */
- return;
-
- prev = node;
- }
-
- node = (struct node *)malloc(sizeof(node));
- prev->next = node;
-
- node->id = id;
- node->next = 0;
-}
-
-static int
-is_old_scsi_device(char *name)
-{
- static char *tab[] = {"cd", "ch", "sd", "st", "od", "uk"};
- int i;
- for (i = 0; i < sizeof(tab) / sizeof(tab[0]); i++)
- if (eq(tab[i], name))
- return 1;
-
- return 0;
-}
-
/* XXX: dufault@hda.com: wiped out mkioconf.c locally:
* All that nice "conflicting SCSI ID checking" is now
* lost and should be put back in.
@@ -866,19 +828,16 @@ scbus_devtab(fp, fp1, dev_idp)
int *dev_idp;
{
register struct device *dp, *mp;
- struct node unique, *node;
- unique.id = "unique";
- unique.next = 0;
fprintf(fp, "\n");
fprintf(fp, "/*\n");
- fprintf(fp, " * SCSI devices.\n");
+ fprintf(fp, " * CAM devices.\n");
fprintf(fp, " */\n");
fprintf(fp, "\n");
- fprintf(fp, "#include <scsi/scsiconf.h>\n");
+ fprintf(fp, "#include <cam/cam_conf.h>\n");
fprintf(fp, "\n");
- fprintf(fp, "struct scsi_ctlr_config scsi_cinit[] = {\n");
- fprintf(fp, "/* scbus, driver, driver unit, ctlr bus */\n");
+ fprintf(fp, "struct cam_sim_config cam_sinit[] = {\n");
+ fprintf(fp, "/* pathid, sim name, sim unit, sim bus */\n");
/* XXX: Why do we always get an entry such as:
* { '?', "ncr", '?', '?' },
@@ -898,21 +857,16 @@ scbus_devtab(fp, fp1, dev_idp)
fprintf(fp, "{ 0, 0, 0, 0 }\n");
fprintf(fp, "};\n");
+
fprintf(fp, "\n");
- fprintf(fp, "struct scsi_device_config scsi_dinit[] = {\n");
- fprintf(fp, "/* name unit cunit target LUN flags */\n");
+ fprintf(fp, "struct cam_periph_config cam_pinit[] = {\n");
+ fprintf(fp,
+"/* periph name, periph unit, pathid, target, LUN, flags */\n");
for (dp = dtab; dp; dp = dp->d_next) {
if (dp->d_type == CONTROLLER || dp->d_type == MASTER ||
dp->d_type == PSEUDO_DEVICE)
continue;
- /* For backward compatability we must add the original
- * SCSI devices by name even if we don't know it is
- * connected to a SCSI bus.
- */
- if (is_old_scsi_device(dp->d_name))
- add_unique(&unique, dp->d_name);
-
mp = dp->d_conn;
if (mp == 0 || !eq(mp->d_name, "scbus")) {
continue;
@@ -936,21 +890,9 @@ scbus_devtab(fp, fp1, dev_idp)
id_put(fp, dp->d_target, ", ");
id_put(fp, dp->d_lun, ", ");
fprintf(fp, " 0x%x },\n", dp->d_flags);
- add_unique(&unique, dp->d_name);
}
fprintf(fp, "{ 0, 0, 0, 0, 0, 0 }\n");
fprintf(fp, "};\n");
-
- fprintf(fp1, "\n");
- for (node = unique.next; node; node = node->next)
- fprintf(fp1, "void %sinit __P((void));\n", node->id);
-
- fprintf(fp, "\n");
- fprintf(fp, "void (*scsi_tinit[]) __P((void)) = {\n");
- for (node = unique.next; node; node = node->next)
- fprintf(fp, "\t%sinit,\n", node->id);
- fprintf(fp, "\t0,\n");
- fprintf(fp, "};\n");
}
/*
OpenPOWER on IntegriCloud