kmemcheck.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #ifndef LINUX_KMEMCHECK_H
  2. #define LINUX_KMEMCHECK_H
  3. #include <linux/mm_types.h>
  4. #include <linux/types.h>
  5. #ifdef CONFIG_KMEMCHECK
  6. extern int kmemcheck_enabled;
  7. /* The slab-related functions. */
  8. void kmemcheck_alloc_shadow(struct kmem_cache *s, gfp_t flags, int node,
  9. struct page *page, int order);
  10. void kmemcheck_free_shadow(struct kmem_cache *s, struct page *page, int order);
  11. void kmemcheck_slab_alloc(struct kmem_cache *s, gfp_t gfpflags, void *object,
  12. size_t size);
  13. void kmemcheck_slab_free(struct kmem_cache *s, void *object, size_t size);
  14. void kmemcheck_show_pages(struct page *p, unsigned int n);
  15. void kmemcheck_hide_pages(struct page *p, unsigned int n);
  16. bool kmemcheck_page_is_tracked(struct page *p);
  17. void kmemcheck_mark_unallocated(void *address, unsigned int n);
  18. void kmemcheck_mark_uninitialized(void *address, unsigned int n);
  19. void kmemcheck_mark_initialized(void *address, unsigned int n);
  20. void kmemcheck_mark_freed(void *address, unsigned int n);
  21. void kmemcheck_mark_unallocated_pages(struct page *p, unsigned int n);
  22. void kmemcheck_mark_uninitialized_pages(struct page *p, unsigned int n);
  23. int kmemcheck_show_addr(unsigned long address);
  24. int kmemcheck_hide_addr(unsigned long address);
  25. #else
  26. #define kmemcheck_enabled 0
  27. static inline void
  28. kmemcheck_alloc_shadow(struct kmem_cache *s, gfp_t flags, int node,
  29. struct page *page, int order)
  30. {
  31. }
  32. static inline void
  33. kmemcheck_free_shadow(struct kmem_cache *s, struct page *page, int order)
  34. {
  35. }
  36. static inline void
  37. kmemcheck_slab_alloc(struct kmem_cache *s, gfp_t gfpflags, void *object,
  38. size_t size)
  39. {
  40. }
  41. static inline void kmemcheck_slab_free(struct kmem_cache *s, void *object,
  42. size_t size)
  43. {
  44. }
  45. static inline bool kmemcheck_page_is_tracked(struct page *p)
  46. {
  47. return false;
  48. }
  49. #endif /* CONFIG_KMEMCHECK */
  50. #endif /* LINUX_KMEMCHECK_H */