2016-02-23 01:09:29 +03:00
# ifndef __LKDTM_H
# define __LKDTM_H
2016-07-16 02:04:39 +03:00
# define pr_fmt(fmt) "lkdtm: " fmt
# include <linux/kernel.h>
2016-06-27 08:17:25 +03:00
/* lkdtm_bugs.c */
void __init lkdtm_bugs_init ( int * recur_param ) ;
void lkdtm_PANIC ( void ) ;
void lkdtm_BUG ( void ) ;
void lkdtm_WARNING ( void ) ;
void lkdtm_EXCEPTION ( void ) ;
void lkdtm_LOOP ( void ) ;
void lkdtm_OVERFLOW ( void ) ;
void lkdtm_CORRUPT_STACK ( void ) ;
2017-08-05 00:34:40 +03:00
void lkdtm_CORRUPT_STACK_STRONG ( void ) ;
2016-06-27 08:17:25 +03:00
void lkdtm_UNALIGNED_LOAD_STORE_WRITE ( void ) ;
void lkdtm_SOFTLOCKUP ( void ) ;
void lkdtm_HARDLOCKUP ( void ) ;
void lkdtm_SPINLOCKUP ( void ) ;
void lkdtm_HUNG_TASK ( void ) ;
2016-08-18 00:42:12 +03:00
void lkdtm_CORRUPT_LIST_ADD ( void ) ;
void lkdtm_CORRUPT_LIST_DEL ( void ) ;
2017-03-24 20:51:25 +03:00
void lkdtm_CORRUPT_USER_DS ( void ) ;
2017-08-04 23:04:21 +03:00
void lkdtm_STACK_GUARD_PAGE_LEADING ( void ) ;
void lkdtm_STACK_GUARD_PAGE_TRAILING ( void ) ;
2016-06-27 08:17:25 +03:00
2016-06-27 07:45:23 +03:00
/* lkdtm_heap.c */
void lkdtm_OVERWRITE_ALLOCATION ( void ) ;
void lkdtm_WRITE_AFTER_FREE ( void ) ;
void lkdtm_READ_AFTER_FREE ( void ) ;
void lkdtm_WRITE_BUDDY_AFTER_FREE ( void ) ;
void lkdtm_READ_BUDDY_AFTER_FREE ( void ) ;
2016-06-27 01:12:31 +03:00
/* lkdtm_perms.c */
void __init lkdtm_perms_init ( void ) ;
void lkdtm_WRITE_RO ( void ) ;
void lkdtm_WRITE_RO_AFTER_INIT ( void ) ;
void lkdtm_WRITE_KERN ( void ) ;
void lkdtm_EXEC_DATA ( void ) ;
void lkdtm_EXEC_STACK ( void ) ;
void lkdtm_EXEC_KMALLOC ( void ) ;
void lkdtm_EXEC_VMALLOC ( void ) ;
void lkdtm_EXEC_RODATA ( void ) ;
void lkdtm_EXEC_USERSPACE ( void ) ;
void lkdtm_ACCESS_USERSPACE ( void ) ;
2017-04-24 23:23:21 +03:00
/* lkdtm_refcount.c */
void lkdtm_REFCOUNT_INC_OVERFLOW ( void ) ;
void lkdtm_REFCOUNT_ADD_OVERFLOW ( void ) ;
void lkdtm_REFCOUNT_INC_NOT_ZERO_OVERFLOW ( void ) ;
void lkdtm_REFCOUNT_ADD_NOT_ZERO_OVERFLOW ( void ) ;
void lkdtm_REFCOUNT_DEC_ZERO ( void ) ;
void lkdtm_REFCOUNT_DEC_NEGATIVE ( void ) ;
void lkdtm_REFCOUNT_DEC_AND_TEST_NEGATIVE ( void ) ;
void lkdtm_REFCOUNT_SUB_AND_TEST_NEGATIVE ( void ) ;
void lkdtm_REFCOUNT_INC_ZERO ( void ) ;
void lkdtm_REFCOUNT_ADD_ZERO ( void ) ;
void lkdtm_REFCOUNT_INC_SATURATED ( void ) ;
void lkdtm_REFCOUNT_DEC_SATURATED ( void ) ;
void lkdtm_REFCOUNT_ADD_SATURATED ( void ) ;
void lkdtm_REFCOUNT_INC_NOT_ZERO_SATURATED ( void ) ;
void lkdtm_REFCOUNT_ADD_NOT_ZERO_SATURATED ( void ) ;
void lkdtm_REFCOUNT_DEC_AND_TEST_SATURATED ( void ) ;
void lkdtm_REFCOUNT_SUB_AND_TEST_SATURATED ( void ) ;
2017-07-21 16:19:14 +03:00
void lkdtm_REFCOUNT_TIMING ( void ) ;
void lkdtm_ATOMIC_TIMING ( void ) ;
2017-04-24 23:23:21 +03:00
2016-06-26 18:46:23 +03:00
/* lkdtm_rodata.c */
2016-02-23 01:09:29 +03:00
void lkdtm_rodata_do_nothing ( void ) ;
2016-06-26 18:46:23 +03:00
/* lkdtm_usercopy.c */
void __init lkdtm_usercopy_init ( void ) ;
void __exit lkdtm_usercopy_exit ( void ) ;
void lkdtm_USERCOPY_HEAP_SIZE_TO ( void ) ;
void lkdtm_USERCOPY_HEAP_SIZE_FROM ( void ) ;
void lkdtm_USERCOPY_HEAP_FLAG_TO ( void ) ;
void lkdtm_USERCOPY_HEAP_FLAG_FROM ( void ) ;
void lkdtm_USERCOPY_STACK_FRAME_TO ( void ) ;
void lkdtm_USERCOPY_STACK_FRAME_FROM ( void ) ;
void lkdtm_USERCOPY_STACK_BEYOND ( void ) ;
void lkdtm_USERCOPY_KERNEL ( void ) ;
2016-02-23 01:09:29 +03:00
# endif