derekdeng
驱动牛犊
驱动牛犊
  • 注册日期2002-11-29
  • 最后登录2003-09-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1502回复:5

大家帮帮忙呀!!!!!(关于buffer_head 的问题)

楼主#
更多 发布于:2002-12-01 15:49
这是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.

bbs_000
驱动牛犊
驱动牛犊
  • 注册日期2002-11-05
  • 最后登录2003-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-05 09:30
在你自己的程序中加入extern kmem_cache_t *bh_cachep; 试试
unix1998
驱动老牛
驱动老牛
  • 注册日期2002-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-02 11:59
我在proc/ksyms中也没有找到bh_cachep. 是否表示并没有导出这个变量?

这个现象很明显,就是没有导出。
proc/ksyms好像是吧,我不敢确定了。
derekdeng
驱动牛犊
驱动牛犊
  • 注册日期2002-11-29
  • 最后登录2003-09-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-02 11:49
我即使包含了SLAB.C一样的出错。
各位大侠帮忙呀1
derekdeng
驱动牛犊
驱动牛犊
  • 注册日期2002-11-29
  • 最后登录2003-09-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-02 11:11
我在proc/ksyms中也没有找到bh_cachep. 是否表示并没有导出这个变量?
unix1998
驱动老牛
驱动老牛
  • 注册日期2002-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-12-02 08:51
你要确定编译的时候,slab.c,h也包含了。这样符号才能导出。
游客

返回顶部