markers/tracepoints: implement library unregistration
[ust.git] / include / ust / tracepoint.h
index 908d5abd553378c0cb0ffa0292e49541f4596ae0..6da3097766c9d351c979aecf10daab52e8694b05 100644 (file)
@@ -200,6 +200,7 @@ struct tracepoint_lib {
 
 extern int tracepoint_register_lib(struct tracepoint *tracepoints_start,
                                   int tracepoints_count);
+extern int tracepoint_unregister_lib(struct tracepoint *tracepoints_start);
 
 #define TRACEPOINT_LIB                                                 \
        extern struct tracepoint __start___tracepoints[] __attribute__((weak, visibility("hidden"))); \
@@ -208,6 +209,11 @@ extern int tracepoint_register_lib(struct tracepoint *tracepoints_start,
        {                                                               \
                tracepoint_register_lib(__start___tracepoints,          \
                                        (((long)__stop___tracepoints)-((long)__start___tracepoints))/sizeof(struct tracepoint)); \
+       } \
+       \
+       static void __attribute__((destructor)) __tracepoints__destroy(void) \
+       {                                                               \
+               tracepoint_unregister_lib(__start___tracepoints); \
        }
 
 #endif /* _UST_TRACEPOINT_H */
This page took 0.022317 seconds and 4 git commands to generate.