Date: Tue, 3 Sep 2002 17:43:34 +0200 (CEST) From: Dan Lukes <dan@obluda.cz> To: FreeBSD-gnats-submit@FreeBSD.org Cc: dan@obluda.cz Subject: bin/42386: cleaning code from warnings in libkvm Message-ID: <200209031543.g83FhY3o002155@xkulesh.vol.cz>
next in thread | raw e-mail | index | archive | help
>Number:         42386
>Category:       bin
>Synopsis:       cleaning code from warnings in libkvm
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Sep 03 14:40:04 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Dan Lukes
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
Obludarium
>Environment:
src/lib/libkvm/kvm.h,v 1.14 2002/08/21 16:19:57
src/lib/libkvm/kvm.c,v 1.22 2002/05/28 17:01:04
src/lib/libkvm/kvm_i386.c,v 1.15 2001/10/10 17:48:43
src/lib/libkvm/kvm_getswapinfo.c,v 1.19 2001/10/10 17:48:43
src/lib/libkvm/kvm_proc.c,v 1.54 2002/08/30 02:18:38
>Description:
lib/libkvm/kvm.c:
  351: warning: unsigned int format, u_long arg (arg 4)
  413: warning: unsigned int format, u_long arg (arg 4)
    #>> see NOTE 1
lib/libkvm/kvm_i386.c:
  200: warning: unsigned int format, u_long arg (arg 4)
    #>> see NOTE 1
  144: warning: unused variable `i'
    #>> variable i is really unused
lib/libkvm/kvm_getswapinfo.c:
  267: warning: unsigned int format, different type arg (arg 5)
                int format, different type arg (arg 6)
    #>> blk & radix are daddr_t = int64_t = __int64_t = long long
  287: warning: unsigned int format, different type arg (arg 5)
                int format, different type arg (arg 6)
                int format, different type arg (arg 8)
    #>> blk & radix are daddr_t = int64_t = __int64_t = long long
    #>> meta.bm_bighint is daddr_t = int64_t = __int64_t = long long
  321: warning: unsigned int format, different type arg (arg 5)
                int format, different type arg (arg 6)
    #>> blk & radix are daddr_t = int64_t = __int64_t = long long
  355: warning: unsigned int format, different type arg (arg 5)
                int format, different type arg (arg 6)
    #>> blk & radix are daddr_t = int64_t = __int64_t = long long
  371: warning: unsigned int format, different type arg (arg 5)
                int format, different type arg (arg 6)
                int format, different type arg (arg 8)
    #>> blk & radix are daddr_t = int64_t = __int64_t = long long
    #>> meta.bm_bighint is daddr_t = int64_t = __int64_t = long long
  434: warning: int format, different type arg (arg 2)
                int format, different type arg (arg 3)
                int format, different type arg (arg 4)
    #>> bl_free,bl_blocks,bl_radix are daddr_t = int64_t = __int64_t = long long
lib/libkvm/kvm_proc.c:
  132: warning: unsigned int format, pointer arg (arg 4)
  140: warning: unsigned int format, pointer arg (arg 4)
  195: warning: unsigned int format, pointer arg (arg 4)
  204: warning: unsigned int format, pointer arg (arg 4)
  220: warning: unsigned int format, pointer arg (arg 4)
  230: warning: unsigned int format, pointer arg (arg 4)
  237: warning: unsigned int format, pointer arg (arg 4)
  249: warning: unsigned int format, pointer arg (arg 4)
  257: warning: unsigned int format, pointer arg (arg 4)
  267: warning: unsigned int format, pointer arg (arg 4)
    #>> common for 10 above warnings - 
    #>>    pointer should be printf'ed by 'p' not 'x' conversion character
  782: warning: passing arg 0 of 'kvm_doargv' discards qualifiers from pointer target type
    #>> there are several mismatches of const and non-const declarations of
    #>> struct kinfo_proc *kp parameter in varions functions
  926: warning: unsigned int format, u_long arg (arg 4)
    #>> uva is u_long = unsigned long
   44: warning: 'sccsid' defined but not used
    #>> all other sources has sccsid definition skipped by #if 0
=======
NOTE 1
As long as sizeof(int)==sizeof(long) there are no real impact of
inconsistency between (long) int format and int arg (or vice versa), 
but it is better to have clean code ... 
=======
The warnings in kvm_getswapinfo.c points to real error, because 
longlongs really cannot be succesfully printed as ints (but it shouldn't 
abend as of sizeof(int)<sizeof(long long)). It's the reason
I assign medium priority to this PR
>How-To-Repeat:
	N/A
>Fix:
--- lib/libkvm/kvm.c.ORIG	Tue May 28 19:01:04 2002
+++ lib/libkvm/kvm.c	Tue Sep  3 15:47:05 2002
@@ -348,7 +348,7 @@
 		 */
 		errno = 0;
 		if (lseek(kd->vmfd, (off_t)kva, 0) == -1 && errno != 0) {
-			_kvm_err(kd, 0, "invalid address (%x)", kva);
+			_kvm_err(kd, 0, "invalid address (%lx)", kva);
 			return (-1);
 		}
 		cc = read(kd->vmfd, buf, len);
@@ -410,7 +410,7 @@
 		 */
 		errno = 0;
 		if (lseek(kd->vmfd, (off_t)kva, 0) == -1 && errno != 0) {
-			_kvm_err(kd, 0, "invalid address (%x)", kva);
+			_kvm_err(kd, 0, "invalid address (%lx)", kva);
 			return (-1);
 		}
 		cc = write(kd->vmfd, buf, len);
--- lib/libkvm/kvm.h.ORIG	Wed Aug 21 19:28:52 2002
+++ lib/libkvm/kvm.h	Tue Sep  3 17:18:52 2002
@@ -89,7 +89,7 @@
 (const char *, const char *, const char *, int, char *);
 ssize_t	  kvm_read(kvm_t *, unsigned long, void *, size_t);
 ssize_t	  kvm_uread
-(kvm_t *, struct kinfo_proc *, unsigned long, char *, size_t);
+(kvm_t *, const struct kinfo_proc *, unsigned long, char *, size_t);
 ssize_t	  kvm_write(kvm_t *, unsigned long, const void *, size_t);
 __END_DECLS
 
--- lib/libkvm/kvm_getswapinfo.c.ORIG	Wed Oct 10 19:48:43 2001
+++ lib/libkvm/kvm_getswapinfo.c	Tue Sep  3 16:41:22 2002
@@ -260,7 +260,7 @@
 	 */
 	if (meta.bm_bighint == (daddr_t)-1) {
 		if (flags & SWIF_DUMP_TREE) {
-			printf("%*.*s(0x%06x,%d) Terminator\n", 
+			printf("%*.*s(0x%06llx,%lld) Terminator\n", 
 			    TABME,
 			    blk, 
 			    radix
@@ -278,7 +278,7 @@
 #endif
 
 		if (flags & SWIF_DUMP_TREE) {
-			printf("%*.*s(0x%06x,%d) Bitmap %08x big=%d\n", 
+			printf("%*.*s(0x%06llx,%lld) Bitmap %08x big=%lld\n", 
 			    TABME,
 			    blk, 
 			    radix,
@@ -314,7 +314,7 @@
 		 * Meta node if all free
 		 */
 		if (flags & SWIF_DUMP_TREE) {
-			printf("%*.*s(0x%06x,%d) Submap ALL-FREE {\n", 
+			printf("%*.*s(0x%06llx,%lld) Submap ALL-FREE {\n", 
 			    TABME,
 			    blk, 
 			    radix
@@ -348,7 +348,7 @@
 		 * Meta node if all used
 		 */
 		if (flags & SWIF_DUMP_TREE) {
-			printf("%*.*s(0x%06x,%d) Submap ALL-ALLOCATED\n", 
+			printf("%*.*s(0x%06llx,%lld) Submap ALL-ALLOCATED\n", 
 			    TABME,
 			    blk, 
 			    radix
@@ -362,7 +362,7 @@
 		int next_skip;
 
 		if (flags & SWIF_DUMP_TREE) {
-			printf("%*.*s(0x%06x,%d) Submap avail=%d big=%d {\n", 
+			printf("%*.*s(0x%06llx,%lld) Submap avail=%d big=%lld {\n", 
 			    TABME,
 			    blk, 
 			    radix,
@@ -425,7 +425,7 @@
 	KGET2(swapblist, &blcopy, sizeof(blcopy), "*swapblist");
 
 	if (flags & SWIF_DUMP_TREE) {
-		printf("radix tree: %d/%d/%d blocks, %dK wired\n",
+		printf("radix tree: %lld/%lld/%lld blocks, %dK wired\n",
 			blcopy.bl_free,
 			blcopy.bl_blocks,
 			blcopy.bl_radix,
--- lib/libkvm/kvm_i386.c.ORIG	Tue Sep  3 15:47:44 2002
+++ lib/libkvm/kvm_i386.c	Tue Sep  3 16:01:24 2002
@@ -141,7 +141,6 @@
 	pt_entry_t pte;
 	u_long pdeindex;
 	u_long pteindex;
-	int i;
 
 	if (ISALIVE(kd)) {
 		_kvm_err(kd, 0, "vatop called in live kernel!");
@@ -197,7 +196,7 @@
 	return (PAGE_SIZE - offset);
 
 invalid:
-	_kvm_err(kd, 0, "invalid address (%x)", va);
+	_kvm_err(kd, 0, "invalid address (%lx)", va);
 	return (0);
 }
 
--- lib/libkvm/kvm_proc.c.ORIG	Sun Sep  1 08:04:56 2002
+++ lib/libkvm/kvm_proc.c	Tue Sep  3 17:27:08 2002
@@ -41,7 +41,9 @@
 __FBSDID("$FreeBSD: src/lib/libkvm/kvm_proc.c,v 1.54 2002/08/30 02:18:38 peter Exp $");
 
 #if defined(LIBC_SCCS) && !defined(lint)
+#if 0
 static char sccsid[] = "@(#)kvm_proc.c	8.3 (Berkeley) 9/23/93";
+#endif
 #endif /* LIBC_SCCS and not lint */
 
 /*
@@ -129,14 +131,14 @@
 	for (; cnt < maxcnt && p != NULL; p = LIST_NEXT(&proc, p_list)) {
 		memset(kp, 0, sizeof *kp);
 		if (KREAD(kd, (u_long)p, &proc)) {
-			_kvm_err(kd, kd->program, "can't read proc at %x", p);
+			_kvm_err(kd, kd->program, "can't read proc at %p", p);
 			return (-1);
 		}
 		if (proc.p_state != PRS_ZOMBIE) {
 			if (KREAD(kd, (u_long)TAILQ_FIRST(&proc.p_threads),
 			    &mainthread)) {
 				_kvm_err(kd, kd->program,
-				    "can't read thread at %x",
+				    "can't read thread at %p",
 				    TAILQ_FIRST(&proc.p_threads));
 				return (-1);
 			}
@@ -192,7 +194,7 @@
 		if (proc.p_procsig != NULL) {
 			if (KREAD(kd, (u_long)proc.p_procsig, &procsig)) {
 				_kvm_err(kd, kd->program,
-				    "can't read procsig at %x", proc.p_procsig);
+				    "can't read procsig at %p", proc.p_procsig);
 				return (-1);
 			}
 			kp->ki_sigignore = procsig.ps_sigignore;
@@ -201,7 +203,7 @@
 		if ((proc.p_sflag & PS_INMEM) && proc.p_stats != NULL) {
 			if (KREAD(kd, (u_long)proc.p_stats, &pstats)) {
 				_kvm_err(kd, kd->program,
-				    "can't read stats at %x", proc.p_stats);
+				    "can't read stats at %p", proc.p_stats);
 				return (-1);
 			}
 			kp->ki_start = pstats.p_start;
@@ -217,7 +219,7 @@
 		else if (proc.p_pptr) {
 			if (KREAD(kd, (u_long)proc.p_pptr, &pproc)) {
 				_kvm_err(kd, kd->program,
-				    "can't read pproc at %x", proc.p_pptr);
+				    "can't read pproc at %p", proc.p_pptr);
 				return (-1);
 			}
 			kp->ki_ppid = pproc.p_pid;
@@ -226,14 +228,14 @@
 		if (proc.p_pgrp == NULL)
 			goto nopgrp;
 		if (KREAD(kd, (u_long)proc.p_pgrp, &pgrp)) {
-			_kvm_err(kd, kd->program, "can't read pgrp at %x",
+			_kvm_err(kd, kd->program, "can't read pgrp at %p",
 				 proc.p_pgrp);
 			return (-1);
 		}
 		kp->ki_pgid = pgrp.pg_id;
 		kp->ki_jobc = pgrp.pg_jobc;
 		if (KREAD(kd, (u_long)pgrp.pg_session, &sess)) {
-			_kvm_err(kd, kd->program, "can't read session at %x",
+			_kvm_err(kd, kd->program, "can't read session at %p",
 				pgrp.pg_session);
 			return (-1);
 		}
@@ -246,14 +248,14 @@
 		if ((proc.p_flag & P_CONTROLT) && sess.s_ttyp != NULL) {
 			if (KREAD(kd, (u_long)sess.s_ttyp, &tty)) {
 				_kvm_err(kd, kd->program,
-					 "can't read tty at %x", sess.s_ttyp);
+					 "can't read tty at %p", sess.s_ttyp);
 				return (-1);
 			}
 			kp->ki_tdev = tty.t_dev;
 			if (tty.t_pgrp != NULL) {
 				if (KREAD(kd, (u_long)tty.t_pgrp, &pgrp)) {
 					_kvm_err(kd, kd->program,
-						 "can't read tpgrp at %x",
+						 "can't read tpgrp at %p",
 						tty.t_pgrp);
 					return (-1);
 				}
@@ -263,7 +265,7 @@
 			if (tty.t_session != NULL) {
 				if (KREAD(kd, (u_long)tty.t_session, &sess)) {
 					_kvm_err(kd, kd->program,
-					    "can't read session at %x",
+					    "can't read session at %p",
 					    tty.t_session);
 					return (-1);
 				}
@@ -556,7 +558,7 @@
 static char **
 kvm_argv(kd, kp, addr, narg, maxcnt)
 	kvm_t *kd;
-	struct kinfo_proc *kp;
+	const struct kinfo_proc *kp;
 	u_long addr;
 	int narg;
 	int maxcnt;
@@ -756,7 +758,7 @@
  */
 static int
 proc_verify(curkp)
-	struct kinfo_proc *curkp;
+	const struct kinfo_proc *curkp;
 {
 	struct kinfo_proc newkp;
 	int mib[4];
@@ -776,7 +778,7 @@
 static char **
 kvm_doargv(kd, kp, nchr, info)
 	kvm_t *kd;
-	struct kinfo_proc *kp;
+	const struct kinfo_proc *kp;
 	int nchr;
 	void (*info)(struct ps_strings *, u_long *, int *);
 {
@@ -894,7 +896,7 @@
 ssize_t
 kvm_uread(kd, kp, uva, buf, len)
 	kvm_t *kd;
-	struct kinfo_proc *kp;
+	const struct kinfo_proc *kp;
 	u_long uva;
 	char *buf;
 	size_t len;
@@ -922,7 +924,7 @@
 	while (len > 0) {
 		errno = 0;
 		if (lseek(fd, (off_t)uva, 0) == -1 && errno != 0) {
-			_kvm_err(kd, kd->program, "invalid address (%x) in %s",
+			_kvm_err(kd, kd->program, "invalid address (%lx) in %s",
 			    uva, procfile);
 			break;
 		}
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200209031543.g83FhY3o002155>
