/* Build and insert the kernel module as done in the kprobe example. You will see the trace data in /var/log/messages and on the console whenever do_fork() is invoked to create a new process. (Some messages may be suppressed if syslogd is configured to eliminate duplicate messages.) Jumper probe for do_fork. Mirror principle enables access to arguments of the probed routine from the probe handler.  */
static long jdo_fork(unsigned long clone_flags, unsigned long stack_start, struct pt_regs *regs, unsigned long stack_size, int __user *parent_tidptr, int __user *child_tidptr)
/* Build and insert the kernel module as done in the kprobe example. You will see the trace data in /var/log/messages and on the console whenever do_fork() is invoked to create a new process. (Some messages may be suppressed if syslogd is configured to eliminate duplicate messages.) Jumper probe for do_fork. Mirror principle enables access to arguments of the probed routine from the probe handler.  */
static long jdo_fork(unsigned long clone_flags, unsigned long stack_start, struct pt_regs *regs, unsigned long stack_size, int __user *parent_tidptr, int __user *child_tidptr)
{
	printk(KERN_INFO "jprobe: clone_flags = 0x%lx, stack_size = 0x%lx,"
			" regs = 0x%p\n",
	       clone_flags, stack_size, regs);
	jprobe_return();
	return 0;
}