Index: kernel/generic/include/config.h
===================================================================
--- kernel/generic/include/config.h	(revision 43b1e860898a9f6f86146a628837eac2fb7dc913)
+++ kernel/generic/include/config.h	(revision 71eef11b8afe2eec0d0ac48ea6fce51144cb5b0c)
@@ -70,5 +70,4 @@
 
 	uintptr_t base;
-	size_t memory_size;		/**< Size of detected memory in bytes. */
 	size_t kernel_size;		/**< Size of memory in bytes taken by kernel and stack */
 	
Index: kernel/generic/include/macros.h
===================================================================
--- kernel/generic/include/macros.h	(revision 43b1e860898a9f6f86146a628837eac2fb7dc913)
+++ kernel/generic/include/macros.h	(revision 71eef11b8afe2eec0d0ac48ea6fce51144cb5b0c)
@@ -67,4 +67,7 @@
 #define PA_overlaps(x, szx, y, szy)	overlaps(KA2PA(x), szx, KA2PA(y), szy)
 
+#define SIZE2KB(size) (size >> 10)
+#define SIZE2MB(size) (size >> 20)
+
 #define STRING(arg) STRING_ARG(arg)
 #define STRING_ARG(arg) #arg
Index: kernel/generic/include/mm/frame.h
===================================================================
--- kernel/generic/include/mm/frame.h	(revision 43b1e860898a9f6f86146a628837eac2fb7dc913)
+++ kernel/generic/include/mm/frame.h	(revision 71eef11b8afe2eec0d0ac48ea6fce51144cb5b0c)
@@ -85,4 +85,9 @@
 }
 
+static inline size_t FRAMES2SIZE(count_t frames)
+{
+	return (size_t) (frames << FRAME_WIDTH);
+}
+
 #define IS_BUDDY_ORDER_OK(index, order)		\
 	((~(((unative_t) -1) << (order)) & (index)) == 0)
@@ -105,10 +110,11 @@
 
 extern int zone_create(pfn_t start, count_t count, pfn_t confframe, int flags);
-void *frame_get_parent(pfn_t frame, unsigned int hint);
-void frame_set_parent(pfn_t frame, void *data, unsigned int hint);
-void frame_mark_unavailable(pfn_t start, count_t count);
-uintptr_t zone_conf_size(count_t count);
-void zone_merge(unsigned int z1, unsigned int z2);
-void zone_merge_all(void);
+extern void *frame_get_parent(pfn_t frame, unsigned int hint);
+extern void frame_set_parent(pfn_t frame, void *data, unsigned int hint);
+extern void frame_mark_unavailable(pfn_t start, count_t count);
+extern uintptr_t zone_conf_size(count_t count);
+extern void zone_merge(unsigned int z1, unsigned int z2);
+extern void zone_merge_all(void);
+extern uint64_t zone_total_size(void);
 
 /*
@@ -116,5 +122,5 @@
  */
 extern void zone_print_list(void);
-void zone_print_one(unsigned int znum);
+extern void zone_print_one(unsigned int znum);
 
 #endif
