1 /* From libc-5.3.12 */ 2 3 #include <unistd.h> 4 #include <sys/syscall.h> 5 #include <errno.h> 6 #include "sysdep.h" 7 8 void * __curbrk attribute_hidden = 0; 9 10 extern int __init_brk (void) attribute_hidden; 11 int __init_brk(void)12__init_brk (void) 13 { 14 if (__curbrk == 0) { 15 /* Notice that we don't need to save/restore the GOT 16 * register since that is not call clobbered by the syscall. 17 */ 18 __asm__ ("clear.d $r10\n\t" 19 "movu.w " STR(__NR_brk) ",$r9\n\t" 20 "break 13\n\t" 21 "move.d $r10, %0" 22 : "=r" (__curbrk) 23 : 24 : "r9", "r10"); 25 26 if (__curbrk == 0) { 27 __set_errno(ENOMEM); 28 return -1; 29 } 30 } 31 return 0; 32 } 33