X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=libmarkers%2Fmarker.h;h=7c3d8c565a512d082df3fc304882747eab97930e;hb=1304f3dfeb42271cebb865409bd3e010e2512aa4;hp=f26bcac033519fad67850a3757da23eb5d03f58e;hpb=98963de4a2dfae12d8aafa0f9a6d97cf4a44e12d;p=lttng-ust.git diff --git a/libmarkers/marker.h b/libmarkers/marker.h index f26bcac0..7c3d8c56 100644 --- a/libmarkers/marker.h +++ b/libmarkers/marker.h @@ -1,6 +1,3 @@ -#ifndef _LINUX_MARKER_H -#define _LINUX_MARKER_H - /* * Code markup for dynamic and static tracing. * @@ -13,6 +10,9 @@ * See the file COPYING for more details. */ +#ifndef _LINUX_MARKER_H +#define _LINUX_MARKER_H + #include //ust// #include #include "immediate.h" @@ -282,5 +282,17 @@ struct lib { struct list_head list; }; +int marker_register_lib(struct marker *markers_start, int markers_count); + +#define MARKER_LIB \ +extern struct marker __start___markers[] __attribute__((visibility("hidden"))); \ +extern struct marker __stop___markers[] __attribute__((visibility("hidden"))); \ + \ +static void __attribute__((constructor)) __markers__init(void) \ +{ \ + marker_register_lib(__start___markers, (((long)__stop___markers)-((long)__start___markers))/sizeof(struct marker));\ +} + +void marker_set_new_marker_cb(void (*cb)(struct marker *)); #endif