summaryrefslogtreecommitdiff
path: root/code/fe310/gloss/sys_sbrk.c
diff options
context:
space:
mode:
authorUros Majstorovic <majstor@majstor.org>2020-08-05 02:52:42 +0200
committerUros Majstorovic <majstor@majstor.org>2020-08-05 02:52:42 +0200
commit0894a1e7664504312a9cdfc826eef89030aaaa1b (patch)
tree51e37e46d7862437583dbe02e6ebf03997a664be /code/fe310/gloss/sys_sbrk.c
parentdff71bc297b744856e303ad9a175de92c9acae0d (diff)
new directory sructure for fe310 fw
Diffstat (limited to 'code/fe310/gloss/sys_sbrk.c')
-rw-r--r--code/fe310/gloss/sys_sbrk.c38
1 files changed, 0 insertions, 38 deletions
diff --git a/code/fe310/gloss/sys_sbrk.c b/code/fe310/gloss/sys_sbrk.c
deleted file mode 100644
index ce10c90..0000000
--- a/code/fe310/gloss/sys_sbrk.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <sys/types.h>
-
-/* brk is handled entirely within the C library. This limits METAL programs that
- * use the C library to be disallowed from dynamically allocating memory
- * without talking to the C library, but that sounds like a sane way to go
- * about it. Note that there is no error checking anywhere in this file, users
- * will simply get the relevant error when actually trying to use the memory
- * that's been allocated. */
-extern char metal_segment_heap_target_start;
-extern char metal_segment_heap_target_end;
-static char *brk = &metal_segment_heap_target_start;
-
-int
-_brk(void *addr)
-{
- brk = addr;
- return 0;
-}
-
-char *
-_sbrk(ptrdiff_t incr)
-{
- char *old = brk;
-
- /* If __heap_size == 0, we can't allocate memory on the heap */
- if(&metal_segment_heap_target_start == &metal_segment_heap_target_end) {
- return (void *)-1;
- }
-
- /* Don't move the break past the end of the heap */
- if ((brk + incr) <= &metal_segment_heap_target_end) {
- brk += incr;
- } else {
- return (void *)-1;
- }
-
- return old;
-}