3192b920bf
Every slab has its on alignment definition in include/linux/sl?b_def.h. Extract those and define a common set in include/linux/slab.h. SLOB: As notes sometimes we need double word alignment on 32 bit. This gives all structures allocated by SLOB a unsigned long long alignment like the others do. SLAB: If ARCH_SLAB_MINALIGN is not set SLAB would set ARCH_SLAB_MINALIGN to zero meaning no alignment at all. Give it the default unsigned long long alignment. Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
38 lines
924 B
C
38 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 */
|