- // - Reference Counts and Bitmap
- vaddr = MM_PAGE_BITMAP;
- for( i = 0; i < numPages; i++, vaddr ++ )
- {
- paddr = MM_GetPhysAddr(vaddr) >> 12;
- gaMainBitmap[paddr >> 6] |= 1 << (paddr&63);
- }
- vaddr = MM_PAGE_DBLBMP;
- for( i = 0; i < numPages; i++, vaddr += 0x1000 )
- {
- paddr = MM_GetPhysAddr(vaddr) >> 12;
- gaMainBitmap[paddr >> 6] |= 1 << (paddr&63);
- }
- vaddr = MM_PAGE_SUPBMP;
- for( i = 0; i < superPages; i++, vaddr += 0x1000 )
- {
- paddr = MM_GetPhysAddr(vaddr) >> 12;
- gaMainBitmap[paddr >> 6] |= 1 << (paddr&63);
+
+ // Free the unused static allocs
+ for( i = 0; i < NUM_STATIC_ALLOC; i++) {
+ if(gaiStaticAllocPages[i] != 0)
+ continue;
+ gaMainBitmap[ gaiStaticAllocPages[i] >> (12+6) ]
+ &= ~(1LL << ((gaiStaticAllocPages[i]>>12)&63));