thanks for the replies. On Tue, Sep 20, 2011 at 11:42 PM, rohan puri <rohan.puri15@xxxxxxxxx> wrote: > > > On Wed, Sep 21, 2011 at 2:24 AM, Jeff Haran <jharan@xxxxxxxxxxxxxx> wrote: >> >> > -----Original Message----- >> > From: kernelnewbies-bounces@xxxxxxxxxxxxxxxxx [mailto:kernelnewbies- >> > bounces@xxxxxxxxxxxxxxxxx] On Behalf Of Sri Ram Vemulpali >> > Sent: Tuesday, September 20, 2011 11:24 AM >> > To: kernelnewbies >> > Subject: question on memory mapping one page at a time >> > >> > Hi all, >> > >> > can anyone please explain the following code, what it is doing. I want >> > the first few statements of the code, as they are calculating page >> > frame number. This is little confusing, thanks in advance. >> > >> > struct page *simple_vma_nopage(struct vm_area_struct *vma, >> > unsigned long address, int *type) >> > { >> > struct page *pageptr; >> > unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; >> > unsigned long physaddr = address - vma->vm_start + offset; >> > unsigned long pageframe = physaddr >> PAGE_SHIFT; >> > if (!pfn_valid(pageframe)) >> > return NOPAGE_SIGBUS; >> > pageptr = pfn_to_page(pageframe); >> > get_page(pageptr); >> > if (type) >> > *type = VM_FAULT_MINOR; >> > return pageptr; >> > } >> > >> > -- >> > Regards, >> > Sri. >> >> Do a search on "Understanding the Linux Virtual Memory Manager" by Mel >> Gorman. The PDF is out there for free or you can buy the hardcopy. >> >> I think you will find the above code clearer after you've read the >> above. >> >> Jeff Haran >> >> >> >> >> >> _______________________________________________ >> Kernelnewbies mailing list >> Kernelnewbies@xxxxxxxxxxxxxxxxx >> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > Also you can go through the second chapter of understanding linux kernel. > > Regards, > Rohan Puri > -- Regards, Sri. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies