Linux 2.6.30内核中的kobject_init问题
看来kobject_init被更改了,我是一个新手,实际上我在互联网上找到的示例设备驱动程序不起作用 我绝对需要一个关于/procs/sysfs的示例,出于这些原因,我没有使用更简单的示例 这是我使用的代码:Linux 2.6.30内核中的kobject_init问题,linux,kernel,device-driver,Linux,Kernel,Device Driver,看来kobject_init被更改了,我是一个新手,实际上我在互联网上找到的示例设备驱动程序不起作用 我绝对需要一个关于/procs/sysfs的示例,出于这些原因,我没有使用更简单的示例 这是我使用的代码: int int_init(void) { int i, ret; kint = kmalloc(sizeof(*kint), GFP_KERNEL); if (!kint) return -ENOMEM; memset(kint, 0, sizeof(*kint)); kobject_i
int int_init(void)
{
int i, ret;
kint = kmalloc(sizeof(*kint), GFP_KERNEL);
if (!kint) return -ENOMEM;
memset(kint, 0, sizeof(*kint));
kobject_init(&kint->kobj);
kint->numbers[0] = 0;
kint->numbers[1] = 1;
kint->numbers[2] = 5;
kint->kobj.ktype = &ktype_int;
ret = kobject_set_name(&kint->kobj, "sample-int-range");
if (!ret) ret = kobject_add(&kint->kobj);
if (!ret) {
for (i=0; i<3; i++)
sysfs_create_file(&kint->kobj,kint_default_attrs[i]);
}
if (ret)
kfree(kint);
return ret;
}
void int_exit(void)
{
int i;
for (i=0; i<3; i++)
sysfs_remove_file(&kint->kobj,
kint_default_attrs[i]);
kobject_del(&kint->kobj);
kobject_put(&kint->kobj);
/* wait untile the kobj is freed */
while (kint) {
schedule_timeout(HZ/2);
}
return;
}
module_init(int_init);
module_exit(int_exit);
这是我捕捉到的错误行不匹配:
make:进入目录/usr/src/linux-source-2.6.32'
CC[M]/home/pietro/driver/sysfs.o
/home/pietro/driver/sysfs.c:在函数“int_init”中:
/home/pietro/driver/sysfs.c:125:错误:函数'kobject_init'的参数太少
/home/pietro/driver/sysfs.c:132:错误:函数“kobject_add”的参数太少
/home/pietro/driver/sysfs.c:135:警告:忽略使用属性warn\u unused\u result声明的“sysfs\u create\u file”的返回值
/home/pietro/driver/sysfs.c:在函数“int_exit”中:
/home/pietro/driver/sysfs.c:155:错误:函数“schedule\u timeout”的隐式声明
生成[1]:***[/home/pietro/driver/sysfs.o]错误1
make:**[\u模块\主/主/主/驱动程序]错误2
make:离开目录/usr/src/linux-source-2.6.32'
我怎样才能解决这个问题
附言: