From owner-svn-src-head@freebsd.org Thu Dec 10 02:33:53 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 955139D6D0D for ; Thu, 10 Dec 2015 02:33:53 +0000 (UTC) (envelope-from steven.hartland@multiplay.co.uk) Received: from mail-wm0-x22f.google.com (mail-wm0-x22f.google.com [IPv6:2a00:1450:400c:c09::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2A9E41F95 for ; Thu, 10 Dec 2015 02:33:52 +0000 (UTC) (envelope-from steven.hartland@multiplay.co.uk) Received: by mail-wm0-x22f.google.com with SMTP id v187so12221322wmv.1 for ; Wed, 09 Dec 2015 18:33:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-type:content-transfer-encoding; bh=tdh2dhfroNo/x8zY9OSDBlFSBUVayb+FaJfxm7ANCAs=; b=cdx1Xv135H8lNiIGPrvjPM4vWraQ6dxoC4uzx4i9YTrbTfYGTLHb+yuaODWVOvHDgL o63AmWRpI9lMSxBejsMyHS/FUCgw+hhtYr9kRn9c9TgyobVZUru0oB2m91q4o/9mLTzd JRTHr9C7J86k//8b0e3zmTY88h1gQmSi6Ld6w1YF4tPzblnuVujyJGsUUcvVHi6LSnGA zSUs3DxSwqSmjeQ4I3l9qHQsmmCn1N1Jkl8etDZujW9rnwVS9tZKuQ/a8RTzlLLC0bWH ZNygYSF4cKRRszJMooBljRqT80kF+G2J5wnT9J9WCTJUAQNXPkCfEFy9qQII8keBr/Qb DUFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=tdh2dhfroNo/x8zY9OSDBlFSBUVayb+FaJfxm7ANCAs=; b=V4p89qr2DavkG+erNPNxoHIYBqQJAIVJPGk6O2Z5uXRIdG4JvHnOrV9MHCbAAVgraX 9hBylS07CQZ7hTqtwXban80QMfZ+exnQKUlxxxJpepTLduTnarbYJ6HSF73BmREKySLF KaN+la1rbpWFcru5y74FR047+7416KOAVMC7swghl+bOQmD/Rt1vQkVp4jls3FCAsEz4 S5GBNHG6PXNbE3gIN7VaUWITBb+7R65mEzOS8EIXBrx/yNkgwMA3qPkNxlB5E6vsjRPB D51tVzSxSmC0AV+7YrkDlqCo0VCPyntqAspY38ikAqtsIQRFlUqfaBp3zSa85UPzwdqo KHcQ== X-Gm-Message-State: ALoCoQm3faK6GjqGItsYgsVCeKXlyFgSGJigy476lvlLHUaFpmN8/YJbOlEYtiyVFfUejJZXtyk5D5/uj6WJfI6uZ4iW0GmSAA== X-Received: by 10.28.23.136 with SMTP id 130mr40928975wmx.94.1449714830469; Wed, 09 Dec 2015 18:33:50 -0800 (PST) Received: from [10.10.1.58] (liv3d.labs.multiplay.co.uk. [82.69.141.171]) by smtp.gmail.com with ESMTPSA id q74sm1472603wmd.0.2015.12.09.18.33.49 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 09 Dec 2015 18:33:49 -0800 (PST) Subject: Re: svn commit: r292045 - head/sbin/sysctl To: Marcelo Araujo , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201512100211.tBA2BgrG015558@repo.freebsd.org> From: Steven Hartland Message-ID: <5668E495.7050003@multiplay.co.uk> Date: Thu, 10 Dec 2015 02:33:57 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <201512100211.tBA2BgrG015558@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Dec 2015 02:33:53 -0000 Nice Marcelo, I always thought it was odd there was no way to easily get this info :) On 10/12/2015 02:11, Marcelo Araujo wrote: > Author: araujo > Date: Thu Dec 10 02:11:42 2015 > New Revision: 292045 > URL: https://svnweb.freebsd.org/changeset/base/292045 > > Log: > Add -t option to display field types. > > PR: bin/203918 > Submitted by: ota > Reviewed by: cem > Approved by: bapt (mentor) > Differential Revision: https://reviews.freebsd.org/D4451 > > Modified: > head/sbin/sysctl/sysctl.8 > head/sbin/sysctl/sysctl.c > > Modified: head/sbin/sysctl/sysctl.8 > ============================================================================== > --- head/sbin/sysctl/sysctl.8 Thu Dec 10 02:05:35 2015 (r292044) > +++ head/sbin/sysctl/sysctl.8 Thu Dec 10 02:11:42 2015 (r292045) > @@ -28,7 +28,7 @@ > .\" From: @(#)sysctl.8 8.1 (Berkeley) 6/6/93 > .\" $FreeBSD$ > .\" > -.Dd February 12, 2015 > +.Dd December 10, 2015 > .Dt SYSCTL 8 > .Os > .Sh NAME > @@ -36,13 +36,13 @@ > .Nd get or set kernel state > .Sh SYNOPSIS > .Nm > -.Op Fl bdehiNnoRTqx > +.Op Fl bdehiNnoRTtqx > .Op Fl B Ar bufsize > .Op Fl f Ar filename > .Ar name Ns Op = Ns Ar value > .Ar ... > .Nm > -.Op Fl bdehNnoRTqx > +.Op Fl bdehNnoRTtqx > .Op Fl B Ar bufsize > .Fl a > .Sh DESCRIPTION > @@ -140,6 +140,8 @@ Suppress some warnings generated by > to standard error. > .It Fl T > Display only variables that are settable via loader (CTLFLAG_TUN). > +.It Fl t > +Print the type of the variable. > .It Fl W > Display only writable variables that are not statistical. > Useful for determining the set of runtime tunable sysctls. > > Modified: head/sbin/sysctl/sysctl.c > ============================================================================== > --- head/sbin/sysctl/sysctl.c Thu Dec 10 02:05:35 2015 (r292044) > +++ head/sbin/sysctl/sysctl.c Thu Dec 10 02:11:42 2015 (r292045) > @@ -72,7 +72,7 @@ static const char rcsid[] = > static const char *conffile; > > static int aflag, bflag, Bflag, dflag, eflag, hflag, iflag; > -static int Nflag, nflag, oflag, qflag, Tflag, Wflag, xflag; > +static int Nflag, nflag, oflag, qflag, tflag, Tflag, Wflag, xflag; > > static int oidfmt(int *, int, char *, u_int *); > static int parsefile(const char *); > @@ -120,6 +120,9 @@ static const char *ctl_typename[CTLTYPE+ > [CTLTYPE_S16] = "int16_t", > [CTLTYPE_S32] = "int32_t", > [CTLTYPE_S64] = "int64_t", > + [CTLTYPE_NODE] = "node", > + [CTLTYPE_STRING] = "string", > + [CTLTYPE_OPAQUE] = "opaque", > }; > > static void > @@ -127,8 +130,8 @@ usage(void) > { > > (void)fprintf(stderr, "%s\n%s\n", > - "usage: sysctl [-bdehiNnoqTWx] [ -B ] [-f filename] name[=value] ...", > - " sysctl [-bdehNnoqTWx] [ -B ] -a"); > + "usage: sysctl [-bdehiNnoqTtWx] [ -B ] [-f filename] name[=value] ...", > + " sysctl [-bdehNnoqTtWx] [ -B ] -a"); > exit(1); > } > > @@ -142,7 +145,7 @@ main(int argc, char **argv) > setbuf(stdout,0); > setbuf(stderr,0); > > - while ((ch = getopt(argc, argv, "AabB:def:hiNnoqTwWxX")) != -1) { > + while ((ch = getopt(argc, argv, "AabB:def:hiNnoqtTwWxX")) != -1) { > switch (ch) { > case 'A': > /* compatibility */ > @@ -184,6 +187,9 @@ main(int argc, char **argv) > case 'q': > qflag = 1; > break; > + case 't': > + tflag = 1; > + break; > case 'T': > Tflag = 1; > break; > @@ -856,7 +862,7 @@ show_var(int *oid, int nlen) > { > u_char buf[BUFSIZ], *val, *oval, *p; > char name[BUFSIZ], fmt[BUFSIZ]; > - const char *sep, *sep1; > + const char *sep, *sep1, *prntype; > int qoid[CTL_MAXNAME+2]; > uintmax_t umv; > intmax_t mv; > @@ -902,12 +908,23 @@ show_var(int *oid, int nlen) > else > sep = ": "; > > - if (dflag) { /* just print description */ > + ctltype = (kind & CTLTYPE); > + if (tflag || dflag) { > + if (!nflag) > + printf("%s%s", name, sep); > + if (ctl_typename[ctltype] != NULL) > + prntype = ctl_typename[ctltype]; > + else > + prntype = "unknown"; > + if (tflag && dflag) > + printf("%s%s", prntype, sep); > + else if (tflag) { > + printf("%s", prntype); > + return (0); > + } > qoid[1] = 5; > j = sizeof(buf); > i = sysctl(qoid, nlen + 2, buf, &j, 0, 0); > - if (!nflag) > - printf("%s%s", name, sep); > printf("%s", buf); > return (0); > } > @@ -925,7 +942,6 @@ show_var(int *oid, int nlen) > warnx("malloc failed"); > return (1); > } > - ctltype = (kind & CTLTYPE); > len = j; > i = sysctl(oid, nlen, val, &len, 0, 0); > if (i != 0 || (len == 0 && ctltype != CTLTYPE_STRING)) { >