X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fsyscalls%2Flttng-syscalls-generate-headers.sh;h=231bd5c4929c1c7ae2bf7745393876b9046e86c8;hb=25631135724387849b45eaed70d75e072c29e2f5;hp=91e282c4c9c1c62cb92b17d1efe894e4d548143a;hpb=f7bdf4db0b992946342dc845c7369e9cdca46559;p=lttng-modules.git diff --git a/instrumentation/syscalls/lttng-syscalls-generate-headers.sh b/instrumentation/syscalls/lttng-syscalls-generate-headers.sh index 91e282c4..231bd5c4 100644 --- a/instrumentation/syscalls/lttng-syscalls-generate-headers.sh +++ b/instrumentation/syscalls/lttng-syscalls-generate-headers.sh @@ -2,10 +2,13 @@ # Generate system call probe description macros from syscall metadata dump file. # example usage: -# lttng-syscalls-generate-headers.sh 3.0.4 x86-64-syscalls-3.0.4 +# +# lttng-syscalls-generate-headers.sh integers 3.0.4 x86-64-syscalls-3.0.4 +# lttng-syscalls-generate-headers.sh pointers 3.0.4 x86-64-syscalls-3.0.4 -INPUTDIR=$1 -INPUTFILE=$2 +CLASS=$1 +INPUTDIR=$2 +INPUTFILE=$3 INPUT=${INPUTDIR}/${INPUTFILE} SRCFILE=gen.tmp.0 TMPFILE=gen.tmp.1 @@ -21,17 +24,18 @@ mv ${TMPFILE} ${SRCFILE} #Filter -#select only syscalls we currently support -#move non-pointers with and without arguments to a integer-only file. -CLASS=integers -grep -v "\\*\|cap_user_header_t" ${SRCFILE} > ${TMPFILE} -mv ${TMPFILE} ${SRCFILE} +if [ "$CLASS" = integers ]; then + #select integers and no-args. + grep -v "\\*\|cap_user_header_t" ${SRCFILE} > ${TMPFILE} + mv ${TMPFILE} ${SRCFILE} +fi + -#TODO -# move all system calls using pointers to a separate file. -#CLASS=pointers -#grep "\\*\|cap_#user_header_t" ${SRCFILE} > ${TMPFILE} -#mv ${TMPFILE} ${SRCFILE} +if [ "$CLASS" = pointers ]; then + #select system calls using pointers. + grep "\\*\|cap_#user_header_t" ${SRCFILE} > ${TMPFILE} + mv ${TMPFILE} ${SRCFILE} +fi HEADER=headers/${INPUTFILE}-${CLASS}.h @@ -50,6 +54,8 @@ echo \ #include " >> ${HEADER} +if [ "$CLASS" = integers ]; then + NRARGS=0 echo \ @@ -68,6 +74,7 @@ sed 's/^syscall \([^ ]*\) nr \([^ ]*\) nbargs \([^ ]*\) '\ '/g'\ ${TMPFILE} >> ${HEADER} +fi # types: 4 # args 5 @@ -192,12 +199,14 @@ echo \ NRARGS=0 -grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +if [ "$CLASS" = integers ]; then #noargs +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} sed 's/^syscall \([^ ]*\) nr \([^ ]*\) nbargs \([^ ]*\) .*$/'\ 'TRACE_SYSCALL_TABLE(syscalls_noargs, sys_\1, \2, \3)/g'\ ${TMPFILE} >> ${HEADER} +fi #others. grep -v "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE}