__init_brk.c 530 B

12345678910111213141516171819202122232425262728293031
  1. /* From libc-5.3.12 */
  2. #include <errno.h>
  3. #include <unistd.h>
  4. #include <sys/syscall.h>
  5. extern void * __curbrk;
  6. libc_hidden_proto(__curbrk)
  7. void * __curbrk = 0;
  8. libc_hidden_data_def(__curbrk)
  9. #define __NR__brk __NR_brk
  10. attribute_hidden _syscall1(void *, _brk, void *, ptr);
  11. extern int __init_brk(void);
  12. libc_hidden_proto(__init_brk)
  13. int
  14. __init_brk (void)
  15. {
  16. if (__curbrk == 0)
  17. {
  18. __curbrk = _brk(0);
  19. if (__curbrk == 0)
  20. {
  21. __set_errno(ENOMEM);
  22. return -1;
  23. }
  24. }
  25. return 0;
  26. }
  27. libc_hidden_def(__init_brk)