Clarifications on PFN_UP(x) macro

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

 



Hello,
I need some clarifications concerning the macro

#define PFN_UP(x)    (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)

found in "pfn.h"

I suppose that its aim is to give the page frame number of the page
following the page holding the physical address x, contrary to
PFN_DOWN(x) which give the page frame number of the page holding the
address x.

Assuming that the first page has the range 0x0000 to 0x0FFF,
the second 0x1000 to 0x1FFF and so on, it seems that there is
an issu with the starting address of each page, for example:
x = 0x10000  (PFN number 10)
0x10000 + 0xFFF >> 12    =    10, but should be 11 no?

I certainly misunderstood something.
Could someone clarify this point please?

Thanks.

_______________________________________________
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