内存获取

  1 #include<linux/module.h>
  2 #include<linux/init.h>
  3 //#include<linux/slab.h>           /*void kmalloc(size_t size, int flags)*/

  4 //#include<linux/mempool.h>  /*unsigned long get_zored_page(int flags)*/

  5 //#include<linux/mm.h>           /*常用的内存分配接口 eg GFP_KERNEL*/
  6
  7 MODULE_LICENSE("GPL");
  8 MODULE_AUTHOR("WENHUI");
  9 MODULE_DESCRIPTION("Memory alloc Module");
 10 MODULE_ALIAS("malloc module");
 11
 12 char *buf1 = NULL;
 13 char *buf2 = NULL;
 14
 15 int alloc_init(void)
 16 {
 17     buf1 = kmalloc(100,GFP_KERNEL);
 18     /*分配标志 表示在内核空间进程中申请内存,允许当前进程休眠以满足分配要求*/
 19     memset(buf1, 0, 100);
 20     strcpy(buf1,"<<< --- Kmalloc Mem OK! --- >>>");
 21     printk("<0> BUF 1 : %s\n",buf1);
 22
 23     buf2 = get_zeroed_page(GFP_KERNEL);
 24     strcpy(buf2, "<<< --- Get Free Page OK! --- >>>");
 25     printk("<0> BUF 2: %s\n",buf2);
 26     return 0;
 27 }
 28
 29 void alloc_exit(void)
 30 {
 31     kfree(buf1);
 32     free_page(buf2);
 33     printk("<0> << --- Module Exit! --- >>>\n");
 34 }

wenhui@ubuntu:/home/linux-2.6.32.2/kernel_test/alloc_mem$ make
make -C /home/linux-2.6.32.2 M=/home/linux-2.6.32.2/kernel_test/alloc_mem modules
make[1]: 正在进入目录 `/home/linux-2.6.32.2'
  CC [M]  /home/linux-2.6.32.2/kernel_test/alloc_mem/alloc_mem.o
/home/linux-2.6.32.2/kernel_test/alloc_mem/alloc_mem.c: In function 'alloc_init':
/home/linux-2.6.32.2/kernel_test/alloc_mem/alloc_mem.c:23: warning: assignment makes pointer from integer without a cast
/home/linux-2.6.32.2/kernel_test/alloc_mem/alloc_mem.c: In function 'alloc_exit':
/home/linux-2.6.32.2/kernel_test/alloc_mem/alloc_mem.c:32: warning: passing argument 1 of 'free_pages' makes integer from pointer without a cast
  Building modules, stage 2.
  MODPOST 1 modules
  LD [M]  /home/linux-2.6.32.2/kernel_test/alloc_mem/alloc_mem.ko
make[1]:正在离开目录 `/home/linux-2.6.32.2'

加载后模块的基本功能可以实现 但是 就是存在几个 warning 有点不爽 ,添加了几个有关的头文件也没用。。。

还有奇怪的是就是没有加 上面的几个(已经被注销的3个头文件也不报错) 可能在前两个头文件中已经包含了相关

的头文件包含有,所以不用再显式包含这些头文件



你可能感兴趣的:(function,Module,ubuntu,null,Integer)