From: Namhyung Kim <namhyung@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Paul Mackerras <paulus@samba.org>, Ingo Molnar <mingo@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
Namhyung Kim <namhyung.kim@lge.com>
Subject: Re: [PATCH 3/3] tools lib traceevent: Introduce pevent_strerror
Date: Sat, 16 Jun 2012 07:25:02 +0900 [thread overview]
Message-ID: <87k3z843i9.fsf@gmail.com> (raw)
In-Reply-To: <1339763971.13377.370.camel@gandalf.stny.rr.com> (Steven Rostedt's message of "Fri, 15 Jun 2012 08:39:31 -0400")
Steven Rostedt <rostedt@goodmis.org> writes:
> On Tue, 2012-06-12 at 16:42 +0900, Namhyung Kim wrote:
>
>> +/*
>> + * This must have a same ordering as the enum pevent_errno.
>> + */
>> +static const char * const pevent_error_str[] = {
>> + "failed to allocate memory",
>> + "failed to parse event",
>> + "failed to read event id",
>> + "failed to read event format",
>> + "failed to read event print fmt",
>> + "failed to allocate field name for ftrace",
>> +};
>> +
>
> Here's a little macro trick to keep the strings and enums always in
> sync:
>
> #define __PEVENT_ERRNO_CODES \
> _C(PEVENT_ERRNO__MEM_ALLOC_FAILED, "failed to allocate memory"), \
> _C(PEVENT_ERRNO__PARSE_EVENT_FAILED, "failed to parse event"), \
> _C(PEVENT_ERRNO__READ_ID_FAILED, "failed to read event id"), \
> _C(PEVENT_ERRNO__READ_FORMAT_FAILED, "failed to read event format"), \
> _C(PEVENT_ERRNO__READ_PRINT_FAILED, "failed to read event print fmt"),\
> _C(PEVENT_ERRNO__OLD_FTRACE_ARG_FAILED,"failed to allocate field name for ftrace"),
>
> #undef _C
> #define _C(a,b) b
> static const char * const pevent_error_str[] = { __PEVENT_ERROR_CODES };
>
Cool. Maybe even shorter:
#define __PEVENT_ERRNO_CODES \
_C(MEM_ALLOC_FAILED, "failed to allocate memory"), \
_C(PARSE_EVENT_FAILED, "failed to parse event"), \
_C(READ_ID_FAILED, "failed to read event id"), \
_C(READ_FORMAT_FAILED, "failed to read event format"), \
_C(READ_PRINT_FAILED, "failed to read event print fmt"), \
_C(OLD_FTRACE_ARG_FAILED, "failed to allocate field name for ftrace"),
#undef _C
#define _C(a,b) PEVENT_ERRNO__ ## a
static const char * const pevent_error_str[] = { __PEVENT_ERROR_CODES };
But it make them less grep-able?
Thanks,
Namhyung
> #undef _C
> #define _C(a, b) a
>
> enum pevent_errno {
> __PEVENT_ERRNO__BEFORE_START = -100000 - 1,
> __PEVENT_ERRNO_CODES
> __PEVENT_ERRNO__END,
> };
>
> #define __PEVENT_ERRNO__START (__PEVENT_ERRNO__BEFORE_START + 1)
>
> Just saying ;-)
>
> -- Steve
next prev parent reply other threads:[~2012-06-15 22:25 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-12 7:42 [RFC PATCHSET 0/3] tools lib traceevent: Generic error handling for pevent Namhyung Kim
2012-06-12 7:42 ` [PATCH 1/3] tools lib traceevent: Do not link broken field arg for an old ftrace event Namhyung Kim
2012-06-12 17:51 ` Steven Rostedt
2012-06-12 7:42 ` [PATCH 2/3] tools lib traceevent: Introduce pevent_errno Namhyung Kim
2012-06-12 17:57 ` Steven Rostedt
2012-06-12 7:42 ` [PATCH 3/3] tools lib traceevent: Introduce pevent_strerror Namhyung Kim
2012-06-12 18:01 ` Steven Rostedt
2012-06-13 3:02 ` Namhyung Kim
2012-06-15 3:27 ` Steven Rostedt
2012-06-15 9:04 ` Namhyung Kim
2012-06-15 12:25 ` Steven Rostedt
2012-06-15 22:18 ` Namhyung Kim
2012-06-15 22:23 ` Steven Rostedt
2012-06-15 12:39 ` Steven Rostedt
2012-06-15 22:25 ` Namhyung Kim [this message]
2012-06-15 22:45 ` Steven Rostedt
2012-06-15 22:51 ` Namhyung Kim
2012-06-15 23:03 ` Steven Rostedt
2012-06-12 17:49 ` [RFC PATCHSET 0/3] tools lib traceevent: Generic error handling for pevent Steven Rostedt
2012-06-13 2:57 ` Namhyung Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k3z843i9.fsf@gmail.com \
--to=namhyung@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@ghostprotocols.net \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung.kim@lge.com \
--cc=paulus@samba.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.