[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87o90c9rkc.fsf@intel.com>
Date: Mon, 26 Aug 2019 12:58:11 +0300
From: Jani Nikula <jani.nikula@...ux.intel.com>
To: Andrew Morton <akpm@...ux-foundation.org>,
Uwe Kleine-König
<uwe@...ine-koenig.org>
Cc: Jonathan Corbet <corbet@....net>, linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-gpio@...r.kernel.org,
Linus Walleij <linus.walleij@...aro.org>,
Bartosz Golaszewski <bgolaszewski@...libre.com>,
Petr Mladek <pmladek@...e.com>,
Sergey Senozhatsky <sergey.senozhatsky@...il.com>,
Steven Rostedt <rostedt@...dmis.org>
Subject: Re: [PATCH v1 1/2] vsprintf: introduce %dE for error constants
On Sat, 24 Aug 2019, Andrew Morton <akpm@...ux-foundation.org> wrote:
>> --- a/lib/vsprintf.c
>> +++ b/lib/vsprintf.c
>> @@ -533,6 +533,192 @@ char *number(char *buf, char *end, unsigned long long num,
>> return buf;
>> }
>>
>> +#define ERRORCODE(x) { .str = #x, .err = x }
>> +
>> +static const struct {
>> + const char *str;
>> + int err;
>> +} errorcodes[] = {
>
> It's a bit of a hack, but an array of char*'s and a separate array of
> ushorts would save a bit of space.
Or just
#define ERRORCODE(x) [x] = #x
static const char * const errorcodes[] = {
ERRORCODE(EPERM),
ERRORCODE(ENOENT),
...
};
Saves space, faster lookup, discovers at build time why EWOULDBLOCK
would always show up as EAGAIN in the logs. We don't have holes to speak
of in the error codes.
BR,
Jani.
--
Jani Nikula, Intel Open Source Graphics Center
Powered by blists - more mailing lists