093d23969b1b11815a1d15bd3b2d2f2dc19baec7
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / include / linux / kmemcheck.h
1 #ifndef LINUX_KMEMCHECK_H
2 #define LINUX_KMEMCHECK_H
3
4 #include <linux/mm_types.h>
5 #include <linux/types.h>
6
7 #ifdef CONFIG_KMEMCHECK
8 extern int kmemcheck_enabled;
9
10 /* The slab-related functions. */
11 void kmemcheck_alloc_shadow(struct page *page, int order, gfp_t flags, int node);
12 void kmemcheck_free_shadow(struct page *page, int order);
13 void kmemcheck_slab_alloc(struct kmem_cache *s, gfp_t gfpflags, void *object,
14 size_t size);
15 void kmemcheck_slab_free(struct kmem_cache *s, void *object, size_t size);
16
17 void kmemcheck_pagealloc_alloc(struct page *p, unsigned int order,
18 gfp_t gfpflags);
19
20 void kmemcheck_show_pages(struct page *p, unsigned int n);
21 void kmemcheck_hide_pages(struct page *p, unsigned int n);
22
23 bool kmemcheck_page_is_tracked(struct page *p);
24
25 void kmemcheck_mark_unallocated(void *address, unsigned int n);
26 void kmemcheck_mark_uninitialized(void *address, unsigned int n);
27 void kmemcheck_mark_initialized(void *address, unsigned int n);
28 void kmemcheck_mark_freed(void *address, unsigned int n);
29
30 void kmemcheck_mark_unallocated_pages(struct page *p, unsigned int n);
31 void kmemcheck_mark_uninitialized_pages(struct page *p, unsigned int n);
32 void kmemcheck_mark_initialized_pages(struct page *p, unsigned int n);
33
34 int kmemcheck_show_addr(unsigned long address);
35 int kmemcheck_hide_addr(unsigned long address);
36 #else
37 #define kmemcheck_enabled 0
38
39 static inline void
40 kmemcheck_alloc_shadow(struct page *page, int order, gfp_t flags, int node)
41 {
42 }
43
44 static inline void
45 kmemcheck_free_shadow(struct page *page, int order)
46 {
47 }
48
49 static inline void
50 kmemcheck_slab_alloc(struct kmem_cache *s, gfp_t gfpflags, void *object,
51 size_t size)
52 {
53 }
54
55 static inline void kmemcheck_slab_free(struct kmem_cache *s, void *object,
56 size_t size)
57 {
58 }
59
60 static inline void kmemcheck_pagealloc_alloc(struct page *p,
61 unsigned int order, gfp_t gfpflags)
62 {
63 }
64
65 static inline bool kmemcheck_page_is_tracked(struct page *p)
66 {
67 return false;
68 }
69
70 static inline void kmemcheck_mark_unallocated(void *address, unsigned int n)
71 {
72 }
73
74 static inline void kmemcheck_mark_uninitialized(void *address, unsigned int n)
75 {
76 }
77
78 static inline void kmemcheck_mark_initialized(void *address, unsigned int n)
79 {
80 }
81
82 static inline void kmemcheck_mark_freed(void *address, unsigned int n)
83 {
84 }
85
86 static inline void kmemcheck_mark_unallocated_pages(struct page *p,
87 unsigned int n)
88 {
89 }
90
91 static inline void kmemcheck_mark_uninitialized_pages(struct page *p,
92 unsigned int n)
93 {
94 }
95
96 static inline void kmemcheck_mark_initialized_pages(struct page *p,
97 unsigned int n)
98 {
99 }
100
101 #endif /* CONFIG_KMEMCHECK */
102
103 #endif /* LINUX_KMEMCHECK_H */