Index: include/mm/frame.h
===================================================================
--- include/mm/frame.h	(revision 48411044bd932431c1cfec24cf648466ae4b05ac)
+++ include/mm/frame.h	(revision adecf4965d4893354602d8dd880986f396eefa70)
@@ -53,5 +53,5 @@
 	count_t refcount;	/**< when == 0, the frame is in free list */
 	link_t link;		/**< link to zone free list when refcount == 0 */
-} __attribute__ ((packed));
+};
 
 extern spinlock_t zone_head_lock;	/**< this lock protects zone_head list */
Index: include/mm/heap.h
===================================================================
--- include/mm/heap.h	(revision 48411044bd932431c1cfec24cf648466ae4b05ac)
+++ include/mm/heap.h	(revision adecf4965d4893354602d8dd880986f396eefa70)
@@ -33,4 +33,7 @@
 #include <typedefs.h>
 
+#define malloc(size)		early_malloc(size)
+#define free(ptr)		early_free(ptr)
+
 struct chunk {
 	int used;
@@ -41,8 +44,8 @@
 };
 
-extern void heap_init(__address heap, size_t size);
+extern void early_heap_init(__address heap, size_t size);
 
-extern void *malloc(size_t size);
-extern void free(void *ptr);
+extern void *early_malloc(size_t size);
+extern void early_free(void *ptr);
 
 #endif
Index: src/main/main.c
===================================================================
--- src/main/main.c	(revision 48411044bd932431c1cfec24cf648466ae4b05ac)
+++ src/main/main.c	(revision adecf4965d4893354602d8dd880986f396eefa70)
@@ -148,5 +148,5 @@
 	
 	arch_pre_mm_init();
-	heap_init(config.base + hardcoded_ktext_size + hardcoded_kdata_size, heap_size + heap_delta);
+	early_heap_init(config.base + hardcoded_ktext_size + hardcoded_kdata_size, heap_size + heap_delta);
 	frame_init();
 	page_init();
Index: src/mm/frame.c
===================================================================
--- src/mm/frame.c	(revision 48411044bd932431c1cfec24cf648466ae4b05ac)
+++ src/mm/frame.c	(revision adecf4965d4893354602d8dd880986f396eefa70)
@@ -299,5 +299,5 @@
 	cnt = size / FRAME_SIZE;
 	
-	z = (zone_t *) malloc(sizeof(zone_t));
+	z = (zone_t *) early_malloc(sizeof(zone_t));
 	if (z) {
 		link_initialize(&z->link);
@@ -312,5 +312,5 @@
 		z->busy_count = 0;
 		
-		z->frames = (frame_t *) malloc(cnt * sizeof(frame_t));
+		z->frames = (frame_t *) early_malloc(cnt * sizeof(frame_t));
 		if (!z->frames) {
 			free(z);
Index: src/mm/heap.c
===================================================================
--- src/mm/heap.c	(revision 48411044bd932431c1cfec24cf648466ae4b05ac)
+++ src/mm/heap.c	(revision adecf4965d4893354602d8dd880986f396eefa70)
@@ -45,5 +45,5 @@
 static spinlock_t heaplock;
 
-void heap_init(__address heap, size_t size)
+void early_heap_init(__address heap, size_t size)
 {
 	spinlock_initialize(&heaplock);
@@ -59,5 +59,5 @@
  * Uses first-fit algorithm.
  */
-void *malloc(size_t size)
+void *early_malloc(size_t size)
 {
 	pri_t pri;
@@ -115,5 +115,5 @@
 }
 
-void free(void *ptr)
+void early_free(void *ptr)
 {
 	pri_t pri;
