svn commit: r280013 - in head/sys/mips: nlm rmi

Ian Lepore ian at FreeBSD.org
Sat Mar 14 23:30:04 UTC 2015


Author: ian
Date: Sat Mar 14 23:30:03 2015
New Revision: 280013
URL: https://svnweb.freebsd.org/changeset/base/280013

Log:
  Use sbuf_printf() for sysctl strings instead of static buffers and snprintf.

Modified:
  head/sys/mips/nlm/cms.c
  head/sys/mips/rmi/fmn.c

Modified: head/sys/mips/nlm/cms.c
==============================================================================
--- head/sys/mips/nlm/cms.c	Sat Mar 14 23:16:12 2015	(r280012)
+++ head/sys/mips/nlm/cms.c	Sat Mar 14 23:30:03 2015	(r280013)
@@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/proc.h>
 #include <sys/limits.h>
 #include <sys/bus.h>
+#include <sys/sbuf.h>
 
 #include <sys/ktr.h>
 #include <sys/kernel.h>
@@ -473,27 +474,22 @@ SYSINIT(start_msgring_threads, SI_SUB_SM
 static int
 sys_print_debug(SYSCTL_HANDLER_ARGS)
 {
-	int error, nb, i, fs;
-	static char xprintb[4096], *buf;
+	struct sbuf sb;
+	int error, i;
 
-	buf = xprintb;
-	fs = sizeof(xprintb);
-	nb = snprintf(buf, fs,
+	sbuf_new_for_sysctl(&sb, NULL, 64, req);
+	sbuf_printf(&sb, 
 	    "\nID     vc0       vc1       vc2     vc3     loops\n");
-	buf += nb;
-	fs -= nb;
 	for (i = 0; i < 32; i++) {
 		if ((xlp_hw_thread_mask & (1 << i)) == 0)
 			continue;
-		nb = snprintf(buf, fs,
-		    "%2d: %8d %8d %8d %8d %8d\n", i,
+		sbuf_printf(&sb, "%2d: %8d %8d %8d %8d %8d\n", i,
 		    fmn_msgcount[i][0], fmn_msgcount[i][1],
 		    fmn_msgcount[i][2], fmn_msgcount[i][3],
 		    fmn_loops[i]);
-		buf += nb;
-		fs -= nb;
 	}
-	error = SYSCTL_OUT(req, xprintb, buf - xprintb);
+	error = sbuf_finish(&sb);
+	sbuf_delete(&sb);
 	return (error);
 }
 

Modified: head/sys/mips/rmi/fmn.c
==============================================================================
--- head/sys/mips/rmi/fmn.c	Sat Mar 14 23:16:12 2015	(r280012)
+++ head/sys/mips/rmi/fmn.c	Sat Mar 14 23:30:03 2015	(r280013)
@@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/proc.h>
 #include <sys/limits.h>
 #include <sys/bus.h>
+#include <sys/sbuf.h>
 
 #include <sys/ktr.h>
 #include <sys/kernel.h>
@@ -468,27 +469,22 @@ SYSINIT(start_msgring_threads, SI_SUB_SM
 static int
 sys_print_debug(SYSCTL_HANDLER_ARGS)
 {
-	int error, nb, i, fs;
-	static char xprintb[4096], *buf;
+	struct sbuf sb;
+	int error, i;
 
-	buf = xprintb;
-	fs = sizeof(xprintb);
-	nb = snprintf(buf, fs,
+	sbuf_new_for_sysctl(&sb, NULL, 64, req);
+	sbuf_printf(&sb, 
 	    "\nID      INTR   ER   WU-SLP   WU-ERR     MSGS\n");
-	buf += nb;
-	fs -= nb;
 	for (i = 0; i < 32; i++) {
 		if ((xlr_hw_thread_mask & (1 << i)) == 0)
 			continue;
-		nb = snprintf(buf, fs,
-		    "%2d: %8d %4d %8d %8d %8d\n", i,
+		sbuf_printf(&sb, "%2d: %8d %4d %8d %8d %8d\n", i,
 		    msgring_nintr[i/4], msgring_badintr[i/4],
 		    msgring_wakeup_sleep[i], msgring_wakeup_nosleep[i],
 		    msgring_nmsgs[i]);
-		buf += nb;
-		fs -= nb;
 	} 
-	error = SYSCTL_OUT(req, xprintb, buf - xprintb);
+	error = sbuf_finish(&sb);
+	sbuf_delete(&sb);
 	return (error);
 }
 


More information about the svn-src-head mailing list