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