PERFORCE change 126230 for review

John Baldwin jhb at freebsd.org
Wed Sep 26 08:48:22 PDT 2007


On Sunday 09 September 2007 02:00:36 pm Constantine A. Murenin wrote:
> http://perforce.freebsd.org/chv.cgi?CH=126230
> 
> Change 126230 by cnst at dale on 2007/09/09 18:00:16
> 
> 	put in a hack for supporting "Sysctl internal magic",
> 	and now hw.sensors tree magically works in sysctl(8)!
> 	
> 	dale# sysctl hw.sensors.{lm0.volt{0,1,2,3},cpu{0,1}}
> 	hw.sensors.lm0.volt0: 1.23 VDC (VCore)
> 	hw.sensors.lm0.volt1: 12.30 VDC (+12V)
> 	hw.sensors.lm0.volt2: 3.33 VDC (+3.3V)
> 	hw.sensors.lm0.volt3: 3.31 VDC (+3.3V)
> 	hw.sensors.cpu0.temp0: 28.00 degC
> 	hw.sensors.cpu1.temp0: 28.00 degC
> 	dale#
> 	
> 	(All other utilities continue working using a cross-platform
> 	sysctl(3) interface, compatible with OpenBSD.)
> 
> +#endif /* !NOSYSCTL8HACK */
> +
> +
> +#ifndef NOSYSCTL8HACK
> +
> +/*
> + * XXX:
> + * FreeBSD's sysctl(9) .oid_handler functionality is not accustomed
> + * for the CTLTYPE_NODE handler to handle the undocumented sysctl
> + * magic calls.  As soon as such functionality is developed, 
> + * sysctl_sensors_handler() should be converted to handle all such
> + * calls, and these sysctl_add_oid(9) calls should be removed 
> + * "with a big axe".  This whole sysctl_add_oid(9) business is solely
> + * to please sysctl(8).

Actually, sysctl_add_oid(9) is how you should add a tree of sysctl's on the
fly to FreeBSD.  It frees you from having to manually simulate a sysctl
tree yourself and instead focus on just handling the functionality for the
leaf nodes.  If you just gave each sensor its own sysctl ctx and tree most
of your in-kernel code for dealing with 'hw.sensors' would go away as it
would just be a normal node ala 'dev'.

-- 
John Baldwin


More information about the p4-projects mailing list