文章目录
任务1:使用 kmalloc 分配 1KB,8KB的内存,并打印指针地址
任务要求
- 使用 kmalloc 分配 1KB,8KB的内存,打印指针地址;
- 查看已分配的内存,根据机器是32位或64位的情况,分析地址落在的区域。
任务代码
kmalloc.c
#include <linux/module.h>
#include <linux/slab.h>
MODULE_LICENSE("GPL");
unsigned char *kmallocmem1;
unsigned char *kmallocmem2;
static int __init mem_module_init(void)
{
printk("Start kmalloc!\n");
kmallocmem1 = (unsigned char*)kmalloc(1024, GFP_KERNEL);
if (kmallocmem1 != NULL){
printk(KERN_ALERT "kmallocmem1 addr = %lx\n", (unsigned long)kmallocmem1);
}else{
printk("Failed to allocate kmallocmem1!\n");
}
kmallocmem2 = (unsigned char *)kmalloc(8192, GFP_KERNEL);
if (kmallocmem2 != NULL){
printk(KERN_ALERT "kmallocmem2 addr = %lx\n", (unsigned long)kmallocmem2);
}else{
printk("Failed to allocate kmallocmem2!\n");
}
return 0;
}
static void __exit mem_module_exit(void)
{