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:
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user