V10/lsys/mkconf/fixup.c

/*
 * intermediate table-building and consistency checks
 */

#include "mkconf.h"

fixup()
{
	register Dev *dp;
	register int i;
	register Mdev *mp;

	for (dp = dlist; dp; dp = dp->next) {
		devtfix(dp);
		incfix(dp);
		(*acode[dp->mdev->atype].fixup)(dp);
	}
	if (rootfmp == NULL) {
		fprint(STDERR, "no root device\n");
		errs++;
	} else {
		if ((rootfs = tablook(rootfmp, fstypsw, nfs)) < 0) {
			fprint(STDERR, "%s: root fs not a filesystem\n", rootfmp->name);
			errs++;
		}
		if ((rootmaj = tablook(rootdmp, bdevsw, nblk)) < 0) {
			fprint(STDERR, "%s: root dev not a block device\n", rootdmp->name);
			errs++;
		}
	}
	if (nswapdev == 0) {
		fprint(STDERR, "no swap device\n");
		errs++;
	} else if ((mp = mdlook("drum")) == NULL) {
		fprint(STDERR, "no drum device\n");
		errs++;
	} else {
		if ((swapmaj = tablook(mp, bdevsw, nblk)) < 0) {
			fprint(STDERR, "drum not configured\n");
			errs++;
		}
		swapmin = 0;
		for (i = 0; i < nswapdev; i++)
			if ((swaptab[i].major = tablook(swaptab[i].mp, bdevsw, nblk)) < 0) {
				fprint(STDERR, "%s: swap dev not a block device\n",
					swaptab[i].mp->name);
				errs++;
			}
	}
}