亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

Linux slab 分配器詳解4
2007-06-21   中國IT實驗室

清單 1. 創建新 slab 緩存

static struct kmem_cache *my_cachep;
static void init_my_cache( void )
{
my_cachep = kmem_cache_create(
"my_cache", /* Name */
32, /* Object Size */
0, /* Alignment */
SLAB_HWCACHE_ALIGN, /* Flags */
NULL, NULL ); /* Constructor/Deconstructor */
return;
}

  使用所分配的 slab 緩存,您現在可以從中分配一個對象了。清單 2 給出了一個從緩存中分配和釋放對象的例子。它還展示了兩個其他函數的用法。

  清單 2. 分配和釋放對象

int slab_test( void )
{
void *object;
printk( "Cache name is %s\n", kmem_cache_name( my_cachep ) );
printk( "Cache object size is %d\n", kmem_cache_size( my_cachep ) );
object = kmem_cache_alloc( my_cachep, GFP_KERNEL );
if (object) {
kmem_cache_free( my_cachep, object );
}
return 0;
}

  最后,清單 3 演示了 slab 緩存的銷毀。調用者必須確保在執行銷毀操作過程中,不要從緩存中分配對象。

  清單 3. 銷毀 slab 緩存

static void remove_my_cache( void )
{
if (my_cachep) kmem_cache_destroy( my_cachep );
return;
}

熱詞搜索:

上一篇:Linux slab 分配器詳解3
下一篇:Linux slab 分配器詳解5

分享到: 收藏