3eae2cb24a
This adds hooks for the SLOB allocator, to allow tracing with kmemtrace. We also convert some inline functions to __always_inline to make sure _RET_IP_, which expands to __builtin_return_address(0), always works as expected. Acked-by: Matt Mackall <mpm@selenic.com> Signed-off-by: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
37 lines
924 B
C
37 lines
924 B
C
#ifndef __LINUX_SLOB_DEF_H
|
|
#define __LINUX_SLOB_DEF_H
|
|
|
|
void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
|
|
|
|
static __always_inline void *kmem_cache_alloc(struct kmem_cache *cachep,
|
|
gfp_t flags)
|
|
{
|
|
return kmem_cache_alloc_node(cachep, flags, -1);
|
|
}
|
|
|
|
void *__kmalloc_node(size_t size, gfp_t flags, int node);
|
|
|
|
static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
|
|
{
|
|
return __kmalloc_node(size, flags, node);
|
|
}
|
|
|
|
/**
|
|
* kmalloc - allocate memory
|
|
* @size: how many bytes of memory are required.
|
|
* @flags: the type of memory to allocate (see kcalloc).
|
|
*
|
|
* kmalloc is the normal method of allocating memory
|
|
* in the kernel.
|
|
*/
|
|
static __always_inline void *kmalloc(size_t size, gfp_t flags)
|
|
{
|
|
return __kmalloc_node(size, flags, -1);
|
|
}
|
|
|
|
static __always_inline void *__kmalloc(size_t size, gfp_t flags)
|
|
{
|
|
return kmalloc(size, flags);
|
|
}
|
|
|
|
#endif /* __LINUX_SLOB_DEF_H */
|