Subject: Re: pgd_offset

From: Kong Gang Feng <[email-masked]>
Date: Wed, 18 Aug 1999 19:50:48 +0900

Hi,

I think the entry of 'pgd' is in word (4bytes) instead of byte. 
So PGDIR_SHIFT=18+2=20.

Kong G.F.
At 08:52 PM 8/19/99 -0700, Chagas, Jason wrote:
>Need help understanding some code...
>
>The 'pgd_offset' function defined in
>"./include/asm-arm/proc-armv/pgtable.h" is supposed to calculate the offset
>into the Translation Table with PGDIR_SHIFT defined as "20" in
>./include/asm-arm/proc-armv/pgtable.h" (see attached code snippet). It is my
>understanding the entry into the TB is calculated by shifting the address
>right by "18" instead. It is a mystery to me how Linux kernel still works.
>Am I missing something?
>
>Thanks,
>
>Jason
>
>--------------
>/* to find an entry in a page-table-directory */
>extern __inline__ pgd_t * pgd_offset(struct mm_struct * mm, unsigned long
>address)
>{
>	return mm->pgd + (address >> PGDIR_SHIFT);
>}
>
>unsubscribe: body of `unsubscribe linux-arm' to [email-masked]
>
>
unsubscribe: body of `unsubscribe linux-arm' to [email-masked]