Declare functions, resolve printf-format warnings.

This commit is contained in:
Joerg Wunsch 1996-01-21 23:55:47 +00:00
parent e66e939ed6
commit 61de51cad6
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=13544
2 changed files with 150 additions and 66 deletions

View File

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

View File

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