summary refs log tree commit diff
path: root/sysdeps/generic/sbrk.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-12-03 10:00:22 +0000
committerRoland McGrath <roland@gnu.org>1995-12-03 10:00:22 +0000
commit683158e0c42dc68e3c43a32b6e5d832c5280e94e (patch)
treea760f36d0950bcd7be070a6424349341ee179f5a /sysdeps/generic/sbrk.c
parent0fe4e552917483253b68ac9800b8bd292bf3a51d (diff)
downloadglibc-683158e0c42dc68e3c43a32b6e5d832c5280e94e.tar.gz
glibc-683158e0c42dc68e3c43a32b6e5d832c5280e94e.tar.xz
glibc-683158e0c42dc68e3c43a32b6e5d832c5280e94e.zip
* sysdeps/mach/hurd/brk.c (DATA_SIZE): Bump to 128MB. cvs/libc-951204 cvs/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.c20
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;
 }