Messages in this thread | | | Date | Mon, 2 Jul 2007 18:43:13 +0300 | Subject | Re: [i386] Questions regarding provisional page tables initialization | From | "Ahmed S. Darwish" <> |
| |
On Mon, Jul 02, 2007 at 07:34:20AM -0400, Brian Gerst wrote: > Ahmed S. Darwish wrote: > > now back to head.S code: > > leal 0x007(%edi),%ecx /* Create PDE entry */ > > > > Isn't the above line the same condition (bytes, not bits displacement) ?. > > Thanks for your patience !. > > The leal instruction (Load Effective Address) is often used as a way to > add a constant to one register and store the result in another register > in a single instruction. > [...]
At last I got it due to all of everybody's very nice explanations :). Here's the provisional page tables intialization scenario:
We want to store pg0 pte addresses to high 20bits swapper_pg_dir entries, we also want the PRESENT,RW,USER flags be set in those entries. This is done by getting the address of each pg0 entry and adding 7 to it (Brian's note). Since pg0 entires address are page aligned(Andreas, Jeremy notes), adding 7 will assure that the first 3 bits are set without affecting the high 20 bits.
Big Thanks!,
-- Ahmed S. Darwish HomePage: http://darwish.07.googlepages.com Blog: http://darwish-07.blogspot.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |