1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

* sysdeps/mach/hurd/brk.c (DATA_SIZE): Bump to 128MB.

(_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.
This commit is contained in:
Roland McGrath
1995-12-03 10:00:22 +00:00
parent 0fe4e55291
commit 683158e0c4
5 changed files with 128 additions and 17 deletions

View File

@ -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;
}