X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=instrumentation%2Fsyscalls%2Flttng-syscalls-generate-headers.sh;h=91e282c4c9c1c62cb92b17d1efe894e4d548143a;hb=f7bdf4db0b992946342dc845c7369e9cdca46559;hp=87daf0fc1426af9c917a2d46d0a6b5da36dedd5e;hpb=259b6cb38d19bbe9c039728459bc25acc0f6f8a0;p=lttng-modules.git diff --git a/instrumentation/syscalls/lttng-syscalls-generate-headers.sh b/instrumentation/syscalls/lttng-syscalls-generate-headers.sh index 87daf0fc..91e282c4 100644 --- a/instrumentation/syscalls/lttng-syscalls-generate-headers.sh +++ b/instrumentation/syscalls/lttng-syscalls-generate-headers.sh @@ -22,7 +22,7 @@ mv ${TMPFILE} ${SRCFILE} #Filter #select only syscalls we currently support -#move non-pointers with arguments to a integer-only file. +#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} @@ -33,12 +33,6 @@ mv ${TMPFILE} ${SRCFILE} #grep "\\*\|cap_#user_header_t" ${SRCFILE} > ${TMPFILE} #mv ${TMPFILE} ${SRCFILE} -#TODO -#move those without arguments to a separate file. -#CLASS=noargs -#grep "^syscall [^ ]* nr [^ ]* nbargs 0 " ${SRCFILE} > ${TMPFILE} -#mv ${TMPFILE} ${SRCFILE} - HEADER=headers/${INPUTFILE}-${CLASS}.h echo "/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */" > ${HEADER} @@ -56,7 +50,24 @@ echo \ #include " >> ${HEADER} -#TODO 0 +NRARGS=0 + +echo \ +'DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs,\n'\ +' TP_STRUCT__entry(),\n'\ +' TP_fast_assign(),\n'\ +' TP_printk()\n'\ +')'\ + >> ${HEADER} + +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +sed 's/^syscall \([^ ]*\) nr \([^ ]*\) nbargs \([^ ]*\) '\ +'types: (\([^)]*\)) '\ +'args: (\([^)]*\))/'\ +'DEFINE_EVENT_NOARGS(syscalls_noargs, sys_\1)'\ +'/g'\ + ${TMPFILE} >> ${HEADER} + # types: 4 # args 5 @@ -165,7 +176,7 @@ sed 's/^syscall \([^ ]*\) nr \([^ ]*\) nbargs \([^ ]*\) '\ # Macro for tracing syscall table rm -f ${TMPFILE} -for NRARGS in $(seq 1 6); do +for NRARGS in $(seq 0 6); do grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} >> ${TMPFILE} done @@ -179,8 +190,19 @@ echo \ #else /* CREATE_SYSCALL_TABLE */ " >> ${HEADER} + +NRARGS=0 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} + +#noargs +sed 's/^syscall \([^ ]*\) nr \([^ ]*\) nbargs \([^ ]*\) .*$/'\ +'TRACE_SYSCALL_TABLE(syscalls_noargs, sys_\1, \2, \3)/g'\ + ${TMPFILE} >> ${HEADER} + +#others. +grep -v "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} sed 's/^syscall \([^ ]*\) nr \([^ ]*\) nbargs \([^ ]*\) .*$/'\ -'TRACE_SYSCALL_TABLE(sys_\1, \2, \3)/g'\ +'TRACE_SYSCALL_TABLE(sys_\1, sys_\1, \2, \3)/g'\ ${TMPFILE} >> ${HEADER} echo -n \