Add (mostly stub) alpha support. Incidentally, it doesn't build on stable

unless I manually construct y.tab.h.  Is this normal?
This commit is contained in:
dfr 1998-06-09 14:02:08 +00:00
parent 1284a6e0ab
commit 7c60b2bea1
6 changed files with 125 additions and 4 deletions

View File

@ -160,6 +160,7 @@ char *machinename;
#define MACHINE_LUNA68K 7
#define MACHINE_NEWS3400 8
#define MACHINE_PC98 9
#define MACHINE_ALPHA 10
/*
* For each machine, a set of CPU's may be specified as supported.

View File

@ -117,6 +117,9 @@
#include <sys/disklabel.h>
#include <sys/diskslice.h>
#ifdef linux
#include <sys/sysmacros.h>
#endif
#include <ctype.h>
#include <err.h>
@ -189,6 +192,9 @@ Config_spec:
} else if (!strcmp($2, "news3400")) {
machine = MACHINE_NEWS3400;
machinename = "news3400";
} else if (!strcmp($2, "alpha")) {
machine = MACHINE_ALPHA;
machinename = "alpha";
} else
yyerror("Unknown machine type");
} |

View File

@ -42,7 +42,7 @@ static const char copyright[] =
static char sccsid[] = "@(#)main.c 8.1 (Berkeley) 6/6/93";
#endif
static const char rcsid[] =
"$Id: main.c,v 1.23 1998/04/23 16:37:06 bde Exp $";
"$Id: main.c,v 1.24 1998/05/02 01:57:38 kato Exp $";
#endif /* not lint */
#include <sys/types.h>
@ -179,6 +179,10 @@ main(argc, argv)
news_ioconf();
break;
case MACHINE_ALPHA:
alpha_ioconf();
break;
default:
printf("Specify machine type, e.g. ``machine vax''\n");
exit(1);
@ -409,6 +413,9 @@ moveifchanged(const char *from_name, const char *to_name)
if (!changed) {
p = mmap(NULL, tsize, PROT_READ, MAP_SHARED, from_fd, (off_t)0);
#ifndef MAP_FAILED
#define MAP_FAILED ((caddr_t) -1)
#endif
if (p == MAP_FAILED)
err(EX_OSERR, "mmap %s", from_name);
q = mmap(NULL, tsize, PROT_READ, MAP_SHARED, to_fd, (off_t)0);

View File

@ -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.34 1998/04/02 04:25:41 eivind Exp $";
"$Id: mkioconf.c,v 1.35 1998/05/02 01:57:39 kato Exp $";
#endif /* not lint */
#include <err.h>
@ -1218,6 +1218,109 @@ news_ioconf()
}
#endif
#if MACHINE_ALPHA
void
alpha_ioconf()
{
register struct device *dp, *mp;
FILE *fp;
FILE *fp1;
int dev_id = 10;
fp = fopen(path("ioconf.c.new"), "w");
if (fp == 0)
err(1, "%s", path("ioconf.c"));
fprintf(fp, "#include <sys/types.h>\n");
fprintf(fp, "#include <sys/time.h>\n");
fprintf(fp, "#include <ioconf.h>\n\n");
fprintf(fp, "#define C (char *)\n\n");
fp1 = fopen(path("ioconf.h.new"), "w");
if (fp1 == 0)
err(1, "%s", path("ioconf.h.new"));
fprintf(fp1, "/*\n");
fprintf(fp1, " * Extern declarations for I/O configuration.\n");
fprintf(fp1, " * DO NOT EDIT-- this file is automatically generated.\n");
fprintf(fp1, " */\n");
fprintf(fp1, "\n");
fprintf(fp1, "#ifndef IOCONF_H\n");
fprintf(fp1, "#define\tIOCONF_H\n");
#if 0
/* print controller initialization structures */
for (dp = dtab; dp != 0; dp = dp->d_next) {
if (dp->d_type == PSEUDO_DEVICE)
continue;
fprintf(fp, "extern struct driver %sdriver;\n", dp->d_name);
}
fprintf(fp, "\nstruct alpha_ctlr alpha_cinit[] = {\n");
fprintf(fp, "/*\tdriver,\t\tunit,\taddr,\t\tpri,\tflags */\n");
for (dp = dtab; dp != 0; dp = dp->d_next) {
if (dp->d_type != CONTROLLER && dp->d_type != MASTER)
continue;
if (dp->d_conn != TO_NEXUS) {
printf("%s%s must be attached to a nexus (internal bus)\n",
dp->d_name, wnum(dp->d_unit));
continue;
}
if (dp->d_drive != UNKNOWN || dp->d_slave != UNKNOWN) {
printf("can't specify drive/slave for %s%s\n",
dp->d_name, wnum(dp->d_unit));
continue;
}
if (dp->d_unit == UNKNOWN || dp->d_unit == QUES)
dp->d_unit = 0;
fprintf(fp,
"\t{ &%sdriver,\t%d,\tC 0x%x,\t%d,\t0x%x },\n",
dp->d_name, dp->d_unit, dp->d_addr, dp->d_pri,
dp->d_flags);
}
fprintf(fp, "\t0\n};\n");
/* print devices connected to other controllers */
fprintf(fp, "\nstruct scsi_device scsi_dinit[] = {\n");
fprintf(fp,
"/*driver,\tcdriver,\tunit,\tctlr,\tdrive,\tslave,\tdk,\tflags*/\n");
for (dp = dtab; dp != 0; dp = dp->d_next) {
if (dp->d_type == CONTROLLER || dp->d_type == MASTER ||
dp->d_type == PSEUDO_DEVICE)
continue;
mp = dp->d_conn;
if (mp == 0 ||
(!eq(mp->d_name, "asc") && !eq(mp->d_name, "sii"))) {
printf("%s%s: devices must be attached to a SCSI (asc or sii) controller\n",
dp->d_name, wnum(dp->d_unit));
continue;
}
if ((unsigned)dp->d_drive > 6) {
printf("%s%s: SCSI drive must be in the range 0..6\n",
dp->d_name, wnum(dp->d_unit));
continue;
}
/* may want to allow QUES later */
if ((unsigned)dp->d_slave > 7) {
printf("%s%s: SCSI slave (LUN) must be in the range 0..7\n",
dp->d_name, wnum(dp->d_unit));
continue;
}
fprintf(fp, "{ &%sdriver,\t&%sdriver,", dp->d_name, mp->d_name);
fprintf(fp, "\t%d,\t%d,\t%d,\t%d,\t%d,\t0x%x },\n",
dp->d_unit, mp->d_unit, dp->d_drive, dp->d_slave,
dp->d_dk, dp->d_flags);
}
fprintf(fp, "0\n};\n");
#endif
if (seen_scbus)
scbus_devtab(fp, fp1, &dev_id);
(void) fclose(fp);
fprintf(fp1, "#endif\n");
(void) fclose(fp1);
moveifchanged(path("ioconf.c.new"), path("ioconf.c"));
moveifchanged(path("ioconf.h.new"), path("ioconf.h"));
}
#endif
char *
intv(dev)
register struct device *dev;

View File

@ -36,7 +36,7 @@
static char sccsid[] = "@(#)mkmakefile.c 8.1 (Berkeley) 6/6/93";
#endif
static const char rcsid[] =
"$Id: mkmakefile.c,v 1.28 1998/03/16 11:15:45 eivind Exp $";
"$Id: mkmakefile.c,v 1.29 1998/05/02 01:57:39 kato Exp $";
#endif /* not lint */
/*
@ -150,6 +150,7 @@ static struct users {
{ 8, 2, 512 }, /* MACHINE_LUNA68K */
{ 8, 2, 512 }, /* MACHINE_NEWS3400 */
{ 8, 2, 512 }, /* MACHINE_PC98 */
{ 8, 2, 512 }, /* MACHINE_ALPHA */
};
#define NUSERS (sizeof (users) / sizeof (users[0]))

View File

@ -36,7 +36,7 @@
static char sccsid[] = "@(#)mkswapconf.c 8.1 (Berkeley) 6/6/93";
#endif
static const char rcsid[] =
"$Id: mkswapconf.c,v 1.13 1997/09/15 06:37:10 charnier Exp $";
"$Id: mkswapconf.c,v 1.14 1997/09/17 06:20:45 charnier Exp $";
#endif /* not lint */
/*
@ -48,6 +48,9 @@ static const char rcsid[] =
#include <sys/disklabel.h>
#include <sys/diskslice.h>
#ifdef linux
#include <sys/sysmacros.h>
#endif
#include <ctype.h>
#include <stdio.h>