Doubt on show() function of sysfs attribute
Mohana Datta Yelugoti
ymdatta.work at gmail.com
Tue Jan 26 12:37:24 EST 2021
I am going through Documentation/filesystems/sysfs.rst.
It says that sysfs allocates a buffer of size PAGE_SIZE and
passes it to the show/store functions of the attribute. On
read(), the show() method should fill the entire buffer.
The document also says that sysfs_emit() and sysfs_emit_at()
are the preferred function calls in show() function when
formatting the value to be returned to the user space .
I checked the sysfs_emit() function definition.
sysfs_emit() -> vscnprintf() -> vsnprintf() is the function
series. (-> = calls)
In the vsnprintf() function, i found that only in the case of
(start + size > end) the buffer is completely filled, in the other
case, that's not the case .
Isn't this contradictory to what the sysfs.rst says? (that entire
buffer should be filled)
Can you please help me understand what i am missing here?
Thank you for your time.
More information about the Kernelnewbies