On Mon, Mar 23, 2020 at 3:48 PM Mattias Rönnblom <mattias.ronnb...@ericsson.com> wrote: > > On 2020-03-23 10:24, Jerin Jacob wrote: > > On Fri, Mar 20, 2020 at 12:45 AM Mattias Rönnblom > > <mattias.ronnb...@ericsson.com> wrote: > >> On 2020-03-18 20:02, jer...@marvell.com wrote: > >>> From: Jerin Jacob <jer...@marvell.com> > >>> > >>> + > >>> +#define rte_trace_ctf_u64(in)\ > >>> + RTE_BUILD_BUG_ON(sizeof(uint64_t) != sizeof(typeof(in)));\ > >>> + __rte_trace_emit_ctf_field(sizeof(uint64_t), RTE_STR(in), > >>> "uint64_t") > >> Delegate to a generic macro, to which you pass the type and the "in" > >> parameter. > > Not delegated to have a generic patch to catch the following error in > > compile time. > > > > uint32_t val = 12; > > > > rte_trace_ctf_u64(val) > > If you pass the type as I suggested, is there something preventing > generating exactly the same code as the non-delegating macros? > > > #define __rte_trace_cft(in, in_type) \ > > RTE_BUILD_BUG_ON(sizeof(in_type), != sizeof(typeof(in))); > > __rte_trace_emit_cft_field(sizeof(in_type), RTE_STR(in), > RTE_STR(in_type)) > > #define rte_trace_cft_u64(in) \ > > __rte_trace_ctf(in, uint64_t)
This will work. I will change to this scheme in v2. > >