public static void DumpPages(this IPageFrameAllocator allocator) { var sb = new StringBuffer(); sb.Append("Allocator Dump of {0}. TotalPages={1} Free={2}", allocator.DebugName, allocator.TotalPages, allocator.FreePages); for (uint i = 0; i < allocator.TotalPages; i++) { var p = allocator.GetPageByIndex(i); if (i % 64 == 0) { sb.Append("\nIndex={0} Page {1} at {2:X8}, PageStructAddr={3:X8}: ", i, allocator.GetPageNum(p), allocator.GetAddress(p), (uint)p); sb.WriteTo(DeviceManager.Serial1); sb.Clear(); } sb.Append((int)p->Status); sb.WriteTo(DeviceManager.Serial1); sb.Clear(); } DeviceManager.Serial1.Write('\n'); }