[ros-kernel] memory manager

David Welch welch at cwcom.net
Sun Apr 11 04:18:39 CEST 2004


On Sat, Apr 10, 2004 at 04:15:45PM +0200, Gunnar Dalsnes wrote:
> While doing some mdl cleanup/fixes i got really annoyed about the memory
> manager describes physical pages using a PHYSICAL_ADDRESS/LARGE_INTEGER
> containing the physical _address_ of a page, when all the info we really
> need is the 20bit page _number_ which fits just fine into a ULONG. If noone
> objects i will change this and at the same time run indent on all files
> within \mm.
>
I don't think we should be making changes just for the sake of it - especially
since we might want to run ROS on systems where the size of a physical address
and the size of an int are different.
  
> And I have a few questions:
> MmGetPhysicalAddress seem to return the _base_ physical address, regardless
> of the page offset of the virtual address passed to it. I wonder if this is
> wrong?
>  
Could be.

> Why do we have three MmGetPageEntry functions? (MmGetPageEntry,
> MmGetPageEntry1 and MmGetPageEntry2) And does anyone know the difference
> between them?
>  
One variant creates the page table if it doesn't exist and one returns
it contents of the pte rather than a pointer to the pte. They could
definitively be simplified.


More information about the Ros-kernel mailing list