summaryrefslogtreecommitdiffstats
path: root/libgloss/frv/sbrk.c
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2002-06-18 21:19:17 +0000
committerDave Brolley <brolley@redhat.com>2002-06-18 21:19:17 +0000
commitc2b0dec2dcf3f57f3c306ad84b8e8a83bb913d35 (patch)
tree811575f8f51bc668cbc394638d85fbce6d54620d /libgloss/frv/sbrk.c
parent7ed77745fc5b5fa39a13b8f8128df4bb257a6495 (diff)
downloadcygnal-c2b0dec2dcf3f57f3c306ad84b8e8a83bb913d35.tar.gz
cygnal-c2b0dec2dcf3f57f3c306ad84b8e8a83bb913d35.tar.bz2
cygnal-c2b0dec2dcf3f57f3c306ad84b8e8a83bb913d35.zip
2002-06-18 Dave Brolley <brolley@redhat.com>
From Catherine Moore, Michael Meissner, Richard Sandiford: * configure.in: Support frv*-*-*. * frv/Makefile.in: New file. * frv/configure: New file. * frv/configure.in: New file. * frv/crt0.S: New file. * frv/fstat.c: New file. * frv/getpid.c: New file. * frv/isatty.c: New file. * frv/kill.c: New file. * frv/print.c: New file. * frv/putnum.c: New file. * frv/sbrk.c: New file. * frv/sim-close.S: New file. * frv/sim-exit.S: New file. * frv/sim-inbyte.c: New file. * frv/sim-lseek.S: New file. * frv/sim-open.S: New file. * frv/sim-read.S: New file. * frv/sim-time.c: New file. * frv/sim-unlink.S: New file. * frv/sim-write.S: New file. * frv/stat.c: New file.
Diffstat (limited to 'libgloss/frv/sbrk.c')
-rw-r--r--libgloss/frv/sbrk.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/libgloss/frv/sbrk.c b/libgloss/frv/sbrk.c
new file mode 100644
index 000000000..469257d5a
--- /dev/null
+++ b/libgloss/frv/sbrk.c
@@ -0,0 +1,54 @@
+/* sbrk.c -- allocate memory dynamically.
+ *
+ * Copyright (c) 2002 Red Hat, Inc
+ *
+ * The authors hereby grant permission to use, copy, modify, distribute,
+ * and license this software and its documentation for any purpose, provided
+ * that existing copyright notices are retained in all copies and that this
+ * notice is included verbatim in any distributions. No written agreement,
+ * license, or royalty fee is required for any of the authorized uses.
+ * Modifications to this software may be copyrighted by their authors
+ * and need not follow the licensing terms described here, provided that
+ * the new terms are clearly indicated on the first page of each file where
+ * they apply.
+ */
+#include <errno.h>
+#include "glue.h"
+
+/* just in case, most boards have at least some memory */
+#ifndef RAMSIZE
+# define RAMSIZE (caddr_t)0x100000
+#endif
+
+char *__heap_ptr = (char *)&_end;
+
+/*
+ * sbrk -- changes heap size size. Get nbytes more
+ * RAM. We just increment a pointer in what's
+ * left of memory on the board.
+ */
+char *
+_sbrk (nbytes)
+ int nbytes;
+{
+ char *base;
+ char *sp;
+
+ base = __heap_ptr;
+ __heap_ptr += nbytes;
+
+ return base;
+/* FIXME: We really want to make sure we don't run out of RAM, but this
+ * isn't very portable.
+ */
+#if 0
+ if ((RAMSIZE - heap_ptr - nbytes) >= 0) {
+ base = heap_ptr;
+ heap_ptr += nbytes;
+ return (base);
+ } else {
+ errno = ENOMEM;
+ return ((char *)-1);
+ }
+#endif
+}