1 #include <asm/interrupt.h> 1 2 #include <asm/kprobes.h> 3 4 struct soft_mask_table_entry { 5 unsigned long start; 6 unsigned long end; 7 }; 8 9 struct restart_table_entry { 10 unsigned long start; 11 unsigned long end; 12 unsigned long fixup; 13 }; 14 15 extern struct soft_mask_table_entry __start___ 16 extern struct soft_mask_table_entry __stop___s 17 18 extern struct restart_table_entry __start___re 19 extern struct restart_table_entry __stop___res 20 21 /* Given an address, look for it in the soft m 22 bool search_kernel_soft_mask_table(unsigned lo 23 { 24 struct soft_mask_table_entry *smte = _ 25 26 while (smte < __stop___soft_mask_table 27 unsigned long start = smte->st 28 unsigned long end = smte->end; 29 30 if (addr >= start && addr < en 31 return true; 32 33 smte++; 34 } 35 return false; 36 } 37 NOKPROBE_SYMBOL(search_kernel_soft_mask_table) 38 39 /* Given an address, look for it in the kernel 40 unsigned long search_kernel_restart_table(unsi 41 { 42 struct restart_table_entry *rte = __st 43 44 while (rte < __stop___restart_table) { 45 unsigned long start = rte->sta 46 unsigned long end = rte->end; 47 unsigned long fixup = rte->fix 48 49 if (addr >= start && addr < en 50 return fixup; 51 52 rte++; 53 } 54 return 0; 55 } 56 NOKPROBE_SYMBOL(search_kernel_restart_table); 57
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.