Index: generic/include/mm/buddy.h
===================================================================
--- generic/include/mm/buddy.h	(revision 6d7ffa6500ff049f534738d13b952fc159242a8d)
+++ generic/include/mm/buddy.h	(revision 59adc2b9587400d75b5f3c03ec31e2c946b96230)
@@ -56,5 +56,5 @@
 extern bool buddy_system_can_alloc(buddy_system_t *b, __u8 order);
 extern void buddy_system_free(buddy_system_t *b, link_t *block);
-extern void buddy_system_structure_print(buddy_system_t *b);
+extern void buddy_system_structure_print(buddy_system_t *b, size_t elem_size);
 
 
Index: generic/src/mm/buddy.c
===================================================================
--- generic/src/mm/buddy.c	(revision 6d7ffa6500ff049f534738d13b952fc159242a8d)
+++ generic/src/mm/buddy.c	(revision 59adc2b9587400d75b5f3c03ec31e2c946b96230)
@@ -239,5 +239,5 @@
  * @param es Element size
  */
-void buddy_system_structure_print(buddy_system_t *b) {
+void buddy_system_structure_print(buddy_system_t *b, size_t elem_size) {
 	index_t i;
 	count_t cnt, elem_count = 0, block_count = 0;
@@ -245,6 +245,6 @@
 	
 
-	printf("Order\tStatistics\n");
-	printf("-----\t--------------------------------------\n");
+	printf("Order\tBlocks\tSize    \tBlock size\tElems per block\n");
+	printf("-----\t------\t--------\t----------\t---------------\n");
 	
 	for (i=0;i < b->max_order; i++) {
@@ -254,10 +254,10 @@
 		}
 	
-		printf("#%d:\t%d blocks available (%d elements per block)\n", i, cnt, 1 << i);
+		printf("#%d\t%d\t%d kb\t\t%d kb\t\t%d\n", i, cnt, (cnt * (1 << i) * elem_size) >> 10, ((1 << i) * elem_size) >> 10, 1 << i);
 		
 		block_count += cnt;
 		elem_count += (1 << i) * cnt;
 	}
-	printf("-----\t--------------------------------------\n");
+	printf("-----\t------\t--------\t----------\t---------------\n");
 	printf("Buddy system contains %d elements (%d blocks)\n" , elem_count, block_count);
 
Index: generic/src/mm/frame.c
===================================================================
--- generic/src/mm/frame.c	(revision 6d7ffa6500ff049f534738d13b952fc159242a8d)
+++ generic/src/mm/frame.c	(revision 59adc2b9587400d75b5f3c03ec31e2c946b96230)
@@ -490,12 +490,11 @@
 	zone_t *zone = NULL;
 	link_t *cur;
-	index_t i = 0;
 	spinlock_lock(&zone_head_lock);
-	printf("No.\tBase address\tFree Frames\tBusy Frames\n");
-	printf("---\t------------\t-----------\t-----------\n");
+	printf("Base address\tFree Frames\tBusy Frames\n");
+	printf("------------\t-----------\t-----------\n");
 	for (cur = zone_head.next; cur != &zone_head; cur = cur->next) {
 		zone = list_get_instance(cur, zone_t, link);
 		spinlock_lock(&zone->lock);
-		printf("%d\t%L\t%d\t\t%d\n",i++,zone->base, zone->free_count, zone->busy_count);
+		printf("%L\t%d\t\t%d\n",zone->base, zone->free_count, zone->busy_count);
 	}
 	spinlock_unlock(&zone_head_lock);
@@ -537,6 +536,5 @@
 	
 	printf("\nBuddy allocator structures:\n\n");
-	buddy_system_structure_print(zone->buddy_system);
-	
+	buddy_system_structure_print(zone->buddy_system, FRAME_SIZE);
 	
 	spinlock_unlock(&zone->lock);
