From: Bean Huo <huobean@xxxxxxxxx> > Sent: 14 December 2020 20:20 > > From: Bean Huo <beanhuo@xxxxxxxxxx> > > Current EM macro definition, we use stringize operator '#', which turns > the argument it precedes into a quoted string. Thus requires the symbol > of __print_symbolic() should be the string corresponding to the name of > the enum. > > However, we have other cases, the symbol and enum name are not the same, > we can redefine EM/EMe, but there will introduce some redundant codes. > This patch is to remove this restriction, let others reuse the current > EM/EMe definition. > > Acked-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx> > Signed-off-by: Bean Huo <beanhuo@xxxxxxxxxx> > --- > include/trace/events/ufs.h | 40 +++++++++++++++++++------------------- > 1 file changed, 20 insertions(+), 20 deletions(-) > > diff --git a/include/trace/events/ufs.h b/include/trace/events/ufs.h > index 0bd54a184391..fa755394bc0f 100644 > --- a/include/trace/events/ufs.h > +++ b/include/trace/events/ufs.h > @@ -20,28 +20,28 @@ .. > +#define UFS_LINK_STATES \ > + EM(UIC_LINK_OFF_STATE, "UIC_LINK_OFF_STATE") \ > + EM(UIC_LINK_ACTIVE_STATE, "UIC_LINK_ACTIVE_STATE") \ > + EMe(UIC_LINK_HIBERN8_STATE, "UIC_LINK_HIBERN8_STATE") If you make EM a parameter to UFS_LINK_STATES then the caller can pass in the name of a #define that does the required expansion. The caller can also add in any required terminator after the last entry. For an enum (which doesn't want a , at the end) just add a dummy entry. You often want a constant for the number of items anyway. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)