2014-03-21 Sabrini Ni <sabrinanitw@gmail.com>

* nds32/syscall_extra.h: Define macro.
        * nds32/syscall_argv.S: Use define macro.
        * nds32/syscall_argvlen.S: Ditto.
        * nds32/syscall_chdir.S: Ditto.
        * nds32/syscall_chmod.S: Ditto.
        * nds32/syscall_close.S: Ditto.
        * nds32/syscall_fstat.S: Ditto.
        * nds32/syscall_getpid.S: Ditto.
        * nds32/syscall_gettimeofday.S: Ditto.
        * nds32/syscall_isatty.S: Ditto.
        * nds32/syscall_kill.S: Ditto.
        * nds32/syscall_link.S: Ditto.
        * nds32/syscall_lseek.S: Ditto.
        * nds32/syscall_open.S: Ditto.
        * nds32/syscall_read.S: Ditto.
        * nds32/syscall_rename.S: Ditto.
        * nds32/syscall_stat.S: Ditto.
        * nds32/syscall_system.S: Ditto.
        * nds32/syscall_time.S: Ditto.
        * nds32/syscall_times.S: Ditto.
        * nds32/syscall_unlink.S: Ditto.
        * nds32/syscall_utime.S: Ditto.
        * nds32/syscall_write.S: Ditto.
This commit is contained in:
Jeff Johnston
2014-03-21 20:16:14 +00:00
parent 5805cb1f8c
commit 9246fbeced
24 changed files with 71 additions and 421 deletions

View File

@@ -38,4 +38,27 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define SYS_geterr 6001
/* Define macros that generate assembly output. */
.macro SYS_WRAPPER name num
.text
.global \name
.type \name, @function
.align 2
\name:
/* Make syscall with arg=`\num'.
Reture value `-1' stored in $r0 means there is something wrong.
If there is something wrong, make syscall to get `SYS_geterr' to get
error code to see what exactly happens and store it in errno . */
syscall \num /* Make syscall with arg=`\num'. */
addi $r1, $r0, 1
bnez $r1, 1f /* Branch if success. */
syscall SYS_geterr /* There is something wrong. */
s.w $r0, errno /* Store error code into errno. */
move $r0, -1
1:
ret
.size \name, .-\name
.endm
#endif /* _SYSCALL_EXTRA_H */