1.malloc
基于linux-4.15.1内核
E:\004-代码\002-内核源码\linux-4.15.1\linux-4.15.1\include\linux\decompress\mm.h
#define malloc(a) kmalloc(a, GFP_KERNEL)
E:\004-代码\002-内核源码\linux-4.15.1\linux-4.15.1\include\linux\slab.h
static __always_inline void *kmalloc(size_t size, gfp_t flags)
{
if (__builtin_constant_p(size)) {
if (size > KMALLOC_MAX_CACHE_SIZE)
return kmalloc_large(size, flags);
#ifndef CONFIG_SLOB
if (!(flags & GFP_DMA)) {
int index = kmalloc_index(size);
if (!index)
return ZERO_SIZE_PTR;
return kmem_cache_alloc_trace(kmalloc_caches[index],
flags, size);
}
#endif
}
return __kmalloc(size, flags);
}
E:\004-代码\002-内核源码\linux-4.15.1\linux-4.15.1\include\linux\slab.h
void *__kmalloc(size_t size, gfp_t flags) __assume_kmalloc_alignment __malloc;
2.container of()函数