modules_dir=`pwd`
# kernel_dir="/home/kain/dev/inperfa/kernel/redwood/linux-3.4-exynos"
-kernel_dir="/home/kain/dev/inperfa/tizen/da/emulator-kernel"
-# cross_compile=arm-none-linux-gnueabi-
-# arch=arm
-arch=i386
+kernel_dir="/home/alexander/vanilla_kernels/linux-3.8.6"
+cross_compile=/home/alexander/dev/u1_slp/arm-linux-gnueabi-gcc4.4.1-glibc2.11.1/bin/arm-none-linux-gnueabi-
+arch=arm
+#arch=i386
if [ ${arch} = "arm" ] ; then
link_name="arm"
uprobe_module_name=swap_uprobe.ko
make CROSS_COMPILE=${cross_compile} ARCH=${arch} -C ${kernel_dir} M=${uprobe_dir} \
- extra_cflags="-I${kprobe_dir} -I${kprobe_arch_dir} -I${uprobe_dir} -I${uprobe_arch_dir}" \
+ extra_cflags="-I${modules_dir} -I${kprobe_dir} -I${kprobe_arch_dir} -I${uprobe_dir} -I${uprobe_arch_dir}" \
modules || exit 1
us_manager_module_name=swap_us_manager.ko
return ret;
}
-void arch_opcode_analysis_uretprobe(kprobe_opcode_t opcode)
+void arch_opcode_analysis_uretprobe(struct uretprobe *rp)
{
/* Remove retprobe if first insn overwrites lr */
- rp->thumb_noret = !!(THUMB2_INSN_MATCH(BL, opcode) ||
- THUMB2_INSN_MATCH(BLX1, opcode) ||
- THUMB_INSN_MATCH(BLX2, opcode));
+ rp->thumb_noret = !!(THUMB2_INSN_MATCH(BL, rp->up.kp.opcode) ||
+ THUMB2_INSN_MATCH(BLX1, rp->up.kp.opcode) ||
+ THUMB_INSN_MATCH(BLX2, rp->up.kp.opcode));
- rp->arm_noret = !!(ARM_INSN_MATCH(BL, opcode) ||
- ARM_INSN_MATCH(BLX1, opcode) ||
- ARM_INSN_MATCH(BLX2, opcode));
+ rp->arm_noret = !!(ARM_INSN_MATCH(BL, rp->up.kp.opcode) ||
+ ARM_INSN_MATCH(BLX1, rp->up.kp.opcode) ||
+ ARM_INSN_MATCH(BLX2, rp->up.kp.opcode));
}
void arch_prepare_uretprobe(struct uretprobe_instance *ri,
return 0;
}
-void arch_opcode_analysis_uretprobe(kprobe_opcode_t opcode);
+void arch_opcode_analysis_uretprobe(struct uretprobe *rp);
void arch_prepare_uretprobe(struct uretprobe_instance *ri, struct pt_regs *regs);
unsigned long arch_get_trampoline_addr(struct kprobe *p, struct pt_regs *regs);