Subject: pgd_offset

From: "Chagas, Jason" <[email-masked]>
Date: Thu, 19 Aug 1999 20:52:53 -0700

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]