Hi Dave, Thanks for reply. My English is not very good, and so I want to ask about a term:map. Does map mean that create a relationship between the virtual space and physical memory?
Thanks again! 在 2012年4月18日 下午4:17,Dave Hylands <[email protected]>写道: > Hi , > > On Wed, Apr 18, 2012 at 12:44 AM, 夏业添 <[email protected]> wrote: > > Hi everyone, > > > > there are some functions can alloc memory in kernel, but it seems that I > > cannot use it directly. Here is my code: > > > > static int mytest_vm(){ > > > > struct vm_struct *v_start; > > > > v_start=alloc_vm_area(PAGE_SIZE,NULL); //the kernel api has > changed, > > I don't understand why there is a second parameter > > if(v_start==NULL){ > > printk("cannot alloc page\n"); > > return -1; > > } > > > > sprintf((char *)v_start->addr,"this is a test.\n"); > > printk("after sprintk:%s",(char *)v_start->addr); > > > > free_vm_area(v_start); > > > > return 0; > > } > > module_init(mytest_vm); > > > > but it just got a kernel Oops. Can anyone explain this to me? Thanks very > > much! > > If my understanding of things is correct, this just allocates virtual > space. That virtual space isn't backed by any physical pages. > > The normal kernel allocators are things like kmalloc and vmalloc. > > -- > Dave Hylands > Shuswap, BC, Canada > http://www.davehylands.com >
_______________________________________________ Kernelnewbies mailing list [email protected] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
