歡迎您光臨本站 註冊首頁

Linux下分配G級物理內存的方法-alloc_bootmem()

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  
2.6.22.9的Linux內核
使用alloc_bootmem函數
在內核代碼  init/main.c文件中
  1. asmlinkage void __init start_kernel(void)  
  2. {  
  3.         char * command_line;  
  4.         extern struct kernel_param __start___param[], __stop___param[];  
  5.         .  
  6.         .  
  7.         .  
  8.         cpuset_init_early();  
  9.         yy_p = alloc_bootmem(500000000);//yy_p在開始時定義   
  10.         if (!yy_p)  
  11.         {  
  12.                 printk("yy: alloc error!\n");  
  13.         }  
  14.         else  
  15.         {  
  16.                 printk("yy: alloc success! \n");  
  17.         }  
  18.         //一定要在mem_init函數前   
  19.         mem_init();  
  20.         .  
  21.         .  
  22.         .  
  23. }  

重新編譯內核

這樣,進系統后cat /proc/meminfo 就會發現自己的物理內存少了500M

只要把yy_p這個指針EXPORT_SYMBOL后,內核的驅動程序就可以訪問500M內存了



[火星人 ] Linux下分配G級物理內存的方法-alloc_bootmem()已經有479次圍觀

http://coctec.com/docs/program/show-post-71496.html