Subject: Re: dynamic sysctl
To: NetBSD Kernel Technical Discussion List <tech-kern@netbsd.org>
From: Andrew Brown <atatat@atatdot.net>
List: tech-kern
Date: 11/15/2003 12:43:15
On Fri, Nov 14, 2003 at 06:37:14PM -0500, Greg A. Woods wrote:
>[ On Wednesday, November 12, 2003 at 22:39:10 (-0500), Andrew Brown wrote: ]
>> 
>> at one point, i groveled through all the archives, scribbled down all
>> the requirements people had for such a system, and either filed them
>> away as "no...not doing that" (a small number of them) or as "okay,
>> that part's done" (most of them), but i don't have that list any more.
>
>One related userland issue from my own ToDo list:

ah, yes, but only perhaps related to rewriting it...

>- /sbin/sysctl should use strvis(VIS_WHITE) or similar make sure any
>  strings it prints are in a guaranteed canonical printable form.  Of
>  course it should also use strunvis() to allow the printable form to be
>  used as "input" for -w too.

have you filed a pr on this?

>Currently the major need for this is with hw.cnmagic.  The way
>/etc/rc.d/sysctl reads /etc/sysctl.conf makes it impossible to use some
>character sequences, and for those that do work having raw escape
>sequences in /etc/sysctl.conf is rather in-elegant to say the least.
>
>For example since the serial console on my AS4000 seems to ignore a
>BREAK signal, at least for the purposes of telling the kernel to drop
>into DDB, I decided to use a similar escape sequence for hw.cnmagic to
>the one used to get the attention of its console monitor processor
>("^]^]rcm").  Luckily this particular sequence works in /etc/sysctl.conf
>without need for quoting magic or other fancy tricks, but it still looks
>ugly (or is invisible) in any editor and the true value is hidden from
>view when displayed (and luckily the console monitor processor is smart
>enough to ignore output from the host console too else displaying the
>value on the console would cause it to drop into DDB!  ;-):
>
># grep hw.cnmagic /etc/sysctl.conf | od -c 
>0000000    h   w   .   c   n   m   a   g   i   c   = 035 035   d   d   b
>0000020   \n                                                            
>0000021
># sysctl hw.cnmagic         
>hw.cnmagic = ddb
># sysctl hw.cnmagic | od -c 
>0000000    h   w   .   c   n   m   a   g   i   c       =     035 035   d
>0000020    d   b  \n                                                    
>0000023

yes, well, that doesn't seem all that hard to fix, and it even strikes
me that perhaps you're not using current where i think it may already
have been.  i can't tell right now, though...need coffee.  :)

try current?  even if just to see how it works?

-- 
|-----< "CODE WARRIOR" >-----|
codewarrior@daemon.org             * "ah!  i see you have the internet
twofsonet@graffiti.com (Andrew Brown)                that goes *ping*!"
werdna@squooshy.com       * "information is power -- share the wealth."