Re: explanation of __va() and __pa() macros.

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

 



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

_______________________________________________
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