source: trunk/libs/newlib/src/newlib/libc/sys/sysmec/sbrk.c @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 630 bytes
Line 
1#include <_ansi.h>
2#include <sys/types.h>
3#include <sys/stat.h>
4#include "sys/syscall.h"
5
6int errno;
7
8int __trap0 ();
9
10#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3))
11
12caddr_t
13_sbrk (size_t incr)
14{
15  extern char end;              /* Defined by the linker */
16  static char *heap_end;
17  char *prev_heap_end;
18#if 0
19  char *sp = (char *)stack_ptr;
20#else
21  char *sp = (char *)&sp;
22#endif
23
24  if (heap_end == 0)
25    {
26      heap_end = &end;
27    }
28  prev_heap_end = heap_end;
29  if (heap_end + incr > sp)
30    {
31      _write (1, "Heap and stack collision\n", 25);
32      abort ();
33    }
34  heap_end += incr;
35  return (caddr_t) prev_heap_end;
36}
Note: See TracBrowser for help on using the repository browser.