diff options
| author | Joerg Wunsch <joerg@FreeBSD.org> | 1996-01-21 23:55:47 +0000 | 
|---|---|---|
| committer | Joerg Wunsch <joerg@FreeBSD.org> | 1996-01-21 23:55:47 +0000 | 
| commit | 61de51cad66df0d565233915f856932159d33a4a (patch) | |
| tree | 1c9a9209808690a3a1a7d2f2cf8a3ab94c799fe6 | |
| parent | e66e939ed6e4ad2017ce48ef3351a1725ccefd2e (diff) | |
Notes
| -rw-r--r-- | sbin/bsdlabel/bsdlabel.c | 108 | ||||
| -rw-r--r-- | sbin/disklabel/disklabel.c | 108 | 
2 files changed, 150 insertions, 66 deletions
| diff --git a/sbin/bsdlabel/bsdlabel.c b/sbin/bsdlabel/bsdlabel.c index 43d5ca44600e..d3337c1941a5 100644 --- a/sbin/bsdlabel/bsdlabel.c +++ b/sbin/bsdlabel/bsdlabel.c @@ -51,12 +51,16 @@ static char sccsid[] = "@(#)disklabel.c	8.2 (Berkeley) 1/7/94";  #include <sys/file.h>  #include <sys/ioctl.h>  #include <sys/stat.h> +#include <sys/wait.h>  #define DKTYPENAMES  #include <sys/disklabel.h>  #include <ufs/ffs/fs.h>  #include <unistd.h>  #include <string.h>  #include <stdio.h> +#include <stdlib.h> +#include <signal.h> +#include <stdarg.h>  #include <ctype.h>  #include "pathnames.h" @@ -89,6 +93,24 @@ static char sccsid[] = "@(#)disklabel.c	8.2 (Berkeley) 1/7/94";  #endif  #endif +void	makelabel	__P((char *, char *, struct disklabel *)); +int	writelabel	__P((int, char *, struct disklabel *)); +void	l_perror	__P((char *)); +struct disklabel * readlabel __P((int)); +struct disklabel * makebootarea __P((char *, struct disklabel *, int)); +void	display		__P((FILE *, struct disklabel *)); +int	edit		__P((struct disklabel *, int)); +int	editit		__P((void)); +char *	skip		__P((char *)); +char *	word		__P((char *)); +int	getasciilabel	__P((FILE *, struct disklabel *)); +int	checklabel	__P((struct disklabel *)); +void	setbootflag	__P((struct disklabel *)); +void	Warning		(char *, ...); +void	Perror		__P((char *)); +void	usage		__P((void)); +extern	u_short dkcksum __P((struct disklabel *)); +  #define	DEFEDITOR	_PATH_VI  #define	streq(a,b)	(strcmp(a,b) == 0) @@ -125,7 +147,7 @@ int	debug;  #define OPTIONS	"BNRWb:ers:w"  #endif - +int  main(argc, argv)  	int argc;  	char *argv[]; @@ -308,14 +330,14 @@ main(argc, argv)   * effect, set the names of the primary and secondary boot files   * if specified.   */ +void  makelabel(type, name, lp)  	char *type, *name;  	register struct disklabel *lp;  {  	register struct disklabel *dp;  	char *strcpy(); - -	dp = getdiskbyname(type); +		dp = getdiskbyname(type);  	if (dp == NULL) {  		fprintf(stderr, "%s: unknown disk type\n", type);  		exit(1); @@ -354,12 +376,15 @@ makelabel(type, name, lp)  		(void)strncpy(lp->d_packname, name, sizeof(lp->d_packname));  } +int  writelabel(f, boot, lp)  	int f;  	char *boot;  	register struct disklabel *lp;  { +#ifdef vax  	register int i; +#endif  	int flag;  	setbootflag(lp); @@ -428,6 +453,7 @@ writelabel(f, boot, lp)  	return (0);  } +void  l_perror(s)  	char *s;  { @@ -514,8 +540,10 @@ makebootarea(boot, dp, f)  	int b;  #if NUMBOOT > 0  	char *dkbasename; +#if NUMBOOT == 1  	struct stat sb;  #endif +#endif  	/* XXX */  	if (dp->d_secsize == 0) { @@ -602,7 +630,8 @@ makebootarea(boot, dp, f)  	b = open(bootxx, O_RDONLY);  	if (b < 0)  		Perror(bootxx); -	if (read(b, &boot[dp->d_secsize], (int)(dp->d_bbsize-dp->d_secsize)) < 0) +	if (read(b, &boot[dp->d_secsize], +		 (int)(dp->d_bbsize-dp->d_secsize)) < 0)  		Perror(bootxx);  #else  	if (read(b, boot, (int)dp->d_bbsize) < 0) @@ -636,6 +665,7 @@ makebootarea(boot, dp, f)  	return (lp);  } +void  display(f, lp)  	FILE *f;  	register struct disklabel *lp; @@ -648,8 +678,10 @@ display(f, lp)  		fprintf(f, "type: %s\n", dktypenames[lp->d_type]);  	else  		fprintf(f, "type: %d\n", lp->d_type); -	fprintf(f, "disk: %.*s\n", sizeof(lp->d_typename), lp->d_typename); -	fprintf(f, "label: %.*s\n", sizeof(lp->d_packname), lp->d_packname); +	fprintf(f, "disk: %.*s\n", (int)sizeof(lp->d_typename), +		lp->d_typename); +	fprintf(f, "label: %.*s\n", (int)sizeof(lp->d_packname), +		lp->d_packname);  	fprintf(f, "flags:");  	if (lp->d_flags & D_REMOVABLE)  		fprintf(f, " removeable"); @@ -658,18 +690,19 @@ display(f, lp)  	if (lp->d_flags & D_BADSECT)  		fprintf(f, " badsect");  	fprintf(f, "\n"); -	fprintf(f, "bytes/sector: %d\n", lp->d_secsize); -	fprintf(f, "sectors/track: %d\n", lp->d_nsectors); -	fprintf(f, "tracks/cylinder: %d\n", lp->d_ntracks); -	fprintf(f, "sectors/cylinder: %d\n", lp->d_secpercyl); -	fprintf(f, "cylinders: %d\n", lp->d_ncylinders); -	fprintf(f, "sectors/unit: %d\n", lp->d_secperunit); +	fprintf(f, "bytes/sector: %ld\n", lp->d_secsize); +	fprintf(f, "sectors/track: %ld\n", lp->d_nsectors); +	fprintf(f, "tracks/cylinder: %ld\n", lp->d_ntracks); +	fprintf(f, "sectors/cylinder: %ld\n", lp->d_secpercyl); +	fprintf(f, "cylinders: %ld\n", lp->d_ncylinders); +	fprintf(f, "sectors/unit: %ld\n", lp->d_secperunit);  	fprintf(f, "rpm: %d\n", lp->d_rpm);  	fprintf(f, "interleave: %d\n", lp->d_interleave);  	fprintf(f, "trackskew: %d\n", lp->d_trackskew);  	fprintf(f, "cylinderskew: %d\n", lp->d_cylskew); -	fprintf(f, "headswitch: %d\t\t# milliseconds\n", lp->d_headswitch); -	fprintf(f, "track-to-track seek: %d\t# milliseconds\n", lp->d_trkseek); +	fprintf(f, "headswitch: %ld\t\t# milliseconds\n", lp->d_headswitch); +	fprintf(f, "track-to-track seek: %ld\t# milliseconds\n", +		lp->d_trkseek);  	fprintf(f, "drivedata: ");  	for (i = NDDATA - 1; i >= 0; i--)  		if (lp->d_drivedata[i]) @@ -677,14 +710,14 @@ display(f, lp)  	if (i < 0)  		i = 0;  	for (j = 0; j <= i; j++) -		fprintf(f, "%d ", lp->d_drivedata[j]); +		fprintf(f, "%ld ", lp->d_drivedata[j]);  	fprintf(f, "\n\n%d partitions:\n", lp->d_npartitions);  	fprintf(f,  	    "#        size   offset    fstype   [fsize bsize bps/cpg]\n");  	pp = lp->d_partitions;  	for (i = 0; i < lp->d_npartitions; i++, pp++) {  		if (pp->p_size) { -			fprintf(f, "  %c: %8d %8d  ", 'a' + i, +			fprintf(f, "  %c: %8ld %8ld  ", 'a' + i,  			   pp->p_size, pp->p_offset);  			if ((unsigned) pp->p_fstype < FSMAXTYPES)  				fprintf(f, "%8.8s", fstypenames[pp->p_fstype]); @@ -693,18 +726,18 @@ display(f, lp)  			switch (pp->p_fstype) {  			case FS_UNUSED:				/* XXX */ -				fprintf(f, "    %5d %5d %5.5s ", +				fprintf(f, "    %5ld %5ld %5.5s ",  				    pp->p_fsize, pp->p_fsize * pp->p_frag, "");  				break;  			case FS_BSDFFS: -				fprintf(f, "    %5d %5d %5d ", +				fprintf(f, "    %5ld %5ld %5d ",  				    pp->p_fsize, pp->p_fsize * pp->p_frag,  				    pp->p_cpg);  				break;  			case FS_BSDLFS: -				fprintf(f, "    %5d %5d %5d", +				fprintf(f, "    %5ld %5ld %5d",  				    pp->p_fsize, pp->p_fsize * pp->p_frag,  				    pp->p_cpg);  				break; @@ -713,13 +746,13 @@ display(f, lp)  				fprintf(f, "%20.20s", "");  				break;  			} -			fprintf(f, "\t# (Cyl. %4d", +			fprintf(f, "\t# (Cyl. %4ld",  			    pp->p_offset / lp->d_secpercyl);  			if (pp->p_offset % lp->d_secpercyl)  			    putc('*', f);  			else  			    putc(' ', f); -			fprintf(f, "- %d", +			fprintf(f, "- %ld",  			    (pp->p_offset +  			    pp->p_size + lp->d_secpercyl - 1) /  			    lp->d_secpercyl - 1); @@ -731,6 +764,7 @@ display(f, lp)  	fflush(f);  } +int  edit(lp, f)  	struct disklabel *lp;  	int f; @@ -738,7 +772,6 @@ edit(lp, f)  	register int c;  	struct disklabel label;  	FILE *fd; -	char *mktemp();  	(void) mktemp(tmpfil);  	fd = fopen(tmpfil, "w"); @@ -778,6 +811,7 @@ edit(lp, f)  	return (1);  } +int  editit()  {  	register int pid, xpid; @@ -850,6 +884,7 @@ word(cp)   * in the same format as that put out by display(),   * and fill in lp.   */ +int  getasciilabel(f, lp)  	FILE	*f;  	register struct disklabel *lp; @@ -863,7 +898,7 @@ getasciilabel(f, lp)  	lp->d_sbsize = SBSIZE;				/* XXX */  	while (fgets(line, sizeof(line) - 1, f)) {  		lineno++; -		if (cp = index(line,'\n')) +		if ((cp = index(line,'\n')) != 0)  			*cp = '\0';  		cp = skip(line);  		if (cp == NULL) @@ -1165,6 +1200,7 @@ getasciilabel(f, lp)   * Check disklabel for errors and fill in   * derived fields according to supplied values.   */ +int  checklabel(lp)  	register struct disklabel *lp;  { @@ -1173,19 +1209,19 @@ checklabel(lp)  	char part;  	if (lp->d_secsize == 0) { -		fprintf(stderr, "sector size %d\n", lp->d_secsize); +		fprintf(stderr, "sector size %ld\n", lp->d_secsize);  		return (1);  	}  	if (lp->d_nsectors == 0) { -		fprintf(stderr, "sectors/track %d\n", lp->d_nsectors); +		fprintf(stderr, "sectors/track %ld\n", lp->d_nsectors);  		return (1);  	}  	if (lp->d_ntracks == 0) { -		fprintf(stderr, "tracks/cylinder %d\n", lp->d_ntracks); +		fprintf(stderr, "tracks/cylinder %ld\n", lp->d_ntracks);  		return (1);  	}  	if  (lp->d_ncylinders == 0) { -		fprintf(stderr, "cylinders/unit %d\n", lp->d_ncylinders); +		fprintf(stderr, "cylinders/unit %ld\n", lp->d_ncylinders);  		errors++;  	}  	if (lp->d_rpm == 0) @@ -1195,12 +1231,12 @@ checklabel(lp)  	if (lp->d_secperunit == 0)  		lp->d_secperunit = lp->d_secpercyl * lp->d_ncylinders;  	if (lp->d_bbsize == 0) { -		fprintf(stderr, "boot block size %d\n", lp->d_bbsize); +		fprintf(stderr, "boot block size %ld\n", lp->d_bbsize);  		errors++;  	} else if (lp->d_bbsize % lp->d_secsize)  		Warning("boot block size %% sector-size != 0");  	if (lp->d_sbsize == 0) { -		fprintf(stderr, "super block size %d\n", lp->d_sbsize); +		fprintf(stderr, "super block size %ld\n", lp->d_sbsize);  		errors++;  	} else if (lp->d_sbsize % lp->d_secsize)  		Warning("super block size %% sector-size != 0"); @@ -1228,7 +1264,7 @@ checklabel(lp)  		}  		if (pp->p_offset + pp->p_size > lp->d_secperunit) {  			fprintf(stderr, -			    "partition %c: partition extends past end of unit\n", +			"partition %c: partition extends past end of unit\n",  			    part);  			errors++;  		} @@ -1249,6 +1285,7 @@ checklabel(lp)   * This allows newfs to prevent creation of a filesystem where it might   * clobber bootstrap code.   */ +void  setbootflag(lp)  	register struct disklabel *lp;  { @@ -1288,15 +1325,19 @@ setbootflag(lp)  }  /*VARARGS1*/ -Warning(fmt, a1, a2, a3, a4, a5) -	char *fmt; +void +Warning(char *fmt, ...)  { +	va_list ap;  	fprintf(stderr, "Warning, "); -	fprintf(stderr, fmt, a1, a2, a3, a4, a5); +	va_start(ap, fmt); +	vfprintf(stderr, fmt, ap);  	fprintf(stderr, "\n"); +	va_end(ap);  } +void  Perror(str)  	char *str;  { @@ -1304,6 +1345,7 @@ Perror(str)  	exit(4);  } +void  usage()  {  #if NUMBOOT > 0 diff --git a/sbin/disklabel/disklabel.c b/sbin/disklabel/disklabel.c index 43d5ca44600e..d3337c1941a5 100644 --- a/sbin/disklabel/disklabel.c +++ b/sbin/disklabel/disklabel.c @@ -51,12 +51,16 @@ static char sccsid[] = "@(#)disklabel.c	8.2 (Berkeley) 1/7/94";  #include <sys/file.h>  #include <sys/ioctl.h>  #include <sys/stat.h> +#include <sys/wait.h>  #define DKTYPENAMES  #include <sys/disklabel.h>  #include <ufs/ffs/fs.h>  #include <unistd.h>  #include <string.h>  #include <stdio.h> +#include <stdlib.h> +#include <signal.h> +#include <stdarg.h>  #include <ctype.h>  #include "pathnames.h" @@ -89,6 +93,24 @@ static char sccsid[] = "@(#)disklabel.c	8.2 (Berkeley) 1/7/94";  #endif  #endif +void	makelabel	__P((char *, char *, struct disklabel *)); +int	writelabel	__P((int, char *, struct disklabel *)); +void	l_perror	__P((char *)); +struct disklabel * readlabel __P((int)); +struct disklabel * makebootarea __P((char *, struct disklabel *, int)); +void	display		__P((FILE *, struct disklabel *)); +int	edit		__P((struct disklabel *, int)); +int	editit		__P((void)); +char *	skip		__P((char *)); +char *	word		__P((char *)); +int	getasciilabel	__P((FILE *, struct disklabel *)); +int	checklabel	__P((struct disklabel *)); +void	setbootflag	__P((struct disklabel *)); +void	Warning		(char *, ...); +void	Perror		__P((char *)); +void	usage		__P((void)); +extern	u_short dkcksum __P((struct disklabel *)); +  #define	DEFEDITOR	_PATH_VI  #define	streq(a,b)	(strcmp(a,b) == 0) @@ -125,7 +147,7 @@ int	debug;  #define OPTIONS	"BNRWb:ers:w"  #endif - +int  main(argc, argv)  	int argc;  	char *argv[]; @@ -308,14 +330,14 @@ main(argc, argv)   * effect, set the names of the primary and secondary boot files   * if specified.   */ +void  makelabel(type, name, lp)  	char *type, *name;  	register struct disklabel *lp;  {  	register struct disklabel *dp;  	char *strcpy(); - -	dp = getdiskbyname(type); +		dp = getdiskbyname(type);  	if (dp == NULL) {  		fprintf(stderr, "%s: unknown disk type\n", type);  		exit(1); @@ -354,12 +376,15 @@ makelabel(type, name, lp)  		(void)strncpy(lp->d_packname, name, sizeof(lp->d_packname));  } +int  writelabel(f, boot, lp)  	int f;  	char *boot;  	register struct disklabel *lp;  { +#ifdef vax  	register int i; +#endif  	int flag;  	setbootflag(lp); @@ -428,6 +453,7 @@ writelabel(f, boot, lp)  	return (0);  } +void  l_perror(s)  	char *s;  { @@ -514,8 +540,10 @@ makebootarea(boot, dp, f)  	int b;  #if NUMBOOT > 0  	char *dkbasename; +#if NUMBOOT == 1  	struct stat sb;  #endif +#endif  	/* XXX */  	if (dp->d_secsize == 0) { @@ -602,7 +630,8 @@ makebootarea(boot, dp, f)  	b = open(bootxx, O_RDONLY);  	if (b < 0)  		Perror(bootxx); -	if (read(b, &boot[dp->d_secsize], (int)(dp->d_bbsize-dp->d_secsize)) < 0) +	if (read(b, &boot[dp->d_secsize], +		 (int)(dp->d_bbsize-dp->d_secsize)) < 0)  		Perror(bootxx);  #else  	if (read(b, boot, (int)dp->d_bbsize) < 0) @@ -636,6 +665,7 @@ makebootarea(boot, dp, f)  	return (lp);  } +void  display(f, lp)  	FILE *f;  	register struct disklabel *lp; @@ -648,8 +678,10 @@ display(f, lp)  		fprintf(f, "type: %s\n", dktypenames[lp->d_type]);  	else  		fprintf(f, "type: %d\n", lp->d_type); -	fprintf(f, "disk: %.*s\n", sizeof(lp->d_typename), lp->d_typename); -	fprintf(f, "label: %.*s\n", sizeof(lp->d_packname), lp->d_packname); +	fprintf(f, "disk: %.*s\n", (int)sizeof(lp->d_typename), +		lp->d_typename); +	fprintf(f, "label: %.*s\n", (int)sizeof(lp->d_packname), +		lp->d_packname);  	fprintf(f, "flags:");  	if (lp->d_flags & D_REMOVABLE)  		fprintf(f, " removeable"); @@ -658,18 +690,19 @@ display(f, lp)  	if (lp->d_flags & D_BADSECT)  		fprintf(f, " badsect");  	fprintf(f, "\n"); -	fprintf(f, "bytes/sector: %d\n", lp->d_secsize); -	fprintf(f, "sectors/track: %d\n", lp->d_nsectors); -	fprintf(f, "tracks/cylinder: %d\n", lp->d_ntracks); -	fprintf(f, "sectors/cylinder: %d\n", lp->d_secpercyl); -	fprintf(f, "cylinders: %d\n", lp->d_ncylinders); -	fprintf(f, "sectors/unit: %d\n", lp->d_secperunit); +	fprintf(f, "bytes/sector: %ld\n", lp->d_secsize); +	fprintf(f, "sectors/track: %ld\n", lp->d_nsectors); +	fprintf(f, "tracks/cylinder: %ld\n", lp->d_ntracks); +	fprintf(f, "sectors/cylinder: %ld\n", lp->d_secpercyl); +	fprintf(f, "cylinders: %ld\n", lp->d_ncylinders); +	fprintf(f, "sectors/unit: %ld\n", lp->d_secperunit);  	fprintf(f, "rpm: %d\n", lp->d_rpm);  	fprintf(f, "interleave: %d\n", lp->d_interleave);  	fprintf(f, "trackskew: %d\n", lp->d_trackskew);  	fprintf(f, "cylinderskew: %d\n", lp->d_cylskew); -	fprintf(f, "headswitch: %d\t\t# milliseconds\n", lp->d_headswitch); -	fprintf(f, "track-to-track seek: %d\t# milliseconds\n", lp->d_trkseek); +	fprintf(f, "headswitch: %ld\t\t# milliseconds\n", lp->d_headswitch); +	fprintf(f, "track-to-track seek: %ld\t# milliseconds\n", +		lp->d_trkseek);  	fprintf(f, "drivedata: ");  	for (i = NDDATA - 1; i >= 0; i--)  		if (lp->d_drivedata[i]) @@ -677,14 +710,14 @@ display(f, lp)  	if (i < 0)  		i = 0;  	for (j = 0; j <= i; j++) -		fprintf(f, "%d ", lp->d_drivedata[j]); +		fprintf(f, "%ld ", lp->d_drivedata[j]);  	fprintf(f, "\n\n%d partitions:\n", lp->d_npartitions);  	fprintf(f,  	    "#        size   offset    fstype   [fsize bsize bps/cpg]\n");  	pp = lp->d_partitions;  	for (i = 0; i < lp->d_npartitions; i++, pp++) {  		if (pp->p_size) { -			fprintf(f, "  %c: %8d %8d  ", 'a' + i, +			fprintf(f, "  %c: %8ld %8ld  ", 'a' + i,  			   pp->p_size, pp->p_offset);  			if ((unsigned) pp->p_fstype < FSMAXTYPES)  				fprintf(f, "%8.8s", fstypenames[pp->p_fstype]); @@ -693,18 +726,18 @@ display(f, lp)  			switch (pp->p_fstype) {  			case FS_UNUSED:				/* XXX */ -				fprintf(f, "    %5d %5d %5.5s ", +				fprintf(f, "    %5ld %5ld %5.5s ",  				    pp->p_fsize, pp->p_fsize * pp->p_frag, "");  				break;  			case FS_BSDFFS: -				fprintf(f, "    %5d %5d %5d ", +				fprintf(f, "    %5ld %5ld %5d ",  				    pp->p_fsize, pp->p_fsize * pp->p_frag,  				    pp->p_cpg);  				break;  			case FS_BSDLFS: -				fprintf(f, "    %5d %5d %5d", +				fprintf(f, "    %5ld %5ld %5d",  				    pp->p_fsize, pp->p_fsize * pp->p_frag,  				    pp->p_cpg);  				break; @@ -713,13 +746,13 @@ display(f, lp)  				fprintf(f, "%20.20s", "");  				break;  			} -			fprintf(f, "\t# (Cyl. %4d", +			fprintf(f, "\t# (Cyl. %4ld",  			    pp->p_offset / lp->d_secpercyl);  			if (pp->p_offset % lp->d_secpercyl)  			    putc('*', f);  			else  			    putc(' ', f); -			fprintf(f, "- %d", +			fprintf(f, "- %ld",  			    (pp->p_offset +  			    pp->p_size + lp->d_secpercyl - 1) /  			    lp->d_secpercyl - 1); @@ -731,6 +764,7 @@ display(f, lp)  	fflush(f);  } +int  edit(lp, f)  	struct disklabel *lp;  	int f; @@ -738,7 +772,6 @@ edit(lp, f)  	register int c;  	struct disklabel label;  	FILE *fd; -	char *mktemp();  	(void) mktemp(tmpfil);  	fd = fopen(tmpfil, "w"); @@ -778,6 +811,7 @@ edit(lp, f)  	return (1);  } +int  editit()  {  	register int pid, xpid; @@ -850,6 +884,7 @@ word(cp)   * in the same format as that put out by display(),   * and fill in lp.   */ +int  getasciilabel(f, lp)  	FILE	*f;  	register struct disklabel *lp; @@ -863,7 +898,7 @@ getasciilabel(f, lp)  	lp->d_sbsize = SBSIZE;				/* XXX */  	while (fgets(line, sizeof(line) - 1, f)) {  		lineno++; -		if (cp = index(line,'\n')) +		if ((cp = index(line,'\n')) != 0)  			*cp = '\0';  		cp = skip(line);  		if (cp == NULL) @@ -1165,6 +1200,7 @@ getasciilabel(f, lp)   * Check disklabel for errors and fill in   * derived fields according to supplied values.   */ +int  checklabel(lp)  	register struct disklabel *lp;  { @@ -1173,19 +1209,19 @@ checklabel(lp)  	char part;  	if (lp->d_secsize == 0) { -		fprintf(stderr, "sector size %d\n", lp->d_secsize); +		fprintf(stderr, "sector size %ld\n", lp->d_secsize);  		return (1);  	}  	if (lp->d_nsectors == 0) { -		fprintf(stderr, "sectors/track %d\n", lp->d_nsectors); +		fprintf(stderr, "sectors/track %ld\n", lp->d_nsectors);  		return (1);  	}  	if (lp->d_ntracks == 0) { -		fprintf(stderr, "tracks/cylinder %d\n", lp->d_ntracks); +		fprintf(stderr, "tracks/cylinder %ld\n", lp->d_ntracks);  		return (1);  	}  	if  (lp->d_ncylinders == 0) { -		fprintf(stderr, "cylinders/unit %d\n", lp->d_ncylinders); +		fprintf(stderr, "cylinders/unit %ld\n", lp->d_ncylinders);  		errors++;  	}  	if (lp->d_rpm == 0) @@ -1195,12 +1231,12 @@ checklabel(lp)  	if (lp->d_secperunit == 0)  		lp->d_secperunit = lp->d_secpercyl * lp->d_ncylinders;  	if (lp->d_bbsize == 0) { -		fprintf(stderr, "boot block size %d\n", lp->d_bbsize); +		fprintf(stderr, "boot block size %ld\n", lp->d_bbsize);  		errors++;  	} else if (lp->d_bbsize % lp->d_secsize)  		Warning("boot block size %% sector-size != 0");  	if (lp->d_sbsize == 0) { -		fprintf(stderr, "super block size %d\n", lp->d_sbsize); +		fprintf(stderr, "super block size %ld\n", lp->d_sbsize);  		errors++;  	} else if (lp->d_sbsize % lp->d_secsize)  		Warning("super block size %% sector-size != 0"); @@ -1228,7 +1264,7 @@ checklabel(lp)  		}  		if (pp->p_offset + pp->p_size > lp->d_secperunit) {  			fprintf(stderr, -			    "partition %c: partition extends past end of unit\n", +			"partition %c: partition extends past end of unit\n",  			    part);  			errors++;  		} @@ -1249,6 +1285,7 @@ checklabel(lp)   * This allows newfs to prevent creation of a filesystem where it might   * clobber bootstrap code.   */ +void  setbootflag(lp)  	register struct disklabel *lp;  { @@ -1288,15 +1325,19 @@ setbootflag(lp)  }  /*VARARGS1*/ -Warning(fmt, a1, a2, a3, a4, a5) -	char *fmt; +void +Warning(char *fmt, ...)  { +	va_list ap;  	fprintf(stderr, "Warning, "); -	fprintf(stderr, fmt, a1, a2, a3, a4, a5); +	va_start(ap, fmt); +	vfprintf(stderr, fmt, ap);  	fprintf(stderr, "\n"); +	va_end(ap);  } +void  Perror(str)  	char *str;  { @@ -1304,6 +1345,7 @@ Perror(str)  	exit(4);  } +void  usage()  {  #if NUMBOOT > 0 | 
