__init_brk.c 402 B

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