* v8500/sbrk.c (_sbrk): Tidy code.

Base start of heap on the "heap_start" symbol.

	* libc/sys/sysnecv850/sbrk.c (_sbrk): Tidy code.
	Base start of heap on the "heap_start" symbol.
This commit is contained in:
Nick Clifton 2011-05-27 10:46:48 +00:00
parent bfce73c261
commit 747a0a5205
4 changed files with 34 additions and 38 deletions

View File

@ -1,3 +1,8 @@
2011-05-27 Nick Clifton <nickc@redhat.com>
* v8500/sbrk.c (_sbrk): Tidy code.
Base start of heap on the "heap_start" symbol.
2011-03-26 Mike Frysinger <vapier@gentoo.org> 2011-03-26 Mike Frysinger <vapier@gentoo.org>
* bfin/include/builtins.h (__builtin_raise): Change constraint to n. * bfin/include/builtins.h (__builtin_raise): Change constraint to n.

View File

@ -3,34 +3,27 @@
#include <sys/stat.h> #include <sys/stat.h>
#include "sys/syscall.h" #include "sys/syscall.h"
int errno;
int __trap0 (int function, int p1, int p2, int p3);
#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3))
caddr_t caddr_t
_sbrk (int incr) _sbrk (int incr)
{ {
extern char end; /* Defined by the linker */ extern char heap_start; /* Defined by the linker script. */
static char *heap_end; static char * heap_end = NULL;
char *prev_heap_end; char * prev_heap_end;
#if 0 char * sp = (char *) & sp;
char *sp = (char *)stack_ptr;
#else if (heap_end == NULL)
char *sp = (char *)&sp; heap_end = & heap_start;
#endif
if (heap_end == 0)
{
heap_end = &end;
}
prev_heap_end = heap_end; prev_heap_end = heap_end;
if (heap_end + incr > sp) if (heap_end + incr > sp)
{ {
_write (1, "Heap and stack collision\n", 25); #define MESSAGE "Heap and stack collision\n"
_write (1, MESSAGE, sizeof MESSAGE);
abort (); abort ();
} }
heap_end += incr; heap_end += incr;
return (caddr_t) prev_heap_end; return (caddr_t) prev_heap_end;
} }

View File

@ -1,3 +1,8 @@
2011-05-27 Nick Clifton <nickc@redhat.com>
* libc/sys/sysnecv850/sbrk.c (_sbrk): Tidy code.
Base start of heap on the "heap_start" symbol.
2011-05-25 Eric Blake <eblake@redhat.com> 2011-05-25 Eric Blake <eblake@redhat.com>
* libc/string/strerror.c (_strerror_r): Report "Success" for 0. * libc/string/strerror.c (_strerror_r): Report "Success" for 0.

View File

@ -3,34 +3,27 @@
#include <sys/stat.h> #include <sys/stat.h>
#include "sys/syscall.h" #include "sys/syscall.h"
int errno;
int __trap0 (int function, int p1, int p2, int p3);
#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3))
caddr_t caddr_t
_sbrk (int incr) _sbrk (int incr)
{ {
extern char end; /* Defined by the linker */ extern char heap_start; /* Defined by the linker script. */
static char *heap_end; static char * heap_end = NULL;
char *prev_heap_end; char * prev_heap_end;
#if 0 char * sp = (char *) & sp;
char *sp = (char *)stack_ptr;
#else if (heap_end == NULL)
char *sp = (char *)&sp; heap_end = & heap_start;
#endif
if (heap_end == 0)
{
heap_end = &end;
}
prev_heap_end = heap_end; prev_heap_end = heap_end;
if (heap_end + incr > sp) if (heap_end + incr > sp)
{ {
_write (1, "Heap and stack collision\n", 25); #define MESSAGE "Heap and stack collision\n"
_write (1, MESSAGE, sizeof MESSAGE);
abort (); abort ();
} }
heap_end += incr; heap_end += incr;
return (caddr_t) prev_heap_end; return (caddr_t) prev_heap_end;
} }