diff options
author | Roland McGrath <roland@gnu.org> | 1995-12-03 10:00:22 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-12-03 10:00:22 +0000 |
commit | 683158e0c42dc68e3c43a32b6e5d832c5280e94e (patch) | |
tree | a760f36d0950bcd7be070a6424349341ee179f5a /sysdeps/generic/sbrk.c | |
parent | 0fe4e552917483253b68ac9800b8bd292bf3a51d (diff) | |
download | glibc-683158e0c42dc68e3c43a32b6e5d832c5280e94e.tar glibc-683158e0c42dc68e3c43a32b6e5d832c5280e94e.tar.gz glibc-683158e0c42dc68e3c43a32b6e5d832c5280e94e.tar.bz2 glibc-683158e0c42dc68e3c43a32b6e5d832c5280e94e.zip |
* sysdeps/mach/hurd/brk.c (DATA_SIZE): Bump to 128MB.cvs/libc-951204cvs/libc-951203
(_hurd_set_brk): Try to allocate more space when we run out.
* sysdeps/generic/sbrk.c: If __curbrk is zero, call __brk with
zero and examine it again.
* sysdeps/unix/sysv/linux/i386/brk.c: New file.
* sysdeps/unix/sysv/linux/i386/brk.S: File removed.
* sysdeps/unix/sysv/linux/i386/sbrk.S: File removed.
* sysdeps/unix/sysv/linux/dl-sysdep.c: New file.
Diffstat (limited to 'sysdeps/generic/sbrk.c')
-rw-r--r-- | sysdeps/generic/sbrk.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/sysdeps/generic/sbrk.c b/sysdeps/generic/sbrk.c index 28beab62d5..83e2536d5d 100644 --- a/sysdeps/generic/sbrk.c +++ b/sysdeps/generic/sbrk.c @@ -15,26 +15,30 @@ You should have received a copy of the GNU General Public License along with the GNU C Library; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <ansidecl.h> +#include <unistd.h> +#include <errno.h> /* Defined in brk.c. */ -extern PTR __curbrk; -extern int EXFUN(__brk, (PTR addr)); +extern void *__curbrk; +extern int __brk (void *addr); /* Extend the process's data space by INCREMENT. If INCREMENT is negative, shrink data space by - INCREMENT. Return start of new space allocated, or -1 for errors. */ -PTR -DEFUN(__sbrk, (increment), int increment) +void * +__sbrk (int increment) { - char *oldbrk; + void *oldbrk; + + if (__curbrk == 0 && __brk (0) < 0) + return (void *) -1; if (increment == 0) return __curbrk; oldbrk = __curbrk; - if (__brk(oldbrk + increment) < 0) - return (PTR) -1; + if (__brk (oldbrk + increment) < 0) + return (void *) -1; return oldbrk; } |