summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/sbrk.c
blob: 945ad5a16e7e071e724a397f3485b434e65f2543 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <unistd.h>

extern int __brk(void *end_data_segment);

extern void* __curbrk;

void* __sbrk(ptrdiff_t increment) {
  void* oldbrk;
  if (__curbrk==0)
    if (__brk(0) < 0)
      return (void*)-1;
  if (increment==0)
    return __curbrk;
  oldbrk=__curbrk;
  if (__brk(oldbrk+increment)<0)
    return (void*)-1;
  return oldbrk;
}

void* sbrk (ptrdiff_t increment) __attribute__((weak,alias("__sbrk")));