[lttng-dev] [Patch LTTng-ust 7/7] Update the LTTng documentation with CTF named enumerations

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Thu Jan 30 20:40:29 EST 2014


----- Original Message -----
> From: "Geneviève Bastien" <gbastien+lttng at versatic.net>
> To: lttng-dev at lists.lttng.org
> Sent: Friday, January 24, 2014 3:04:45 PM
> Subject: [lttng-dev] [Patch LTTng-ust 7/7] Update the LTTng documentation	with CTF named enumerations
> 
> Signed-off-by: Geneviève Bastien <gbastien+lttng at versatic.net>
> ---
>  doc/man/lttng-ust.3 | 54
>  +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 54 insertions(+)
> 
> diff --git a/doc/man/lttng-ust.3 b/doc/man/lttng-ust.3
> index 7624e88..d474225 100644
> --- a/doc/man/lttng-ust.3
> +++ b/doc/man/lttng-ust.3
> @@ -158,6 +158,14 @@ TRACEPOINT_EVENT(
>  		 */
>  		ctf_float(float, floatfield, floatarg)
>  		ctf_float(double, doublefield, doublearg)
> +
> +		/*
> +		 * ctf_enum: a field using a previously defined named enumeration
> +		 * args: (provider, enum name, field name, argument expression)
> +		 * The enumeration itself and its values must have been defined
> +		 * previously with the TRACEPOINT_ENUM macro, described below.
> +		 */
> +		ctf_enum(sample_component, enumeration_name, enumfield, enumarg)
>  	)
>  )
>  
> @@ -165,6 +173,52 @@ There can be an arbitrary number of tracepoint providers
> within an
>  application, but they must each have their own provider name. Duplicate
>  provider names are not allowed.
>  
> +The CTF specification also supports some named basic and compound types that
> +can be defined inside a tracepoint provider and used as fields in the
> +tracepoint. This shows how to specify them and what they can be used for:
> +
> +The enumeration is a mapping between an integer and a string. It can be used
> +to have a more compact trace in cases where the possible values for a field
> are
> +limited:
> +

For each of the comments below, please add a final "." at the end to
complete each sentence.

> +TRACEPOINT_ENUM(
> +	/*
> +	 * The provider name, as described in the TRACEPOINT_EVENT macro
> +	 */
> +	sample_component,
> +
> +	/*
> +	 * The name of this enumeration, that will be used when using this
> +	 * metadata type in tracepoint fields
> +	 */
> +	enumeration_name,
> +
> +	/*
> +	 * Integer type by which this enumeration will be represented.
> +	 * It can be: char, int, long or any variant on those
> +	 */
> +	type,
> +
> +	/*
> +	 * TP_ENUM_VALUES describe the values of this enumeration and what they
> +	 * map to.
> +	 */
> +	TP_ENUM_VALUES(
> +		/*
> +		 * Maps an integer with this string value. By default, enumerations
> +		 * start at 0 and increment 1 for each entry.
> +		 */
> +		ctf_enum_value(string_value)
> +
> +		/*
> +		 * Maps the string value to integers in the range 'start' to 'end'
> +		 * inclusively. If 'start' == 'end', then the string is mapped to
> +		 * a specific value.

We should document whether overlaps are permitted.

Thanks,

Mathieu

> +		 */
> +		ctf_enum_range(start, end, string_value)
> +	)
> +)
> +
>  .fi
>  
>  .SH "ASSIGNING LOGLEVEL TO EVENTS"
> --
> 1.8.5.3
> 
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
> 

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list