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