diff options
author | ian <ian@FreeBSD.org> | 2015-03-14 23:30:03 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2015-03-14 23:30:03 +0000 |
commit | 99b568b2456d65c1f8a73cf6091d7ab2eb8d1d65 (patch) | |
tree | 250e234e2cc7506ed31e65fd4ee03532491042ae /sys/mips/nlm | |
parent | 6ded6cb79088bd2f424020dc66b217e1966abcba (diff) | |
download | FreeBSD-src-99b568b2456d65c1f8a73cf6091d7ab2eb8d1d65.zip FreeBSD-src-99b568b2456d65c1f8a73cf6091d7ab2eb8d1d65.tar.gz |
Use sbuf_printf() for sysctl strings instead of static buffers and snprintf.
Diffstat (limited to 'sys/mips/nlm')
-rw-r--r-- | sys/mips/nlm/cms.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/sys/mips/nlm/cms.c b/sys/mips/nlm/cms.c index 2e363a7..a4b7244 100644 --- a/sys/mips/nlm/cms.c +++ b/sys/mips/nlm/cms.c @@ -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_SMP, SI_ORDER_MIDDLE, 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); } |