On Wed, 25 Apr 2007 19:41:20 +0100 Simon Arlott <simon@xxxxxxxxxxx> wrote:This changes the format of unknown status values to be less verbose and uses an array instead of several different snprintf calls. Since only enum values are assigned to it, poll_state is changed from int to enum. Use abs() for dB values instead of two almost identical return lines.
...
+ static char *str[] = { "no", "yes" };
+ if (unlikely(value >= ARRAY_SIZE(str)))
+ return snprintf(buf, PAGE_SIZE, "%u\n", value);
+ return snprintf(buf, PAGE_SIZE, "%s\n", str[value]);
Should a bool be displayed as "true" or "false"?
+ return snprintf(buf, PAGE_SIZE, "%u\n", value);
To be completely pedantic: we shouldn't be printing u32's with %u. Because
%u assumes that u32 is implemented as unsigned int. Only it's an opaque
type and we don't know what actual C type the architecture chose to use.
It happens to work OK on all architectures and I expect it always will, so
no change is needed, but there you have it.
u64's and %llu _are_ incompatible on some architectures and I get to fix
that about 1000000 times.