阅读:1502回复:5
大家帮帮忙呀!!!!!(关于buffer_head 的问题)
这是test.c文件
#include <linux/kernel.h> #include <linux/mm.h> #include <linux/module.h> #include <linux/types.h> #include <linux/slab.h> struct buffer_head *bh; int mssvi_get_buffer() { struct buffer_head *bh; bh = kmem_cache_alloc(bh_cachep, SLAB_BUFFER); if (!bh) { printk(\"allocate buffer error\\n\"); return -1; } return 0; } int init_module(void) { struct buffer_head *tmp_bh; mssvi_get_buffer(); tmp_bh=bh; return 0; } void cleanup_module(void) { printk(\"bye bye\\n\"); return; } //module_init(test_init); //module_exit(test_clean); 这里是Makefile CC= gcc MODCFLAGS= -Wall -O3 -D__KERNEL__ -DMODULE -I /usr/src/linux-2.4/include test.o:test.c $(CC) $(MODCFLAGS) -c test.c 大家帮忙看看,谢了。 在dcache.c中有: /* SLAB cache for buffer_head structures */ kmem_cache_t *bh_cachep; EXPORT_SYMBOL(bh_cachep); 在slab.h中有: extern kmem_cache_t *bh_cachep; 为什么我在模块中使用bh_cachep,出现unresolved symbol bh_cachep. |
|
沙发#
发布于:2002-12-05 09:30
在你自己的程序中加入extern kmem_cache_t *bh_cachep; 试试
|
|
板凳#
发布于:2002-12-02 11:59
我在proc/ksyms中也没有找到bh_cachep. 是否表示并没有导出这个变量? 这个现象很明显,就是没有导出。 proc/ksyms好像是吧,我不敢确定了。 |
|
地板#
发布于:2002-12-02 11:49
我即使包含了SLAB.C一样的出错。
各位大侠帮忙呀1 |
|
地下室#
发布于:2002-12-02 11:11
我在proc/ksyms中也没有找到bh_cachep. 是否表示并没有导出这个变量?
|
|
5楼#
发布于:2002-12-02 08:51
你要确定编译的时候,slab.c,h也包含了。这样符号才能导出。
|
|