| #include <_ansi.h> | |
| #include <sys/types.h> | |
| #include <sys/stat.h> | |
| #include "trap.h" | |
| caddr_t | |
| _sbrk (size_t incr) | |
| { | |
| extern char end; /* Defined by the linker */ | |
| static char *heap_end; | |
| char *prev_heap_end; | |
| #if 0 | |
| char *sp = (char *)stack_ptr; | |
| #else | |
| char *sp = (char *)&sp; | |
| #endif | |
| if (heap_end == 0) | |
| { | |
| heap_end = &end; | |
| } | |
| prev_heap_end = heap_end; | |
| heap_end += incr; | |
| if (heap_end > sp) | |
| { | |
| _write (1, "Heap and stack collision\n", 25); | |
| abort (); | |
| } | |
| return (caddr_t) prev_heap_end; | |
| } |