A few WARNS6 cleanups

Peter Schuller peter.schuller at infidyne.com
Sat Jan 1 17:25:37 PST 2005


iostat: minor changes required

newfs: minor changes required to supress warnings; but there seems to be
a lot of mixing of signed/unsigned types in general and I have not
attempted to actually fix the underlying issues (which I suspect are not
specific to newfs). note: patch also modifies sbin/mount/mntopts.h.

-- 
/ Peter Schuller, InfiDyne Technologies HB

PGP userID: 0xE9758B7D or 'Peter Schuller <peter.schuller at xxxxxxxxxxxx>'
Key retrieval: Send an E-Mail to getpgpkey at xxxxxxxxx
E-Mail: peter.schuller at xxxxxxxxxxxx Web: http://www.scode.org

--- usr.bin/split/Makefile.orig	2004-12-31 17:30:11.000000000 +0000
+++ usr.bin/split/Makefile	2004-12-31 17:29:47.000000000 +0000
@@ -3,5 +3,6 @@
 # $DragonFly: src/usr.bin/split/Makefile,v 1.2 2003/06/17 04:29:31 dillon Exp $
 
 PROG=	split
+WARNS?= 6
 
 .include <bsd.prog.mk>
--- usr.bin/xargs/Makefile.orig	2004-12-31 17:28:35.000000000 +0000
+++ usr.bin/xargs/Makefile	2004-12-31 17:27:59.000000000 +0000
@@ -4,7 +4,7 @@
 
 PROG=	xargs
 SRCS=	xargs.c strnsubst.c
-WARNS?=	4
+WARNS?=	6
 
 .if defined(BOOTSTRAPPING)
 CFLAGS+=-DBOOTSTRAPPING
--- usr.sbin/iostat/Makefile.orig	2005-01-01 17:01:26.000000000 +0000
+++ usr.sbin/iostat/Makefile	2005-01-01 17:01:26.000000000 +0000
@@ -7,5 +7,6 @@
 CFLAGS+=-I${.CURDIR}/../../sys
 DPADD=	${LIBDEVSTAT} ${LIBKINFO}
 LDADD=	-ldevstat -lkinfo
+WARNS?= 6
 
 .include <bsd.prog.mk>
--- usr.sbin/iostat/iostat.c.orig	2005-01-01 17:01:26.000000000 +0000
+++ usr.sbin/iostat/iostat.c	2005-01-01 17:01:26.000000000 +0000
@@ -126,7 +126,8 @@
 
 /* local function declarations */
 static void usage(void);
-static void phdr(int signo);
+static void sighandler(int signo);
+static void phdr(void);
 static void devstats(int perf_select);
 static void cpustats(void);
 
@@ -148,13 +149,11 @@
 main(int argc, char **argv)
 {
 	int c;
-	int i;
 	int tflag = 0, hflag = 0, cflag = 0, wflag = 0, nflag = 0;
 	int count = 0, waittime = 0;
 	struct devstat_match *matches;
 	int num_matches = 0;
-        char errbuf[_POSIX2_LINE_MAX];
-	int hz, stathz;
+	int hz;
 	int headercount;
 	long generation;
 	int num_devices_specified;
@@ -361,14 +360,13 @@
 	 * If the user stops the program (control-Z) and then resumes it,
 	 * print out the header again.
 	 */
-	signal(SIGCONT, phdr);
+	signal(SIGCONT, sighandler);
 
 	for (headercount = 1;;) {
 		struct devinfo *tmp_dinfo;
-		long tmp;
 
 		if (!--headercount) {
-			phdr(0);
+			phdr();
 			headercount = 20;
 		}
 		if (kinfo_get_tty_tk_nin(&tk_nin))
@@ -412,7 +410,7 @@
 				errx(1, "%s", devstat_errbuf);
 				break;
 			case 1:
-				phdr(0);
+				phdr();
 				headercount = 20;
 				break;
 			default:
@@ -443,7 +441,7 @@
 				errx(1,"%s", devstat_errbuf);
 				break;
 			case 1:
-				phdr(0);
+				phdr();
 				headercount = 20;
 				break;
 			default:
@@ -488,7 +486,18 @@
 }
 
 static void
-phdr(int signo)
+sighandler(int signo)
+{
+	if(signo == SIGCONT) {
+		phdr();
+	} else {
+		fprintf(stderr, "BUG: sighandler does not know about sig %d\n",
+			signo);
+	}
+}
+
+static void
+phdr()
 {
 	int i;
 	int printed;
@@ -627,7 +636,6 @@
 static void
 cpustats(void)
 {
-	int state;
 
 	if (cp_time_total == 0.0)
 		cp_time_total = 1.0;
--- sbin/newfs/Makefile.orig	2005-01-01 14:58:24.000000000 +0000
+++ sbin/newfs/Makefile	2004-12-31 17:30:46.000000000 +0000
@@ -5,6 +5,7 @@
 PROG=	newfs
 SRCS=	getmntopts.c newfs.c mkfs.c fscopy.c
 MAN=	newfs.8
+WARNS?= 6
 
 MOUNT=	${.CURDIR}/../mount
 CFLAGS+=-DMFS -DFSIRAND -I${MOUNT}
--- sbin/newfs/fscopy.c.orig	2005-01-01 14:58:53.000000000 +0000
+++ sbin/newfs/fscopy.c	2005-01-01 17:00:00.000000000 +0000
@@ -51,6 +51,8 @@
     char		fs_Name[4];
 };
 
+static char empty_string[] = "";
+
 static
 fsnode_t
 fsmknode(const char *path)
@@ -72,7 +74,7 @@
     return(node);
 }
 
-fsnode_t
+static fsnode_t
 fsgethlink(fsnode_t hlinks, fsnode_t node)
 {
     fsnode_t scan;
@@ -87,7 +89,7 @@
     return(NULL);
 }
 
-char *
+static char *
 fshardpath(fsnode_t hlink, fsnode_t node)
 {
     fsnode_t scan;
@@ -221,7 +223,7 @@
 		    node->fs_Data[n] = 0;
 		}
 	    } else if (n == 0) {
-		node->fs_Data = "";
+		node->fs_Data = empty_string;
 		node->fs_Bytes = 0;
 	    } else {
 		fprintf(stderr, "Unable to read link: %s\n", path);
--- sbin/newfs/mkfs.c.orig	2005-01-01 14:58:35.000000000 +0000
+++ sbin/newfs/mkfs.c	2005-01-01 16:45:13.000000000 +0000
@@ -45,7 +45,7 @@
 extern char * getenv(char *);
 #endif
 
-#ifdef FSIRAND
+#if defined(FSIRAND) && defined(STANDALONE)
 extern long random(void);
 extern void srandomdev(void);
 #endif
@@ -128,9 +128,9 @@
 #ifdef FSIRAND
 int     randinit;
 #endif
-daddr_t	alloc();
-long	calcipg();
-static int charsperline();
+daddr_t	alloc(int size, int mode);
+long	calcipg(long cylspg, long bpcg, off_t *usedbp);
+static int charsperline(void);
 void clrblock(struct fs *, unsigned char *, int);
 void fsinit(time_t);
 void initcg(int, time_t);
@@ -152,6 +152,9 @@
 caddr_t realloc(char *, u_long);
 #endif
 
+void started(int signo);
+void parentready(int signo);
+
 int mfs_ppid = 0;
 int parentready_signalled;
 
@@ -159,7 +162,7 @@
 mkfs(struct partition *pp, char *fsys, int fi, int fo, const char *mfscopy)
 {
 	register long i, mincpc, mincpg, inospercg;
-	long cylno, rpos, blk, j, warn = 0;
+	long cylno, rpos, blk, j, emitwarn = 0;
 	long used, mincpgcnt, bpcg;
 	off_t usedb;
 	long mapcramped, inodecramped;
@@ -167,8 +170,6 @@
 	int status, fd;
 	time_t utime;
 	quad_t sizepb;
-	void started();
-	void parentready();
 	int width;
 	char tmpbuf[100];	/* XXX this will break in about 2,500 years */
 
@@ -213,11 +214,13 @@
 			fd = open(filename,O_RDWR|O_TRUNC|O_CREAT,0644);
 			if(fd < 0)
 				err(12, "%s", filename);
-			for(l=0;l< fssize * sectorsize;l += l1) {
+			for(l = 0;
+			    l < (unsigned long)fssize * (unsigned long)sectorsize;
+			    l += l1) {
 				l1 = fssize * sectorsize;
 				if (BUFSIZ < l1)
 					l1 = BUFSIZ;
-				if (l1 != write(fd,buf,l1))
+				if (l1 != (unsigned long)write(fd,buf,l1))
 					err(12, "%s", filename);
 			}
 			membase = mmap(
@@ -234,7 +237,8 @@
 #ifndef STANDALONE
 			get_memleft();
 #endif
-			if (fssize * sectorsize > (memleft - 131072))
+			if ((u_long)fssize * (u_long)sectorsize >
+			    (memleft - 131072))
 				fssize = (memleft - 131072) / sectorsize;
 			if ((membase = malloc(fssize * sectorsize)) == NULL)
 				errx(13, "malloc failed");
@@ -375,7 +379,7 @@
 	if (maxcontig > 1)
 		sblock.fs_contigsumsize = MIN(maxcontig, FS_MAXCONTIG);
 	mapcramped = 0;
-	while (CGSIZE(&sblock) > sblock.fs_bsize) {
+	while (CGSIZE(&sblock) > (uint32_t)sblock.fs_bsize) {
 		mapcramped = 1;
 		if (sblock.fs_bsize < MAXBSIZE) {
 			sblock.fs_bsize <<= 1;
@@ -422,7 +426,7 @@
 		sblock.fs_fragshift -= 1;
 		mincpc >>= 1;
 		sblock.fs_cpg = roundup(mincpgcnt, mincpc);
-		if (CGSIZE(&sblock) > sblock.fs_bsize) {
+		if (CGSIZE(&sblock) > (uint32_t)sblock.fs_bsize) {
 			sblock.fs_bsize <<= 1;
 			break;
 		}
@@ -478,7 +482,7 @@
 	/*
 	 * Must ensure there is enough space to hold block map.
 	 */
-	while (CGSIZE(&sblock) > sblock.fs_bsize) {
+	while (CGSIZE(&sblock) > (uint32_t)sblock.fs_bsize) {
 		mapcramped = 1;
 		sblock.fs_cpg -= mincpc;
 		sblock.fs_ipg = calcipg(sblock.fs_cpg, bpcg, &usedb);
@@ -518,7 +522,7 @@
 	sblock.fs_ncyl = fssize * NSPF(&sblock) / sblock.fs_spc;
 	if (fssize * NSPF(&sblock) > sblock.fs_ncyl * sblock.fs_spc) {
 		sblock.fs_ncyl++;
-		warn = 1;
+		emitwarn = 1;
 	}
 	if (sblock.fs_ncyl < 1) {
 		printf("file systems must have at least one cylinder\n");
@@ -630,9 +634,9 @@
 		sblock.fs_ncyl -= sblock.fs_ncyl % sblock.fs_cpg;
 		sblock.fs_size = fssize = sblock.fs_ncyl * sblock.fs_spc /
 		    NSPF(&sblock);
-		warn = 0;
+		emitwarn = 0;
 	}
-	if (warn && !mfs) {
+	if (emitwarn && !mfs) {
 		printf("Warning: %d sector(s) in last cylinder unallocated\n",
 		    sblock.fs_spc -
 		    (fssize * NSPF(&sblock) - (sblock.fs_ncyl - 1)
@@ -770,7 +774,7 @@
 	long i;
 	register struct csum *cs;
 #ifdef FSIRAND
-	long j;
+	uint32_t j;
 #endif
 
 	/*
@@ -824,14 +828,17 @@
 	}
 	acg.cg_cs.cs_nifree += sblock.fs_ipg;
 	if (cylno == 0)
-		for (i = 0; i < ROOTINO; i++) {
+		for (i = 0; i < (long)ROOTINO; i++) {
 			setbit(cg_inosused(&acg), i);
 			acg.cg_cs.cs_nifree--;
 		}
 	for (i = 0; i < sblock.fs_ipg / INOPF(&sblock); i += sblock.fs_frag) {
 #ifdef FSIRAND
-		for (j = 0; j < sblock.fs_bsize / sizeof(struct dinode); j++)
+		for (j = 0;
+		     j < sblock.fs_bsize / sizeof(struct dinode);
+		     j++) {
 			zino[j].di_gen = random();
+		}
 #endif
 		wtfs(fsbtodb(&sblock, cgimin(&sblock, cylno) + i),
 		    sblock.fs_bsize, (char *)zino);
@@ -1094,7 +1101,7 @@
  * Calculate number of inodes per group.
  */
 long
-calcipg(long cpg, long bpcg, off_t *usedbp)
+calcipg(long cylspg, long bpcg, off_t *usedbp)
 {
 	int i;
 	long ipg, new_ipg, ncg, ncyl;
@@ -1105,7 +1112,7 @@
 	 * Note that fssize is still in sectors, not filesystem blocks.
 	 */
 	ncyl = howmany(fssize, (u_int)secpercyl);
-	ncg = howmany(ncyl, cpg);
+	ncg = howmany(ncyl, cylspg);
 	/*
 	 * Iterate a few times to allow for ipg depending on itself.
 	 */
@@ -1113,8 +1120,8 @@
 	for (i = 0; i < 10; i++) {
 		usedb = (sblock.fs_iblkno + ipg / INOPF(&sblock))
 			* NSPF(&sblock) * (off_t)sectorsize;
-		new_ipg = (cpg * (quad_t)bpcg - usedb) / density * fssize
-			  / ncg / secpercyl / cpg;
+		new_ipg = (cylspg * (quad_t)bpcg - usedb) / density * fssize
+			  / ncg / secpercyl / cylspg;
 		new_ipg = roundup(new_ipg, INOPB(&sblock));
 		if (new_ipg == ipg)
 			break;
@@ -1130,7 +1137,7 @@
 void
 iput(register struct dinode *ip, register ino_t ino)
 {
-	struct dinode buf[MAXINOPB];
+	struct dinode inobuf[MAXINOPB];
 	daddr_t d;
 	int c;
 
@@ -1150,14 +1157,14 @@
 	    (char *)&acg);
 	sblock.fs_cstotal.cs_nifree--;
 	fscs[0].cs_nifree--;
-	if (ino >= sblock.fs_ipg * sblock.fs_ncg) {
+	if (ino >= (uint32_t)sblock.fs_ipg * (uint32_t)sblock.fs_ncg) {
 		printf("fsinit: inode value out of range (%d).\n", ino);
 		exit(32);
 	}
 	d = fsbtodb(&sblock, ino_to_fsba(&sblock, ino));
-	rdfs(d, sblock.fs_bsize, (char *)buf);
-	buf[ino_to_fsbo(&sblock, ino)] = *ip;
-	wtfs(d, sblock.fs_bsize, (char *)buf);
+	rdfs(d, sblock.fs_bsize, (char *)inobuf);
+	inobuf[ino_to_fsbo(&sblock, ino)] = *ip;
+	wtfs(d, sblock.fs_bsize, (char *)inobuf);
 }
 
 /*
@@ -1167,8 +1174,9 @@
  * parent forked the child otherwise).
  */
 void
-parentready(void)
+parentready(int signo)
 {
+	signo = SIGUSR1; /* Supress unused param. warning */
   	parentready_signalled = 1;
 }
 
@@ -1178,10 +1186,11 @@
  * We have to wait until the mount has actually completed!
  */
 void
-started(void)
+started(int signo)
 {
 	int retry = 100;	/* 10 seconds, 100ms */
 
+	signo = SIGUSR1; /* Supress unused param. warning */
 	while (mfs_ppid && retry) {
 		struct stat st;
 
@@ -1306,7 +1315,7 @@
 
 	pgsz = getpagesize() - 1;
 	dstart = ((u_long)&etext) &~ pgsz;
-	freestart = ((u_long)(sbrk(0) + pgsz) &~ pgsz);
+	freestart = ((u_long)((char*)sbrk(0) + pgsz) &~ pgsz);
 	if (getrlimit(RLIMIT_DATA, &rlp) < 0)
 		warn("getrlimit");
 	memused = freestart - dstart;
--- sbin/newfs/newfs.c.orig	2005-01-01 14:58:31.000000000 +0000
+++ sbin/newfs/newfs.c	2005-01-01 16:12:56.000000000 +0000
@@ -77,7 +77,7 @@
 struct mntopt mopts[] = {
 	MOPT_STDOPTS,
 	MOPT_ASYNC,
-	{ NULL },
+	MOPT_NULL,
 };
 
 void	fatal(const char *fmt, ...);
@@ -215,12 +215,13 @@
 	register struct partition *pp;
 	register struct disklabel *lp;
 	struct disklabel mfsfakelabel;
-	struct disklabel *getdisklabel();
+	//CLEANUP	struct disklabel *getdisklabel();
 	struct partition oldpartition;
 	struct stat st;
 	struct statfs *mp;
 	int fsi = 0, fso, len, n, vflag;
-	char *cp = NULL, *s1, *s2, *special, *opstring;
+	char *cp = NULL, *s1, *s2, *special;
+	const char *opstring;
 #ifdef MFS
 	struct vfsconf vfc;
 	int error;
@@ -485,7 +486,7 @@
 havelabel:
 	if (fssize == 0)
 		fssize = pp->p_size;
-	if (fssize > pp->p_size && !mfs)
+	if ((uint32_t)fssize > pp->p_size && !mfs)
 	       fatal("%s: maximum file system size on the `%c' partition is %d",
 			argv[0], *cp, pp->p_size);
 	if (rpm == 0) {
@@ -560,7 +561,7 @@
 	 * case (4096 sectors per cylinder) is intended to disagree
 	 * with the disklabel.
 	 */
-	if (t_or_u_flag && secpercyl != lp->d_secpercyl)
+	if (t_or_u_flag && (uint32_t)secpercyl != lp->d_secpercyl)
 		fprintf(stderr, "%s (%d) %s (%lu)\n",
 			"Warning: calculated sectors per cylinder", secpercyl,
 			"disagrees with disk label", (u_long)lp->d_secpercyl);
@@ -665,6 +666,7 @@
 static void
 mfsintr(int signo)
 {
+	signo = SIGINT; /* Supress unused param. warning */
 	if (filename)
 		munmap(membase, fssize * sectorsize);
 	remove(mfsdevname);
@@ -686,7 +688,7 @@
 	if (ioctl(fd, DIOCGDINFO, (char *)&lab) < 0) {
 #ifdef COMPAT
 		if (disktype) {
-			struct disklabel *lp, *getdiskbyname();
+			struct disklabel *lp;
 
 			unlabeled++;
 			lp = getdiskbyname(disktype);
--- sbin/mount/mntopts.h.orig	2005-01-01 15:36:52.000000000 +0000
+++ sbin/mount/mntopts.h	2005-01-01 15:57:35.000000000 +0000
@@ -64,6 +64,9 @@
 #define MOPT_RO			{ "ro",		0, MNT_RDONLY, 0 }
 #define MOPT_RW			{ "rw",		1, MNT_RDONLY, 0 }
 
+/* NULL option; used to terminate arrays of options */
+#define MOPT_NULL		{ NULL,         0, 0, 0 }
+
 /* This is parsed by mount(8), but is ignored by specific mount_*(8)s. */
 #define MOPT_AUTO		{ "auto",	0, 0, 0 }
 




More information about the Submit mailing list