hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/samples/ftrace/ftrace-direct-too.c
....@@ -4,14 +4,14 @@
44 #include <linux/mm.h> /* for handle_mm_fault() */
55 #include <linux/ftrace.h>
66
7
-extern void my_direct_func(struct vm_area_struct *vma,
8
- unsigned long address, unsigned int flags);
7
+extern void my_direct_func(struct vm_area_struct *vma, unsigned long address,
8
+ unsigned int flags, struct pt_regs *regs);
99
10
-void my_direct_func(struct vm_area_struct *vma,
11
- unsigned long address, unsigned int flags)
10
+void my_direct_func(struct vm_area_struct *vma, unsigned long address,
11
+ unsigned int flags, struct pt_regs *regs)
1212 {
13
- trace_printk("handle mm fault vma=%p address=%lx flags=%x\n",
14
- vma, address, flags);
13
+ trace_printk("handle mm fault vma=%p address=%lx flags=%x regs=%p\n",
14
+ vma, address, flags, regs);
1515 }
1616
1717 extern void my_tramp(void *);
....@@ -26,7 +26,9 @@
2626 " pushq %rdi\n"
2727 " pushq %rsi\n"
2828 " pushq %rdx\n"
29
+" pushq %rcx\n"
2930 " call my_direct_func\n"
31
+" popq %rcx\n"
3032 " popq %rdx\n"
3133 " popq %rsi\n"
3234 " popq %rdi\n"