Re: Standard handling of boolean attributes in sysfs.

From: Jonathan Cameron
Date: Wed Mar 23 2011 - 06:52:46 EST


On 03/22/11 22:30, Greg KH wrote:
> On Tue, Mar 22, 2011 at 10:59:43AM +0000, Jonathan Cameron wrote:
>> On 03/21/11 20:14, Greg KH wrote:
>>> On Mon, Mar 21, 2011 at 08:02:40PM +0000, Jonathan Cameron wrote:
>>>> Hi All,
>>>>
>>>> Just wondering what the feeling would be about having
>>>> a utility function similar to sysfs_streq to provide a
>>>> consistent option for all those sysfs attributes out there
>>>> where
>>>>
>>>> 1, on, true -> 1
>>>> 0, off, false -> 0
>>>>
>>>> Or does such a beast already exist and I'm just being unobservant?
>>>
>>> We have the one in debugfs that I think people use for sysfs. Have you
>>> looked at that?
>>>
>> Thanks for the pointer...
>>
>> write_file_bool in fs/debugfs/file.c?
>>
>> What is there is pretty much what is needed, but it's not a general
>> use function like sysfs_streq. Clearly it would make sense to use
>> what is there as a basis of such a function.
>>
>> To save others looking it up, the relevant bit is:
>>
>> switch (buf[0]) {
>> case 'y':
>> case 'Y':
>> case '1':
>> *val = 1;
>> break;
>> case 'n':
>> case 'N':
>> case '0':
>> *val = 0;
>> break;
>> }
>>
>> There are a few cut and paste copies of this about (mostly in IIO drivers actually
>> hence why I asking if there is a better way :).
>>
>> Unless there is demand for it elsewhere I'll just add a utility function to the IIO
>> core to do this and we can revisit the case for a general function when the need
>> turns up elsewhere.
>
> The other function that does this, and is what I was thinking of, is
> param_set_bool(). Care to merge both of these functions together into
> something "sane" and have everyone use it?
Will put out an RFC labeled patch on this and see how it goes down.

Jonathan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/