[newlib]
* configure.host (msp430): Add. * libc/include/machine/ieeefp.h: Add MSP430 support. * libc/include/machine/setjmp.h: Likewise. * libc/include/sys/config.h: Likewise. * libc/machine/configure.in (msp430): Add. * libc/machine/configure: Regenerate. * libc/machine/msp430: New directory. [libgloss] * configure.in (msp430*-*-elf): Add. * configure: Regenerate. * msp430: New directory.
This commit is contained in:
33
libgloss/msp430/sbrk.c
Normal file
33
libgloss/msp430/sbrk.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* Copyright (c) 2013 Red Hat, Inc. All rights reserved.
|
||||
|
||||
This copyrighted material is made available to anyone wishing to use, modify,
|
||||
copy, or redistribute it subject to the terms and conditions of the BSD
|
||||
License. This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY expressed or implied, including the implied warranties
|
||||
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. A copy of this license
|
||||
is available at http://www.opensource.org/licenses. Any Red Hat trademarks that
|
||||
are incorporated in the source code or documentation are not subject to the BSD
|
||||
License and may only be used or replicated with the express permission of
|
||||
Red Hat, Inc.
|
||||
*/
|
||||
|
||||
char *
|
||||
_sbrk (int adj)
|
||||
{
|
||||
extern char end[]; /* Defined in the linker script. */
|
||||
static char * heap = end;
|
||||
char * rv = heap;
|
||||
char * sp = (char *) & sp; /* Stack grows down, heap grows up... */
|
||||
|
||||
if (heap + adj > sp)
|
||||
{
|
||||
#define MESSAGE "Heap and stack collision\n"
|
||||
write (1, MESSAGE, sizeof MESSAGE);
|
||||
abort ();
|
||||
}
|
||||
|
||||
heap += adj;
|
||||
return rv;
|
||||
}
|
||||
|
||||
char * sbrk (int) __attribute__((weak, alias ("_sbrk")));
|
Reference in New Issue
Block a user