summaryrefslogtreecommitdiffstats
path: root/newlib/libc/sys/arc/mem-layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys/arc/mem-layout.c')
-rw-r--r--newlib/libc/sys/arc/mem-layout.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/newlib/libc/sys/arc/mem-layout.c b/newlib/libc/sys/arc/mem-layout.c
new file mode 100644
index 000000000..e9c215220
--- /dev/null
+++ b/newlib/libc/sys/arc/mem-layout.c
@@ -0,0 +1,21 @@
+/* Ideally this kind of stuff is specified in a linker script. It's not clear
+ what the default linker script should do, so for now we have this. */
+
+/* Keep this file separate from sbrk.c so the programmer can supply his/her
+ own _sbrk_r. This file could go in crt0.S, but I want to keep this in C.
+ This is all just an experiment anyway. */
+
+#ifndef STACK_SIZE
+/* Cache lines recycle at 4096 I think, and 4096 is listed as the page size,
+ so we make the stack size a multiple of it. Not that it's relevant or
+ anything, but why not base it on *something*? */
+#define STACK_SIZE (4096 * 4)
+#endif
+
+int stack_size asm ("stack_size") = STACK_SIZE;
+
+#ifndef SBRK_SIZE
+#define SBRK_SIZE (4096 * 32)
+#endif
+
+int sbrk_size asm ("sbrk_size") = SBRK_SIZE;