From mboxrd@z Thu Jan 1 00:00:00 1970 From: matthew.khouzam@ericsson.com (Matthew Khouzam) Date: Mon, 14 Nov 2011 16:23:38 -0500 Subject: [ltt-dev] LTTng-UST tracepoint API updates In-Reply-To: <20111113191210.GA10108@Krystal> References: <20111112181304.GA22268@Krystal> <20111113191210.GA10108@Krystal> Message-ID: <4EC186DA.1000300@ericsson.com> To clarify: A tracepoint event now takes provider name /*a string no spaces, starts with a letter, alpha numeric + _. */ the event name /* same as above */ TP_ARGS( type , arg , ... ) /* every odd element is the type of the argument in the next place, must be a c type, not void... that's looking for trouble */ /* every even element is the name of the argument */ /* theres always an even number of args */ TP_FIELDS( ctf_type( type, fieldname, arg) ... )); I like the improvements... I don't know if it's just me, but this makes TP_ARGS and ctf_type much more harmonized, IMO. Why is ctf_type not CTF_TYPE, it is a macro and can be clearer to the user that the args need not be declared, they can be strings without quotes or types? I'm sure you have a well thought out answer. :) I really like that TP_ARGS() works. On 11-11-13 02:12 PM, Mathieu Desnoyers wrote: > * Mathieu Desnoyers (mathieu.desnoyers at efficios.com) wrote: >> Hi, >> >> I introduced the following API changes for LTTng-UST, after receiving >> very appropriate feedback: >> >> Tracepoint API change: rename TRACEPOINT_SYSTEM to TRACEPOINT_PROVIDER >> >> Eliminates the confusion between the first TRACEPOINT_EVENT "provider" >> argument and the "TRACEPOINT_SYSTEM", which need to be the same thing. >> >> and made sure TRACEPOINT_PROVIDER always match TRACEPOINT_SYSTEM by >> adding a compiler warning: >> >> Tracepoints: add provider mismatch check >> >> Finally, rename TP_ARGS to TP_VARS, in preparation for combining >> TP_PROTO and TP_ARGS: >> >> tracepoint API change: rename TP_ARGS to TP_VARS >> >> In preparation of folding of both TP_PROTO and TP_ARGS into TP_ARGS. >> >> Hopefully I'll succeed to getting both TP_PROTO and TP_VARS combined >> into TP_ARGS, but even if this does not work out, TP_VARS seems much >> more appropriate than TP_ARGS here. > The API change is completed by the following commit: > > commit 63ef26930fe613a266cc69f5089cf643dd59b012 > Author: Mathieu Desnoyers > Date: Sun Nov 13 14:07:57 2011 -0500 > > Tracepoint API change: combine TP_PROTO and TP_VARS into TP_ARGS, remove _NOARGS macros > > New API for tracepoints, combining the TP_PROTO and TP_VARS arguments > into a single "TP_ARGS" macro. It takes up to 10 parameters (from 0 to > 10). The "_NOARGS" special-case is not needed anymore: it can be > achieved simply by passing an empty TP_ARGS: > > TP_ARGS(), > > to the standard tracepoint event declarations. > > Signed-off-by: Mathieu Desnoyers > > Best regards, > > Mathieu > >> Thanks, >> >> Mathieu >> >> -- >> Mathieu Desnoyers >> Operating System Efficiency R&D Consultant >> EfficiOS Inc. >> http://www.efficios.com