add libtracing Makefile.am
[ust.git] / libmarkers / marker.h
index 5fdd66ff45feef3f5c1d2b3126304d630524b6ee..7c3d8c565a512d082df3fc304882747eab97930e 100644 (file)
@@ -1,6 +1,3 @@
-#ifndef _LINUX_MARKER_H
-#define _LINUX_MARKER_H
-
 /*
  * Code markup for dynamic and static tracing.
  *
  * See the file COPYING for more details.
  */
 
+#ifndef _LINUX_MARKER_H
+#define _LINUX_MARKER_H
+
 #include <stdarg.h>
 //ust// #include <linux/types.h>
 #include "immediate.h"
 //ust// #include <linux/ltt-channels.h>
 #include "kernelcompat.h"
 #include "compiler.h"
+#include "list.h"
 
 //ust// struct module;
 //ust// struct task_struct;
@@ -251,7 +252,8 @@ extern void *marker_get_private_data(const char *channel, const char *name,
 #define marker_synchronize_unregister() synchronize_sched()
 
 struct marker_iter {
-       struct module *module;
+//ust//        struct module *module;
+       struct lib *lib;
        struct marker *marker;
 };
 
@@ -273,4 +275,24 @@ extern int is_marker_enabled(const char *channel, const char *name);
 //ust// }
 //ust// #endif
 
+
+struct lib {
+       struct marker *markers_start;
+       int markers_count;
+       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
This page took 0.0286960000000001 seconds and 4 git commands to generate.