Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/pru')
-rw-r--r--libgloss/pru/syscalls.S18
1 files changed, 17 insertions, 1 deletions
diff --git a/libgloss/pru/syscalls.S b/libgloss/pru/syscalls.S
index 252231e90..80486d1f9 100644
--- a/libgloss/pru/syscalls.S
+++ b/libgloss/pru/syscalls.S
@@ -68,7 +68,6 @@ __SC_ret_skip_errno_set:
users use other methods for communicating with
the host - remoteproc, rpmsg, shared memory. */
SC _exit, SYS_exit
- SC _open, SYS_open
SC _close, SYS_close
SC _read, SYS_read
SC _write, SYS_write
@@ -77,3 +76,20 @@ __SC_ret_skip_errno_set:
SC _getpid, SYS_getpid
SC _kill, SYS_kill
SC _fstat, SYS_fstat
+
+
+ /* _open is special because it has VA declaration. */
+ .section .text._open, "ax"
+ .global _open
+ .type _open,@function
+ .func
+_open:
+ /* Pop the second and third argument from stack, per VA ABI.
+ Thus simulator can get all arguments from registers
+ for any supported syscall. */
+ lbbo r16, sp, 4, 4
+ lbbo r15, sp, 0, 4
+ ldi r1, SYS_open
+ halt
+ jmp __SC_ret
+ .endfunc