diff options
Diffstat (limited to 'libgloss/mep/sbrk.c')
-rw-r--r-- | libgloss/mep/sbrk.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/libgloss/mep/sbrk.c b/libgloss/mep/sbrk.c deleted file mode 100644 index 9ec8676f5..000000000 --- a/libgloss/mep/sbrk.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2003 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. - */ - -#include <errno.h> - -extern int __heap __far; /* beginning of heap */ -extern int __heap_end __far; /* if at address 0, use stack pointer as limit */ - -static char *the_break = (char *)(& __heap); - -int -is_addr_0 (int address) -{ - return address ? 0 : 1; -} - -void * -sbrk(int inc) -{ - char *current_heap_limit = (char *) (& __heap_end); - - /* is_addr_0 avoids optimizing out this block. */ - if (is_addr_0 ((int) current_heap_limit)) - { - int something; - int margin = 4096; - current_heap_limit = (char *) (& something) - margin; - } - - if ((the_break + inc) < current_heap_limit) - { - void *rv = (void *) the_break; - the_break += inc; - return rv; - } - else - { - errno = ENOMEM; - return (void *) -1; - } -} - -int -brk (void *ptr) -{ - the_break = ptr; - return 0; -} |