in progress...
authorcompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Sun, 3 Feb 2008 18:35:20 +0000 (18:35 +0000)
committercompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Sun, 3 Feb 2008 18:35:20 +0000 (18:35 +0000)
git-svn-id: http://ltt.polymtl.ca/svn@2812 04897980-b3bd-0310-b5e0-8ef037075253

markers-userspace/Makefile
markers-userspace/kernel-api.h
markers-userspace/marker-lib.c
markers-userspace/testprog.c

index 1c9bd84960ff2a47fa221e5ac2f7c23341755f12..e770d7377ab9fcec8c1f7a4013a3482b0f3b78e0 100644 (file)
@@ -15,4 +15,4 @@ testprog.S: testprog.c marker.h
 .PHONY: clean
 
 clean:
-       rm -f testprog testprog.S
+       rm -f testprog testprog.S marker-lib.o
index ccdc2dc317f1bf630720d9f26ce9d4d52cc067cd..cb11aecd7f74b793471198868b17f4e70bd28f55 100644 (file)
@@ -5,6 +5,15 @@
 #ifndef __KERNEL_API
 #define __KERNEL_API
 
+#include <errno.h>
+#include <syscall.h>
+#include <string.h>
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define DECLARE_IMV(type, name) extern __typeof__(type) name##__imv
 #define DEFINE_IMV(type, name)  __typeof__(type) name##__imv
 
  */
 #define _imv_read(name)                (name##__imv)
 
+#define __NR_marker             326
+
+#define sys_marker(...) syscall(__NR_marker, __VA_ARGS__)
+
+#ifdef __cplusplus
+} /* end of extern "C" */
+#endif
+
 #endif
index d690e527d5404811ccda104b572d263b6e813622..739c7580e8f1901519c88b0d34e4be25db2337dd 100644 (file)
@@ -1,6 +1,7 @@
 
 #include "marker.h"
 #include <stdio.h>
+#include <errno.h>
 
 extern struct marker __start___markers[];
 extern struct marker __stop___markers[];
@@ -33,16 +34,21 @@ void __mark_empty_function(void *probe_private, void *call_private,
 void marker_probe_cb(const struct marker *mdata, void *call_private,
        const char *fmt, ...)
 {
+       static unsigned int count = 0;
 
-
+       printf("Test probe function %u\n", count++);
 }
 
 __attribute__((constructor)) void marker_init(void)
 {
        struct marker *iter;
+       int ret;
 
        printf("Marker section : from %p to %p\n",
                __start___markers, __stop___markers);
+       ret = sys_marker(__start___markers, __stop___markers);
+       if (ret)
+               perror("Error connecting markers");
        for (iter = __start___markers; iter < __stop___markers; iter++) {
                printf("Marker : %s\n", iter->name);
        }
index 037e1c191f9439ef9c4b00a8043b96f5a7c53d3f..5f25e83076ef7529e7da689c4476e2147d3d18d5 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdio.h>
+#include <unistd.h>
 #include "marker.h"
 
 int main(int argc, char **argv)
@@ -6,6 +7,9 @@ int main(int argc, char **argv)
        void *ptr;
        unsigned long val;
 
-       trace_mark(test_marker, "ptr %p val %lu", ptr, val);
+       while (1) {
+               trace_mark(test_marker, "ptr %p val %lu", ptr, val);
+               sleep(2);
+       }
        return 0;
 }
This page took 0.026111 seconds and 4 git commands to generate.