Re: how to use the memory allocated in kernel?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <dhylands@xxxxxxxxx>写道:
Hi ,

On Wed, Apr 18, 2012 at 12:44 AM, 夏业添 <summerxyt@xxxxxxxxx> 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
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux