Re: explanation of __va() and __pa() macros.
|[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]|
Vlad Dogaru <ddvlad@xxxxxxxxxx> writes: > On Fri, Jun 22, 2012 at 2:49 PM, AFT <aftnix@xxxxxxxxx> wrote: >> >> Hi, >> >> My source is from 2.6 git tree. In LDD3 its said that a logical address >> is mapped to physical address and vice versa by the macros __va() and >> __pa(). >> >> In my source tree they are defined as follows: >> >> <include/asm-generic/page.h> >> >> #define __va(x) ((void *)((unsigned long) (x))) >> #define __pa(x) ((unsigned long) (x)) >> >> >> I'm not actually understanding how these "cute" looking casting is >> performing "address mapping". I thought address mapping involves more >> complex operations. > > See the comments at the beginning of the file you quoted: > > /* > * Generic page.h implementation, for NOMMU architectures. > * This provides the dummy definitions for the memory management. > */ > > For arch-specific code try looking, for instance, at > arch/x86/include/asm/page.h . > > Hope this helps, > Vlad Hi Vlad, Thanks for the explanation. I should lookout for embedded comments with more attention from now. cheers. aft _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
[Newbies FAQ] [Linux Kernel Development] [IETF Annouce] [Git] [Networking] [Security] [Bugtraq] [Photo] [Yosemite] [MIPS Linux] [ARM Linux] [Linux Security] [Linux Networking] [Linux RAID] [Linux SCSI] [Linux ACPI]