ima: change integrity cache to store measured pcr
[deliverable/linux.git] / samples / kprobes / kprobe_example.c
index 727eb21c9c5624f2998f321d59db1017339c69a3..ed0ca0c072427faeedaae38a0e21531a18d91db4 100644 (file)
 #include <linux/module.h>
 #include <linux/kprobes.h>
 
+#define MAX_SYMBOL_LEN 64
+static char symbol[MAX_SYMBOL_LEN] = "_do_fork";
+module_param_string(symbol, symbol, sizeof(symbol), 0644);
+
 /* For each probe you need to allocate a kprobe structure */
 static struct kprobe kp = {
-       .symbol_name    = "_do_fork",
+       .symbol_name    = symbol,
 };
 
 /* kprobe pre_handler: called just before the probed instruction is executed */
 static int handler_pre(struct kprobe *p, struct pt_regs *regs)
 {
 #ifdef CONFIG_X86
-       printk(KERN_INFO "pre_handler: p->addr = 0x%p, ip = %lx,"
+       printk(KERN_INFO "<%s> pre_handler: p->addr = 0x%p, ip = %lx,"
                        " flags = 0x%lx\n",
-               p->addr, regs->ip, regs->flags);
+               p->symbol_name, p->addr, regs->ip, regs->flags);
 #endif
 #ifdef CONFIG_PPC
-       printk(KERN_INFO "pre_handler: p->addr = 0x%p, nip = 0x%lx,"
+       printk(KERN_INFO "<%s> pre_handler: p->addr = 0x%p, nip = 0x%lx,"
                        " msr = 0x%lx\n",
-               p->addr, regs->nip, regs->msr);
+               p->symbol_name, p->addr, regs->nip, regs->msr);
 #endif
 #ifdef CONFIG_MIPS
-       printk(KERN_INFO "pre_handler: p->addr = 0x%p, epc = 0x%lx,"
+       printk(KERN_INFO "<%s> pre_handler: p->addr = 0x%p, epc = 0x%lx,"
                        " status = 0x%lx\n",
-               p->addr, regs->cp0_epc, regs->cp0_status);
+               p->symbol_name, p->addr, regs->cp0_epc, regs->cp0_status);
 #endif
 #ifdef CONFIG_TILEGX
-       printk(KERN_INFO "pre_handler: p->addr = 0x%p, pc = 0x%lx,"
+       printk(KERN_INFO "<%s> pre_handler: p->addr = 0x%p, pc = 0x%lx,"
                        " ex1 = 0x%lx\n",
-               p->addr, regs->pc, regs->ex1);
+               p->symbol_name, p->addr, regs->pc, regs->ex1);
 #endif
 
        /* A dump_stack() here will give a stack backtrace */
@@ -52,20 +56,20 @@ static void handler_post(struct kprobe *p, struct pt_regs *regs,
                                unsigned long flags)
 {
 #ifdef CONFIG_X86
-       printk(KERN_INFO "post_handler: p->addr = 0x%p, flags = 0x%lx\n",
-               p->addr, regs->flags);
+       printk(KERN_INFO "<%s> post_handler: p->addr = 0x%p, flags = 0x%lx\n",
+               p->symbol_name, p->addr, regs->flags);
 #endif
 #ifdef CONFIG_PPC
-       printk(KERN_INFO "post_handler: p->addr = 0x%p, msr = 0x%lx\n",
-               p->addr, regs->msr);
+       printk(KERN_INFO "<%s> post_handler: p->addr = 0x%p, msr = 0x%lx\n",
+               p->symbol_name, p->addr, regs->msr);
 #endif
 #ifdef CONFIG_MIPS
-       printk(KERN_INFO "post_handler: p->addr = 0x%p, status = 0x%lx\n",
-               p->addr, regs->cp0_status);
+       printk(KERN_INFO "<%s> post_handler: p->addr = 0x%p, status = 0x%lx\n",
+               p->symbol_name, p->addr, regs->cp0_status);
 #endif
 #ifdef CONFIG_TILEGX
-       printk(KERN_INFO "post_handler: p->addr = 0x%p, ex1 = 0x%lx\n",
-               p->addr, regs->ex1);
+       printk(KERN_INFO "<%s> post_handler: p->addr = 0x%p, ex1 = 0x%lx\n",
+               p->symbol_name, p->addr, regs->ex1);
 #endif
 }
 
This page took 0.026809 seconds and 5 git commands to generate.