From: John Crispin
> Sent: 03 March 2016 20:03
...
> +/* ugly macro hack to make sure hw_stats and ethtool strings are consistent 
> */
> +#define MTK_STAT_REG_DECLARE         \
> +     _FE(tx_bytes)                   \
> +     _FE(tx_packets)                 \
> +     _FE(tx_skip)                    \
> +     _FE(tx_collisions)              \
> +     _FE(rx_bytes)                   \
> +     _FE(rx_packets)                 \
> +     _FE(rx_overflow)                \
> +     _FE(rx_fcs_errors)              \
> +     _FE(rx_short_errors)            \
> +     _FE(rx_long_errors)             \
> +     _FE(rx_checksum_errors)         \
> +     _FE(rx_flow_control_packets)

Much better is to replace the first line with:
#define MTK_STAT_REG__DECLARE(_FE)
then the calling code can do:
#define XX(x) #x,
const char *names = {MTK_STAT_REG_DECLARE(XX)};
#undef XX

        David

Reply via email to