svn commit: r209193 - head/sys/dev/sound/pcm

Andriy Gapon avg at freebsd.org
Tue Jun 15 08:10:35 UTC 2010


on 15/06/2010 11:03 Kostik Belousov said the following:
> On Tue, Jun 15, 2010 at 07:06:54AM +0000, Andriy Gapon wrote:
>> Author: avg
>> Date: Tue Jun 15 07:06:54 2010
>> New Revision: 209193
>> URL: http://svn.freebsd.org/changeset/base/209193
>>
>> Log:
>>   sound/pcm: use non-const string as a value with SYSCTL_STRING
>>   
>>   Although the sysctls are marked with CTLFLAG_RD and the values will stay
>>   immutable, current sysctl implementation stores value pointer in
>>   void* type, which means that const qualifier is discarded anyway
>>   and some newer compilers complaint about that.
>>   We can't use de-const trick in sysctl implementation, because in that
>>   case we could miss an opposite situation where a const value is used
>>   with CTLFLAG_RW sysctl.
>>   
>>   Complaint from:	gcc 4.4, clang
>>   MFC after:	2 weeks
> This is arguably the change for worse then better.

Arguably - yes, practically - I am not sure.
See almost every other instance of SYSCTL_STRING usage, kern_mib.c most prominently.

> You could add SYSCTL_STRING_CONST or the like instead.

But we already have CTLFLAG_RD vs CTLFLAG_RW...
Perhaps, we could have a union of void* and const void* and then assign value to
the appropriate member based on the flags.  But I am not sure if the benefit
would be worth the effort.

-- 
Andriy Gapon


More information about the svn-src-all mailing list