编写linux内核模块的时候调用get_free_page函数出错!

#ifndef__KERNEL__#define__KERNEL__#endif#ifndefMODULE#defineMODULE#endif#include<linu... #ifndef __KERNEL__
# define __KERNEL__
#endif
#ifndef MODULE
# define MODULE
#endif

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>

MODULE_LICENSE("GPL");//证书

char *buf1 = NULL;
char *buf2 = NULL;

int alloc_init()
{
buf1 = kmalloc(100,GFP_KERNEL);//申请100个空间,kmalloc在堆中分配内存空间
memset(buf1,0,100);//初始化这部分内存空间100字节
strcpy(buf1,"<<< --- Kmalloc Mem OK! --- >>>");//往内存里面放入字符串
printk("BUF 1 : %s\n",buf1);//打印里面的内容

buf2 = get_free_page(GFP_KERNEL);//获取空闲页,1页 4K
memset(buf2,0,1024);//初始化这片空间
strcpy(buf2,"<<<--- Get Free Page OK! --- >>>");
printk("BUF 2 : %s\n",buf2);//打印内容
return 0;
}
。。。。。。。。。。。。。。。后面的一部分就不写了
这个内核模块程序,会出现错误,/home/fantasy/program/kernel/mem/alloc_mem.c:27:2: error: implicit declaration of function 'get_free_page'

这个是什么问题?
找不到get_free_page函数的声明?那么这个函数在哪声明的呢?
展开
 我来答
吉大大伟
2011-08-11 · 超过14用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:40.1万
展开全部
把内核的版本号贴出来的,一般来说没人用get_free_page这个函数的,所以才会报这个错,一般都是__get_free_page
handsoul
2011-08-06 · TA获得超过955个赞
知道小有建树答主
回答量:500
采纳率:0%
帮助的人:759万
展开全部
去lxr.linux.no搜索...可以对kernel进行全文检索....

你得内核版本是多少呢..只有__get_free_page,没有get_free_page,,定义在inux/gfp.h中。

你再试试,我是直接从3.01版本的内核中找到的..(不知不觉到了3.0l了..2,4和2.6都过去了。.)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mcuos
2011-08-06 · TA获得超过662个赞
知道小有建树答主
回答量:654
采纳率:0%
帮助的人:514万
展开全部
谁教你用这个函数的?一般的驱动里面不会使用这个函数,都是kmalloc或者kzmalloc了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
之皓线美丽
2019-03-02 · TA获得超过1131个赞
知道小有建树答主
回答量:1961
采纳率:100%
帮助的人:9.5万
展开全部
;gfp..6都过去了.01版本的内核中找到的.0l了.
你得内核版本是多少呢。.h中.可以对kernel进行全文检索..,定义在inux/,没有get_free_page,4和2。
你再试试..(不知不觉到了3..只有__get_free_page.linux.2...no搜索,我是直接从3.去lxr
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-07
展开全部
不知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式