+
+/**
+ * \brief Reference a physical page
+ */
+void MM_RefPhys(tPAddr PAddr)
+{
+ if( PAddr >> 12 > giMaxPhysPage ) return ;
+ gaiPageReferences[ PAddr >> 12 ] ++;
+
+ gaPrimaryBitmap[PAddr >> 18] |= 1 << ((PAddr>>12) & 63);
+ if( gaPrimaryBitmap[PAddr >> 18] == -1 )
+ gaSuperBitmap[PAddr >> 24] |= 1 << ((PAddr >> 18) & 64);
+}
+
+/**
+ * \brief Dereference a physical page
+ */
+void MM_DerefPhys(tPAddr PAddr)
+{
+ if( PAddr >> 12 > giMaxPhysPage ) return ;
+ gaiPageReferences[ PAddr >> 12 ] --;
+ if( gaiPageReferences[ PAddr >> 12 ] )
+ {
+ gaPrimaryBitmap[PAddr >> 18] &= ~(1 << ((PAddr >> 12) & 63));
+ gaSuperBitmap[PAddr >> 24] &= ~(1 << ((PAddr >> 18) & 64));
+ }
+}