X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=instrumentation%2Fsyscalls%2Flttng-syscalls-generate-headers.sh;h=a0ae0f2a2405ce30c7b2971fc3c92df5ae7aea50;hb=94f9e23353016f630bf9be45128f8cf4c57b4888;hp=046dc0676e390d55575e5d50b0e4fae5fd91bbd6;hpb=fa73137a9984cd453fe895cca204f9d73291c1b2;p=lttng-modules.git diff --git a/instrumentation/syscalls/lttng-syscalls-generate-headers.sh b/instrumentation/syscalls/lttng-syscalls-generate-headers.sh old mode 100644 new mode 100755 index 046dc067..a0ae0f2a --- a/instrumentation/syscalls/lttng-syscalls-generate-headers.sh +++ b/instrumentation/syscalls/lttng-syscalls-generate-headers.sh @@ -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 # 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 -e \ +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 */