X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=libmarkers%2Fmarker.h;h=aebe27a975c9bfa7eb171c93c6c8d1144267c120;hb=54d6c4f2322470b741653a49711c507023e4f48a;hp=f26bcac033519fad67850a3757da23eb5d03f58e;hpb=98963de4a2dfae12d8aafa0f9a6d97cf4a44e12d;p=ust.git diff --git a/libmarkers/marker.h b/libmarkers/marker.h index f26bcac..aebe27a 100644 --- a/libmarkers/marker.h +++ b/libmarkers/marker.h @@ -282,5 +282,15 @@ 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));\ +} #endif