* Clarifications on PFN_UP(x) macro
@ 2013-06-04 8:41 stl
2013-06-04 12:34 ` Tobias Boege
0 siblings, 1 reply; 2+ messages in thread
From: stl @ 2013-06-04 8:41 UTC (permalink / raw)
To: kernelnewbies
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.
^ permalink raw reply [flat|nested] 2+ messages in thread
* Clarifications on PFN_UP(x) macro
2013-06-04 8:41 Clarifications on PFN_UP(x) macro stl
@ 2013-06-04 12:34 ` Tobias Boege
0 siblings, 0 replies; 2+ messages in thread
From: Tobias Boege @ 2013-06-04 12:34 UTC (permalink / raw)
To: kernelnewbies
On Tue, 04 Jun 2013, stl wrote:
> 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?
>
Your calculation is good. Your understanding of what the macro does is not.
You should understand the macro like "return the address of the next page
relative to this address" which includes the address as is if it is page-
aligned.
Regards,
Tobi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-06-04 12:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-04 8:41 Clarifications on PFN_UP(x) macro stl
2013-06-04 12:34 ` Tobias Boege
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).