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 PROTECTED]

Reply via email to