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

* nds32/_argv.S: Replace syscall with break.
        * nds32/_argvlen.S: Ditto.
        * nds32/_chdir.S: Ditto.
        * nds32/_chmod.S: Ditto.
        * nds32/_close.S: Ditto.
        * nds32/_exit.S: Ditto.
        * nds32/_fstat.S: Ditto.
        * nds32/_getpid.S: Ditto.
        * nds32/_gettimeofday.S: Ditto.
        * nds32/_isatty.S: Ditto.
        * nds32/_kill.S: Ditto.
        * nds32/_link.S: Ditto.
        * nds32/_lseek.S: Ditto.
        * nds32/_open.S: Ditto.
        * nds32/_read.S: Ditto.
        * nds32/_rename.S: Ditto.
        * nds32/_stat.S: Ditto.
        * nds32/_system.S: Ditto.
        * nds32/_time.S: Ditto.
        * nds32/_times.S: Ditto.
        * nds32/_unlink.S: Ditto.
        * nds32/_utime.S: Ditto.
        * nds32/_write.S: Ditto.
        * nds32/syscall_error_handler.S: Ditto.
        * nds32/vh.h: New.
This commit is contained in:
Jeff Johnston 2014-03-21 21:02:52 +00:00
parent e59026e844
commit 23cf8028ec
26 changed files with 329 additions and 46 deletions

View File

@ -1,3 +1,31 @@
2014-03-21 Sabrini Ni <sabrinanitw@gmail.com>
* nds32/_argv.S: Replace syscall with break.
* nds32/_argvlen.S: Ditto.
* nds32/_chdir.S: Ditto.
* nds32/_chmod.S: Ditto.
* nds32/_close.S: Ditto.
* nds32/_exit.S: Ditto.
* nds32/_fstat.S: Ditto.
* nds32/_getpid.S: Ditto.
* nds32/_gettimeofday.S: Ditto.
* nds32/_isatty.S: Ditto.
* nds32/_kill.S: Ditto.
* nds32/_link.S: Ditto.
* nds32/_lseek.S: Ditto.
* nds32/_open.S: Ditto.
* nds32/_read.S: Ditto.
* nds32/_rename.S: Ditto.
* nds32/_stat.S: Ditto.
* nds32/_system.S: Ditto.
* nds32/_time.S: Ditto.
* nds32/_times.S: Ditto.
* nds32/_unlink.S: Ditto.
* nds32/_utime.S: Ditto.
* nds32/_write.S: Ditto.
* nds32/syscall_error_handler.S: Ditto.
* nds32/vh.h: New.
2014-03-21 Sabrini Ni <sabrinanitw@gmail.com> 2014-03-21 Sabrini Ni <sabrinanitw@gmail.com>
* nds32/crt0.S: Initialize ITB base. * nds32/crt0.S: Initialize ITB base.

View File

@ -27,8 +27,10 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __NDS32_VH__
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _argv, SYS_argv SYS_WRAPPER _argv, SYS_argv
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,10 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __NDS32_VH__
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _argvlen, SYS_argvlen SYS_WRAPPER _argvlen, SYS_argvlen
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,10 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __NDS32_VH__
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _chdir, SYS_chdir SYS_WRAPPER _chdir, SYS_chdir
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,11 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __NDS32_VH__
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _chmod, SYS_chmod SYS_WRAPPER _chmod, SYS_chmod
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,16 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE1 _close, VH_CLOSE
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _close, SYS_close SYS_WRAPPER _close, SYS_close
#endif /* not __NDS32_VH__ */

View File

@ -27,10 +27,16 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE3 _exit, VH_EXIT
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
.section .text .section .text
.global _exit .global _exit
.type _exit, @function .type _exit, @function
@ -38,3 +44,5 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
_exit: _exit:
syscall SYS_exit /* Make syscall 'SYS_exit'. */ syscall SYS_exit /* Make syscall 'SYS_exit'. */
.size _exit, .-_exit .size _exit, .-_exit
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,17 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE1 _fstat, VH_FSTAT
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _fstat, SYS_fstat SYS_WRAPPER _fstat, SYS_fstat
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,11 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __NDS32_VH__
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _getpid, SYS_getpid SYS_WRAPPER _getpid, SYS_getpid
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,16 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE3 _gettimeofday, VH_GETTIMEOFDAY
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _gettimeofday, SYS_gettimeofday SYS_WRAPPER _gettimeofday, SYS_gettimeofday
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,16 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE0 _isatty, VH_ISATTY
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _isatty, SYS_isatty SYS_WRAPPER _isatty, SYS_isatty
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,11 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __NDS32_VH__
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _kill, SYS_kill SYS_WRAPPER _kill, SYS_kill
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,10 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __NDS32_VH__
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _link, SYS_link SYS_WRAPPER _link, SYS_link
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,16 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE1 _lseek, VH_LSEEK
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _lseek, SYS_lseek SYS_WRAPPER _lseek, SYS_lseek
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,16 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE1 _open, VH_OPEN
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _open, SYS_open SYS_WRAPPER _open, SYS_open
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,16 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE1 _read, VH_READ
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _read, SYS_read SYS_WRAPPER _read, SYS_read
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,16 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE1 _rename, VH_RENAME
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _rename, SYS_rename SYS_WRAPPER _rename, SYS_rename
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,16 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE1 _stat, VH_STAT
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _stat, SYS_stat SYS_WRAPPER _stat, SYS_stat
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,16 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE1 _system, VH_SYSTEM
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _system, SYS_system SYS_WRAPPER _system, SYS_system
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,10 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __NDS32_VH__
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _time, SYS_time SYS_WRAPPER _time, SYS_time
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,10 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __NDS32_VH__
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _times, SYS_times SYS_WRAPPER _times, SYS_times
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,17 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE1 _lseek, VH_LSEEK
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _unlink, SYS_unlink SYS_WRAPPER _unlink, SYS_unlink
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,10 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __NDS32_VH__
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _utime, SYS_utime SYS_WRAPPER _utime, SYS_utime
#endif /* not __NDS32_VH__ */

View File

@ -27,8 +27,16 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifdef __NDS32_VH__
#include "vh.h"
.extern _impure_ptr
TYPE1 _write, VH_WRITE
#else /* not __NDS32_VH__ */
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
SYS_WRAPPER _write, SYS_write SYS_WRAPPER _write, SYS_write
#endif /* not __NDS32_VH__ */

View File

@ -27,6 +27,8 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef __NDS32_VH__
#include "../syscall.h" #include "../syscall.h"
#include "syscall_extra.h" #include "syscall_extra.h"
@ -47,3 +49,4 @@ __syscall_error_handler:
1: 1:
ret ret
.size __syscall_error_handler, .-__syscall_error_handler .size __syscall_error_handler, .-__syscall_error_handler
#endif /* not __NDS32_VH__ */

123
libgloss/nds32/vh.h Normal file
View File

@ -0,0 +1,123 @@
#ifndef _VH_H
#define _VH_H
/*
BREAK #SWID definition:
0x00 0x1F: Free to use
0x20 0x1FF: Reserved for EX9
0x0200 0x7EFF: Free to use
0x7F00 0x7FFF: Reserved for virtual hosting
*/
/* These are #SWID defined for Virtual Hosting. */
#define VH_FOPEN 0x7F00
#define VH_FREOPEN 0x7F01
#define VH_FCLOSE 0x7F02
#define VH_FFLUSH 0x7F03
#define VH_FREAD 0x7F04
#define VH_FWRITE 0x7F05
#define VH_FGETC 0x7F06
#define VH_FGETS 0x7F07
#define VH_FPUTC 0x7F08
#define VH_FPUTS 0x7F09
#define VH_UNGETC 0x7F0A
#define VH_FTELL 0x7F0B
#define VH_FSEEK 0x7F0C
#define VH_REWIND 0x7F0D
#define VH_CLEARERR 0x7F0E
#define VH_FEOF 0x7F0F
#define VH_FERROR 0x7F10
#define VH_REMOVE 0x7F11
#define VH_TMPFILE 0x7F12
/* From here, define Low-level routines. */
#define VH_EXIT 0x7F20
#define VH_OPEN 0x7F21
#define VH_CLOSE 0x7F22
#define VH_READ 0x7F23
#define VH_WRITE 0x7F24
#define VH_LSEEK 0x7F25
#define VH_UNLINK 0x7F26
#define VH_RENAME 0x7F27
#define VH_FSTAT 0x7F28
#define VH_STAT 0x7F29
#define VH_GETTIMEOFDAY 0x7F2A
#define VH_ISATTY 0x7F2B
#define VH_SYSTEM 0x7F2C
#define VH_GETERR 0x7F2D /* The method we get errno. */
/* Define macros that generate assembly output.
Generate a System Call exception to notify GDB
to handle this virtual I/O routine. */
.macro TYPE0 name num
/* If r0 is not NULL(0), set errno. */
.text
.global \name
.type \name, @function
.align 2
\name:
BREAK \num /* Generate_Exception(Breakpoint); */
bnez $r0, 1f /* Branch if success.
r0 value is not NULL(0). */
BREAK VH_GETERR
l.w $r15, _impure_ptr
swi $r0, [$r15] /* Set errno. */
move $r0, 0 /* Set return value as 0. */
1:
ret
.size \name, .-\name
.endm
.macro TYPE1 name num
/* If r0 is EOF(-1), set errno. */
.text
.global \name
.type \name, @function
.align 2
\name:
BREAK \num /* Generate_Exception(Breakpoint); */
addi $r15, $r0, 1
bnezs8 1f /* Branch if success.
r0 value is EOF(-1). */
BREAK VH_GETERR
l.w $r15, _impure_ptr
swi $r0, [$r15] /* Set errno. */
move $r0, -1 /* Set return value as -1. */
1:
ret
.size \name, .-\name
.endm
.macro TYPE2 name num
/* If r0 is less than r2, set errno. */
.text
.global \name
.type \name, @function
.align 2
\name:
BREAK \num /* Generate_Exception(Breakpoint); */
slt $r15, $r0, $r2 /* If r15 is set, set errno. */
beqzs8 1f /* Branch if success.
r15 is zero. */
move $r4, $r0 /* Keep return value r0. */
BREAK VH_GETERR
l.w $r15, _impure_ptr
swi $r0, [$r15] /* Set errno. */
move $r0, $r4 /* Restore r0. */
1:
ret
.size \name, .-\name
.endm
.macro TYPE3 name num
/* No errors are defined. */
.text
.global \name
.type \name, @function
.align 2
\name:
BREAK \num /* Generate_Exception(Breakpoint); */
ret
.size \name, .-\name
.endm
#endif /* _VH_H */