メモリ割り当て - kmalloc_slab()
概要
パラメータのサイズに応じた大きさのkmem_cache構造体を返す
詳細
メモリの割当要求サイズ(size)に応じて以下のとおりに処理内容が変わる
- size == 0
- ZERO_SIZE_PTRを返す
- 0 < size <= KMALLOC_MAX_SIZE
- size <= 192
- sizeを元にsize_index配列から適切なインデックスを取得する
- 192 < size
- CONFIG_ZONE_DMA が有効な場合
- kmalloc_dma_cachesから上で取得したindexのkmem_cache構造体のポインタを返す
- size <= 192
- size < KMALLOC_MAX_SIZE
- NULLを返す
- flagに__GFP_NOWARNが含まれていなければWARN_ON_ONCE()でwarningを出力