lkdtm.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __LKDTM_H
  3. #define __LKDTM_H
  4. #define pr_fmt(fmt) "lkdtm: " fmt
  5. #include <linux/kernel.h>
  6. /* lkdtm_bugs.c */
  7. void __init lkdtm_bugs_init(int *recur_param);
  8. void lkdtm_PANIC(void);
  9. void lkdtm_BUG(void);
  10. void lkdtm_WARNING(void);
  11. void lkdtm_EXCEPTION(void);
  12. void lkdtm_LOOP(void);
  13. void lkdtm_OVERFLOW(void);
  14. void lkdtm_CORRUPT_STACK(void);
  15. void lkdtm_CORRUPT_STACK_STRONG(void);
  16. void lkdtm_UNALIGNED_LOAD_STORE_WRITE(void);
  17. void lkdtm_SOFTLOCKUP(void);
  18. void lkdtm_HARDLOCKUP(void);
  19. void lkdtm_SPINLOCKUP(void);
  20. void lkdtm_HUNG_TASK(void);
  21. void lkdtm_CORRUPT_LIST_ADD(void);
  22. void lkdtm_CORRUPT_LIST_DEL(void);
  23. void lkdtm_CORRUPT_USER_DS(void);
  24. void lkdtm_STACK_GUARD_PAGE_LEADING(void);
  25. void lkdtm_STACK_GUARD_PAGE_TRAILING(void);
  26. /* lkdtm_heap.c */
  27. void lkdtm_OVERWRITE_ALLOCATION(void);
  28. void lkdtm_WRITE_AFTER_FREE(void);
  29. void lkdtm_READ_AFTER_FREE(void);
  30. void lkdtm_WRITE_BUDDY_AFTER_FREE(void);
  31. void lkdtm_READ_BUDDY_AFTER_FREE(void);
  32. /* lkdtm_perms.c */
  33. void __init lkdtm_perms_init(void);
  34. void lkdtm_WRITE_RO(void);
  35. void lkdtm_WRITE_RO_AFTER_INIT(void);
  36. void lkdtm_WRITE_KERN(void);
  37. void lkdtm_EXEC_DATA(void);
  38. void lkdtm_EXEC_STACK(void);
  39. void lkdtm_EXEC_KMALLOC(void);
  40. void lkdtm_EXEC_VMALLOC(void);
  41. void lkdtm_EXEC_RODATA(void);
  42. void lkdtm_EXEC_USERSPACE(void);
  43. void lkdtm_EXEC_NULL(void);
  44. void lkdtm_ACCESS_USERSPACE(void);
  45. void lkdtm_ACCESS_NULL(void);
  46. /* lkdtm_refcount.c */
  47. void lkdtm_REFCOUNT_INC_OVERFLOW(void);
  48. void lkdtm_REFCOUNT_ADD_OVERFLOW(void);
  49. void lkdtm_REFCOUNT_INC_NOT_ZERO_OVERFLOW(void);
  50. void lkdtm_REFCOUNT_ADD_NOT_ZERO_OVERFLOW(void);
  51. void lkdtm_REFCOUNT_DEC_ZERO(void);
  52. void lkdtm_REFCOUNT_DEC_NEGATIVE(void);
  53. void lkdtm_REFCOUNT_DEC_AND_TEST_NEGATIVE(void);
  54. void lkdtm_REFCOUNT_SUB_AND_TEST_NEGATIVE(void);
  55. void lkdtm_REFCOUNT_INC_ZERO(void);
  56. void lkdtm_REFCOUNT_ADD_ZERO(void);
  57. void lkdtm_REFCOUNT_INC_SATURATED(void);
  58. void lkdtm_REFCOUNT_DEC_SATURATED(void);
  59. void lkdtm_REFCOUNT_ADD_SATURATED(void);
  60. void lkdtm_REFCOUNT_INC_NOT_ZERO_SATURATED(void);
  61. void lkdtm_REFCOUNT_ADD_NOT_ZERO_SATURATED(void);
  62. void lkdtm_REFCOUNT_DEC_AND_TEST_SATURATED(void);
  63. void lkdtm_REFCOUNT_SUB_AND_TEST_SATURATED(void);
  64. void lkdtm_REFCOUNT_TIMING(void);
  65. void lkdtm_ATOMIC_TIMING(void);
  66. /* lkdtm_rodata.c */
  67. void lkdtm_rodata_do_nothing(void);
  68. /* lkdtm_usercopy.c */
  69. void __init lkdtm_usercopy_init(void);
  70. void __exit lkdtm_usercopy_exit(void);
  71. void lkdtm_USERCOPY_HEAP_SIZE_TO(void);
  72. void lkdtm_USERCOPY_HEAP_SIZE_FROM(void);
  73. void lkdtm_USERCOPY_HEAP_FLAG_TO(void);
  74. void lkdtm_USERCOPY_HEAP_FLAG_FROM(void);
  75. void lkdtm_USERCOPY_STACK_FRAME_TO(void);
  76. void lkdtm_USERCOPY_STACK_FRAME_FROM(void);
  77. void lkdtm_USERCOPY_STACK_BEYOND(void);
  78. void lkdtm_USERCOPY_KERNEL(void);
  79. #endif