小默

malloc

//malloc.c
#include 
<linux/module.h>
#include 
<linux/slab.h>
#include 
<linux/vmalloc.h>
MODULE_LICENSE(
"GPL");
unsigned 
char *pagemem;
unsigned 
char *kmallocmem;
unsigned 
char *vmallocmem;

int __init mem_module_init(void)
{
//最好每次内存申请都检查申请是否成功
//下面这段仅仅作为演示的代码没有检查
//pagemem = (unsigned char*)get_free_page(0);
//printk("<1>pagemem addr=%x", pagemem);

kmallocmem 
= (unsigned char*)kmalloc(1000);
printk(
"<1>kmallocmem addr=%x", kmallocmem);

vmallocmem 
= (unsigned char*)vmalloc(1000000);
printk(
"<1>vmallocmem addr=%x", vmallocmem);

return 0;
}

void __exit mem_module_exit(void)
{
//free_page(pagemem);
kfree(kmallocmem);
vfree(vmallocmem);
}

module_init(mem_module_init);
module_exit(mem_module_exit);

Makefile:
obj-m := malloc.o
KDIR :
= /lib/modules/$(shell uname -r)/build
PWD :
= $(shell pwd)

default:
    $(MAKE) 
-C $(KDIR) SUBDIRS=$(PWD) modules


posted on 2010-06-01 20:20 小默 阅读(200) 评论(0)  编辑 收藏 引用 所属分类: Linux


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


导航

统计

留言簿(13)

随笔分类(287)

随笔档案(289)

漏洞

搜索

积分与排名

最新评论

阅读排行榜