1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#include <dietfeatures.h>
#include "syscalls.h"
.text
.weak exit
.type exit,function
exit:
.global _exit
.type _exit,function
_exit:
mov __NR_exit, %g1
.global __unified_syscall
__unified_syscall:
ta 0x6d
bcs %xcc, 1f /* error ? */
nop
/* here we go and "reuse" the return for weak-void functions */
#include "dietuglyweaks.h"
retl
nop
.global __unified_syscall_error_handler
__unified_syscall_error_handler:
1: save %sp, -192, %sp
#ifdef WANT_THREAD_SAFE
call __errno_location
nop
#else
sethi %hi(errno), %o0
or %o0, %lo(errno), %o0
#endif
st %i0, [ %o0 ] /* store errno */
ret
restore %g0, -1, %o0 /* return -1 */
|