File it-hooks-target.patch of Package itrace
---
src/driver/Makefile | 27 ++++++++++++++++++++++++++-
src/driver/generate_header.sh | 5 +++++
2 files changed, 31 insertions(+), 1 deletion(-)
--- a/src/driver/Makefile
+++ b/src/driver/Makefile
@@ -1,6 +1,9 @@
src := $(ITRACE_DIR)/obj/ppc64
EXTRA_CFLAGS += -D_LINUX -D_ST_ITRACE_ONLY
EXTRA_CFLAGS += -I$(src)/../../include
+# for hooks.h
+EXTRA_CFLAGS += -I$(src)
+
obj-m := pitrace.o
pitrace-objs := pi_init.o pi_hash.o pi_hooks.o
@@ -9,9 +12,31 @@ pitrace-objs += ppc64/pi_itrace.o ppc64/
pitrace-objs += pi_btrace.o pi_ioctl.o pi_entries.o pi_inspector.o
PI_INSPECTOR_DIR := $(src)
+GH_PROG := ${PI_INSPECTOR_DIR}/generate_header.sh
+HF := ${PI_INSPECTOR_DIR}/hooks.h
+SW := '-systemmapfile'
+
+hooks.h:
+ @echo "generating hooks.h ...................."
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'generate_prolog' 'HOOKS_H')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_switch_to' '[^dD] [.]{0,1}__switch_to$$')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_schedule' '[^dD] [.]{0,1}schedule$$')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_schedule_end' '[^dD] [.]{0,1}io_schedule$$' )
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_ret_from_fork_address' '[^dD] [.]{0,1}ret_from_fork$$')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_schedule2' '[^dD] [.]{0,1}__schedule$$')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'ppc_tb_freq_location' ' ppc_tb_freq$$')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_DoSyscall' '[^dD] [.]{0,1}DoSyscall$$')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_system_call' '[^dD] [.]{0,1}system_call$$')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_page_fault' '[^dD] [.]{0,1}do_page_fault$$')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_force_sig' '[^dD] [.]{0,1}force_sig$$')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_do_syscall_trace_leave' '[^dD] [.]{0,1}do_syscall_trace_leave$$')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_restore_address' '[^dD] restore$$')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_irq' 'hardware_interrupt_entry')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'pi_exit' '\.do_exit')
+ $(shell ${GH_PROG} ${SW} ${SYSMAP} ${HF} 'generate_epilog')
-modules:
+modules kernelrelease kernelversion:
$(MAKE) -C $(KERNEL_SOURCE) SUBDIRS=$(shell pwd) $@
--- a/src/driver/generate_header.sh
+++ b/src/driver/generate_header.sh
@@ -68,6 +68,11 @@ generate_epilog()
#==============================================================================
+if test "$1" = "-systemmapfile" ; then
+ KSYM_SRC=$2
+ shift 2
+fi
+
HEADER_FILE="${1}"
if [ "$2" = "generate_prolog" ]; then
generate_prolog "$3"