- Delete unused funciton realloc
[coreboot.git] / src / lib / malloc.c
1 #include <stdlib.h>
2 #include <string.h>
3 #include <console/console.h>
4
5 #if 0
6 #define MALLOCDBG(x)
7 #else
8 #define MALLOCDBG(x) printk_spew x
9 #endif
10 extern unsigned char _heap, _eheap;
11 static size_t free_mem_ptr = (size_t)&_heap;            /* Start of heap */
12 static size_t free_mem_end_ptr = (size_t)&_eheap;       /* End of heap */
13
14
15 void malloc_mark(malloc_mark_t *place)
16 {
17         *place = free_mem_ptr;
18         printk_spew("malloc_mark 0x%08lx\n", (unsigned long)free_mem_ptr);
19 }
20
21 void malloc_release(malloc_mark_t *ptr)
22 {
23         free_mem_ptr = *ptr;
24         printk_spew("malloc_release 0x%08lx\n", (unsigned long)free_mem_ptr);
25 }
26
27 void *malloc(size_t size)
28 {
29         void *p;
30
31         MALLOCDBG(("%s Enter, size %d, free_mem_ptr %p\n", __FUNCTION__, size, free_mem_ptr));
32         if (size < 0)
33                 die("Error! malloc: Size < 0");
34         if (free_mem_ptr <= 0)
35                 die("Error! malloc: Free_mem_ptr <= 0");
36
37         free_mem_ptr = (free_mem_ptr + 3) & ~3; /* Align */
38
39         p = (void *) free_mem_ptr;
40         free_mem_ptr += size;
41
42         if (free_mem_ptr >= free_mem_end_ptr)
43                 die("Error! malloc: Free_mem_ptr >= free_mem_end_ptr");
44
45         MALLOCDBG(("malloc 0x%08lx\n", (unsigned long)p));
46
47         return p;
48 }
49
50 void free(void *where)
51 {
52         /* Don't care */
53 }