gpt4 book ai didi

Linux SLAB_CTOR_VERIFY 和缓存未声明

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:50 27 4
gpt4 key购买 nike

我尝试编译一个程序,作为存储分配工作原理的示例。

编译器给我一个错误,“缓存”和“SLAB_CTOR_VERIFY”未声明。

我在我的整个内核项目(Linux Kernel 2.6.32)中找不到声明。

也许有一些替代品或类似的东西。

我在网上找不到任何相关信息,但也许你们中的一些人可以给我一些线索。

这是源代码:

#include <linux/module.h>
#include <linux/completion.h>
#include <linux/slab.h>

static int thread_id=0;
static DECLARE_COMPLETION( on_exit );
static kmem_cache_t *cache;

struct linobj {
int dummy_i, dummy_j, dummy_k;
char dummy_feld[250];
wait_queue_head_t wq;
};

static void linobj_destructor(void *objp, kmem_cache_t *cache,
unsigned long flags)
{
printk("linobj_destructor( %p )\n", objp);
return;
}

static void linobj_constructor(void *objp, kmem_cache_t *cache,
unsigned long flags)
{
struct linobj *ptr = (struct linobj *)objp;
if( flags & SLAB_CTOR_VERIFY )
return;
printk("linobj_constructor( %p )\n", objp);
init_waitqueue_head(&ptr->wq);
return;
}

static int thread_code( void *data )
{
unsigned long timeout, retvalue;
int i;
struct linobj *obj;

daemonize("linobj-test");
allow_signal( SIGTERM );
for( i=0; i<5; i++ ) {
obj = (struct linobj *)kmem_cache_alloc( cache, GFP_KERNEL );
printk("objadr=%p\n", obj );
timeout=HZ;
retvalue=schedule_timeout_interruptible(timeout);
kmem_cache_free( cache, obj );
if( retvalue )
break;
}
complete_and_exit( &on_exit, 0 );
}

static int __init slab_init(void)
{
cache = kmem_cache_create( "linobj", sizeof(struct linobj),
0, 0, linobj_constructor, linobj_destructor );
if( !cache )
return -EFAULT;
thread_id=kernel_thread( thread_code, NULL, CLONE_KERNEL );
if( thread_id==0 ) {
kmem_cache_destroy( cache );
return -EIO;
}
return 0;
}

static void __exit slab_exit(void)
{
kill_pid( find_vpid(thread_id), SIGTERM, 1 );
wait_for_completion( &on_exit );
if( cache )
kmem_cache_destroy( cache );
}

module_init( slab_init );
module_exit( slab_exit );

MODULE_LICENSE("GPL");

提前致谢

彼得

最佳答案

SLAB_CTOR_VERIFY 已在 2.6.22 中删除

关于Linux SLAB_CTOR_VERIFY 和缓存未声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12158571/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com