summaryrefslogtreecommitdiffstats
path: root/common/misc.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2007-07-05 18:01:29 +0200
committerSascha Hauer <sha@octopus.labnet.pengutronix.de>2007-07-05 18:01:29 +0200
commit53d3195be1e45609f96b809bd5709eedee4c5829 (patch)
treee26d13287bf5841319e4f5509a39418f220df248 /common/misc.c
parentabfeb961e0ea5aed05acc8e672d497d9dfcc7835 (diff)
downloadbarebox-53d3195be1e45609f96b809bd5709eedee4c5829.tar.gz
barebox-53d3195be1e45609f96b809bd5709eedee4c5829.tar.xz
svn_rev_167
ppc startup cleaunup
Diffstat (limited to 'common/misc.c')
-rw-r--r--common/misc.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/common/misc.c b/common/misc.c
new file mode 100644
index 0000000000..b3c47ef62d
--- /dev/null
+++ b/common/misc.c
@@ -0,0 +1,32 @@
+
+#include <mem_malloc.h>
+
+/*
+ * Begin and End of memory area for malloc(), and current "brk"
+ */
+static ulong mem_malloc_start = 0;
+static ulong mem_malloc_end = 0;
+static ulong mem_malloc_brk = 0;
+
+void mem_malloc_init (ulong start, ulong end)
+{
+ mem_malloc_start = start;
+ mem_malloc_end = end;
+ mem_malloc_brk = mem_malloc_start;
+
+ memset ((void *) mem_malloc_start, 0,
+ mem_malloc_end - mem_malloc_start);
+}
+
+void *sbrk (ptrdiff_t increment)
+{
+ ulong old = mem_malloc_brk;
+ ulong new = old + increment;
+
+ if ((new < mem_malloc_start) || (new > mem_malloc_end)) {
+ return (NULL);
+ }
+ mem_malloc_brk = new;
+
+ return ((void *) old);
+}