Fix: lttng modules system call generation script
[lttng-modules.git] / instrumentation / syscalls / lttng-syscalls-generate-headers.sh
old mode 100644 (file)
new mode 100755 (executable)
index 5eddb27..a0ae0f2
@@ -1,8 +1,12 @@
 #!/bin/sh
 
 # Generate system call probe description macros from syscall metadata dump file.
+# The resulting header will be written in the headers subdirectory, in a file name
+# based on the name of the input file. 
+#
 # example usage:
 #
+# lttng-syscalls-generate-headers.sh <type> <input_dir> <input_filename_in_dir> <bitness>
 # lttng-syscalls-generate-headers.sh integers 3.0.4 x86-64-syscalls-3.0.4 64
 # lttng-syscalls-generate-headers.sh pointers 3.0.4 x86-64-syscalls-3.0.4 64
 
@@ -15,6 +19,21 @@ SRCFILE=gen.tmp.0
 TMPFILE=gen.tmp.1
 HEADER=headers/${INPUTFILE}_${CLASS}.h
 
+if [ x"$INPUTDIR" = x"" ]; then
+       echo "Error: Please specify input directory as second argument"
+       exit 1
+fi
+
+if [ x"$INPUTFILE" = x"" ]; then
+       echo "Error: Please specify input file as third argument"
+       exit 1
+fi
+
+if [ x"$BITNESS" != x"32" ] && [ x"$BITNESS" != x"64" ]; then
+       echo "Error: Please specify bitness as fourth argument (\"32\" or \"64\")"
+       exit 1
+fi
+
 cp ${INPUT} ${SRCFILE}
 
 #Cleanup
@@ -41,6 +60,12 @@ if [ "$CLASS" = pointers ]; then
        mv ${TMPFILE} ${SRCFILE}
 fi
 
+if [ x"$CLASSCAP" = x"" ]; then
+       echo "Error: Please specify \"integers\" or \"pointers\" as first argument"
+       rm -f ${SRCFILE}
+       exit 1
+fi
+
 echo "/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */" > ${HEADER}
 
 echo \
@@ -59,12 +84,12 @@ if [ "$CLASS" = integers ]; then
 
 NRARGS=0
 
-echo \
+printf \
 'SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs,\n'\
 '      TP_STRUCT__entry(),\n'\
 '      TP_fast_assign(),\n'\
 '      TP_printk()\n'\
-')'\
+')\n'\
        >> ${HEADER}
 
 grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE}
@@ -197,11 +222,6 @@ perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\
 
 # Macro for tracing syscall table
 
-rm -f ${TMPFILE}
-for NRARGS in $(seq 0 6); do
-       grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} >> ${TMPFILE}
-done
-
 echo \
 "
 #endif /*  _TRACE_SYSCALLS_${CLASSCAP}_H */
This page took 0.024935 seconds and 4 git commands to generate.