Add PGOFS macro.
authorBen Pfaff <blp@cs.stanford.edu>
Thu, 26 Aug 2004 19:02:33 +0000 (19:02 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Thu, 26 Aug 2004 19:02:33 +0000 (19:02 +0000)
Add assertions.

src/threads/mmu.h

index 4010964b27900e122d89d69a642b1d3ed737eace..10c2a92df5f0b5a0f3c05c011887711365c9be84 100644 (file)
@@ -51,8 +51,8 @@
 #define        NBPG            (1 << PGSHIFT)  /* bytes/page */
 
 /* Page tables (selected by VA[31:22] and indexed by VA[21:12]) */
-#define NLPG (1<<(PGSHIFT-2))   /* Number of 32-bit longwords per page */
 #define PGMASK (NBPG - 1)       /* Mask for page offset.  Terrible name! */
+#define PGOFS(va) ((va) & PGMASK)
 /* Page number of virtual page in the virtual page table. */
 #define PGNO(va) ((uint32_t) (va) >> PGSHIFT)
 /* Index of PTE for VA within the corresponding page table */
 #define NPPT ((-KERNBASE)>>PDSHIFT)
 
 #ifndef __ASSEMBLER__
+#include "debug.h"
+
 /* Kernel virtual address at which physical address PADDR is
    mapped. */
 static inline void *
 ptov (uint32_t paddr) 
 {
+  ASSERT (paddr < PHYS_BASE);
+
   return (void *) (paddr + PHYS_BASE);
 }
 
@@ -178,6 +182,8 @@ ptov (uint32_t paddr)
 static inline uint32_t
 vtop (void *vaddr) 
 {
+  ASSERT ((uint32_t) vaddr >= PHYS_BASE);
+
   return (uint32_t) vaddr - PHYS_BASE;
 }
 #endif