The ROme OpTimistic Simulator  2.0.0
A General-Purpose Multithreaded Parallel/Distributed Simulation Platform
intercept_page_fault.c
1 #include <linux/module.h>
2 #include <linux/kernel.h>
3 #include <linux/errno.h>
4 #include <linux/types.h>
5 #include <linux/mm.h>
6 #include <asm/uaccess.h>
7 #include <linux/kprobes.h>
8 //#include <asm/traps.h>
9 #include "traps-dummy.h"
10 #include <asm/desc_defs.h>
11 #include <linux/sched.h>
12 #include <linux/moduleparam.h>
13 #include "my_page_fault.h"
14 
15 static int my_virt_drv_init(void){
16  int retval;
17  printk(KERN_INFO "my_virt_drv: Init.\n");
18  //register the new page fault handler
19  retval = register_my_page_fault_handler();
20  if(retval)
21  return retval;
22  return 0;
23 }
24 
25 static void my_virt_drv_exit(void){
26  //unregister our new page fault handler
27  unregister_my_page_fault_handler();
28  printk(KERN_INFO "my_virt_drv: Exit.\n");
29 }
30 module_init(my_virt_drv_init);
31 module_exit(my_virt_drv_exit);
32 MODULE_LICENSE("Dual BSD/GPL");