detailed syscall tracing (work in progress)
[lttng-modules.git] / instrumentation / syscalls / lttng-syscalls-generate-headers.sh
index 35f4486a29679d157836c922abc18e3a06274c38..87daf0fc1426af9c917a2d46d0a6b5da36dedd5e 100644 (file)
@@ -44,11 +44,13 @@ HEADER=headers/${INPUTFILE}-${CLASS}.h
 echo "/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */" > ${HEADER}
 
 echo \
-"#undef TRACE_SYSTEM
-#define TRACE_SYSTEM syscall
+"#ifndef CREATE_SYSCALL_TABLE
 
-#if !defined(_TRACE_SYSCALL_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_SYSCALL_H
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM syscalls
+
+#if !defined(_TRACE_SYSCALLS_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_SYSCALLS_H
 
 #include <linux/tracepoint.h>
 #include <linux/syscalls.h>
@@ -160,12 +162,30 @@ sed 's/^syscall \([^ ]*\) nr \([^ ]*\) nbargs \([^ ]*\) '\
 ')/g'\
        ${TMPFILE} >> ${HEADER}
 
-echo -n \
+# Macro for tracing syscall table
+
+rm -f ${TMPFILE}
+for NRARGS in $(seq 1 6); do
+       grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} >> ${TMPFILE}
+done
+
+echo \
 "
-#endif /*  _TRACE_SYSCALL_H */
+#endif /*  _TRACE_SYSCALLS_H */
 
 /* This part must be outside protection */
 #include \"../../../probes/define_trace.h\"
+
+#else /* CREATE_SYSCALL_TABLE */
+" >> ${HEADER}
+
+sed 's/^syscall \([^ ]*\) nr \([^ ]*\) nbargs \([^ ]*\) .*$/'\
+'TRACE_SYSCALL_TABLE(sys_\1, \2, \3)/g'\
+       ${TMPFILE} >> ${HEADER}
+
+echo -n \
+"
+#endif /* CREATE_SYSCALL_TABLE */
 " >> ${HEADER}
 
 rm -f ${INPUTFILE}.tmp
This page took 0.025986 seconds and 4 git commands to generate.