X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Flttng%2Ftracepoint-types.h;h=f05fa4553e4d83f6e5ed09c2248055c48d57a8a7;hb=49400d96e137c653092cf42177decbd7573fcfcf;hp=ceb476a6f9891d760f0e43e60bda928aed2acae0;hpb=c0c0989ab70574e09b2f7e8b48c2da6af664a849;p=lttng-ust.git diff --git a/include/lttng/tracepoint-types.h b/include/lttng/tracepoint-types.h index ceb476a6..f05fa455 100644 --- a/include/lttng/tracepoint-types.h +++ b/include/lttng/tracepoint-types.h @@ -1,25 +1,49 @@ +// SPDX-FileCopyrightText: 2011-2012 Mathieu Desnoyers +// +// SPDX-License-Identifier: MIT + +#ifndef _LTTNG_UST_TRACEPOINT_TYPES_H +#define _LTTNG_UST_TRACEPOINT_TYPES_H + +#include + /* - * SPDX-License-Identifier: MIT + * Tracepoint probe definition * - * Copyright (C) 2011-2012 Mathieu Desnoyers + * IMPORTANT: this structure is part of the ABI between instrumented + * applications and UST. This structure is fixed-size because it is part + * of a public array of structures. Rather than extending this + * structure, struct lttng_ust_tracepoint should be extended instead. */ -#ifndef _LTTNG_TRACEPOINT_TYPES_H -#define _LTTNG_TRACEPOINT_TYPES_H - struct lttng_ust_tracepoint_probe { void (*func)(void); void *data; }; -#define LTTNG_UST_TRACEPOINT_PADDING 16 +/* + * Tracepoint definition + * + * IMPORTANT: this structure is part of the ABI between instrumented + * applications and UST. Fields need to be only added at the end, never + * reordered, never removed. + * + * The field @struct_size should be used to determine the size of the + * structure. It should be queried before using additional fields added + * at the end of the structure. + */ + struct lttng_ust_tracepoint { - const char *name; + uint32_t struct_size; + + const char *provider_name; + const char *event_name; int state; struct lttng_ust_tracepoint_probe *probes; int *tracepoint_provider_ref; const char *signature; - char padding[LTTNG_UST_TRACEPOINT_PADDING]; + + /* End of base ABI. Fields below should be used after checking struct_size. */ }; -#endif /* _LTTNG_TRACEPOINT_TYPES_H */ +#endif /* _LTTNG_UST_TRACEPOINT_TYPES_H */