1 #ifndef _LINUX_SLAB_DEF_H
2 #define _LINUX_SLAB_DEF_H
5 * Definitions unique to the original Linux SLAB allocator.
7 * What we provide here is a way to optimize the frequent kmalloc
8 * calls in the kernel by selecting the appropriate general cache
9 * if kmalloc was called with a size that can be established at
13 #include <linux/init.h>
14 #include <asm/page.h> /* kmalloc_sizes.h needs PAGE_SIZE */
15 #include <asm/cache.h> /* kmalloc_sizes.h needs L1_CACHE_BYTES */
16 #include <linux/compiler.h>
18 /* Size description struct for general caches. */
21 struct kmem_cache
*cs_cachep
;
22 #ifdef CONFIG_ZONE_DMA
23 struct kmem_cache
*cs_dmacachep
;
26 extern struct cache_sizes malloc_sizes
[];
28 void *kmem_cache_alloc(struct kmem_cache
*, gfp_t
);
29 void *__kmalloc(size_t size
, gfp_t flags
);
31 static inline void *kmalloc(size_t size
, gfp_t flags
)
33 if (__builtin_constant_p(size
)) {
44 <<<<<<< HEAD
:include
/linux
/slab_def
.h
45 #include "kmalloc_sizes.h"
47 #include <linux/kmalloc_sizes.h>
48 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a
:include
/linux
/slab_def
.h
51 extern void __you_cannot_kmalloc_that_much(void);
52 __you_cannot_kmalloc_that_much();
55 #ifdef CONFIG_ZONE_DMA
57 return kmem_cache_alloc(malloc_sizes
[i
].cs_dmacachep
,
60 return kmem_cache_alloc(malloc_sizes
[i
].cs_cachep
, flags
);
62 return __kmalloc(size
, flags
);
66 extern void *__kmalloc_node(size_t size
, gfp_t flags
, int node
);
67 extern void *kmem_cache_alloc_node(struct kmem_cache
*, gfp_t flags
, int node
);
69 static inline void *kmalloc_node(size_t size
, gfp_t flags
, int node
)
71 if (__builtin_constant_p(size
)) {
82 <<<<<<< HEAD
:include
/linux
/slab_def
.h
83 #include "kmalloc_sizes.h"
85 #include <linux/kmalloc_sizes.h>
86 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a
:include
/linux
/slab_def
.h
89 extern void __you_cannot_kmalloc_that_much(void);
90 __you_cannot_kmalloc_that_much();
93 #ifdef CONFIG_ZONE_DMA
95 return kmem_cache_alloc_node(malloc_sizes
[i
].cs_dmacachep
,
98 return kmem_cache_alloc_node(malloc_sizes
[i
].cs_cachep
,
101 return __kmalloc_node(size
, flags
, node
);
104 #endif /* CONFIG_NUMA */
106 #endif /* _LINUX_SLAB_DEF_H */