On Sun, Apr 23, 2017 at 03:39:22AM -0400, Ian Sutton wrote: > > So through some combination of: > * CPP multi-string define with unclear hex escapes prepended > * printf() call with one too many parameters > * undocumented %b printf() token
you didn't look at the right printf man page. This is kernel code, so you should look at printf(9) and not at printf(3). $ man 9 printf ... The kernel functions support some additional formatting specifiers: %b Bit field expansion. This format specifier is useful for decoding bit fields in device registers. It displays an integer using a specified radix (base) and an interpretation of the bits within that integer as though they were flags. It requires two arguments from the argument vector, the first argument being the bit field to be decoded (of type int, unless a width modifier has been specified) and the second being a decoding directive string. ... Thanks. -- Sebastien Marie